Skip to content
Extraits de code Groupes Projets
Valider e456ce76 rédigé par Fil's avatar Fil
Parcourir les fichiers

mettre le chemin vers les dirs des plugins activés dans le PATH

et gestion un peu différente des pages privées des plugins (cf. _plugins_/rien/ sur SPIP-Zone)
parent b89fbb84
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -137,31 +137,17 @@ if (!isset($reinstall)) { ...@@ -137,31 +137,17 @@ if (!isset($reinstall)) {
} }
} }
### CAS SPECIAL : on a recupere un appel a un plugin
### ecrire/?plugin=forms&page=forms_edit
$var_f = '';
if ($plug = $_GET['plugin']) {
if (!in_array($plug, $plugins)) {
## envoyer sur la page de configuration des plugins ??
die ("Le plugin '".htmlspecialchars($plug)."' n'est pas activé, ou inexistant.");
}
if (preg_match(',^[0-9a-z_]*$,i', $_GET['page'])
AND (
file_exists($f = _DIR_PLUGINS.$plug.'/ecrire/'.$_GET['page'].'.php')
OR file_exists($f = _DIR_PLUGINS.$plug.'/ecrire/index.php')
)) {
include_ecrire("inc_presentation");
include($f);
} else {
die ("Le plugin '".htmlspecialchars($plug)."' n'a pas d'interface utilisateur.");
}
}
### cas general: on passe la main a la page demandee dans ecrire/ //
else { // Determiner la fonction qui fabriquera la page demandee, et l'appeler
$var_f = include_fonction($SCRIPT_NAME); //
$var_f();
} ## temporaire en attendant un truc general qui evitera $SCRIPT_NAME
if ($_GET['page'] AND
preg_match(',^[0-9a-z_]*$,i', $_GET['page']))
$SCRIPT_NAME = $_GET['page'];
$var_f = include_fonction($SCRIPT_NAME);
$var_f();
?> ?>
...@@ -539,23 +539,35 @@ function texte_script($texte) { ...@@ -539,23 +539,35 @@ function texte_script($texte) {
// //
function find_in_path ($filename, $path='AUTO') { function find_in_path ($filename, $path='AUTO') {
static $autopath;
// Chemin standard depuis l'espace public // Chemin standard depuis l'espace public
if ($path == 'AUTO') { if ($path == 'AUTO') {
$path = _SPIP_PATH; if (!$autopath) {
if ($GLOBALS['dossier_squelettes']) $autopath = _SPIP_PATH;
$path = $GLOBALS['dossier_squelettes'].'/:'.$path; // Ajouter les repertoires des plugins
foreach ($GLOBALS['plugins'] as $plug)
$autopath = _DIR_PLUGINS.$plug.'/:'.$autopath;
if ($GLOBALS['dossier_squelettes'])
$autopath = $GLOBALS['dossier_squelettes'].'/:'.$autopath;
}
$path = $autopath;
} }
#spip_log("path = $path");
// Parcourir le chemin // Parcourir le chemin
foreach (split(':', $path) as $dir) { foreach (split(':', $path) as $dir) {
// Depuis l'espace prive, remonter d'un cran, sauf pour les absolus // Depuis l'espace prive, remonter d'un cran, sauf pour :
$racine = ($dir[0]=='/') ? '' : _DIR_RACINE; // - les absolus (/) ; - les locaux (./) ; les remontees (../)
if ($dir[0] == '.') $dir = ""; $racine = preg_match('@^([.]{0,2}/)@', $dir) ? '' : _DIR_RACINE;
else if ($dir && $dir[strlen($dir)-1] <> '/') $dir .= "/"; // ajouter un / eventuellement manquant
$f = "$racine$dir$filename"; if (substr($dir,_1) <> '/')
# spip_log("find_in_path: essai $racine $dir $filename"); $dir .= "/";
if (@is_readable($f)) { #spip_log("find_in_path: essai $racine $dir $filename");
if (@is_readable($f = "$racine$dir$filename")) {
#spip_log("trouve $f");
return $f; return $f;
} }
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter