La Fabrique

La Fabrique est un outil pour créer des plugins, essentiel dans la phase de développement d’un site SPIP. La Fabrique est capable de générer le code source minimal d’un plugin pour SPIP 3 (elle accélère donc le démarrage d’un plugin) et peut s’occuper également de construire un plugin fonctionnel gérant un ou plusieurs objets éditoriaux et leurs liaisons (et là, elle devient formidable !). La base du plugin construit, il ne vous reste plus qu’à l’adapter à vos désirs les plus créatifs.

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

Présentation de la Fabrique en vidéo

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

La Fabrique, version 1.13.3
Interface d’accueil de la Fabrique avec un objet éditorial « Chats » de renseigné dans un plugin nommé « Félins »

À 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.

Notes

[1À faire vérifier par quelqu’un ayant un serveur local sous Windows

Discussion

137 discussions

  • 1

    Bonjour Matthieu,

    Vraiment génial ce plug-in ! Merci pour cette contribution qui donne à Spip des fonctionnalités très étendues et accessibles pour celles et ceux qui n’ont pas toujours la technique et/ou le temps pour pouvoir réaliser leurs idées.
    On a l’impression de changer de CMS tout en gardant la philosophie d’origine… quel plaisir :-)

    J’ai toutefois quelques difficultés avec ma config pour commencer à tester les possibilités (énormes) de la Fabrique :

    Visiblement la table correspondant à un nouvel objet éditorial ne se crée pas correctement.
    Mettons que cet objet soit « Chiens », la table « spip_chiens » n’est pas construite et le message d’erreur s’affiche au moment de valider l’enregistrement lorsque je suis dans le processus de création d’un nouveau « Chien » :

    Erreur SQL 1146
    Table ’test_spip_3a.spip_chiens’ doesn’t exist
    SELECT * FROM spip_chiens WHERE id_chien=0

    Config :
    -  Mac OS 10.6.2
    -  FF 11

    -  SPIP 3.0.0-rc
    -  La Fabrique 1.13.3

    -  PHP 5.3.2
    -  MySQL 5.1.44

    Marc

    • Résolu :
      J’avais tout simplement oublié de créer le fichier d’installation dans l’onglet Installation du Plugin qui contient la commande de création de la table.
      La Fabrique rendrait-elle ivre ? En tout cas, c’est un plaisir de la tester :-)

    Répondre à ce message

  • Mathieu ya pas à dire, tu cartonnes ! :-D

    Répondre à ce message

  • Prodigieux !
    C’est exactement ce qu’il fallait faire !

    Tout écrire à la main est en effet beaucoup trop long et laborieux et sujet à de trop longues heures de debug. En un mot, décourageant !
    Ce plugin est donc vraiment bienvenue. J’ai jeté rapidement un oeil à l’interface et ça va loin, et c’est bien fichu en plus (même si j’ai pas tout compris, mais ça viendra !!)
    Pour les nouveaux objets éditoriaux, on va enfin pouvoir se concentrer sur ce qu’on veut faire sans perdre trop de temps....

    Je pense que c’est un plugin qui devrait être porté bien haut par la communauté SPIP !
    et qui devrait suivre les versions afin de toujours générer un code « d’actualité ». Une version majeure, une fabrique, ou qqch dans l’idée.
    bref,

    Merci en tout cas et chapeau bas.
    Longue vie à cette fabrique :-)

    Julien

    Répondre à ce message

  • 2

    Bonjour
    Je viens de faire quelques essais en local sur windows xp wamp2.1

    et le répertoire dans plugin ne se crée pas :

    Warning : copy(../tmp/cache/fabrique/.backup/exports/fabrique_assur 2012-04-21 16:43:22.php) [function.copy] : failed to open stream : Invalid argument in C :\Users\jmb\Documents\Mes sites\assur\plugins\fabrique\formulaires\fabriquer_plugin_actions.php on line 282

    Pas pu voir fonctionner le ’diff’.

    Bravo pour cette réalisation et la démo en vidéo.

    • Est-ce que tu saurais me dire quel caractère Windows n’apprécie pas dans la fonction copie() là ?

      Tu n’as que cette erreur affichée ?

      MM.

    • Je n’ai que cette erreur, à l’affichage et dans les logs php.

      Je viens de faire l’essai avec juste le minimum pour la création et j’ai quand même le message d’erreur. Ca doit donc venir du contexte, l’espace entre mes et sites dans le chemin sur mon windows : C :\Users\jmb\Documents\Mes sites} ???

      PS : la réinitialisation et la restauration depuis le menu outils fonctionnent.

    Répondre à ce message

  • 1
    Pierre-Jean

    Retour(s) concernant des problèmes d’utilisation de certaines fonctions de Fabrique et plus particulièrement lors du clic sur les boutons de validation de ses formulaires :

    Contexte :
    -  SPIP 3 RC
    -  Fabrique 1.13.3
    -  GG Chrome 18 ou FF 11.0
    -  Win 7

    Maux constatés :
    -  aucune action suite au clic de validation pour pré-remplissage d’un objet à partir d’une table existante
    -  aucune action lors du clic sur le bouton « Créer le plugin »
    -  aucune action lors du clic sur le lien de « diff » entre l’enregistrement de deux version d’un plugin

    Guérir les maux :
    -  en utilisant ie 9.0.8 ces problèmes disparaissent

    En contrepartie, l’autocompletion des champs ne fonctionne plus sous ie.

    Pierre-Jean

    Répondre à ce message

  • j’ai decouvert l’info de fabrique sur la liste, et j’en aurais deja eu le besoin... mais l’article d’info etant cible plus dev je vais tenter un second article : cote utilisateur
    bravo et a suivre

    Répondre à ce message

  • 1

    Bonjour,

    pour information, sous Mac OS X 10.6.8, Mamp Pro 2.0.5, MySQL : 5.5.9 et PHP 5.2.17, cela fonctionne pil poil de ce que j’en ai testé rapidement.

    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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom