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
Bonjour,
Des pistes pour enrichir le plugin et permettre l’ajouts de documents et images aux objets éditoriaux ?
Je ne suis pas un fin connaisseurs de SPIP, mais nous serions intéressés, avec un collègue, à intégrer cette possibilité.
Si on pouvais nous dire, en vrac, où fouiller (ou peut-être n’est-ce pas possible à cause de SAISIES qui ne propose pas ces champs ?)
Merci
Gérér directement les documents en tant que champ de type file va être très compliqué. Saisies, ni Formidable ni Champs extras ne permettent d’ailleurs cela encore.
Cela dit, pour lier des documents, il suffit d’activer ce nouveau type d’objet dans la configuration de la médiathèque. Ainsi, le choix de documents apparaît.
Merci. Ça répond partiellement au problème que nous souhaitons contourner :)
Bonne journée !
Répondre à ce message
Bonjour,
Il doit y avoir un petit bug dans la création du fichier /prive/objets/liste/toto.html
en effet il ajoute une virgule après #TRI :
ce qui provoque une petite erreur de squelette.
Sans cette virgule, cela fonctionne.
Cdt
tofulm
Répondre à ce message
/ !\ attention : pour que cela fonctionne, il m’a fallu :
- rajouter un « s » à $interface
- remplacer les « ’ » par « ’ »
$interface[’table_des_traitements’][’SLOGAN’][’plugins’] = _TRAITEMENT_RACCOURCIS ;
Merci Matthieu pour ce super plugin
Répondre à ce message
Bonjour,
Je suis en train de faire des tests avec le plugin fabrique qui est très sympa, mais j’avais encore quelques questions sur les objets :
Répondre à ce message
Pour reproduire le bug du logo
A savoir que je suis sous php 5.4.4 et Firefox 14.0.1
Tu choisis le nom du plug
Tu mets une image comme logo
Dans paquet, tu remplis les champs vide prefix et cat
tu cliques sur « creer un plugin »
Après, tu vides le cache de spip via l’espace privé et quand tu reviens dans la fabrique, le logo n’est plus visible !
D’ailleurs, si tu cliques sur « creer un plugin » sans rien faire, tu as un messages avec « Des fichiers ont été supprimés lors de cette nouvelle création. » avec les nom des fichiers effacer.
Répondre à ce message
Un grand merci et bravo !
Petit bug de mon côté en spip 3.0.4 : impossible d’attribuer des logos à plus d’un objet éditorial (seul un objet éditorial accepte un logo, les autres ne sont pas pris en compte après upload)
Le fait que le plugin ait un logo ou non ne change rien.
Comme rien n’empêche d’ajouter ses logos à la main, ce n’est pas du tout bloquant ;)
Je ne reproduis pas. Qu’est-ce qui ne fonctionne pas plus précisément ?
De mon côté je peux le reproduire : je vais regarder du côté des logs avant de te prendre du temps.
J’ai le même bug.
lorsqu’on fabrique deux objets d’un coup, et qu’on installe le plugin. un des deux objets n’a pas ses logos.
Je confirme un souci avec les logos.
Je fais un plugin qui ajoute plusieurs objets éditoriaux et les logos se sont bien enregistrés jusqu’au 6e objet. Pour ce dernier, pas moyen d’enregistrer le logo : je choisis le chemin vers l’image et il ne semble pas pris en compte du tout (quelle que soit l’image, y compris identique aux logos déjà placés sur les 5 autres objets éditoriaux) : le champ est vidé et aucun logo n’est utilisé.
Normalement c’était mon dernier objet éditorial, mais si j’en rajoute : pas moyen non plus de leur donner un logo...
Répondre à ce message
Coucou !
Je me joins aux autres pour dire combien La Fabrique est magnifique ! Ce plugin justifie à lui seul l’utilisation de SPIP 3 pour tous les nouveaux projets !
J’ai malheureusement un petit souci. Je crée un objet éditorial nommé « parcours »... invariable, donc. Et c’est là le souci.
Malgré le fait que j’aie renseigné le champ « Type de l’objet » dans « Tables>Spécificités de table hors norme » avec « parcours » (donc avec le « s ») et « Clé primaire » avec « id_parcours » (avec le « s » aussi), le plugin créé dysfonctionne un peu :
L’URL des liens dans la partie privée pour l’objet « parcours » mènent vers : « ?exec=parcours »... mais cette page conduit vers le message :
Car les contenus générés par La Fabrique sont dans « ?exec=parcour » (sans s !!!)
(je ne suis pas sûr d’être clair...)
De même, dans la partie publique, SPIP cherche « parcour.html » dans squelettes et non « parcours.html ».
Bref, le mot invariable qui fini par un « s », c’est le drame ! ce serait bien si c’était le « Type de l’objet » qui était utilisé pour générer les URL (partie publique et privée)... Mais je ne sais pas trop où modifier La Fabrique pour ça !
Oui enfin là ce n’est pas spécialement la Fabrique le problème. Disons que SPIP n’est pas prévu, sans son fonctionnement automatique d’objet, pour que le type d’objet soit de même valeur que le nom de table, c’est à dire avoir ’parcours’ pour le type (singulier disons) et ’parcours’ pour l’objet (pluriel disons). Si tu veux absolument un truc comme ça (je ne sais pas si c’est possible simplement) il te faut créer des squelettes et des liens différents pour un des 2 états. Par exemple suffixer de _tous les squelettes d’affichage des listes (pluriel) et faire en sorte que les liens pointent dessus (certainement créer des fonctions de génération d’url privée pour ton objet).
Il faut comprendre que le comportement de SPIP avec les objets automatiques c’est de faire une page exec=$objet pour afficher la liste des éléments tel que exec=choux et exec=$type pour afficher 1 des éléments tel que exec=chou . Évidemment que si les 2 ont la même valeur, ça lui pose souci :)
Bref je n’ai pas là de solution évidente sans regarder, mais peut être en trouveras tu une et nous l’expliquera ?
Merci pour ta réponse rapide pleine d’explications...
Le fonctionnement interne de SPIP devient de plus en plus complexe pour moi, alors je ne sais pas si c’est possible, mais quand le nom de l’objet éditorial est invariable, peut-on forcer l’espace privé à distinguer exec=lestrucs et exec=trucs (donc rajouter « les ») ? Est-ce envisageable ?
Bon... finalement j’ai bien mieux : faire l’inverse de ce que je proposais dans le message précédent... au lieu de demander à SPIP de mettre un "les" quand c’est au pluriel, je rajoute moi-même un "un_" quand c’est au singulier :
Pour « Type de l’objet » j’indique à La Fabrique "un_parcours" au lieu de "parcours" et ça a l’air de marcher du tonnerre !
#URL_PARCOURS
renvoie bien vers « ?page=un_parcours&id_parcours=XXX ».Donc pour l’instant tout va bien ! Face aux nom d’objets invariables, la solution semble être de préciser « un_ » ou « une_ » devant le « Type de l’objet ».
Répondre à ce message
Bonjour,
(Félicitations encore une fois pour ce beau joujou ;) )
Petite question : je ne suis pas arrivé a trouver ou on peut sélectionner un traitement a appliquer au(x) champ(s) d’un nouvel objet qu’on créerait. Est-ce que je loupe qqch, ou il faut le(s) définir « a la main » dans le fichier /base/xxx.php ?
Merci !
À la main (pour l’instant).
Cf. une copie du texte que viens d’envoyer pour Édouard sur la liste user :
Répondre à ce message
Dans les exemples donnés en commentaire dans le fichier xxx_administrations.php il y a une coquille me semble-t-il : ne serait-ce pas sql_alter au lieu de sql_alert (lignes 32 à 36) ?
Ah, certainement !
Corrigé par http://zone.spip.org/trac/spip-zone/changeset/64559
Merci !
Voilà une correction rapide !
Répondre à ce message
Superbe outil !
Question subsidiaire : est-il possible de rendre un plugin créé via la Fabrique rétro-compatible avec spip 2.1 ? Est-ce possible en créant le fichier plugin.xml par exemple ou y a-t-il trop de « spip 3 inside » pour espérer le faire tourner en spip 2.1 ?
En tout cas merci pour ce plugin (et j’en profite pour remettre une couche de merci pour tous tes tutoriels fabuleux ;-)
Heu non, c’est bien parce que SPIP 3.0 existe que la fabrique peut exister aussi !
Autrement dit, c’est la technologie SPIP 3.0 qui permet en grande partie l’existence de cette Fabrique.
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 : |