On 27 Dec, 2006, at 01:55, Olivier Gautier wrote:
Bonsoir,
je cherche à écrire des plugins mais je bute sur certaines fonctions de
SPIP pour lesquelles je n'ai pas trouvé de documentation :
- quelle est la syntaxe propre à SPIP pour se connecter à la base de
donnée ?
tout cela se trouve dans base/abstract_sql.php qui offre une couche d'abstraction pour se connecter à la base. En particulier, pour faire des selects:
http://doc.spip.org/@spip_abstract_select
- quelle est la syntaxe, ou y a-t-il une méthode propre à SPIP pour
vérifier la présence de tables,
Hum, là je ne suis pas sûr,
créer de nouvelle tables dans la base de
données ?
moi je fais:
$table_pref = 'spip';
if ($GLOBALS['table_prefix']) $table_pref = $GLOBALS['table_prefix'];
spip_query("CREATE TABLE IF NOT EXISTS `".str_replace('spip_',$table_pref.'_mots_',$table_principale)."` (`id_mot` bigint(20) NOT NULL default '0',`$id_chose` bigint(20) NOT NULL default '0', KEY `$id_chose` (`id_mot`),KEY `id_mot` (`id_mot`)) TYPE=MyISAM;;");
- y a-t-il une documentation plus approfondie que la doc en ligne pour :
doc.spip.org
- la rédaction de pages pour l'espace privé ;
pas trop, il faut regarder comment c'est fait dans les plugins de la zone. C'est assez simple, à la base, il faut faire un fichier mapage.php dans un repertoire exec/ avec une fonction exec_mapage_dist() dedans.
Aussi voir toutes les fonctions dans:
inc/presentation.php
- la vérification des
status des personnes dans l'espace privé ;
il faut regarder dans les globales $connect_statut et $connect_toutes_rubriques. Moi j'ai jamais très bien compris, mais c'est possible que ça ait changé dans la 1.9.2 ce truc là.
- le fonctionnement des
pipelines ;
C'est assez simple aussi, une fois que tu as trouvé quel pipeline t'intéresse (s'il y en a un, sinon il faut le demander sur spip-dev), tu ajoutes dans ton plugin.xml:
<pipeline>
<nom>affiche_droite</nom>
<action>affiche_droite</action>
<inclure>TriMots.php</inclure>
</pipeline>
où:
- nom: est le nom du pipeline
- action: est le nom de la fonction (sans le prefix du plugin) à appeler à ce pipeline, c'est optionel s'il a le même nom que le pipeline.
- inclure: est le fichier dans lequel se trouve la fonction à appeler et qui sera inclus à l'appel du pipeline
la fonction a la signature:
function prefixe_affiche_droite($arguments)
$arguments['args'] contient les arguments de la page, par exemple: $arguments['args']['exec'] pour savoir dans quelle page tu te trouves si le pipeline est appelé depuis des pages différentes.
tu dois modifier (ajouter le texte à afficher au lieu de faire un echo): $arguments['data']
puis retourner $arguments à la fin de la fonction pour les autres pipeline qui suivent.
- toute doc approfondie sur la compréhension de la
construction de l'espace privé
doc.spip.org et les archives des listes... (en particulier spip-core)
Bonne année,
Pierre