(Lea) Description du plugin Data

Tutoriel
| Lundi 01 Juillet 2024

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