SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

289 Plugins, 197 contribs sur SPIP-Zone, 74 visiteurs en ce moment

Accueil > Outils pour plugins > Fabrique > La Fabrique

La Fabrique

20 avril 2012 – par Matthieu Marcillaud – 324 commentaires

106 votes

La Fabrique est un outil pour webmestres ou développeurs qui souhaitent créer des plugins. 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 » débute sa vie publique et doit être testée dans différents environnements. Vous êtes donc invités à explorer cet outil développé maintenant 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 le 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.

Voir en ligne : https://plugins.spip.net/fabrique

Notes

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

Dernière modification de cette page le 15 janvier 2018

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 10 avril à 17:41, par Loiseau2nuit En réponse à : La Fabrique

    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 :

    • bug : à la création/édition d’un objet éditorial, lorsqu’on ajoute des champ, et qu’il s’en créé un vide #XX à la toute fin de liste, on ne peut pas le supprimer sans renseigner les 3 champs obligatoires.
    • suggestion : sur la création des champs, en plus du glisser-déposer (merci !) une option ’dupliquer le champ’ serait magique mais je sais pas faire :O * sort de supplication level 3 avec bonus beta_testeur de +2 à mon jet de mental <3 :) *

    Merci pour le boulot et love sur tous \o/

    Répondre à ce message

  • Le 23 mars à 13:04, par jmsan En réponse à : La Fabrique

    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

  • Le 14 juin 2013 à 12:48, par kyomii En réponse à : La Fabrique

    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 !

    • Le 19 juin 2013 à 14:59, par Thipa En réponse à : La Fabrique

      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 :

      [(#GET{nb_file}|=={1}|?{#BOUTON_ACTION{Supprimer,#URL_ACTION_AUTEUR{objet_instituer,#ID_NOTE/poubelle,[(#SELF)]},ajax,Note supprimée}})]

      Merci de votre aide.

    • Le 14 février à 07:36, par jpcrea En réponse à : La Fabrique

      Bien tardivement.

      Avec

      [(#AUTORISER{instituer,note,#ID_NOTE})
      [(#BOUTON_ACTION{supprimer note,#URL_ACTION_AUTEUR{supprimer_note,#ID_NOTE-off,#SELF|ancre_url{note#ID_NOTE}},'ajax supprimer'})]
      ]

      Cela devrait fonctionner.

    Répondre à ce message

  • Le 12 janvier à 10:12, par mcommemarc En réponse à : La Fabrique

    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

  • Le 4 décembre 2017 à 12:47, par Teenoo En réponse à : La Fabrique

    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

  • Le 24 octobre 2017 à 19:52, par Davidoff En réponse à : La Fabrique

    Bonjour, utilisateur depuis longtemps de ce plugin merveilleux, je rencontre un petit soucis de débutant. Je n’ai jamais eu besoin d’afficher du texte formaté dans les précédentes réalisations. Mais là, sur un champ qui ne s’appelle pas TEXTE ou DESCRIPTIF, j’ai bien la possibilité de formater le texte (gras, italique, liste, etc...) mais impossible d’afficher le texte formaté dans le site public comme il le fait pour le champ TEXTE. J’ai bien regardé du côté des filtres applicables aux texte, mais je n’ai rien trouvé.

    Merci d’avance pour l’astuce qui doit être très simple...

    • Le 24 octobre 2017 à 22:25, par Matthieu Marcillaud En réponse à : La Fabrique

      Dans un squelette, ça serait |typo ou |propre.
      Cela dit c’est mieux de le déclarer dans le plugin tant qu’à faire, une fois qu’il a été généré, dans le fichier base/{prefixe}.php en utilisant la constante _TRAITEMENT_RACCOURCIS dans le pipeline déclarant les traitements des champs.

      Exemple :

      1. // syntaxe
      2. $interfaces['table_des_traitements']['NOMCHAMP']['nomtablesansprefixe'] = 'letraitement(%s)';
      3. // spécifique
      4. $interfaces['table_des_traitements']['TYPE']['mots'] = _TRAITEMENT_RACCOURCIS;

      Télécharger

      Regarder d’autres plugins pour s’inspirer, tel que :

      MM.

    • Le 25 octobre 2017 à 03:54, par Davidoff En réponse à : La Fabrique

      Bonjour Matthieu et merci pour cette réponse. J’avais fini par retrouver le filtre. Je vais essayer de le déclarer dans le plugin (base/prefixe.php).

      Bravo pour tout ton travail et toutes les aides que tu apportes à beaucoup de monde, ici et ailleurs, car je tombe souvent sur tes écrits numériques. Ta rapidité et ton efficacité nous permettent d’avancer plus rapidement, et l’existence même de ce plugin justifie largement l’utilisation de SPIP. Encore une fois, BRAVO et MERCI !

    Répondre à ce message

  • Le 25 juillet 2017 à 22:20, par koan En réponse à : La Fabrique

    Bonjour,
    Je trouve se plugin très utile pour commencer le développement d’un plugin sans trop de difficulté.

    Mais j’ai un souci, j’ai commencé par voir ce que cela pouvait donner en créant un plugin avec un objet éditorial créer de 0, la création est OK mais quand je veux éditer un nouvel objet j’ai le message d’erreur suivant :

    Erreur SQL 1146
    Table ’spip.spip_suivis’ doesn’t exist
    SELECT suivis.id_suivi, 0 as points, ’’, suivis.titre, suivis.titre AS titre_rang FROM spip_suivis AS `suivis` GROUP BY suivis.id_suivi ORDER BY 0+suivis.titre, suivis.titre

    Je comprends que ma table spip_suivis n’existe pas. Pourquoi La Fabrique n’a pas créé ma table ? Suis-je passé à côté de quelque chose ?
    J’ai pourtant suivis l’exemple de la video des félins...

    pour information, j’utilise :

    • spip v.3.1.6
    • La Fabrique 2.3.11

    Merci de votre aide ou éclaircissement.

    Répondre à ce message

  • Le 12 avril 2017 à 13:17, par Sauterey Francois En réponse à : La Fabrique

    Je viens de créer une ébauche de plugin destinée à gérer des « auteurs de livres » autrement désignés « écrivains » (le plugin s’appellera... ecrivain).
    J’ai décris les tables du nouvel objet éditorial, et fabrique m’a bien généré le fichier ecrivain_administration.php (jusque là, tout va bien !)
    fichier qui contient
    function ecrivain_upgrade($nom_meta_base_version, $version_cible)
    $maj = array() ;
    $maj[’create’] = array(array(’maj_tables’, array(’spip_ecrivains’, ’spip_ecrivains_liens’))) ;
    include_spip(’base/upgrade’) ;
    maj_plugin($nom_meta_base_version, $version_cible, $maj) ;

    MAIS à l’activation du plugin seule la table de jointure est crée, pas la table principale :-(
    Le fichier fabrique_ecrivain.php.zip est disponible ici :
    http://w3.adapt.snes.edu/IMG/zip/fabrique_ecrivain.php.zip

    Bon, au pire, je vais créer la table à la pain pour continuer...

    • Le 16 avril 2017 à 17:08, par Sauterey Francois En réponse à : La Fabrique

      Bon, en reprenant tout de puis le début, tout fonctionne bien :-) (Merci Matthieu pour la vidéo !)
      Bon mon plugin « fonctionne », il me reste à lui faire faire ce que je veux !
      Je cherche un espace où discuter du développement de celui-ci sans polluer les espaces de discussion bien connus... Ça existe ?

    • Le 1er juin 2017 à 00:09, par pamillet En réponse à : La Fabrique

      effectivement

      mais ce n’est pas dans le nom d’objet, mais dans le nom de la table
      et il faut après l’avoir changé comme nom de table, aller modifier les noms d’identifiant qui trainent...

      merci
      pam

    • Le 8 juin 2017 à 20:50, par LauDai En réponse à : La Fabrique

      Bonjour,

      j’ai exactement le même problème. La table principale n’est pas créée. Mais j’ai beau recommencer depuis le début, j’ai le même problème. Avez vous compris ce que vous ne faisiez pas correctement ?

      J’ai également quelques autres dysfonctionnements, par exemple le prebuild ne fonctionne pas. En indiquant une table (p.ex., spip_article) le bouton est ineffectif.

      Une idée ?

    • Le 23 juillet 2017 à 01:02, par Luc En réponse à : La Fabrique

      Le prebuild ne marche pas pour moi non plus. Par contre, si les tables des nouveaux objets ne se créent pas, vous pouvez toujours procéder à une Réparation de la base de données. Ce n’est peut-être pas l’idéal, mais ça a fonctionné pour moi.

    Répondre à ce message

  • Le 10 juillet 2017 à 15:33, par jpcrea En réponse à : La Fabrique

    Bonjour à tous,

    Dans l’écriture d’un champ de type « radio », j’ai érit :
    datas=[(#ARRAY{cle1,Faible,cle2,Modéré,cle3,Moyen,cle4,Élevé,cle5,Fort})]

    A l’édition : ce sont les « cle » qui apparaissent à la place des valeurs.
    Je n’ai pas dû comprendre quelque chose ?
    Merci de vos lumière,
    jpcrea

    Répondre à ce message

  • Le 7 juillet 2017 à 15:43, par jpcrea En réponse à : La Fabrique

    Bonjour,

    Ce magnifique plugin m’a permis de créer facilement un nouvel objet pour publier des recettes de cuisine qui fonctionne très bien.

    Mais j’ai, lorsque je désire modifier la recette : « Modifier cette recettes » avec un « s » ;
    J’avais effectivement, dans un premier temps, mis par erreur un « s » lors de la création du plugin, j’ai rectifié, mais j’ai toujours ce « s » qui m’embête bien .
    Que faire, je ne vois plus ou aller pour rectifier cette anomalie ?
    Merci de vos lumières.

    • Le 7 juillet 2017 à 18:05, par jpcrea En réponse à : La Fabrique

      J’ai pu corriger tout cela dans « Chaînes de langue ».

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Personnalisation graphique du squelette SoyezCréateurs

    19 août 2009 – 100 commentaires

    Il est possible de personnaliser l’affichage du squelette SoyezCréateurs de manière plus ou moins profonde. Changement dans les couleurs via CFG La page de CFG des couleurs de SoyezCreateurs : ecrire/ ?exec=cfg&cfg=soyezcreateurs_couleurs (...)

  • Mastodon

    3 octobre 2017 – commentaires

    Un plugin qui facilite l’intégration de Mastodon dans un site SPIP et permet : d’envoyer facilement des messages avec un ou plusieurs comptes Mastodon d’utiliser les données de Mastodon avec une boucle (DATA) Mode d’emploi Le plugin s’installe (...)

  • Critère pseudo_hasard : navigation par hasard améliorée

    13 septembre 2015 – commentaires

    Ce plugin apporte un nouveau critère par pseudo_hasard assez proche de par hasard mais avec quelques subtilités très pratiques pour la pagination. Qu’apporte ce plugin ? Lorsque l’on utilise le critère de tri par hasard, chaque calcul du squelette (...)

  • Polyhiérarchie

    14 juillet 2009 – 178 commentaires

    Ce plugin permet de rattacher un article ou une rubrique à plusieurs rubriques parentes.

  • Formulaire de contact avancé

    23 mars 2009 – 1398 commentaires

    Un formulaire de contact configurable, avec de multiples options.