Pb pour lire la table plugin

Bonjour,

J'ai un curieux problème. Pour des questions de maintenance, je liste les plugins actifs en dé-sérialisant le champ "plugin" de la table spip_meta
  #SET{liste_plugins, #CONFIG{plugin}|unserialize}

et en parcourant ce tableau par une boucle DATA. Jusque là tout va bien.

Mais comme la boucle DATA ne fonctionne qu'en SPIP 3 et qu'il me reste quelques sites en SPIP 2.1, j'ai essayé une autre méthode. Je boucle sur la table spip_plugin en piochant les préfixes trouvés dans spip_meta. Ça donne quelque chose comme ça:
  <BOUCLE_alt(PLUGINS){prefixe in #GET{liste_plugins}}>
    #SET{infos, #GET{liste_plugins}|table_valeur{#PREFIXE}}
    [<li>#NOM (#GET{infos}|table_valeur{version})[ -
    (#GET{infos}|table_valeur{etat})]</li>]
  </BOUCLE_alt>

Eh bien, ça marche mais pas pour tous les plugins ! Par exemple, Comments, YAML, Saisies, SkelEditor sortent bien mais pas Autorité ou Z-core.

À quoi est-ce dû? Le fait de piocher des clés (les préfixes) plutôt que des valeurs (ici des array) avec "in" y est-il pour quelque chose?

Christian

Le 9 février 2017 à 03:21, Christian Marget <cm2901@free.fr> a écrit :

Bonjour,

J'ai un curieux problème. Pour des questions de maintenance, je liste les
plugins actifs en dé-sérialisant le champ "plugin" de la table spip_meta
        #SET{liste_plugins, #CONFIG{plugin}|unserialize}

et en parcourant ce tableau par une boucle DATA. Jusque là tout va bien.

Mais comme la boucle DATA ne fonctionne qu'en SPIP 3 et qu'il me reste
quelques sites en SPIP 2.1, j'ai essayé une autre méthode. Je boucle sur la
table spip_plugin en piochant les préfixes trouvés dans spip_meta. Ça donne
quelque chose comme ça:
        <BOUCLE_alt(PLUGINS){prefixe in #GET{liste_plugins}}>
          #SET{infos, #GET{liste_plugins}|table_valeur{#PREFIXE}}
          [<li>#NOM (#GET{infos}|table_valeur{version})[ -
          (#GET{infos}|table_valeur{etat})]</li>]
        </BOUCLE_alt>

Eh bien, ça marche mais pas pour tous les plugins ! Par exemple, Comments,
YAML, Saisies, SkelEditor sortent bien mais pas Autorité ou Z-core.

À quoi est-ce dû? Le fait de piocher des clés (les préfixes) plutôt que
des valeurs (ici des array) avec "in" y est-il pour quelque chose?

Bonjour,

Je t'invite à lire ce que j'ai fait sur le plugin Info SPIP :

Il faudra que je revois par contre l'inclure PHP en passant par un fichier
plugins_fonctions.php
:slight_smile:

Ybbet.

Christian
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Merci de ta réponse mais ça ne m'aide pas beaucoup puisque ce sont justement des boucles DATA et que mon objectif est de les éviter... Ou alors il y a quelque chose que je n'ai pas vu?

CM

Le 09/02/2017 à 09:21, Ybbet Spip a écrit :

Le 9 février 2017 à 03:21, Christian Marget <cm2901@free.fr <mailto:cm2901@free.fr>> a écrit :
    J'ai un curieux problème. Pour des questions de maintenance, je liste les plugins actifs en dé-sérialisant le champ "plugin" de la table spip_meta
            #SET{liste_plugins, #CONFIG{plugin}|unserialize}

    et en parcourant ce tableau par une boucle DATA. Jusque là tout va bien.

    Mais comme la boucle DATA ne fonctionne qu'en SPIP 3 et qu'il me reste quelques sites en SPIP 2.1, j'ai essayé une autre méthode. Je boucle sur la table spip_plugin en piochant les préfixes trouvés dans spip_meta. Ça donne quelque chose comme ça:
            <BOUCLE_alt(PLUGINS){prefixe in #GET{liste_plugins}}>
              #SET{infos, #GET{liste_plugins}|table_valeur{#PREFIXE}}
              [<li>#NOM (#GET{infos}|table_valeur{version})[ -
              (#GET{infos}|table_valeur{etat})]</li>]
            </BOUCLE_alt>

    Eh bien, ça marche mais pas pour tous les plugins ! Par exemple, Comments, YAML, Saisies, SkelEditor sortent bien mais pas Autorité ou Z-core.

    À quoi est-ce dû? Le fait de piocher des clés (les préfixes) plutôt que des valeurs (ici des array) avec "in" y est-il pour quelque chose?

Je t'invite à lire ce que j'ai fait sur le plugin Info SPIP :
Connexion · GitLab

Le 09/02/2017 à 11:34, Christian Marget a écrit :

Merci de ta réponse mais ça ne m'aide pas beaucoup puisque ce sont
justement des boucles DATA et que mon objectif est de les éviter... Ou
alors il y a quelque chose que je n'ai pas vu?

De toutes façons y a pas de table PLUGINS en 2.1 déjà. Je vois pas trop ce que tu cherches à faire.

Le 09/02/2017 à 12:30, Matthieu Marcillaud a écrit :

Le 09/02/2017 à 11:34, Christian Marget a écrit :

Merci de ta réponse mais ça ne m'aide pas beaucoup puisque ce sont
justement des boucles DATA et que mon objectif est de les éviter... Ou
alors il y a quelque chose que je n'ai pas vu?

De toutes façons y a pas de table PLUGINS en 2.1 déjà. Je vois pas trop ce que tu cherches à faire.

Ah ! M... ! Je n'avais pas vu ça. Si je comprends bien, en SPIP 2 il faut que je bidouille quelque chose en PHP pour exploiter le champ plugin de spip_meta?

Mon but est de créer un squelette spécifique sur chacun de mes sites, que je puisse appeler depuis un site "central" pour me lister les plugins actifs (sauf ceux de la dist). Pour le moment, j'essaie déjà de l'écrire en local...

CM