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 by date of activity
140 discussions
Bonjour de nouveau problème après avoir forcé la compatibilité du plugin à 4.4.*
sous spip 4.4.2
php 8.3.15
lors d’une nouvelle création de test car la récup d’anciennes production plante !.
après initialisation, enregistrement la fonction d’ajout d’objet editorial retourne :
Oups. Une erreur inattendue a empêché de soumettre le formulaire. Vous pouvez essayer à nouveau.
La sélection créer le plugin me donne :
Merci bien Alain
Bonjour,
En complément :
en tentant de créer un tout nouveau plugin, après avoir fait l’entête et voulu avoir un élément éditorial, j’obtiens :
La même chose si je veux un “peuplement”.
Donc ça ne vas pas plus loin !
Merci bien Alain
Reply to this message
Bonjour,
j’ai créé un champ “sélection” qui permet à un rédacteur de choisir entre 15 choix possibles mais dans la table spip_dédiée de l’objet éditorial, il n’y a que la clé qui s’affiche et je n’ai pas accès à la valeur. Quelqu’un aurait une idée ?
Merci :-)
déf SQL
text NOT NULL DEFAULT ’’
type de saisie
sélection
option de saisie
data=[(#ARRAYcle1,Do♯ Majeur,cle2,Fa♯ Majeur,cle3,Si Majeur,cle4,Mi Majeur,cle5,La Majeur,cle6,Ré Majeur,cle7,Sol Majeur,cle8,Do Majeur,cle9,Fa Majeur,cle10,Si♭ Majeur,cle11,Mi♭ Majeur,cle12,La♭ Majeur,cle13,Ré♭ Majeur,cle14,Sol♭ Majeur,cle15,Do♭Majeur)]
Oui c’est normal, seuls les clés sont enregistrées, ca permet d’ajuster les choses.
A toi ensuite de convertir la clé en valeur affichable.
Personnellement je déclare toutes mes saisies en PHP et jamais en
#SAISIES
, ce qui facilite le travail de conversion (et je pense même que du coup coté privé c’est géré automatiquement).je te remercie pour ta réponse, c’est ce que je fais actuellement :-) (mais je me suis dit au cas où pourquoi ne pas demander)
Bon dimanche
Reply to this message
Je voudrais utiliser ce plugin mais dès le départ j’ai une erreur.
mon_site/ecrire/src/Compilateur/Iterateur/Data.php on line 356
Comment la réparer ?
Merci
Quelle est l’erreur et quelles sont les étapes pour les reproduires.
Merci d’avance
Maïeul ROuquette
Dans le fichier data.php ligne 356
«
Warning: range(): Argument #1 ($start) must not be empty, casted to 0 in »
$enum = range(array_shift($this->command['enum']), array_shift($this->command['enum']));
Cette erreur apparaît dès le départ, avant même que j’aie commencé à remplir le formulaire.
J’ai essayé de reproduire et je ne le fais.
Donc
1. Version du plugin ?
2. Version de Php ?
3. Version SPIP aussi
Oups,
J’étais en SPIP 4.2.
j’upgrade et je reviens
Bon,
Ma configuration était défectueuse. Réparé.
Plus d’alerte.
Désolé
Reply to this message
Bonjour,
Sur un spip v4.2.8 php 8.1 fabrique 3.1.1
j’ai une erreur php dans :
nomplugin_options.php,
nomplugin_fonctions.php
Dans ces fichiers je ne trouve que :
if (!defined('_ECRIRE_INC_VERSION')) { return; }
Il n’y a rien d’autre de défini dans ces fichiers.
et bien sur “ça plante spip”
que faudrait-il avoir en complément ?
Merci bien Alain
Bonjour,
Sur un spip v4.2.8 php 8.1
En fait, dans lafabrique, une fois tout renseigné, j’ai une annonce d’erreur :
Oups une erreur à empêché de soumettre ....
Je ne trouve pas ce qu’il manque.
Je joint le fichier de sauvegarde si ça peut aider
Merci bien Alain
Bonjour,
Je tourne en rond sans arriver à créer un plugin qui ’marche’.
Sur un spip v4.2.8 php 8.1 fabrique 3.1.1
La création d’un plugin se passe bien uniquement pour l’entête jusqu’à l’activation du plugin.
Dés que je déclare un contenus, çà plante inexorablement spip.
que faire pour trouver ou ça bloque ?
Merci bien. je vous mets le fichier fabrique_voir.php pour vous fournir ma base de travail.
Alain
<?php /** * Fichier généré par la Fabrique de plugin v7 * le 2024-01-15 18:37:02 * * Ce fichier de sauvegarde peut servir à recréer * votre plugin avec le plugin «Fabrique» qui a servi à le créer. * * Bien évidemment, les modifications apportées ultérieurement * par vos soins dans le code de ce plugin généré * NE SERONT PAS connues du plugin «Fabrique» et ne pourront pas * être recréées par lui ! * * La «Fabrique» ne pourra que régénerer le code de base du plugin * avec les informations dont il dispose. * **/ if (!defined('_ECRIRE_INC_VERSION')) { return; } $data = array ( 'fabrique' => array ( 'version' => 7, ), 'paquet' => array ( 'prefixe' => 'voir', 'nom' => 'pour voir', 'slogan' => 'rien a faire', 'description' => 'sans contenus pour tester simplement', 'logo' => array ( 0 => '', ), 'credits' => array ( 'logo' => array ( 'texte' => '', 'url' => '', ), ), 'version' => '1.0.0', 'auteur' => 'alain3', 'auteur_lien' => '', 'licence' => 'GNU/GPL', 'etat' => 'dev', 'compatibilite' => '[4.2.8;4.3.*]', 'documentation' => '', 'administrations' => '', 'schema' => '1.0.0', 'formulaire_config' => '', 'formulaire_config_titre' => '', 'fichiers' => array ( 0 => 'autorisations', 1 => 'fonctions', 2 => 'options', 3 => 'pipelines', ), 'inserer' => array ( 'paquet' => '', 'administrations' => array ( 'maj' => '', 'desinstallation' => '', 'fin' => '', ), 'base' => array ( 'tables' => array ( 'fin' => '', ), ), ), 'scripts' => array ( 'pre_copie' => '', 'post_creation' => '', ), 'exemples' => 'on', 'saisies_mode' => 'php', ), 'objets' => array ( 0 => array ( 'nom' => 'vides', 'nom_singulier' => 'vide', 'genre' => 'masculin', 'logo' => array ( 0 => '', 32 => '', 24 => '', 16 => '', 12 => '', ), 'table' => 'spip_vide', 'cle_primaire' => 'id_vide', 'cle_primaire_sql' => 'bigint(21) NOT NULL', 'table_type' => 'vide', 'champs' => array ( 0 => array ( 'nom' => 'seul', 'champ' => 'seul', 'sql' => 'varchar(50) NOT NULL DEFAULT \'\'', 'caracteristiques' => array ( 0 => 'editable', 1 => 'versionne', ), 'recherche' => '1', 'saisie' => 'textarea', 'explication' => '', 'saisie_options' => 'conteneur_class=pleine_largeur, class=inserer_barre_edition, rows=4', ), ), 'champ_titre' => 'seul', 'champ_date' => 'date_publication', 'champ_date_ignore' => '', 'statut' => 'on', 'chaines' => array ( 'titre_objets' => 'Vides', 'titre_page_objets' => 'Les vides', 'titre_objet' => 'Vide', 'info_aucun_objet' => 'Aucun vide', 'info_1_objet' => 'Un vide', 'info_nb_objets' => '@nb@ vides', 'icone_creer_objet' => 'Créer un vide', 'icone_modifier_objet' => 'Modifier ce vide', 'titre_logo_objet' => 'Logo de ce vide', 'titre_langue_objet' => 'Langue de ce vide', 'texte_definir_comme_traduction_objet' => 'Ce vide est une traduction du vide numéro :', 'titre_\\objets_lies_objet' => 'Liés à ce vide', 'titre_objets_rubrique' => 'Vides de la rubrique', 'info_objets_auteur' => 'Les vides de cet auteur', 'retirer_lien_objet' => 'Retirer ce vide', 'retirer_tous_liens_objets' => 'Retirer tous les vides', 'ajouter_lien_objet' => 'Ajouter ce vide', 'texte_ajouter_objet' => 'Ajouter un vide', 'texte_creer_associer_objet' => 'Créer et associer un vide', 'texte_changer_statut_objet' => 'Ce vide est :', 'supprimer_objet' => 'Supprimer cet vide', 'confirmer_supprimer_objet' => 'Confirmez-vous la suppression de cet vide ?', ), 'liaison_directe' => '', 'table_liens' => '', 'afficher_liens' => '', 'roles' => '', 'auteurs_liens' => '', 'vue_auteurs_liens' => '', 'autorisations' => array ( 'objets_voir' => '', 'objet_creer' => '', 'objet_voir' => '', 'objet_modifier' => '', 'objet_supprimer' => '', 'associerobjet' => '', ), ), ), 'images' => array ( 'paquet' => array ( 'logo' => array ( 0 => array ( 'extension' => '', 'contenu' => '', ), ), ), 'objets' => array ( 0 => array ( ), ), ), );
Erreur innatendue dans un formulaire -> erreur PHP.
Il faudrait activer via mes_options.php l’affichage des erreurs et/ou accéder aux logs PHP pour en savoir plus
Bonjour,
Merci bien pour votre réponse.
Le morceau de spip.log réalisé lors de la dernière tentative de création :
2024-01-16 11:26:10 127.0.0.1 (pid 4434) :Pri:info: creation ../plugins/fabrique_auto/voir/prive/objets/liste/ 2024-01-16 11:26:10 127.0.0.1 (pid 4434) :Pri:info: include_spip balise/mid_objet.php non trouve 2024-01-16 11:26:10 127.0.0.1 (pid 4434) :Pri:info: include_spip balise/mid_.php non trouve 2024-01-16 11:26:10 127.0.0.1 (pid 4434) :Pri:info: include_spip balise/mtype.php non trouve
Puis après avoir re tenté la création qui alors plante spip j’ai eu :
2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: Connexion MySQLi vers localhost, base spip, prefixe spip operationnelle 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: POST ./?exec=fabrique - ../config/connect.php 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: autoriser loger 0 (Alain) ? 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: autoriser_loger_dist(loger, , 0, Alain) : OK 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: autoriser ecrire (Alain) ? 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: autoriser_ecrire_dist(ecrire, , , Alain) : OK 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: include_spip formulaires/fabriquer_plugin/verifier.php non trouve 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: include_spip formulaires/fabriquer_plugin/verifier_post_saisies.php non trouve 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: ajoute session ../tmp/sessions/1_c084aadfaab7a11afad7707ee56db644.php cookie 86400 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: autoriser ecrire (Alain) ? 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: autoriser_ecrire_dist(ecrire, , , Alain) : OK 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (1.123 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/fabrique_prefixe.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:20), data=array:4(fabrique=array:1, paquet=array:21, objets=array:1, …), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (4749 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: table_objet(vide) calculee sans verification 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (1.461 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/paquet.xml] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (1789 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/lang/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.212 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/lang/paquet-prefixe_fr.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (319 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.373 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/lang/prefixe_fr.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (224 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.408 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/entetes/php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1, description='Fichier gérant l'installatio…', package=Installation (264 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (2.488 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/prefixe_administrations.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (2808 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.323 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/entetes/php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1, description='Définit les autorisations du…', package=Autorisations (241 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (1.624 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/prefixe_autorisations.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (3531 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.321 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/entetes/php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1, description='Fonctions utiles au plugin po…', package=Fonctions (227 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (1.042 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/prefixe_fonctions.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (459 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.320 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/entetes/php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1, description='Options au chargement du plug…', package=Options (230 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (1.018 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/prefixe_options.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (461 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.324 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/entetes/php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1, description='Utilisations de pipelines par…', package=Pipelines (230 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (1.521 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/prefixe_pipelines.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (767 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/base/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.398 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/entetes/php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1, description='Déclarations relatives à la…', package=Pipelines (237 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (2.228 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/base/prefixe.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (2231 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (1.069 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/lang/objet_fr.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), objet=array:29(nom=vides, nom_singulier=vide, genre=masculin, …), id_objet=id_vide, type=vide, table=spip_vides, mobjet=VIDES, lobjet=vides, mtype=VIDE, mid_objet=ID_VIDE, lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (1284 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/formulaires/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.316 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/formulaires/editer_objet.html] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), objet=array:29(nom=vides, nom_singulier=vide, genre=masculin, …), id_objet=id_vide, type=vide, table=spip_vides, mobjet=VIDES, lobjet=vides, mtype=VIDE, mid_objet=ID_VIDE, lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (732 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.352 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/entetes/php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), objet=array:29(nom=vides, nom_singulier=vide, genre=masculin, …), id_objet=id_vide, type=vide, table=spip_vides, mobjet=VIDES, lobjet=vides, mtype=VIDE, mid_objet=ID_VIDE, lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1, description='Gestion du formulaire de d'é…', package=Formulaires (236 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (3.315 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/formulaires/editer_objet.php] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), objet=array:29(nom=vides, nom_singulier=vide, genre=masculin, …), id_objet=id_vide, type=vide, table=spip_vides, mobjet=VIDES, lobjet=vides, mtype=VIDE, mid_objet=ID_VIDE, lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (5389 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/prive/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/prive/objets/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/prive/objets/contenu/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.589 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/prive/objets/contenu/objet.html] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), objet=array:29(nom=vides, nom_singulier=vide, genre=masculin, …), id_objet=id_vide, type=vide, table=spip_vides, mobjet=VIDES, lobjet=vides, mtype=VIDE, mid_objet=ID_VIDE, lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (245 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/prive/objets/liste/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: calcul (0.692 ms) [../plugins/auto/fabrique/v3.1.1/fabrique/prive/objets/liste/objets.html] fabrique=array:1(version=7), paquet=array:21(prefixe=voir, nom='pour voir', slogan='rien a faire', …), objets=array:1(0=array:29), prefixe=voir, mprefixe=VOIR, exemples=on, les_id_objets=array:1(0=id_vide), les_types=array:1(0=vide), les_objets=array:1(0=vides), les_tables=array:1(0=spip_vides), les_tables_objets=array:1(0=spip_vides), objet=array:29(nom=vides, nom_singulier=vide, genre=masculin, …), id_objet=id_vide, type=vide, table=spip_vides, mobjet=VIDES, lobjet=vides, mtype=VIDE, mid_objet=ID_VIDE, lang=fr, date='2024-01-16 11:34:19', date_default=1, date_redac='2024-01-16 11:34:19', date_redac_default=1 (1847 octets) 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/prive/themes/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/prive/themes/spip/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: creation ../plugins/fabrique_auto/voir/prive/themes/spip/images/ 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: include_spip inc/filtres_images.php non trouve 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:info: ajoute session ../tmp/sessions/1_c084aadfaab7a11afad7707ee56db644.php cookie 86400 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: autoriser ecrire (Alain) ? 2024-01-16 11:34:19 127.0.0.1 (pid 715) :Pri:debug: autoriser_ecrire_dist(ecrire, , , Alain) : OK
Vola l’ensemble des logs.
Le premier messages peut être enlevé car il est sans intérêt.
Alain
Je parlais bien des logs PHP au niveau du serveur / hébergeur, pas des logos SPIP qui sont dans tmp/logs (et que tu m’a copié).
Bonjour ,
Grande patience !!
je pense que cela devrait te donner des infos plus pertinentes ?
Obtenus après l’annonce du problème et ce qui plante spip.
Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/html/spip/plugins/auto/fabrique/v3.1.1/formulaires/fabriquer_plugin.php on line 739 Fatal error: Uncaught ValueError: Path cannot be empty in /var/www/html/spip/ecrire/inc/flock.php:113 Stack trace: #0 /var/www/html/spip/ecrire/inc/flock.php(113): file_get_contents() #1 /var/www/html/spip/plugins/auto/fabrique/v3.1.1/formulaires/fabriquer_plugin.php(741): spip_file_get_contents() #2 /var/www/html/spip/plugins/auto/fabrique/v3.1.1/formulaires/fabriquer_plugin.php(631): fabriquer_miniature_png() #3 /var/www/html/spip/plugins/auto/fabrique/v3.1.1/formulaires/fabriquer_plugin.php(490): fabriquer_miniatures() #4 /var/www/html/spip/ecrire/public/aiguiller.php(288): formulaires_fabriquer_plugin_traiter_dist() #5 /var/www/html/spip/ecrire/index.php(70): traiter_formulaires_dynamiques() #6 {main} thrown in /var/www/html/spip/ecrire/inc/flock.php on line 113
A suivre
Alain
Effectivement on a une fatal erreurs, sur la recherche d’un fichier.
C’est à quel moment que ton formulaire plante? c’est lequel d’ailleurs.
Je me demande s’il s’attend pas à trouver un logo/picto et que tu lui fourni pas -> ca plante (ce serrait un bug, mais ca me parait la meilleur piste pour l’instant...)
Bonsoir,
Je viens de tester avec un fichier image. Effectivement ça va jusqu’au bout mais la table spip_vides n’est pas initialisée dans la base de données.
le plugin a comme préfixe : voir
les erreurs spip au lancement de la création d’un enregistrement :
dans Message Erreur SQL 1146 Table 'spip.spip_vides' doesn't exist SELECT * FROM spip_vides WHERE id_vide=0 dans le squelette /var/www/html/spip/ecrire/inc/editer.php Dans la boucle : formulaires_editer_objet_charger(){ sql_fetsel(); } ligne : 242
J’ai cette même défaillance avec le plugin brèves qui ne crée pas la table.
Donc à suivre
Merci bien Alain
Bonjour,
Grace aux réponses que j’ai exploitées, je peux dire que “çà marche”.
J’en tire la leçon suivante par ordre de priorités :
1er mettre des logos
2e avoir la base mariadb avec le Type InnoDB et interclassement utf8mb4_general_ci
3e créer le plugin nouveau et l’activer
4e entrer une première donnée qui fait planter car il est possible que la table ne soit pas “présentée”.
5e utiliser la fonction de réparation de la base et alors tout rentre dans l’ordre la table est visible et active pour recevoir les futures données.
Merci aux patients débroussailleurs.
Alain
Reply to this message
il est possible d’installer le plugin sous spip 4 depuis la branche master (téléchargeable depuis le git puis installation manuelle). Pour rendre le plugin actif, il suffit d’installer d’abord le plugin jQuery ui manuellement.
Reply to this message
Bonjour
y a t’il moyen d’ajouter aux statistiques de Spip 4 un objet créé avec La Fabrique ?
merci
Natacha
Bonjour,
C’est peut-être pas du tout ce que tu cherches, mais au cas où, il y a un plugin de Tcharlss qui étend les stats à tous les objets Spip.
Statistiques des objets
Maintenant resterait à voir s’il marche en Spip 4.
Oh, je viens de voir que tu as déja essayé.
Désolé pour le bruit. :-)
Reply to this message
Bonjour
comment afficher un champs en fonction de la valeur de radio, case à cocher ou de sélecteur ?
après un radio oui non Un nom de champ pour SQL “possible_section”
dans le champ suivant j’ai mis
ou
mais il s’affiche quand même
merci pour votre aide
Natacha
Reply to this message
Bonjour et merci pour ce plugin très utile pour créer des outils rédactionnels supplémentaire... Est-ce que ce plugin sera porté sur la version 4.0 de Spip et y aura-t-il des modifications à apporter sur nos add-ons faits maison ?
Merci
Reply to this message
Bonjour,
j’essaye de faire un pluging avec la fabrique. Dans l’ensemble cela fonctionne bien. Il me reste un point que je n’arrive pas à comprendre :
J’ai un objet X qui dépend en liaison directe d’un objet Y et qui peut être rattaché à des rubriques et des articles.
Je vois bien la liste des objets X de l’objet Y.
Je vois bien la liste des objets X.
par contre si je rattache un objet x par exemple a 2 rubriques, j’ai dans la page de l’objet
Liés à cet objet X et la liste de toutes les rubriques.
J’ai vue que cela venait de l’element généré
avec #GETliste=rubrique qui va chercher le code dans prive/objets/liste/rubriques de la dist 3.2
Je n’arrive pas à résoudre ce pb même en mettant id_Y_X=#ID_OBJET
savez vous comment résoudre ce pb
Salut,
J’espère qu’en un an, tu as pu trouver solution à ton problème mais comme j’ai galéré pas mal avec cette même difficulté, je précise ici ce que j’ai fais pour résoudre ce problème pour les futurs galérien·ne·s :
Dans mon cas, les objets liés sont surtout des articles, j’ai donc recopié le fichier racine-du-site/prive/objets/liste/articles.html dans plugins/xyz/prive/objets/liste et j’ai ajouté à la boucle liste_art de ce fichier le critère spip_xyz_liens.id_xyz?
La documentation du plugin mériterait d’être clarifiée à ce niveau (avec cet exemple ?), j’ai trouvé d’autres personnes qui ne l’ont pas comprises sur ce point.
Reply to this message
bonjour,
juste pour info pour les néophytes , je teste le mode de saisie php avec avec fabrique-issue_8 ,
dans “options de saisie” il y a comme exemple :
Exemple pour selection / checkbox / radio :
datas=[(#ARRAY{cle1,valeur1,cle2,valeur2})]
ce qui correspond au mode html
... peut être faudrait il indiquer la syntaxe aussi en mode php car dans ce cas cela génére
qui bien sur ne fonctionne pas.
oui, il y a une branche de dev en cours pour cette correction
Reply to this message
Add a comment
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.
Follow the comments:
|
