Importeur / Exporteur de configurations

Ce plugin permet à plusieurs plugins de pouvoir exporter leur configuration respective dans un seul et même fichier de configuration au format YAML.

Préambule : Plusieurs systèmes de sauvegarde de configuration existent déjà. SaveCFG permet par exemple de sauvegarder la configuration d’un plugin lorsque cette dernière est gérée avec CFG. Les plugins Menus ou Formidable permettent chacun d’exporter respectivement un menu ou un formulaire au format YAML. Le noiZetier permet quant à lui d’exporter une configuration de noisettes.

Quand un site contient un grand nombre de plugins, sauvegarder ces différentes configurations devient vite fastidieux. Il faut sauvegarder chacune séparément ce qui requiert un grand nombre d’opérations.

L’importeur/exporteur de configuration a pour objectif de centraliser l’import/export de ces configurations dans une interface commune pour produire un fichier YAML unique contenant la configuration des différents plugins choisis.

Par ailleurs, un squelette utilisant plusieurs plugins peut ainsi fournir un ou plusieurs fichiers de configuration pour configurer ces différents plugins en une seule fois.

Dépendances

Pour fonctionner, ce plugin nécessite les plugins Bonux, Saisies, YAML et Vérifier.

Le plugin s’installe comme tous les autres plugins.

Pour accéder à l’importeur/exporteur de configurations, cliquez sur son icône dans le menu Configuration ou bien dans le menu Maintenance si vous utilisez le nouveau bandeau.

Exporter une configuration

Le formulaire d’export vous propose tout d’abord de personnaliser le titre et la description de votre export.

Vous pouvez ensuite demander à télécharger vôtre export ou bien à le sauvegarder sur votre site (dans le répertoire temp/ieconfig/).

Le formulaire liste ensuite les plugins compatibles installés sur votre site et les options d’export propres à chacun.

Choisissez ce que vous souhaitez inclure dans votre export et cliquez sur Exporter la configuration.

Importer une configuration

Dans un premier temps, vous devez spécifier le fichier de configuration à importer. Il peut s’agir d’un fichier YAML provenant de votre ordinateur. Vous pouvez également choisir un fichier parmi ceux que vous avez préalablement sauvegardés dans tmp/ieconfig/.

Si un plugin (en particulier un plugin de squelettes) fournit un ou plusieurs fichiers de configurations dans un sous-répertoire ieconfig/, ces derniers seront également listés.

L’importeur/exporteur de configuration chargera ensuite le fichier de configuration et vous listera les éléments importables. Choisissez alors les éléments que vous souhaitez importer et cliquer sur Importer une configuration.

Compatibilité avec le plugin Mes Fichiers

Si vous utilisez le plugin Mes Fichiers, vos fichiers de configuration enregistrés sur votre site seront inclus dans le Zip de sauvegarde de ce plugin.

Déclarer une configuration à l’importeur/exporteur de configurations

Pour que la configuration d’un plugin soit prise en compte par l’importeur/exporteur de configurations, il faut lui déclarer au travers d’un pipeline adéquat. Voir la documentation développeur du plugin.

Discussion

