Propositions de plugins

Propriétés hiérarchiques

Entre le champ extra et le mots-clefs, l’ajout de propriétés sur les objets éditoriaux permettrait de stocker des valeurs comme une date, un nombre de hits, une cote de bilbiothèque. Le caractère hiérarchique des propriétés permet d’aller plus lon en définissant des arbres. Le meilleur exemple de propriété hiérarchique est la localisation géographique : une photo est prise dans un lieu précis, dans une région, dans un pays, dans un continent…

Par rapport aux champs extras, le système est plus souple : on ajoute les propriétés au cas par cas, seulement sur les objets concernés. Par exemple, pour un site qui contient des sections assez différentes, les propriétés des articles peuvent être différentes d’une rubrique à l’autre.

Par rapport aux mots-clefs, les propriétés permettent de stocker des valeurs. En fait il s’agit seulement d’ajouter une valeur à un mot-clef.

Objets

Pour tous les sites en SPIP sur lesquels j’ai travaillé, j’ai été amené à ajouter des champs-extras pour gérer des spécificités du site. Cela vient du fait que le monde réel est faits d’objets plus que de rubriques ou d’articles. Un article représentent toujours un objet, alors il faut lui ajouter les données qui caractérisent cet objet.
Dans un site professionnel, on peut avoir des articles qui représentent des compétences, des domaines d’activités, des produits, des réalisations, etc.
Dans un site personnel, comme L’Océanique, il y a des textes, des billets, des voyages, des photos… et cette partie sur le développement en SPIP.

Pourquoi alors ne pas éditer des articles mais des objets ? L’inconvénient des champs-extras est qu’on se retrouve rapidement avec de nombreux champs dont la signification n’est pas claire dans toutes les zones du site. Ce qu’il faut c’est pouvoir associer des groupes de champs qui représentent des objets.

Techniquement, il faudrait ajouter une table par objet. Chaque ligne de la table est associé à un objet éditorial par l’identifiant de celui-ci. Je n’ai pas vérifié qu’un plugin pourrait être capable d’ajouter des tables à la volée et de les maintenir dans les opérations de sauvegarde, de restauration, de mises à jours, etc.

D’un autre côté, ça ferait presque une évolution du core. Il y a récemment eu une discussion sur la liste spip-dev à propos de l’idée de rendre les articles conteneurs d’autres articles. En objet, on pourrait tout à fait dire qu’un article est un objet de base qui contient du texte, un titre, des documents. Une rubrique est un même objet avec en plus la possibilité d’être parents d’autres objets. Et le webmestre pourrait définir les objets dont il a besoin (comme ça se fait dans EZ-publish).