J'ai fini une première version d'ajout de données spécifique à
des éléments spip. Pour l'instant, ça se limite aux articles, mais le
même principe peut être facilement appliqué au reste, à coups de
copier/coller.
* Le patch pour spip 1.6 est ici :
http://piif.lautre.net/tmp/spip.data.patch
Pour l'installer : depuis le répertoire qui contient le répertoire
spip, il suffit de faire
patch -Np1 < spip.data.patch
Attention au fichier ecrire/mes_options.php3 qui peut être différent
si on n'est pas dans une install "de base".
Le patch installe un fichier ajouterData.sql dans spip/ecrire. Il
s'agit des commandes sql à executer pour ajouter une colonne data à
toutes les tables.
En fait, pour l'instant, "ALTER TABLE spip_articles ADD data BLOB;"
suffit.
* Ce qui est fait :
- une colonne data est ajoutée à la table spip_article. Elle contient un
tableau sérialisé.
- depuis une boucle ARTICLES, la balise #DATA retourne le tableau
associé
- le filtre data permet de récupérer une entrée de ce tableau. Exemple :
[le champ xyz : (#DATA|data{"xyz"})]
- dans mes_options.php3, on peut définir une fonction champs_data
qui retourne une liste des champs à définir pour un article ou une
rubrique donnée. Dans l'exemple fourni dans le patch, les articles
de la rubrique 7 ont des champs "machin" et "truc".
Dans ce cas, dans l'édition d'articles, des zones de saisie pour
chaque champ sont gérées automatiquement (sous le PS).
* Ce qui reste à faire :
- tester de plus près
- même boulot pour les autres objets spip (rubrique, auteur et forum en
priorité je suppose, mais c'est à définir)
- définir une boucle DATAS afin d'énumérer les champs d'un élément ?
À vos commentaires
À+, Pif.