Bonjour,
Je suis en train d’essayer de faire un plugin spip.
Dans le but de pouvoir le partager facilement par la suite, je souhaiterais qu’il puisse s’installer soit dans /plugins, soit dans un sous répertoire de /plugins car le moteur de SPIP le permet.
J’ai besoin, depuis le fichier monplugin_options.php par exemple, de connaitre l’URL complète de mon plugin et je n’y parviens pas simplement.
(j’en ai besoin pour référencer des icones qu’il contient)
Mes pistes :
- _DIR_PLUGINS est évidemment identique pour chaque plugin… donc pas utilisable sauf si le plugin était toujours installé au même endroit… contrainte dont je voudrais justement m’afranchir.
- en partant de _DIR_PLUGINS, scanner le filesystem à la recherche d’un sous répertoire ayant le nom de celui de mon plugin… J’aime pas trop (contrainte sur le nom du répertoire d’install + lourdeur manifeste)
J’avoue ne pas être familier avec le fonctionnement du coeur de spip… et j’avoue aussi humblement qu’il me parraîtrait logique de ne pas avoir besoin d’en savoir beaucoup plus.
Malheureusement, je n’ai pas encore trouvé de doc d’interface répondant à ce type de questions…
Merci pour votre aide,
Olivier
_DIR_PLUGINS est évidemment identique pour chaque plugin... donc pas
utilisable sauf si le plugin était toujours installé au même endroit..
contrainte dont je voudrais justement m'afranchir.
C'est _DIR_PLUGIN_XXXXX où xxxxx est le nom (enfin, "prefixe") de ton plugin.
Par exemple pour le plugin Autorité j'utilise, pour faire référence à
l'image, le chemin :
_DIR_RACINE._DIR_PLUGIN_AUTORITE."illuminati-24.gif"
-- Fil
Olivier Pessin a écrit :
Bonjour,
J'ai besoin, depuis le fichier monplugin_options.php par exemple, de connaitre l'URL complète de mon plugin
Il y a une chose simple :
Lorsque ton plugin est actif, la constante _DIR_PLUGIN_prefixe_du_plugin_en_majuscule est créée. (a partir de 1.9.2 si je ne m'abuse, ou 1.9.1 peut être je ne sais plus.)
http://trac.rezo.net/trac/spip/changeset/7416
MM.
Tu n'as qu'à ecrire cela dans ton fichier machin_mes_options.php de ton plugin
(machin = prefix de ton plugin) :
// -- Definition du chemin du plugin SPIP-Album -------------------------
if (!defined('_DIR_PLUGIN_ALBUM')) { // definie automatiquement en 1.9.2
$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
define('_DIR_PLUGIN_MACHIN',(_DIR_PLUGINS.end($p).'/'));
}
Et tu utilises dans ton code la constante _DIR_PLUGIN_MACHIN si le chemin est
absolu, mais si le chemin est relatif (cela veut dire qu'il peut être modifié
par l'utilisateur final, par exemple pour l'affichage d'un logo) previligie
#CHEMIN{}.
Xavier BUROT
Selon Olivier Pessin <opessin@gmail.com>:
Bonjour,
Je suis en train d'essayer de faire un plugin spip.
Dans le but de pouvoir le partager facilement par la suite, je souhaiterais
qu'il puisse s'installer soit dans /plugins, soit dans un sous répertoire de
/plugins car le moteur de SPIP le permet.
J'ai besoin, depuis le fichier monplugin_options.php par exemple, de
connaitre l'URL complète de mon plugin et je n'y parviens pas simplement.
(j'en ai besoin pour référencer des icones qu'il contient)
Mes pistes :
- _DIR_PLUGINS est évidemment identique pour chaque plugin... donc pas
utilisable sauf si le plugin était toujours installé au même endroit..
contrainte dont je voudrais justement m'afranchir.
- en partant de _DIR_PLUGINS, scanner le filesystem à la recherche
d'un sous répertoire ayant le nom de celui de mon plugin.. J'aime pas trop
(contrainte sur le nom du répertoire d'install + lourdeur manifeste)
J'avoue ne pas être familier avec le fonctionnement du coeur de spip... et
j'avoue aussi humblement qu'il me parraîtrait logique de ne pas avoir besoin
d'en savoir beaucoup plus.
Malheureusement, je n'ai pas encore trouvé de doc d'interface répondant à ce
type de questions...
Merci pour votre aide,
Olivier