SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 284 visiteurs en ce moment

Accueil > Outils pour plugins > Fabrique > La Fabrique

La Fabrique

20 avril 2012 – par Matthieu Marcillaud – 298 commentaires

99 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

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)

PNG - 9.1 ko

Documentation

En attendant une documentation plus riche ici, vous pouvez lire ces articles :

Capture d’écran

PNG - 127.4 ko
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 : http://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 4 mai 2016

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 24 novembre à 14:01, par joz En réponse à : La Fabrique

    Bonjour,
    J’ai un plugin crée avec fabrique, qui ajoute deux tables à la base.
    Depuis la dernière mise à jour spip je reçois cet erreur :

    Unknown column 'projets.date' in 'where clause'
    SELECT projets.id_projet, projets.titre, projets.texte FROM spip_projets AS `projets` INNER JOIN spip_mots_liens AS L2 ON ( L2.id_objet = projets.id_projet AND L2.objet='projet') INNER JOIN spip_projets_liens AS L1 ON ( L1.id_projet = projets.id_projet ) WHERE (projets.statut = 'publie') AND projets.date<'2016-11-27 00:01:00' AND (L1.id_objet = 2117) AND (L1.objet = 'article') AND (L2.id_mot = 645) GROUP BY projets.id_projet

    squelette : /monchemin/ecrire/public/composer.php
    boucle : calculer_select(){ sql_select(); }

    Je n’ai effectivement pas de champs « date » dans ma table, et je n’en ai pas besoin. ça m’embête que ce squelette en a besoin. Est-ce que c’est indispensable ? Est-ce que c’est qqchose qu’il faudrait savoir avant de créer son plugin ?

    J’ai contourné l’affichage de l’erreur en ajoutant tout à ma boucle sur cette table...

    Merci d’avance pour vos lumières

    • Le 24 novembre à 20:03, par Matthieu Marcillaud En réponse à : La Fabrique

      Bonjour joz,

      Peux tu préciser de quelle mise à jour tu parles ? de SPIP (et de quelle version à quelle version ?) ou de la Fabrique ? à quel endroit tu as cette erreur ?

    • Le 24 novembre à 22:37, par joz En réponse à : La Fabrique

      Ah oui, sorry : c’est depuis la dernière màj spip que j’ai eu ce problème, vers spip 3.1.3

      J’ai cette erreur sur une page ou j’utilise l’objet « projet » que je cré avec mon plugin. C’est sur ma boucle (PROJETS) où j’ai ajouté {tout} pour que l’erreur ne s’affiche plus.

      J’espère que je m’exprime un peu compréhensible...

    Répondre à ce message

  • Le 15 octobre à 15:28, par Julien Lanfrey En réponse à : La Fabrique

    Bonjour,

    J’ai relevé un bug quand on utilise « pré-construire » sur l’interface de définition d’un nouvel objet éditorial.

    Si dans la table SQL de notre objet, on a une colonne « id_secteur », celle-ci se retrouve définie au niveau de la section « Champs » et la case à cocher dans la section « champs spéciaux » ne l’est pas. Ça fonctionne en revanche pour « id_rubrique » : « champs spéciaux » coché et rien dans « champs ».

    Voici le schéma SQL utilisé sur lequel je me suis appuyé.

    CREATE TABLE `spip_pomme` (
      `id_pomme` bigint(21) NOT NULL AUTO_INCREMENT,
      `id_rubrique` bigint(21) NOT NULL DEFAULT ’0’,
      `id_secteur` bigint(21) NOT NULL DEFAULT ’0’,
      `titre` text NOT NULL,
      `variete` varchar(255) NOT NULL DEFAULT ’’,
      `date` datetime NOT NULL DEFAULT ’0000-00-00 00:00:00’,
      `statut` varchar(10) NOT NULL DEFAULT ’0’,
      `maj` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`id_pomme`),
      KEY `id_rubrique` (`id_rubrique`),
      KEY `id_secteur` (`id_secteur`),
      KEY `statut` (`statut`,`date`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;
    • Le 20 octobre à 15:56, par Matthieu Marcillaud En réponse à : La Fabrique

      Ah oui, bien vu.
      La version 2.2.1 corrige ce point.
      Je considère qu’il faut forcément id_rubrique pour que id_secteur soit pris en compte aussi.

      Merci.

    • Le 2 novembre à 11:51, par Julien Lanfrey En réponse à : La Fabrique

      Ça fonctionne, merci.

      Je viens de voir la réorganisation avec les sections « liaisons directes/indirectes » : de mieux en mieux. C’est un un plaisir d’utiliser cet outil !

    Répondre à ce message

  • Le 10 octobre à 22:40, par Vero En réponse à : La Fabrique

    Bonjour,

    J’ai un problème « récurent » : je n’arrive pas à créer un objet éditorial.

    Message d’erreur : « Oups. Une erreur inattendue a empêché de soumettre le formulaire »
    Puis je me retrouve avec le panneau « Site en travaux ».

    Message dont la recherche m’a mené ici : http://contrib.spip.net/Champs-Extras-3#forum488227

    Problème récurrent, car j’ai déjà rencontré ... il y a longtemps (sur des 3.0), à partir d’une certaine version. Si besoin, je peux retrouver plus de détails.

    Actuellement, mes versions :

    SPIP 3.1.3
    CHAMPS EXTRA 3.8
    SAISIE 2.7.12
    Serveur local : UBUNTU 16.04 (PHP 7 ...)

    J’ai adoré ce plugin ... mais je n’arrive plus à m’en servir. (Snif ...)

    Merci pour votre aide

    • Le 11 octobre à 09:18, par Matthieu Marcillaud En réponse à : La Fabrique

      Je ne sais pas ce qui provoque cela. Cette erreur peut apparaître si le formulaire n’arrive pas à se poster, en ajax donc. Peut être surchargez-vous des fichiers, tel que jQuery dans votre répertoire squelettes ?

      Avez vous d’autres plugins qui pourraient interagir en dehors de ceux que vous avez déjà indiqué ?

    • Le 12 octobre à 17:41, par Vero En réponse à : La Fabrique

      J’ai installé le plugin sur une configuration toute neuve : cela marche.

      J’ai, petit à petit, ré-établi la configuration initiale en espérant trouver le coupable .... Niet, cela fonctionne ! ??????????

      Alors, ce n’est pas gênant, puisque « La fabrique » peut être exploitée hors contexte.

      Si je reproduis le problème avec un soupçon, je reviendrai vers vous sur ce fil.

      Merci beaucoup et encore bravo pour ce plugin !

    Répondre à ce message

  • Le 31 août à 05:47, par Jean En réponse à : La Fabrique

    J’ai ajouté dans la déclaration :

    1. 'url_voir' => 'concours',
    2. 'url_edit' => 'editer_concours',

    Télécharger

    ça semble résoudre la bizarrerie ?exec=concour qui donne page introuvable
    et pour le bouton de création rapide qui ne fonctionnait pas, dans paquet.xml régler l’URL concours_creer action=« editer_concours »

     ?exec=concours toujours Accès interdit
    qui serait peut-être causé par ? (les autorisations sont laissées par défaut et « échafauder » les fichiers tout est coché)

    1. [(#ENV**{exec}|=={concours_edit}|?{#INCLURE{fond=prive/squelettes/contenu/concours_edit,redirect='',env,retourajax=oui},#REM|sinon_interdire_acces})]

    En effet, prive/squelettes/contenu/concours_edit.html n’existe pas ...

    Pas faciles les exceptions de la langue française ... un concour, des concours c’est bien aussi :-)
    Prochain exemple de plugin pour suivre le plugin Chats : le plugin Chevaux !

    • Le 31 août à 09:32, par Matthieu Marcillaud En réponse à : La Fabrique

      Hum, je pense que tu ferais mieux de laisser url_voir à ’concours’ et url_edit à ’concours_edit’.
      Par contre, tu pourrais faire comme Gis pour la page qui liste l’ensemble des concours, c’est à dire l’appeler elle ’concours_tous’.

      C’est un cas que je n’ai pas testé avec la Fabrique d’avoir un objet avec un s final au singulier et pluriel. Le cas cheval / chevaux doit poser moins de souci, de même que jeu / jeux (singulier différent du pluriel donc).

      Il y a des choses à améliorer…

    • Le 7 septembre à 04:26, par Jean En réponse à : La Fabrique

      Merci pour ta réponse Mathieu
      Le ’s’ pose d’autres problèmes que je ne peux pas résoudre, j’ai laissé sans s au singulier, tant pis

    Répondre à ce message

  • Le 20 septembre 2015 à 13:33, par blablabla En réponse à : La Fabrique

    Bonjour,

    d’abord merci pour ce plugin !!!

    un petit complément à la doc, pour celles et ceux qui galèrent à afficher les nouveaux objets liés à un mot clé. Pour faire ça, il faut une jointure sur la table mots_liens. Or la jointure automatique avec le critère {id_mot} est ambiguë... elle se fait sur la table objets_liens. Pour contourner ça, il suffit de préciser sur quelle table on veut la jointure en mettant le critère {mots_liens.id_mot}

    • Le 30 août à 11:38, par joz En réponse à : La Fabrique

      Bonjour,
      Est-ce que je comprends bien que cet info est obsolèthe ?
      Je vois que le lien avec le mot-clé est stocké dans la table mots_liens.

    • Le 30 août à 12:38, par Matthieu Marcillaud En réponse à : La Fabrique

      Non joz, l’info n’est pas obsolète ; seulement tu as mal compris ce qu’il exprime.
      Si tu demandes à créer la table de lien pour ton objet éditorial xxx soit donc spip_xxx_liens, les mots s’enregistrent toujours évidement dans spip_mots_liens ; cependant le critère (XXX){id_mot} ne sait lui, pas forcément toujours s’il doit utiliser comme table de jointure spip_xxx_liens ou spip_mots_liens ; et par défaut ça va prendre le plus court chemin de jointure, le plus près de l’objet éditorial d’origine. Une explication plus détaillée là : http://marcimat.magraine.net/SPIP-3-Documents-Mots

      En alternative tu peux aussi déclarer préférer utiliser la jointure sur spip_mots_liens par défaut pour ton objet ; c’est ce que fait le plugin mots avec la table des auteurs là : http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/mots/base/mots.php#L199 (modification introduite par http://zone.spip.org/trac/spip-zone/changeset/53744)

    • Le 31 août à 09:40, par joz En réponse à : La Fabrique

      ah ok !
      merci pour l’éclaircissement :)

    Répondre à ce message

  • Le 26 août à 12:34, par Jean En réponse à : La Fabrique

    Salut, je crée un objet « Concours » :
    Nom pluriel : Concours
    Nom singulier : Concours

    ça m’affiche des id_concour, supprimer_concour.php, ’type’ => ’concour’, ... sans le ’s’ à la fin, c’est normal ?

    Cordialement

    • Le 30 août à 17:52, par Matthieu Marcillaud En réponse à : La Fabrique

      Le nom pluriel ou singulier sert juste à la création des chaînes de langue ; pas à la création du nom du champ dans la table.

      Ici tu es dans le cas d’une table un peu spéciale dont tu voudrais id_concours ; c’est ce que j’ai nommé dans la Fabrique une « Table hors norme » il me semble.
      Dans la déclaration de l’objet dans la Fabrique :

      • Table > Spécificités de tables hors normes > clé primaire => adapter id_concour à id_concours
      • et type de l’objet au même endroit, je pense qu’il faut mettre ’concours’

      Cela devrait te générer quelque chose de plus adapté. Enfin dans base/concours.php il te faudra peut être adapter (il me semble que la Fabrique crée un code à peu près correct), par exemple en suivant le code de GIS pour les surnoms, qui a la même contrainte (gis, id_gis) :
      http://zone.spip.org/trac/spip-zone/browser/_plugins_/gis/trunk/base/gis.php#L27

      1. $tables['spip_gis'] = array(
      2. /* Declarations principales */
      3. 'table_objet' => 'gis',
      4. 'table_objet_surnoms' => array('gis'),
      5. 'type' => 'gis',
      6. 'type_surnoms' => array('gi'),

      Télécharger

      Notamment le dernier type_surnoms doit avoir la valeur sans s final !

    • Le 31 août à 04:54, par Jean En réponse à : La Fabrique

      Merci beaucoup Mathieu pour ta réponse
      Effectivement c’était prévu dans « Table hors-normes », my bad

      Dans base/concours.php, il n’y a pas de ’surnom’, j’ai d’ailleurs fait une recherche dans tous les fichiers du plugin, ’surnom’ n’apparaît nul part, ni ’table_objet’

      La déclaration commence par :

      1. function concours_declarer_tables_objets_sql($tables) {
      2.  
      3. $tables['spip_concours'] = array(
      4. 'type' => 'concours',
      5. 'principale' => "oui",
      6. 'field'=> array(
      7. 'id_concours' => 'bigint(21) NOT NULL',
      8. 'titre' => 'text NOT NULL DEFAULT ""',

      Télécharger

      Maintenant j’ai /ecrire/ ?exec=concours : Accès interdit
      Et bizarrement : /ecrire/ ?exec=concour amène sur la gestion de l’objet
      Hors concour.php n’existe pas, on a bien base/concours.php

      J’ai désinstallé le plugin, vérifié que le table était supprimée, vidé le cache, réinstallé, vidé /tmp à la main

       ?exec=concour&var_mode=debug me montre qu’un squelette ../tmp/cache/scaffold/contenu/concour.html est appelé qui donne :
      #ENV
      exec  : concour
      date  : 2016-08-31 04:45:14
      date_default  : 1
      date_redac  : 2016-08-31 04:45:14
      date_redac_default  : 1
      type-page  : concour
      composition  :
      lang  : fr
      espace_prive  : 1

      J’ai vérifié qu’il n’y a pas de concour.* dans le plugin et il n’y a pas de fichier qui contienne concour sans ’s’ ...

      J’ai aussi essayé d’ajouter les mêmes champs que gis :

      1. function concours_declarer_tables_objets_sql($tables) {
      2.  
      3. $tables['spip_concours'] = array(
      4. 'type' => 'concours',
      5. 'principale' => "oui",
      6. 'table_objet' => 'concours',
      7. 'table_objet_surnoms' => array('concours'),
      8. 'type_surnoms' => array('concour'),
      9. 'field'=> array(
      10. 'id_concours' => 'bigint(21) NOT NULL',

      Télécharger

      ça rend le même résultat

    Répondre à ce message

  • Le 17 août à 16:55, par Alexandre Tomas En réponse à : La Fabrique

    Bonjour,

    J’ai créé avec succès des nouveaux objets éditoriaux avec votre plugin et qui fonctionnent parfaitement.

    Cependant je me suis aperçu que du côté privé, n’importe quel rédacteur pouvait librement modifier ces nouveaux objets éditoriaux sans en être l’auteur pour autant.

    Il y a-t-il un champ sql ou des champs sql spécifique(s) à créer pour qu’un nouvel objet éditorial puisse n’être modifié que par son auteur ?

    Merci et bonne journée.

    • Le 17 août à 17:13, par Alexandre Tomas En réponse à : La Fabrique

      J’ajouterai que paradoxalement la table spip_auteurs_liens référence bien les nouveaux objets éditoriaux avec une juste correspondance id_auteur-id_objet-objet. Alors peut-être le manque se situe-t-il côté privé. Le cas échéant dois-je créer un formulaire côté privé pour chacun de mes nouveaux objets éditoriaux et qui vérifie réellement qui est l’auteur (avant de proposer une modification) ? Si je trouve entretemps, je réponds ici-même..

    • Le 17 août à 20:41, par Matthieu Marcillaud En réponse à : La Fabrique

      Dans la partie de la Fabrique qui crée l’objet éditorial, il est possible de modifier déjà quelques paramètres d’autorisations, dans le cadre donc « Autorisations ».

      Cependant le choix de ne permettre la modification que par les auteurs appartenant à l’objet n’est pas présent. C’est un manque à mon avis. Il faudrait je suppose également donc un choix de plus, tel que "Être auteur sur l’objet éditorial ou être au moins administrateur ou administrateur restreint sur la rubrique"… C’est à dire à peu près comme cela se passe sur les articles.

      Sinon, donc, on parle d’autorisations, la Fabrique ne fait que créer les fonctions d’autorisations qu’il est possible d’adapter donc ensuite. Ça se passe dans le fichier généré prefixe_autorisations.php, particulièrement donc sur l’autorisation ’modifier’.

      Il faut s’inspirer d’autres plugins / autorisations pour adapter le code dans votre plugin. Par exemple :
      -  https://core.spip.net/projects/spip/repository/entry/spip/ecrire/inc/autoriser.php#L653
      -  http://zone.spip.org/trac/spip-zone/browser/_plugins_/albums/branches/v2/albums_autorisations.php#L88
      -  http://zone.spip.org/trac/spip-zone/browser/_plugins_/itineraires/trunk/itineraires_autorisations.php#L82

    • Le 18 août à 00:26, par Matthieu Marcillaud En réponse à : La Fabrique

      Je viens d’ajouter une nouvelle option d’autorisation qui permet de tester l’auteur de l’objet éditorial. http://zone.spip.org/trac/spip-zone/changeset/99199

      Ça répond en partie à la problématique. Là le statut de l’objet éditorial n’est pas testé, du coup, un rédacteur auteur de son objet peut l’éditer même s’il a été publié (contrairement aux articles).

      En tout cas c’est déjà mieux qu’avant.

    • Le 18 août à 11:51, par Matthieu Marcillaud En réponse à : La Fabrique

      La version 2.2.0 ajoute 2 nouvelles options d’autorisations en plus, dont une qui est comme le fonctionnement des articles. http://zone.spip.org/trac/spip-zone/changeset/99203

    • Le 18 août à 13:30, par Alexandre Tomas En réponse à : La Fabrique

      Merci pour tous ces efforts.

      J’ai fait la mise à jour de la fabrique, j’ai recréé mes 2 objets éditoriaux à partir de la sauvegarde du fichier fabrique_[monplugin].php, j’ai pu recréé le plugin de mes 2 objets éditoriaux toujours avec succès mais au final rien n’est changé. N’importe quel rédacteur peut toujours modifier l’objet qui ne lui appartient pas.

      Donc de mon côté je n’ai aucune différence, l’auteur de l’objet éditorial n’est pas testé côté privé apparemment, tout comme avant.

      Peut-être ai-je mal compris ce qu’apportait la mise à jour ?

      Pour mon nouvel objet information par exemple, je suis tombé sur le fichier prive/squelettes/contenu/information.html, et c’est bien sur cette page que je trouve l’autorisation de modifier mon information puisque concrètement c’est là qu’apparaît le bouton de modification alors qu’il ne devrait pas s’y trouver quand nous ne sommes que simple rédacteur et pas l’auteur de l’information.

      Tout à l’air de se passer ici :

      1. [(#AUTORISER{modifier,information,#ID_INFORMATION})
      2. [(#ID_INFORMATION|afficher_qui_edite{information}|non)
      3. [(#URL_ECRIRE{information_edit,id_information=#ID_INFORMATION}|icone_verticale{<:information:icone_modifier_information:>,information,edit,right ajax preload})]
      4. ]
      5. [(#ID_INFORMATION|afficher_qui_edite{information}|oui)
      6. [(#URL_ECRIRE{information_edit,id_information=#ID_INFORMATION}|icone_verticale{#ID_INFORMATION|afficher_qui_edite{information},warning-24,'',right edition_deja ajax preload})]
      7. ]
      8. ]

      Télécharger

      Je peux certainement faire un bricolage pour sauver les meubles en attendant mieux, mais s’il était possible de revoir ce bout de code pour que seul l’auteur de l’information (ou l’administrateur) puisse avoir le droit de modifier ce serait formidable.

      Sinon je m’inspirerai des autres plugins comme suggéré, mais ça va être beaucoup plus difficile à comprendre...

    • Le 18 août à 13:40, par Matthieu Marcillaud En réponse à : La Fabrique

      Il ne s’agit pas seulement de faire la mise à jour.

      Sur la fabrique, dans la description de l’objet éditorial « Informations » il y a un accordéon nommé « Autorisations ». Dedans, il y a des sélecteurs pour plusieurs types d’autorisations (créer, modifier, supprimer…). Il faut que tu modifies la sélection sur « Modifier » pour le mettre sur "Auteur de l’objet" ou "Auteur de l’objet sauf si publié"… Et de régénérer le plugin. L’avais tu fais ?

    • Le 18 août à 18:24, par Alexandre Tomas En réponse à : La Fabrique

      Ca marche ! Effectivement dans l’accordéon « Autorisations » j’avais laissé les réglages par défaut... J’ai cette fois régénéré le plugin en spécifiant modifier->Être auteur de l’objet ou au moins administrateur complet.

      Et maintenant donc plus de souci, le rédacteur reste à sa place et ne peut plus inopinément modifier un objet éditorial qu’il n’a pas créé, ni trafiquer son statut.

      Merci infiniment pour ces réponses très rapides !! Bonne fin de soirée !

    Répondre à ce message

  • Le 23 juin à 05:15, par livier En réponse à : La Fabrique

    Bonjour,
    J’ai une installation mutualisée ou je gère les plugins de la façon suivante
    -  Dans spip/plugins j’ai installé les plugins principaux utilisés sur la plupart des sites par svn. Sinon, sous SPIP3.0 j’avais pleins d’erreurs de désactivations de plugins lors des mises à niveau automatisées par l’interface. Ce fut un peu pénible.
    -  Dans /spip/sites/monsite.tld/config/mesoptions.php je mets :

    define('_ROOT_PLUGINS_SUPPL',_DIR_RACINE.'sites/'.$site.'/plugins/');
    define('_DIR_PLUGINS_SUPPL',_DIR_RACINE.'sites/'.$site.'/plugins/');
    define('_DIR_PLUGINS_AUTO',_DIR_RACINE.'sites/'.$site.'/plugins/auto/');


    -  Cela me permet de mettre d’autres plugins automatiquement installés qui restent au niveau de chaque site, et de développer mes squelettes sous forme de plugins dans ’.$site.’/plugins/gitdev/" pour sinchroniser mon développement à local avec le serveur de production.

    Tout ça pour dire que j’aurais voulu idéalement faire ’.$site.’/plugins/gitdev/fabrique_auto pour synchroniser mon développement, ou à la rigueur : ’.$site.’/plugins/fabrique_auto ...
    Mais celà ne marche que quand je fais /spip/plugins/fabrique_auto ... donc mon plugin de la fabrique serait disponible pour tous les sites ; ce qui n’est pas forcément le but.

    Y a t’il moyen de développer un site dans la fabrique pour un site spécifique d’une installation mutualisée.
    Sinon, une fois l’ébauche du plugin fait à la fabrique, je le ramènerai dans le rpertoire spécifique du site ; c’est pas la mort !

    merci Marcimat pour les conseils rapides et pertinents sur le Chat

    Bon été a tous ...

    • Le 23 juin à 12:08, par Matthieu Marcillaud En réponse à : La Fabrique

      Je comprends. Il n’y a rien de prévu pour l’instant pour un tel usage avec la mutualisation.

      Personnellement j’aurais tendance à dire que du développement ne se fait pas au même endroit (ie sur un même SPIP) que des sites en production ! Il est beaucoup plus simple et sain d’avoir un site de développement en local, ou une copie d’un site existant en local et de travailler dessus pour tester de nouveaux plugins ou en créer avec la Fabrique.

      Il faudrait voir comment pouvoir améliorer le code de la Fabrique pour ton usage, mais c’est loin d’être évident ; en tout cas ça concerne les endroits où FABRIQUE_DESTINATION_PLUGINS est écrit dans le code, notamment la fonction fabrique_destination(), mais pas que.

      Peut être qu’on pourrait tenter d’ajouter une constante _DIR_PLUGINS_FABRIQUE qui vaudrait _DIR_PLUGINS par défaut, et remplacer les usages de _DIR_PLUGINS par cette nouvelle constante. Ça permettrait de la définir avant dans ton fichier d’options sur _DIR_PLUGINS_SUPPL .

      Si tu as le cœur à regarder, tester, le code est sur la zone :)

    Répondre à ce message

  • Le 9 mars à 12:42, par Sylvain Nogues En réponse à : La Fabrique

    Lorsque je fais des modifs sur des champs d’un objet éditorial (ajout de champ, ou modification de taille d’un champ), j’ai compris qu’il fallait modifier le n° de « schéma » (Version de la structure des données), et aussi le n° de version du plugin.
    Mais même dans ces conditions, je dois désinstaller et réinstaller le plugin (et donc, repeupler les tables) pour que les modifications des champs soient prises en compte.

    Ai-je loupé quelque chose, ou bien est-ce le comportement normal ?
    J’avais cru comprendre (ou l’ai-je rêvé ?) qu’en désactivant le plugin, et en le réactivant, la magie opérerait pour trouver les modifications de la base.

    Merci,
    Sylvain

    • Le 12 mai à 14:38, par Sylvain Nogues En réponse à : La Fabrique

      Je tente une reformulation... lorsqu’on fait une mise à jour de plugins « traditionnels », on ne perd pas les données, même s’il y a modification des objets éditoriaux.
      Avec mon joli petit plugin issu de la fabrique, chaque modification de la structure des objets éditoriaux nécessite une désinstallation et réinstallation, puis repeuplement de la base pour que la modification soit prise en compte.
      Est-ce que la « fabrique » prend en compte les mises à jour de structure des objets éditoriaux « à chaud » ? si oui, comment faire ? Et si non... comment faire ?...

    Répondre à ce message

  • Le 16 mars à 14:48, par DjackO En réponse à : La Fabrique

    Ce plugin me sert pour l’instant uniquement à créer le .xml, et les fichiers de conf. J’ai suivi consciencieusement le tuto ci dessus et je bloque dès que je crée un objet. Si je veux le peupler avec une table existante , comme dans l’exemple, ou créer un objet vide, la bulle « Veuillez compléter ce champ » apparait. Le problème est que je ne sais pas où est ce foutu champ sans nom. Et du coup je ne vais pas plus loin. Et pourtant je suis sur que ce plugin est très utile. Ce message d’alerte imprécis est $%&£ !

    PNG - 7.5 ko

    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

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là