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 usages, 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 votre compte webmestre.
Discussions par date d’activité
137 discussions
Bonjour,
Problème toujours non résolu...
Je vois dans les logs qu’il y a des erreurs ou des messages d’information « trouver_table : table inconnue... » sur des tables qui n’existent plus dans la base depuis longtemps.
Que faut-il mettre dans la zone schéma de la structure de données de la définition du paquet du plugin, et qui sert à l’installation ?
J’ai mis au hasard 1.0.0 puis 2.0.0... lors de l’activation du plugin, toujours une page blanche et échec de l’installation, et par la suite un message « activation réussie du plugin », mais intallation échouée !
Répondre à ce message
Bonjour,
Je tente d’installer un plugin qui crée 5 objets éditoriaux.
Un message me dit que l’activation s’est correctement déroulée, mais l’installation ne se fait pas, et en plus, j’ai la terrible page blanche !
Les tables spip_locs, ... spip_prenoms existent déjà et sont remplies. Le but n’est pas de les créer par l’installation du plugin.
Or la log me met des messages du genre « Erreur mysql 1146
2018-11-22 14:55:38 88.186.116.75 (pid 24792) :Pri : !INFO : trouver_table : table inconnue ’’ ’locs’. » Il semble donc que les tables sont cherchées sans le suffixe spip_.
Dans le fichier de Déclarations relatives à la base de données, j’ai ceci :
$interfaces[’table_des_tables’][’locs’] = ’locs’ ; (etc.)
Dans le fichier d’administration-installation du plugin, j’ai
/** $maj[’create’] = array(array(’maj_tables’, array(’spip_locs’, ’spip_noms’, ’spip_nom_normats’, ’spip_nom_normats_liens’, ’spip_paraulas’, ’spip_paraulas_liens’, ’spip_prenoms’, ’spip_prenoms_liens’))) ; **/
Les fichiers liens figurent aussi préalablement dans la base, mais ne semblent pas causer l’erreur.
Que je désactive ou non cette instruction, l’erreur table inconnue et la page blanche surviennent... Mysqsl ne cherche jamais les tables avec suffixe.
J’ai aussi essayé d’enlever le suffixe dans le nom des tables telles qu’elles existent dans la base, mais ça ne marchait pas plus : les tables étaient toujours recherchées et non trouvées.
J’ai aussi fait attention de vider le cache presque à chaque fois...
Merci de votre attention !
Répondre à ce message
Bonjour et merci pour cette moulinette qui permet de créer rapidement de nouveaux objets éditoriaux.
J’aurais besoin d’un peu d’aide pour sauter une étape qui ne m’est pas utile...
J’ai créé un objet caption lié aux articles. Tout fonctionne superbement... Je peux créer de nouveaux objets caption, les modifier, les lister....
Mais lors de l’étape de création d’un nouveau caption, je souhaite juste ne pas afficher l’étape « ajouter un caption ». Cette étape va en effet me lister les captions existants dans la table caption et puis seulement m’afficher « créer un nouveau caption » qu’à la suite de cette liste... Je souhaiterais uniquement afficher les captions attachés à l’article et directement le bouton « créer un caption » ??... Mais je ne sais pas comment m’y prendre ?....
Si quelqu’un pouvait me mettre sur la piste ?? Merci :-)
Répondre à ce message
Bonjour à tous,
Je suis en train de tester le plugin La Fabrique pour créer un objet éditorial « Fiche - Contact » + un modèle pour permettre l’affichage des objets créés, du côté public.
Ça marche de façon tout à fait satisfaisante.
Super ce plugin !
Seul petite question : du côté public, mes champs « text » sont affichés sans retour à la ligne.
Quand je mets des retours (entrée) dans mon texte, ou même des retours « SPIP » avec « _ », à l’affichage, mon texte court apparait sans retour ligne.
Alors évidemment, des -br- pourraient faire l’affaire, mais je voudrais éviter que mes rédacteurs aient à taper du HTML.
Ai-je raté quelque chose au moment de la création e mon plugin ?
Il faut que tu appliques le filtre
|typo
ou|propre
sur ta balise.Tu peux les déclarer automatiquement (dans le fichier d’options) : https://programmer.spip.net/Traitements-automatiques-des
ou mieux via le pipeline https://programmer.spip.net/declarer_tables_interfaces,379
Exemple : https://zone.spip.org/trac/spip-zone/browser/spip-zone/_plugins_/formidable/trunk/base/formidable_tables.php#L34 (remplacer ’formidables’ par le nom de ta table, sans spip_ en gros)
Merci pour cette réponse.
J’ai eu pas mal de soucis (à mettre sur le compte de mon inexpérience dans le domaine) en essayant de m’inspirer de la doc https://programmer.spip.net/Traitements-automatiques-des , mais j’ai finalement trouvée des réponses sur la liste de diffusion SPIP.
La réponse la plus pertinente m’a été donnée par Maïeul dans le message ci-dessous :
https://www.mail-archive.com/spip@rezo.net/msg75545.html
Merci !
Du coup j’aurais eu tendance à préciser la table (pour pas modifier d’autres balises
#ADRESSE
d’autres tables.De la sorte :
Mes 2 sous.
Ok, merci. Je vais faire ça.
Répondre à ce message
Hello ici ! :)
Je travaille actuellement sur le dev d’une appli interne avec SPIP et la Fabrique qui, l’air de rien me fait tous les jours gagner plusieurs heures de dev et de quantité de cheveux ! :D
J’ai juste vu 2 trucs :
Merci pour le boulot et love sur tous \o/
+1 pour dupliquer le champ
perso je rajouterai la possibilité d’ajouter des librairies externes (du moins en designer le nom, l’url et l’’url final dans spip) et aussi faire appel a des plugins spip (activés) pour certaines fonctions
pour outils dans peuplement d’un objet, prévoir de coller une liste texte directement, chaque ligne est alors importée dans le champs (ou objet), sans import a partir d’un objet existant
Répondre à ce message
alors quoi de neuf avec la Fabrique...tutorials, mise a jour a venir, ...merci
bonjour,
je viens de découvrir votre superbe plugin pour faciliter la création de plugins...bien que la vidéo date un peu, elle est superbe...c’est dommage que d’autres utilisateurs ne partagent pas de tutorials sur les plugins qu’ils ont créés.
j,ai quelques questions :
1/est-ce que la fabrique peut prendre en charge la création d’un objet editorial sans que celui-ci ne passe par les phases de publication, plutôt genre un objet editorial qui est directement publie, puisqu’il sera utilise tel quel (l’info introduite)
2/est-il possible de créer des liaisons entre deux ou plusieurs objets éditoriaux entre eux ?
3/comment faire pour créer des fichiers editoriaux qui ne soient que temporaires, nés des calculs ou bien de choix...ce qui fait qu’isl sont stockes dans un fichier json par exemple...
MERCI
autres questions
4/peut-on cree un auteur qui n’aurait qu’un role d’editer l’objet en question est rien d’autre sur le site
5/dans le meme esprit peut-on creer un gestionnaire/admin limite aux objets editoriaux crees en dehors du reste de spip ?
MERCI
bonjour Racim,
a lire tes questions, on se rend compte que tu n’a jamais utilise le plugin.
voila les réponses si quelqu’un souhaite ajouter qu’il le fasse :
oui tu peux le faire sans rien spécifié ou en indiquant les différents status
Oui une fois que tu créé tes objets éditoriaux tu pourra créé des jointures ou liaisons entre eux ou avec les objets spip sinon des plugins actives si je ne me trompe pas
j’ai pas compris...désolé
Oui tu peux généré un auteur spécifique a ton objet editorial et lui attribué un administrateur restreint ou plus si ton objet est lie a une rubrique, donc id rubrique.
en espérant que cela t’aide.
il est vrai que ceux qui ont créé des plugins avec la fabrique auraient pu partager le procédé de fabrication pour les nouveaux utilisateurs, perso, je le ferai pour mon prochain plugin...
@+
Répondre à ce message
Bonjour,
j’ai un soucis avec l’utilisation du plugin, voici ce qui s’affiche lors de la création d’un plugin :
Warning : Illegal string offset ’fichier’ in /home/clients/5e2b79ef917a0cd6e87047fff3f6c083/web/plugins/auto/fabrique/v2.3.11/formulaires/fabriquer_plugin.php on line 828
si vous avez une solution ce serait top car je trouve ce plugin vraiment puissant
Merci
Répondre à ce message
Bonjour,
Une fois que j’ai activé le plugin et que je retourne sur la fabrique sur mon plugin je n’ai plus le deuxième onglet qui me me permet de configurer mon objet éditorial
(j’ai la derniere version de la fabrique)
merci de votre aide !
Bonjour,
J’ai crée un objet éditorial, je voudrai que dans la partie publique du site les utilisateurs puissent depublier ou mettre à la poubelle cet objet, pour ce faire je veux utiliser #BOUTON_ACTION et #URL_ACTION_AUTEUR mais je ne sais pas quoi utiliser comme paramètre pour pouvoir réaliser la depublication ds l’espace public
ci dessous le code :
Merci de votre aide.
Bien tardivement.
Avec
Cela devrait fonctionner.
Répondre à ce message
Salut,
Déjà, merci pour ce plugin : ça étend vraiment l’utilisation de SPIP. Mais j’ai un problème de sauvegarde. Je suis sur SPIP 3.2.0. Je peux enregistrer une première fois. Puis une fois quelques éléments ajoutés, impossible à nouveau de sauvegarder... Que faire ?
Répondre à ce message
Bonjour,
après 10 ans à utiliser SPIP je me lance ENFIN dans la création d’un plugin avec La Fabrique. C’est génial ! Simple comme bonjour :) Merci.
Seulement j’ai un petit soucis, je peux créer mon nouvel objet, il me demande à le publier et j’ai un formulaire pour le logo mais à droite, les informations de l’objet et le bouton pour le modifier ne sont pas affichés. J’ai un espace vide. Sur quel fichier cela se gère t’il ? Comment cela se fait ?
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 : |