Carnet Wiki

Migrer un plugin vers spip3

Version 34 — Mars 2014 — goetsu

<blockquote class="spip">

- trucs et astuces pour le portage des plugins sous spip 3
-  trucs glanés à partir de l’analyse des commits de la zone qui signalent des adaptations du code pour compatibilité avec spip3.

Cette liste ouverte à tous : reportez y vos trucs et bonnes pratiques de portage des plugins vers spip3

Voir aussi :

-  l’aide mémoire de la représentation en mémoire de la base de donnée (les « déclarations ») pour SPIP3, avec la comparaison avec SPIP2 : https://spreadsheets.google.com/spreadsheet/ccc?key=0Aq-LDsZ2YhzydDBvMjRSamQ5aWtfNWpKcnFESjQwU3c&hl=fr&authkey=CMmWhpEC
-  migrer un plugin vers spip2
-  Créer un nouvel objet dans le futur SPIP 3
-  Configurer une fonctionnalité de votre site, ou un plugin
-  CFG : comment s’en passer !
-  Rédaction du paquet.xml
-  Ça peut servir de respecter la charte typographique : ecrire/?exec=charte (accessible grâce au plugin dev)

</blockquote>


-  Un plugin utile pour la migration de plugins pour SPIP 3 : Le plugin PlugOnet permet de transformer automatiquement un fichier plugin.xml en paquet.xml et contient une documentation détaillée de paquet.xml (dans la colonne de droite de /ecrire/ ?exec=plugonet_generer). Il permet aussi de valider les fichiers paquet.xml des plugins installés. Pour l’utiliser : Installer sur votre site le plugin à migrer sous SPIP 3, installer PlugOnet, puis aller dans /ecrire/ ?exec=plugonet_generer.

Vous pourrez utiliser  ?exec=valider_xml&var_url=../plugins/auto/-nom_plugin-/paquet.xml


Détecter et comparer la version de spip pour s’adapter

include_spip('plugins/installer'); // spip_version_compare dans SPIP 3.x 
include_spip('inc/plugin'); // spip_version_compare dans SPIP 2.x 
if (spip_version_compare($GLOBALS['spip_version_branche'], '3..0alpha', '>=')) { 
	        define('_SPIP3', true); 
} else { 
	        define('_SPIP3', false); 
}

Les Les utilisateurs du Couteau Suisse peuvent directement utiliser le test suivant (sans inclusion) :
_ if(defined('_SPIP30000 &lt; code>if(defined('_SPIP30000 ')) ...


http://zone.spip.org/trac/spip-zone/changeset/48226 apporte son lot d’éléments migrateurs :

Paginations  : Dans un fichier squelette du privé,
[<p class='pagination'>(#PAGINATION)</p>]
devient
[<p class='pagination'>(#PAGINATION{prive})</p>]

Nommages CSS  : La classe ’liste_items’ devient ’liste-items’ !!

Boutons du menu de la partie privée

Les les écritures qui suivent sont un peu dépréciées car elles utilisent le plugin.xml. ->sousmenu[’..]]
_ En SPIP 3, mieux vaut écrire un paquet.xml (voir la doc) qui possède le tag

pour définir les menus. De plus ,  [)@@@SPIP_DI" id="nh1">1] (en supposant que « PLUGIN » est le préfixe du plugin) :
de /base/PLUGIN_install.php
dans /PLUGIN_administrations.php