La Fabrique est un outil de construction de plugin spécialement orientée pour la gestion d’objets éditoriaux. Pour ceux qui ont connu le plugin « Chat » ou « Chat2 », sachez que la Fabrique sait gérer tout ce qui est présent dans ce tutoriel / plugin, et même au-delà, bien au-delà.
N’allez pas trop vite !
Cette note est aussi présente lors de l’installation du plugin, mais redisons le encore :
- la Fabrique crée un code fonctionnel mais qui ne répondra peut être pas à 100% de vos attentes. La Fabrique ne peut pas tout faire. À vous d’adapter ensuite le code généré.
- un plugin est très vite fait grâce à la Fabrique. Mais attention : le code n’est qu’une partie d’un plugin. Si vous voulez que votre plugin perdure dans le temps, il faut qu’il soit utile, partagé, documenté, traduit, il faut assister les utilisateurs, et maintenir son code avec les évolutions de SPIP et c’est tout cela aussi un plugin !
- la Zone de SPIP permet de collaborer sur les plugins. Essayez au maximum de ne pas créer des plugins existant déjà, pour éviter des doublons qui peuvent disperser d’autant les énergies pour toutes les tâches citées au point précédent.
Pré-requis
Pour faire fonctionner la Fabrique il faut :
- PHP >= 5.3 (il est possible que 5.2 fonctionne aussi)
- SPIP 3.0-RC minimum
- Un navigateur récent (testé avec FF11 et Chrome 18.0)
- Saisies >= 0.25
- Et peut être un système Unix/Linux pour son serveur (appel de
exec('diff')
en PHP) [1]
Optionnellement mais conseillé :
Démonstration vidéo
Dans la vidéo suivante, vous verrez une présentation de la Fabrique impliquant la construction d’un plugin « Félins » dans lequel nous créons 1 objet éditorial « Chats ».
Cette vidéo est aussi disponible en meilleure qualité sur medias.spip.net
Accéder à la fabrique
Depuis SPIP 3.1, La fabrique est accessible dans le menu de développement (il faut activer l’option de vos préférences personnelles pour voir ce menu)
Documentation
En attendant une documentation plus riche ici, vous pouvez lire ces articles :
Capture d’écran
À tester
« La Fabrique » doit être testée dans différents environnements. Vous êtes donc invités à explorer cet outil développé avec git sur la Zone [2]
Limitation connue
Actuellement (version 1.16.3), à partir d’un certain nombre d’objets et de champs (environ 10 objets * 8 champs ici), le formulaire devient naturellement inopérant à cause d’une limitation voulue de PHP : max_input_vars, par défaut à 1000 dans php.ini.
Pour contourner, il faut modifier php.ini pour tolérer plus de champs (5000) par exemple.
Attention
Depuis la version 2.0.0, le menu de la fabrique se trouve dans celui de Développement. Celui-ci est activable depuis l’espace préférence de l’utilisateur.
Discussions par date d’activité
137 discussions
Un grand merci pour ce plugin absolument fantastique !
Un tout petit truc rigolo : le plugin peut prendre __connect.php pour le legitime connect.php ce qui peut induire de longues minutes, heures d incompréhension pour les p’tits gars qui ont l habitude de désactiver des fichiers en leurs collant une petite flopée de underscore devant....
amicalement
triton
Je n’ai pas compris. Il le prend comme légitime où ? pour montrer la liste des tables importables ? Mais dans ce cas, elles sont affichées après le connect.php normal non ?
Bonjour,
si dans mon dossier config j ai un fichier __inc_connect.php avec une chaine de connexion incorrecte
- je vais dans « fabrique>restauration/réini... »
- je charge un fichier fabrique_plug.php
>>> OK
- Je retourne dans l onglet : « Fabrique à plugins »
j ai au niveau de l’affichage du div.contenu le message :
« Site en travaux
Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension. »
je viens de refaire la manip, bon d’un autre coté, a part moi, qui se trimbale avec des fichiers __inc_connect.php incorrectes dans son config ?
triton
ah tu veux dire que si y a un connecteur foireux, ça plante ?
j’avais pas pensé à ça pour le coup.
hum…
à l’occasion je regarderai…
MM.
voila ! un « connecteur foireux », j’avais pas le terme technique....
et oui, ça ne doit pas concerner grand monde comme problème....
par contre j avais une autre question plus importante... est il possible de faire des clés uniques composites avec la Fabrique ?
’key’ => array(
« PRIMARY KEY » => « id_truc »,
« UNIQUE machin_unique » => « id_machin,id_option_du_machin »
Je continue à tester la fabrique
merci bien
triton
Répondre à ce message
Bonjour,
Sous spip 3.0.5
j’obtiens systématiquement les messages d’erreur lors de la création d’un plugin avec des champs issus d’un ’peuplement’ depuis une table existante ou avec un champs int(11) :
Celà est-il dù à une table vide ?
si non, ou faut-il bricoler pour faire sauter cette erreur de ’fabrique’ ?
Merci bien
En changeant le type de variable pour varchar(30) j’ai alors :
C’est avec fabrique 1.17.0
Que faire ?
Merci bien
Tu as bien renseigné le nom du la colonne servant à calculer les titres dans la déclaration de ton objet ?
Par ailleurs, il est possible qu’il puisse y avoir des bugs avec les noms de tables en plusieurs mots (comme spip_les_equipes) mais il me semblait avoir corrigé cela pourtant.
Merci pour ta réponse.
Bingo,
C’est effectivement l’erreur. oubli de déclarer dans l’onglet ’champs spéciaux’ le nom de la table pour le titre.
Je vais pouvoir aller plus loin.
Merci bien
Répondre à ce message
Bonjour,
Tout d’abord un grand merci à Matthieu pour la fabrique qui rend la création d’un objet éditorial perso carrément plus facile que s’il fallait le faire à la mimine.
Et maintenant quelques questions :
Merci pour votre aide :)
Et je m’auto réponds une première fois :
Je continu mon petit bonhomme de chemin, et une nouvelle interrogation se pose :
A première vue je dirais que non, elle ne récupère rien de ce que j’ai pu écrire dans les champs de mon objet.
Mais est il possible de reproduire ce principe ?
Que sur la page de l’espace public listant mes objets, je puisse avoir les XX premiers caractères d’un champs de mon objet ou bien ce qui se situe entre les balises <intro> et </intro>.
Merci !
Et c’est encore moi !
Cette fois ci j’ai un soucis avec l’affichage de la liste de mes objets pour un auteur donné.
La boucle
<BOUCLE_fiches(CDPHDAFICHES) {id_auteur}>
ne sort rien.Je suis allez voir en mode debug ce que cela donnait, et j’ai tilté la dessus :
$command['from'] = array('cdphdafiches' => 'spip_cdphdafiches','L1' => 'spip_cdphdafiches_liens');
.Alors que pour la même boucle sur « articles » j’ai :
$command['from'] = array('articles' => 'spip_articles','L1' => 'spip_auteurs_liens');
On voit bien que Spip ne va pas chercher au bon endroit.
Est-ce parce que j’ai eu la bonne idée d’utiliser un champs ayant pour nom « liens » dans mon objet éditorial perso ?
Ou bien est ce une option de la fabrique que j’aurais coché / décoché maladroitement ?
Merci !
Pour le dernier commentaire, c’est que tu as des tables de liens sur les 2 objets (le tien et auteurs). Par défaut il lie au plus près. Cf. http://marcimat.magraine.net/SPIP-3-Documents-Mots qui est du même acabit pour contourner.
Répondre à ce message
Bonjour,
super plugin, bravo !
cependant, j’ai un plugin avec deux tables, je peux ajouter ou modifer mais pas SUPPRIMER un enregistrement !!!!!
j’ai pourtant mis les bonnes options !
une idée ?
merci d’avance
Comme dit sur spip-zone, c’est peut être un problème de nom d’autorisation qui est incorrect quelque part. Soit dans l’appel, soit dans la fonction elle même. Quel est le nom de l’exec (url de la page privé) qui te provoque ce bug ? quels sont les autorisations qui ont été créées dans ton plugin dans le fichier d’autorisation ?
Répondre à ce message
Bonjour,
Dans l’espace privé tous les contenus d’un objet sont affichés les uns sous les autres, et les labels ne sont pas distingués.
Comment faut-il faire pour « styler » la page d’un objet dans l’espace privé ?
Bonjour,
Le pages dans l’espace privé sont composées de plusieurs bouts de squelettes imbriqués, ce qui vous intéresse ici ce sont les listes d’objets.
Il faut d’abord activer dans la Fabrique l’option qui va lui indiquer de générer le squelette correspondant, en l’absence de celui-ci dans votre plugin c’est un squelette générique qui est utilisé.
Vous pourrez ensuite modifier le fichier, qui se trouvera dans
<répertoire du plugin>/prive/objets/liste/<nom de l'objet>.html
tu peux créer aussi un fichier dans ton plugin prive/styles_prive_plugin_xx.html (je crois) et mettre tes styles dedans.
Répondre à ce message
Bonjour,
Tout d’abord félicitation pour ce plug_in ambitieux qui va permettre de bien personnaliser les sites.
Env. de travail (spip 3.0.5, XP, Wamp) ; mon nouvel objet s’appelle tableau
Je suis dans l’install d’un nouvel objet éditorial et je rencontre 2 difficultés :
1) Via le menu édition je ne parviens pas à VOIR mes tableaux ?? SPIP me retourne que je n’ai pas d’autorisations. Or dans « tableau_autorisations.php » la fonction autoriser_tableaux_voir_dist () renvoie true simplement, soit sans conditions de statut ou autres... Pour tester j’ai modifier cette valeur par celle qui réserve la possibilité à l’administrateur (par ex. pour CREER tableau qui fonctionne) ; mais malgré désinstall et réactiv du plug-in je tombe toujours sur la page qui m’interdit de voir les tableaux...?? Une idée ?
2) Malgré tout, dans mon squelette rubrique-X spécifique à la rubrique qui contient mes tableaux (les tableaux crées sont associés à une même rubrique), je devrais pouvoir voir les images associées à mes tableaux (j’ai essayé #LOGO_TABLEAU en utilisant un logo ; j’ai essayé de lier à cet objet la possibilité de mettre un PORTFOLIO mais une boucle DOCUMENT dans ma boucle TABLEAU (fonctionnelle puisque #TITRE s’affiche) elle-même dans ma boucle RUBRIQUE (évidemment...) n’affiche rien... ? Mystery...
Voilà. SI quelqu’un peut m’éclairer sur ces difficultés c’est super.
Merci.
Alex
Salut Alex,
A tout hasard, as tu vérifié dans ton dossier IMG la présence d’une image ayant pour nom « tableauonXX » ? Peut être est ce un soucis d’upload ?
Et encore à tout hasard, vérifie bien que tu utilises le nom au singulier de ton objet éditorial. J’ai par mégarde utiliser le nom pluriel et j’ai cherché un bon moment avant de comprendre ma bêtise.
Répondre à ce message
Tous simplement génial ! Ce plugin est une révolution pour moi, merci !
Répondre à ce message
Une petite erreur dans la génération d’un objet éditorial qui à pour effet de ’planter’ le sélecteur de rubrique lorsque la profondeur des rubriques est égale ou supérieure à trois.
Dans le fichier « fabrique/formulaires/editer_objet.html.html » il faut corriger la ligne 28
par ...
Ouuups... je suis allé trop vite. Il y a bien un problème, mais ma « solution » ne le résoud que partiellement.
Ce problème est manifestement connu puisque un ticket a été posté à ce propos.
Désolé pour le bruit .
Répondre à ce message
Bonjour,
Quelle méthodologie pour gérer l’évolution du plugin créé par la Fabrique ?
Par exemple, je crée le plugin de base, avec un objet éditorial, dans fabrique_auto.
J’y ajoute quelques fichiers, modèles, noisettes, ...
Faut-il les mettre dans le dossier d’origine du plugin ?
Ensuite si je mets à jour le plugin par la fabrique (nouveaux champs, ...), que prend le backup, comment la nouvelle version du plugin prend-elle en compte mes fichiers ajoutés ?
Merci
Salut !
Perso je crée deux plugins (ou plus) :
- le plugin « core » : généré par la fabrique (avec la définition des objets et des formulaires associés).
- le plugin « interface » : pour les squelettes et compagnie... (qui nécessite le « core »)
Donc quand je mets à jour le plugin « core », la Frabrique ne touche pas au plugin « interface » et donc n’efface rien...
Tu peux aussi décliner en plusieurs autres plugins (pour un projet, j’avais aussi un plugin « autorisations » et un autre « peupler » pour remplir la base)
Répondre à ce message
La Fabrique ne parvient pas à retrouver certains de ses propres squelettes lors de la création du plugin.
Il en résulte évidemment la génération de fichiers vides dans le plugin.
Environnement :
- Windows 7
- WAMP 2 (Apache 2.2.17, PHP 5.3.4, MySQL 5.1.53)
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |