Différences entre versions de « Plugin SPIP »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m
imported>SylvainBeucler
Ligne 19 : Ligne 19 :
 
Certaines fonctions ont changé. Pour convertir le code de votre plugin, une bonne source d'information est <code>ecrire/inc/vieilles_defs.php</code> qui définit des anciennes fonctions avec la nouvelle API 2.0.
 
Certaines fonctions ont changé. Pour convertir le code de votre plugin, une bonne source d'information est <code>ecrire/inc/vieilles_defs.php</code> qui définit des anciennes fonctions avec la nouvelle API 2.0.
  
= Insérer une nouvelle page =
+
= Insérer une nouvelle page admin =
  
 
* Définir le préfixe de votre plugin (convention de nommage)
 
* Définir le préfixe de votre plugin (convention de nommage)
* Créer plugins/votre_plugin/exec/prefix_mapage.php
+
* Créer plugins/mon_plugin-0.1/exec/monprefixe_mapage.php
* Y définir prefix_mapage() (ou prefix_mapage_dist()?)
+
* Y définir <code>monprefix_mapage()</code> (ou <code>monprefix_mapage_dist()</code>)
* Corps de la fonction:
+
* Contenu du fichier:
$commencer_page = charger_fonction('commencer_page', 'inc');
+
<pre>
echo $commencer_page("Mon titre");
+
<?php
# ...
+
if(!defined("_ECRIRE_INC_VERSION")) return;
echo fin_page();
+
 
 +
function exec_monprefixe_index()
 +
{
 +
  $commencer_page = charger_fonction('commencer_page', 'inc');
 +
  echo $commencer_page("Titre (barre de titre du navigateur)");
 +
 
 +
  echo gros_titre("Titre (dans la page)", '<img src="logo.png" alt="" />', false);
 +
 
 +
 
 +
  echo debut_grand_cadre(true);
 +
  echo "Bandeau en haut";
 +
  echo fin_grand_cadre(true);
 +
 
 +
 
 +
  echo debut_gauche("ignored", true);
 +
  echo "À gauche<br />";
 +
 
 +
  echo creer_colonne_droite("", true);
 +
  echo "À droite si grand écran, à gauche sinon<br />";
 +
  echo debut_boite_info(true);
 +
  echo "Encadré";
 +
  echo fin_boite_info(true);
 +
 
 +
  $res = icone_horizontale("Page 1", generer_url_ecrire("monprefixe_page1"),
 +
  "../"._DIR_PLUGIN_MONPREFIXE."fond.gif",
 +
  "../"._DIR_PLUGIN_MONPREFIXE."page1.gif", false);
 +
  echo bloc_des_raccourcis($res); // crée creer_colonne_droite si besoin
 +
 
 +
 
 +
  echo debut_droite("ignored", true); // ferme creer_colonne_droite, si utilisé
 +
  echo "Contenu, au milieu";
 +
 
 +
 
 +
  echo fin_gauche();
 +
  echo fin_page();
 +
}
 +
</pre>
 +
 
 +
Pour le contenu, on peut soit l'écrire avec des <code>echo</code>, soit faire appel à un squelette dans <code>plugins/mon_plugin-0.1/prive/mon_squelette.html</code>:
 +
recuperer_fond('prive/mon_squelette', $_GET);

Version du 14 avril 2009 à 10:48

Introduction

API

http://doc.spip.org/ a pour but de documentation l'API de SPIP, une page par fonction, modifiable par tous. En pratique, peu de fonctions sont documentées. Qui plus est, cette documentation étant sensées être la documentation officielle, le code source se contente d'y faire référence, sans détailler ces fonctions - donc il n'y a pas plus d'informations dans les fichiers .php de ecrire/.

La meilleure source de documentation reste la lecture directe du code source, et l'étude d'autres plugins.

Passer de 1.9 à 2.0

Certaines fonctions ont changé. Pour convertir le code de votre plugin, une bonne source d'information est ecrire/inc/vieilles_defs.php qui définit des anciennes fonctions avec la nouvelle API 2.0.

Insérer une nouvelle page admin

  • Définir le préfixe de votre plugin (convention de nommage)
  • Créer plugins/mon_plugin-0.1/exec/monprefixe_mapage.php
  • Y définir monprefix_mapage() (ou monprefix_mapage_dist())
  • Contenu du fichier:
<?php
if(!defined("_ECRIRE_INC_VERSION")) return;

function exec_monprefixe_index()
{
  $commencer_page = charger_fonction('commencer_page', 'inc');
  echo $commencer_page("Titre (barre de titre du navigateur)");

  echo gros_titre("Titre (dans la page)", '<img src="logo.png" alt="" />', false);


  echo debut_grand_cadre(true);
  echo "Bandeau en haut";
  echo fin_grand_cadre(true);


  echo debut_gauche("ignored", true);
  echo "À gauche<br />";

  echo creer_colonne_droite("", true);
  echo "À droite si grand écran, à gauche sinon<br />";
  echo debut_boite_info(true);
  echo "Encadré";
  echo fin_boite_info(true);

  $res = icone_horizontale("Page 1", generer_url_ecrire("monprefixe_page1"),
			   "../"._DIR_PLUGIN_MONPREFIXE."fond.gif",
			   "../"._DIR_PLUGIN_MONPREFIXE."page1.gif", false);
  echo bloc_des_raccourcis($res); // crée creer_colonne_droite si besoin


  echo debut_droite("ignored", true); // ferme creer_colonne_droite, si utilisé
  echo "Contenu, au milieu";


  echo fin_gauche();
  echo fin_page();
}

Pour le contenu, on peut soit l'écrire avec des echo, soit faire appel à un squelette dans plugins/mon_plugin-0.1/prive/mon_squelette.html:

recuperer_fond('prive/mon_squelette', $_GET);