Carnet Wiki

Migrer un plugin vers spip3

Version 32 — Mars 2014 YannX

<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)
</quote >
- Un plugin utile 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.

</blockquote>

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

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

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


<
code>include_spip(’plugins/installer

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 utilisateurs du Couteau Suisse peuvent directement utiliser le test suivant (sans inclusion) :
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 écritures qui suivent sont un peu dépréciées car elles utilisent le plugin.xml. [1]

/base/PLUGIN_install.php&lt;/code >  (en supposant que "PLUGIN" est  le préfixe du  de  ton  plugin):
 _  de  &lt; code>/base/PLUGIN_install . ) php

_ dans /PLUGIN_administrations.php