Utiliser la fabrique

  pour générer la gestion/modification d’un nouvel objet éditorial

Ajouter une nouvelle table à SPIP, gérée directement dans l’interface privée de SPIP (et bien sur accessible par les squelettes automatiques du privé et les boucles que vous écrirez dans l’interface publique) est devenu presque simpliste, et même sans aucune programmation php si vous vous satisfaisez des traitement standards proposés par l’interface de la Fabrique, et des options de Saisies.

Cette page rassemble quelques notes rapides, éléments pour aider à l’usage de la Fabrique / merci à son créateur Marcimat !

Article publié le 21 avril 2015, et actualisé en décembre 2020

 
 
 
 
 
 
 
 

Attention à ne pas avoir les champs clés de plusieurs tables au même nom, un problème de duplicate_names à la génération des fonctions d’autorisation !
- utiliser des champs DATETIME (et non pas au format DATE !)
- et compléter les fonctions formulaires_editer_objet_verifier() !

D’après la video montrant version Fabrique 1.13.2 ! . [1]

 synthèse initiale

- présentation initiale du compagnon
- utiliser un répertoire spécifique ./plugins/fabrique_auto
- trois onglets : description, sauve-restaur , outils
- ergonomie interactive (sur-lignage en rose !), et un fichier
- de plugin.xml à paquet.xml

- la Fabrique crée l’ensemble de l’interface privée, mais aucun squelette public (sauf maintenant celui dans ./contenu [2]). Par contre, les objets éditoriaux déclarés reçoivent un scaffold automatique
- la gestion des versions successives : reste à la charge de l’utilisateur [3].

Attention, la version publique de Fabrique utilisait Z , tandis que la version en SVN utilise la nouvelle norme ( spipr ) de Z-core [4]

 La préparation du plugin

- description : penser aux logos (et activer GD2 dans la configuration de SPIP ! )
- paquet
- installation : pour prévoir dans prefix_administration.php [5] la gestion-creation de tables, leur mes-à-jour et désinstallation, avc un n° de version de schéma de données, et
- configuration pour générer un fichier/formulaire de configuration
- fichiers : pour créer automatiquement, (si non indispensables) les autorisations, fonctions, options ou pipelines [6]
- insertion de code : rajouter les <utilise nom="z"...
- scripts à exécuter
- options pour générer plus facilement des exemples de codes dans les fichiers sources du plugin

 Reprise d’un objet éditorial

- pre construire permet de récupérer depuis une table
- description
- logos en plusieurs dimensions, générés en PNG et avec les symboles CRUD
- table pour la clé primaire, et dans le cas de noms de tables "zarbi", les pluriels/genres depuis le nom de table réelle
- champs reprend tous les champs (disponibles, ou nouveaux) : editable / versionné / obligatoire / avec une ponderation-importance ; il vous faut valider les champs éditables, à faire apparaitre dans les formulaires privés.... sinon vos écrans de saisie-modification seront générés, mais vides...
chaque champ saisi peut être proposé pour un type de saisie :input, textarea , date (pour un datetime)
- champs spéciaux identifie des champs de titre, de lien à une rubrique, à une traduction, à une date de publication, un statut (de publication)...
- chaines de langues : pré-rempli avec les saisies initiales de Description

 Ajout d’un objet editorial

- logos
- champs
voir les options de saisie (le plugin ! )
- chaines de langues : pré-rempli avec les saisies initiales de Description
- liaisons
- fichiers echaffaudés pour ajouter un formulaire de recherche, et une prévisualisation publique
- autorisation
- options ajoute des liens dans le menu edition,et dans le menu rapide

- récupérer des fichiers dans le backup
- désinstaller/ré-installer le plugin a chaque modif...
- configurer le droit d’ajout de mots-clés, les révisions, la gestion avancée des URL, les documents joints

Actions évoluées

- créer et définir des liens, vers quels objets... (y compris dans l’interface privée)
- cela peut porter sur plusieurs objets éditoriaux !
création d’un squelette : chat.html ou contenu/chat.html [7]

- insertion de code : à voir...
pour des traitements spécifiques...

 Outils

- les echappements sur des codes de squelettes....
- peupler un objet pour forcer des données à l’installation : crée deux fonctions php dans un source pour mettre en mémoire un tableau de données lues d’une table existente [8] et en déclarer le mappage pour insertion en table SPIP.


 Problèmes rencontrés

Tout d’abord, un rappel : la Fabrique étant développée par l’un des les "devs" de la "Team", utilise les dernières possibilités des PHP récents ! Donc, si votre installation ne fonctionne pas bien, essayer avec une version du PHP plus récente (PHP 7.2.x..) pourra sans doute résoudre vos interrogations, car il n’y a pas de messages d’alerte...
- des erreurs de gestion dans les Logos(suppression et décalage de leurs index)
- la manipulation des tables d’objets editoriaux rajoute facilement des champs SPIP dans les objets ( maj , statut...)
- la désinstallation du plugin supprime la table et ses données...

- obligatoires : prefix (et catégorie), un logo (traduit en PNG)
- paquet-prefix_LG.php => avec nom description slogan
- fabrique-prefix.php => (obligatoire) !

- l’import de contenu par une table au format CSV (avec le plugin CSVimport) semble nécessiter que l’index exact de la table soit donné en nom de la première colonne du fichier CSV, si les valeurs d’id_xx doivent être introduites depuis la source CSV, et non en auto-increment...


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1Voir aussi sur le Carnet ...

[2Insérez l’utilisation de Z dans les sources du plugin pour qu les ecrans généres soient bien repris !

[3Pensez à désacti ver/réactiver le plugin après toute modification) ; vérifiez les doubles entre ./plugins/ ou ./plugins/auto/, et./plugins/fabrique_auto.

[4Avec head/ et content/ , ....au lieu de contenu/ comme sous-dossiers : voir sur Contrib les différences expliquées !

[5Le fichier qui valide l’installation à l’activation du plugin.

[6celui-ci est obligatoirement créé à partir d’un objet éditorial.

[7Avec Zpip, il est donc possible d’accéder directement au squelette "objet" editorial simple !

[8Vous pouvez utiliser votre table de travail !


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 21 avril 2015, et actualisé en décembre 2020 .

Répondre à cet article