Le plugin \Lea\Data sert à gérer une collection de données identifiées par une clef prefix_item_name.
Il s'agit d'un plugin de bas niveau : les données gérées peuvent servir tout aussi bien comme page d'un CMS ou comme profil d'un Utilisateur.
Le routage
On démarre le plugin dans le fichier conf/YAE.routes.ini par
[prefix]
data = "/path"
Cette configuration créée deux routes pour l'Invité :
- index propose une liste des données disponibles.
- item ouvre une page pointant sur les données sélectionnées.
En voici le routage :
prefix.index = /path/
prefix.item = /path/ + prefix.item_name
À cela s'ajoutent quatre routes pour l'Administrateur :
- create pour créer des données.
- rename pour modifier la clef prefix_item_name, et mettre en place les redirections nécessaires.
- update pour modifier les valeurs des données. Basiquement, seul le paramètre prefix_item_status est disponible.
- delete pour supprimer les données associées à la clef prefix_item_name.
En voici le routage :
prefix.create = /path/n; prefix.item_name: pin
prefix.rename = /path/r + prefix.item_name; prefix.item_new_name: pin
prefix.update = /path/u + prefix.item_name; prefix.item_status: pis
prefix.delete = /path/d + prefix.item_name
Extension
Basiquement, le plugin Data est pauvre : il ne génére qu'une clef d'identification et un status pour les données. On peut pourtant facilement étendre ces possibilités : il suffit d'ajouter des paramètres dans le fichier conf/YAE.routes.ini. Par exemple, on peut proposer un titre aux données !
[PREFIX]
data = "/path; item_title: pit"
Dans ce cas, un paramètre prefix_item_title est ajouté à la liste des données.
Il sera accessible directement via la route update.
Le code source
Le plugin \Lea\Data se répartit, outre le fichier de configuration, sur les fichiers suivants :
[...] / lea_controller_datahelper_php
[...] / lea_controller_dataindex_php
[...] / lea_controller_dataitem_php
[...] / lea_controller_datacreate_php
[...] / lea_controller_datarename_php
[...] / lea_controller_dataupdate_php
[...] / lea_controller_datadelete_php
[...] / lea_view_dataindex_php