5 discussions

  • 7

    Bonjour,

    Il y’a quelques mois j’avais posé la question de l’export des formulaires ... donc c’est fait :

    Ajouter l’export des Formulaires formidable a IE config comme pour les menus :

    C’est par la

    Merci a Joseph pour les plugins, la doc ... et les réponses quand on as besoin.

    • Un grand merci pour cette contribution.

      As-tu pensé à la proposer sur SPIP-Zone ? Elle aurait tout intérêt à rejoindre le plufgin Formidable.

      Bien cordialement

    • Oui tu as raison je vais le proposer sur le forum de formidable et l’auteur verra si ça a un intérêt ...

      A++

    • Et ça a donné quoi ?

    • Comme sur d’autres plugin ou objets ça a été refusé et je l’ai intégré au core de mon squelette.

    • Donc suite a notre discussion, j’ai envoyé les surcharges permettant de gérer ces exports additionnels non souhaités dans les plugins par leurs auteurs dans un plugin ieconfigplus disponible sur la zone.

      Plusieurs personnes suggérais sur IRC d’intégrer aussi les exports de meta des plugins-dist pour que cette fonctionnalitées soit incluse dans ieconfig directement.

      Je ferais un mail sur la liste zone pour faire un sondage, après j’aimerais bien que Joseph donne son avis étant l’auteur, ça me parais le minima ^^

      En l’état au moins la fonctionnalité est disponible (et pas sur GitHub ^^) pour ceux-elles qui en aurais l’utilité comme moi … 2015 ça date en fait en temps web

    • Salut Mist. GraphX,

      tout d’abord, je suis plus que ravi de voir que ce plugin continue de vivre sa vie. :-)

      De manière générale, quand cela est possible, il me semble préférable que la déclaration ieconfig soit directement gérée par le plugin dont il dépend car cela permets de s’assurer que la déclaration est conforme à la version du plugin installée (notamment s’il y a des changements de base). C’est pour cela que ieconfig avait volontairement été développé avec cette possibilité.

      Maintenant, si certains auteurs de plugins refusent que la déclaration ieconfig soit intégrée à leur plugin, il serait vraiment dommage d’en priver ceux qui le souhaitent et tu as tout mon soutien pour développer ieconfigplus.

      Concernant les plugins de la dist, s’il n’est pas possible que leur déclaration soit intégrée de base dans les dits plugins, je pencherai plutôt pour l’intégration de leurs métas directement dans ieconfig (avec des test de numéros de version au besoin), de la même manière que les métas du core sont déclarées elles-aussi directement dans ieconfig.

      Ainsi, si on installe ieconfig seul, on a déjà accès à l’export de tous les plugins dist, ieconfigplus n’étant utile que lorsque l’on a recours à d’autres plugins que ceux fournis par défaut.

      Si ca te va bien sur

    • Hello Joseph,

      Je pense que c’est effectivement la meilleur solution ;-) on va partir sur ça

    Répondre à ce message

  • 2

    Bonjour

    Je rencontre un problème lors de l’utilisation de la fonction « Exporter ».

    Message d’erreur : « Fatal error : Maximum function nesting level of ’100’ reached, aborting ! in /var/alternc/html/c/christian/www/christian.lautre.net/ecrire/inc/utils.php on line 226 »

    J’obtiens ce message sur un site vierge ou seul SPIP et les plugins ont été installés (pas de données vives).
    SPIP : 3.0.17
    Plugins tous à jour

    Je ne reproduis pas cette erreur sur mon serveur de développement que j’héberge chez moi, je ne rencontre cette erreur que chez l’hébergeur.

    Merci pour votre aide.

    • Ce message d’erreur est en général dû à la présence sur votre hébergement PHP de xdebug (et non à PHP lui-même). Il faut que vous voyez si vous pouvez modifier le paramètre xdebug.max_nesting_level sur votre hébergement.

      Voir par exemple http://www.kitpages.fr/fr/cms/154/n...

    • Merci beaucoup pour la réponse.
      En effet le paramètre xdebug.max_nesting_level est bien positionné à 100.
      Si comme moi vous ne pouvez faire modifier ce paramètre par votre hébergeur il suffit de rajouter sa modification dans le fichier config/mes_options.php

      par exemple :

      <?php
      date_default_timezone_set('Europe/Paris');
      ini_set('xdebug.max_nesting_level' , 150);
      ?>

      Encore merci

    Répondre à ce message

  • 16

    Bonjour Joseph,

    Peut on avec un plugin Y , déclarer les export de config d’un plugin X sans modifier son fichier xml, ou x_pipelines.php.

    Par exemple, l’auteur d’un plugin X, ne souhaite pas ajouter l’option d’export a son plugin, et moi j’en ai besoin sans pour autant vouloir forker le dit plugin. Puis-je, dans mon plugin Y, déclarer l’export de config du plugin X ??

    merci de tes lumières ;-)

    • Bon, je me répond a moi même suite a une explication de Rastapopoulos sur IRC (merci à lui !!! encore une fois ^^)

      oui, c’est possible , il suffit d’ajouter dans le plugin X à la fonction x_ieconfig_metas les descriptions des $tables[’y_titre’] .. le concernant...

      comme ici

      un plugin squelette peut donc exporter toute sa config sans avoir a modifier les descriptions xml, ou pipelines des plugins qui le compose.

    • Oui tout à fait.

      IEconfig a été conçu pour être très souple et permettre d’exporter à peu près tout ce qu’on veut.

    • C’est bien ce que je vois !!! et je t’en remercie ;-)

      Par contre (chuis pas une brute en php, et j’ai peut être lu en diagonal déolé si la question est bête), peut on exporter les formulaires formidables, comme pour MENU ??

    • Techniquement oui, c’est possible. Mais il faut construire les formulaires d’import et d’export. la problématique est similaire à celle du plugin Menus. C’est donc un peu de boulot. Le mieux est de s’inspirer de Menus.

      Idéalement, cette fonctionnalité devrait être déclarée directement dans le plugin formidable. Est-ce l’un des plugins dont les auteurs ne souhaitent pas ajouter l’option d’export ?

    • Ok, c’est ce que j’ai commencé a regarder effectivement c’est plus complexe que le simple export de meta ;-), mais bon je re-utilise souvent les mêmes formulaires dans mes projets.

      Avant j’utilisais en local un vhost/spip complet par type de projet/site/squelette et je dupliquais la base a la création de mon nouveau projet, avec un script sh qui me génère tout ...

      Idéalement, cette fonctionnalité devrait être déclarée directement dans le plugin formidable. Est-ce l’un des plugins dont les auteurs ne souhaitent pas ajouter l’option d’export ?

      Non je n’ai pas demandé pour le moment ;-)

      merci des infos en tous cas, je vais regarder tout ça et tester...

    • Bon désolé je reviens encore à la charge ;-)

      Donc l’export marche bien, par contre à l’import je n’ai aucune modifications qui s’applique et pas de messages d’erreurs, sous spip 3.0.8.

      J’ai essayé depuis et vers le même site (ce qui à relativement peut d’intérêt il faut le dire), d’un site vers un autre différent, depuis un site vierge de tout plugins que j’ai trifouillés avec juste la dist, et les dernières versions dispo sur la zone.

      bref l’export marche bien, mais pas l’import :/
      Une idée ???

    • Quels éléments ont été exportés/importés ?
      Le fichier d’import est-il bien chargé ? Les options d’import s’affichent-elles ?

      L’option ’oui’ a-t-elle été sélectionnée pour chacun des éléments à importer ?

    • Quels éléments ont été exportés/importés ?

      J’ai testé avec :
      -  les données brute ou données sérialisées de plugins comme par exemple manuelsite
      -  les données standards de spip aussi
      -  des plugins squelettes de ma composition

      Le fichier d’import est-il bien chargé ? Les options d’import s’affichent-elles ?

      Le fichier d’import est bien chargé : oui je pense car il m’affiche les options ensuite et la liste de choix d’import

      L’option ’oui’ a-t-elle été sélectionnée pour chacun des éléments à importer ?

      Oui les options ont bien été cochées. Je n’ai aucun messages d’erreur en retour.

      Et aussi :
      j’ai essayé de rajouter un test de debug dans le traitement du formulaire pour voir, au niveau du test meta_brute ou meta_serialise qui ecrit les meta, et rien non plus en retour. A croire que ça ne passe pas par la pipeline pour écrire, et différencier meta_brute ou serialisées, donc normal que ça saute la partie écrire_meta.

    • Si j’ai bien compris ni message d’erreur ni message de confirmation ?

    • Je viens de faire un test rapide. Effectuvement, malgré message de confirmation les metas n’ont pas été importées. Par contre, il semble qu’une config de noisettes est bien importée.

      Peux-tu essayer chez toi un export/import d’une config de noisettes et/ou de menus ? Ca permettra alors de restreindre le problème au niveau du pipeline ieconfig_metas.

    • Piste possible : test ligne 172 de _plugins_/ieconfig/trunk/formulaires/ieconfig_import.php , suite à un bug introduit par la révision 67136.

      Malheureusement, je n’ai pas un environnement de dev sous la main et vai être en réunions toute la journée et une partie de cette semaine. Du coup, je ne peux vérifier de suite si c’est bien là la source du problème.

      Cordialement

    • Peux-tu essayer chez toi un export/import d’une config de noisettes et/ou de menus ? Ca permettra alors de restreindre le problème au niveau du pipeline ieconfig_metas

      J’ai fait le test avec menu (n’utilisant *pas encore ;-) * le noizetier ) et ça fonctionne correctement, ont est donc bien sur un problème de pipeline.

      J’ai testé rapidement en modifiant la ligne incriminée ;-) mais non pas mieux :/,
      Je me demande si ça viens pas plutôt d’une modif de spip en lui même ... bref a suivre

      Merci en tous cas et bonne réunion/semaine ;-)

      @++

    • Hello,

      Bon en travaillant sur un autre truc, j’ai remarqué que j’utilisais plus ecrire_meta() dans mes configurations de plugins, j’ai donc testé d’abord , remplacé par ecrire_config (qui je crois est la nouvelle méthode ... enfin je sais plus ça change bien souvent en fait ^^ ).
      Puis j’ai regardé du coté du formulaire checkbox car j’avais un retour de array null, et en fait c’est les champs checkbox qui étaient en name=export_meta et non import_meta, du coup le _request() était toujours vide :/
      Bref j’ai fait deux trois tests et la ça fonctionne.
      #67136

      'saisie' => 'checkbox', 
        'options' => array( 
           'nom' => 'export_metas', // <=> import_meta
           'label' => _T('ieconfig:label_importer'), 
           'tout_selectionner' => 'oui', 
            'datas' => $ieconfig_metas 
         ) 
      

      je peut publier les deux trois modifs, et tu incrémentera la version après avoir vérifié que tout marche pour toi ... si tu veux ou si tu as pas le temps

      @++ et merci encore pour tout ces plugins

    • Tu es le bienvenue pour faire les corrections sur SVN. Merci d’avance pour ton temps.

    • ok c’est envoyé, , j’ai pas augmenté la version dans le paquet.xml par contre

    • Ok.

      D’après le commit ca me semble bon. Tu peux augmenter le numér de version à mon avis

    Répondre à ce message

  • 2

    Salut,
    Sur un spip 3.0.5, quand je tente d’importer un fichier .yaml de config (venant d’un autre site spip similaire en 3.0.5) par le formulaire « importer une configuration », ça ne donne rien (la config n’est pas importée), et j’ai un message d’erreur « Vous devez spécifier un fichier de configuration à importer. »
     ?? un bug ?

    J’ai Yaml v1.5, Import-Export (v1.2.0) , Saisies (v1.27.0) , Verifier v0.1.18

    Merci pour toute solution

    • Bonjour,
      le problème se pose-t-il avec un fichier créé depuis le même site ? ou seulement avec un fichier provenant de l’autre site ?

      Est-ce la même version de SPIP et des plugins sur les deux sites ?

      Le problème est-il le même en sens inverse ?

      Cordialement

    • Bonjour,
      Ca ne marchait pas pour une config venant d’un autre site (autre hébergeur). Ils ont le même spip 3.0.5, peut-être pas tout à fait les mêmes plugins.
      Là j’ai exporté une config depuis le nouveau site, et l’import chez lui-même a marché.

      Ensuite, j’ai mise à jour les plugins de l’ancien site (après l’avoir fait sur le nouveau), puis refait un export depuis l’ancien, et là l’import a marché dans le nouveau !
      Sans doute un plugin qui bloquait...!?

      [résolu]
      Merci pour le suivi,
      DM

    Répondre à ce message

  • 1

    Bonjour,

    Est-il possible en plus d’exporter la configuration d’un plugin d’avoir l’import-export des plugins dudit site ?
    Explication : j’ai un site en développement, je le passe en production. Au lieu de télécharger manuellement, chaque plugin, je voudrai n’installer qu’un seul plugin (IEconfig ici en l’occurrence) qui va recréer mon environnement. Plugins actifs et inactifs compris.

    PS
    Je sais qu’on peut faire un « faux » plugin qui ne renseignera que les « <necessite> » pour chargement par STEP ou SVP… Mais là, je perds les plugins inactifs.

    • En l’espèce, pas actuellement. Exporter la liste des plugins installés n’est pas forcément compliquée. Au niveau de l’import par contre, il faudrait voir si SVP offre une API sur laquelle se brancher. Surtout qu’il faut d’abord que les plugins soient installés avant de pouvoir importer la config.

      En fait, il faudrait d’abord voir comment les distributions vont être implémentées dans SVP (c’est prévu je crois mais quand ?). Seulement à ce moment là on pourra voir comment coupler installation d’une distribution et installation d’une configuration.

    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