[spip-dev] Etat de l'art du développement de plugins pour SPIP 2

Bonjour,

J'ai eu beau parcourir les différents sites de la galaxie SPIP, je n'ai pas encore trouvé de doc claire sur l'état de l'art du développement de plugins pour SPIP 2, c'est à dire ce qu'il y a de plus optimal à faire quand on ne cherche pas à être compatible avec SPIP 1.9.

Pas moyen de trouver deux plugins codés de la même manière : installation/désinstallation, pages privées en squelettes, cron ou genie, etc.

Du coup, j'ai une première question pour amorcer une collecte de bonnes pratiques :

De quelle manière dois-je constituer les pages privées pour qu'elles profitent de la mise en page par défaut (et des nouvelles "robes") ?

Je suis tombé sur des trucs comme ça par exemple :

[(#VAL|debut_gauche{true})]
[(#VAL|debut_cadre_enfonce{true})]
[(#VAL{true}|fin_cadre_enfonce)]
[(#VAL|debut_droite{true})]
[(#VAL|debut_cadre_relief{true})]
Etc.

Est-ce la bonne méthode ?

Pourquoi dans ce cas passe-t-on parfois {true} à #VAL, et parfois au filtre ?

Merci d'avance !

-Nicolas

Nicolas Hoizey a écrit :

Du coup, j'ai une première question pour amorcer une collecte de bonnes pratiques :

Il y a déjà un recueil de mauvaises pratiques
dans les fichies vieilledef.php (orthographe à préciser)

JLuc

[(#VAL|debut_gauche{true})]
[(#VAL|debut_cadre_enfonce{true})]
[(#VAL{true}|fin_cadre_enfonce)]
[(#VAL|debut_droite{true})]
[(#VAL|debut_cadre_relief{true})]
Etc.

Est-ce la bonne méthode ?

Comme pour l'instant il n'y a pas encore de modèles (au sens SPIP) ou de fonds réutilisables, oui c'est une bonne méthode si tu veux faire tes pages privées en squelettes.
Pour certaines des fonctions c'est pas forcément appréciable car je crois me rappeler qu'il y en a qui génèrent du code pas super "propre".

Pourquoi dans ce cas passe-t-on parfois {true} à #VAL, et parfois au
filtre ?

Ça c'est comme tous les filtres : la balise sur laquelle on fait le filtre constitue le premier argument, alors que les accolades qui viennent ensuite c'est le deuxième argument (puis 3ème, etc).

Donc tout dépend si dans ce filtre précis il y a un booléen à mettre en premier ou deuxième argument.

[(#VAL|debut_gauche{true})]
[(#VAL|debut_cadre_enfonce{true})]
[(#VAL{true}|fin_cadre_enfonce)]
[(#VAL|debut_droite{true})]
[(#VAL|debut_cadre_relief{true})]
Etc.

Est-ce la bonne méthode ?

Comme pour l'instant il n'y a pas encore de modèles (au sens SPIP) ou de fonds réutilisables, oui c'est une bonne méthode si tu veux faire tes pages privées en squelettes.
Pour certaines des fonctions c'est pas forcément appréciable car je crois me rappeler qu'il y en a qui génèrent du code pas super "propre".

Mais du coup, prévoir dès maintenant les modèles ou noisettes permettant de structurer la page, en reprenant proprement ce que font ces filtres/fonctions, serait intéressant, non ?

Pourquoi dans ce cas passe-t-on parfois {true} à #VAL, et parfois au
filtre ?

Ça c'est comme tous les filtres : la balise sur laquelle on fait le filtre constitue le premier argument, alors que les accolades qui viennent ensuite c'est le deuxième argument (puis 3ème, etc).
Donc tout dépend si dans ce filtre précis il y a un booléen à mettre en premier ou deuxième argument.

OK. Du coup faut vraiment pas se tromper dans les exemples que j'ai cités...

-Nicolas

[(#VAL|debut_gauche{true})]
[(#VAL|debut_cadre_enfonce{true})]
[(#VAL{true}|fin_cadre_enfonce)]
[(#VAL|debut_droite{true})]
[(#VAL|debut_cadre_relief{true})]
Etc.

Est-ce la bonne méthode ?

Comme pour l'instant il n'y a pas encore de modèles (au sens SPIP) ou de fonds réutilisables, oui c'est une bonne méthode si tu veux faire tes pages privées en squelettes.

Non, c'est horrible.
On va déjà galèrer à se débarrasser de toute cette tripaille datée dans le php, il serait sympa de pas en recoller dans le html.

La bonne méthode, pérenne, c'est ça :

- ce squelette est pris en charge par exec/fond.php quand on visualise ecrire/?exec=controler_urls
- le premier <hn> de la page est automatiquement repris en title
- le contenu entre
<!--#navigation-->
et
<!--/#navigation-->

est placé dans la colonne navigation. idem pour
<!--#extra-->
et
<!--/#extra-->

Pour certaines des fonctions c'est pas forcément appréciable car je crois me rappeler qu'il y en a qui génèrent du code pas super "propre".

Mais du coup, prévoir dès maintenant les modèles ou noisettes permettant de structurer la page, en reprenant proprement ce que font ces filtres/fonctions, serait intéressant, non ?

Pourquoi dans ce cas passe-t-on parfois {true} à #VAL, et parfois au
filtre ?

Ça c'est comme tous les filtres : la balise sur laquelle on fait le filtre constitue le premier argument, alors que les accolades qui viennent ensuite c'est le deuxième argument (puis 3ème, etc).
Donc tout dépend si dans ce filtre précis il y a un booléen à mettre en premier ou deuxième argument.

OK. Du coup faut vraiment pas se tromper dans les exemples que j'ai cités...

Pitié, évitons de pérenniser tout cela, vraiment.
Cédric

Super, merci Cédric !

Peut-on dire du coup que ce plugin "urls_etendues" est le plus adapté comme exemple de plugin SPIP 2 ?

Est-ce qu'une doc est entamée sur le sujet quelque part, que je pourrais aider à préciser ou enrichir ?

* Nicolas Hoizey tapuscrivait, le 16/06/2009 10:31:

Est-ce qu'une doc est entamée sur le sujet quelque part, que je pourrais aider à préciser ou enrichir ?

http://programmer.spip.org/ non ?

Bin non, y'a rien sur le sujet ce site (que j'ai parcouru dans tous les sens avec espoir), et on ne peut pas y contribuer...

-Nicolas

Presque tout est là :
http://trac.rezo.net/trac/spip/changeset/13800

Pas de doc officielle pour le moment. C’est une fonctionnalité amenée sur la version dev, et ajoutée sur la version stable ensuite pour permettre le support multi version des plugins.

Plus généralement, les plugins à utiliser comme modèle technique pour le développement d’interfaces privées sont plutôt :
http://zone.spip.org/trac/spip-zone/browser/core/plugins/forum
http://zone.spip.org/trac/spip-zone/browser/core/plugins/sites
http://zone.spip.org/trac/spip-zone/browser/core/plugins/urls_etendues
http://zone.spip.org/trac/spip-zone/browser/plugins/gestion_documents

Cédric

Ca c’est cool !! :slight_smile:

Merci ! :slight_smile:

Merci !

Et pour participer à l’effort de documentation, faut attendre une stabilisation, ou on peut se lancer ?

Et pour participer à l'effort de documentation, faut attendre une
stabilisation, ou on peut se lancer ?

lance toi, on n'en voudra à personne.

Sur spip.net, du coup, ou sur programmer.spip.org ?

-Nicolas

Je viens de découvrir cette page, qui doit beaucoup participer à la pérennité de codes obsolètes :
http://www.spip-contrib.net/PortageV2

Je commence une doc plus à jour sur spip.net, tous co-auteurs bienvenus !
http://www.spip.net/ecrire/?exec=articles&id_article=4136

J’ai ajouté un message d’avertissement sur la page concernée.
Cédric

Cédric Morin a écrit :

    Je viens de découvrir cette page, qui doit beaucoup participer à la
    pérennité de codes obsolètes :
    PortageV2 : Migrer un plugin vers SPIP2

J'ai ajouté un message d'avertissement sur la page concernée.

Je suis à l'origine de cette page qui je l'espère en a dépanné plus d'un.
Elle a été élaborée en son temps à partir des upgrades réels constatés sur la zone
mais ceux ci n'étaient pas forcément optimum ...
ou peuvent être maintenant déjà dépassés.

Puisque tu as indiqué des bons liens
- en réponse à une question déjà posée sur la zone et restée longtemps sans réponse -
j'ai complété ton message d'avertissement par ces bons liens !

JLuc

Cédric Morin a écrit :

   Je viens de découvrir cette page, qui doit beaucoup participer à la
   pérennité de codes obsolètes :
   PortageV2 : Migrer un plugin vers SPIP2
J'ai ajouté un message d'avertissement sur la page concernée.

Je suis à l'origine de cette page qui je l'espère en a dépanné plus d'un.

Je le pense !

Je signalais juste qu'elle ne correspond pas à l'état de l'art comme le signale Cédric, mais plutôt à ce qu'il faut faire à minima pour rendre opérationnels de vieux développements.

Elle a été élaborée en son temps à partir des upgrades réels constatés sur la zone
mais ceux ci n'étaient pas forcément optimum ...
ou peuvent être maintenant déjà dépassés.

Puisque tu as indiqué des bons liens
- en réponse à une question déjà posée sur la zone et restée longtemps sans réponse -
j'ai complété ton message d'avertissement par ces bons liens !

Je corrige « état de l’Art en Juin 2006 » par « état de l’Art en juin 2009 »... :wink:

-Nicolas