Bifurcation depuis
spip / spip
17900 validations de retard le dépôt en amont.
inc_utils.php 22,93 Kio
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2006 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
//
// Gestion des inclusions et infos repertoires
//
$included_files = array();
function include_local($file, $silence=false) {
$nom = preg_replace("/\.php[3]?$/",'', $file);
# spip_log("'$nom' '$file'");
if (@$GLOBALS['included_files'][$nom]++) return;
if (is_readable($f = $nom . '.php'))
include($f);
else if (is_readable($f = $nom . _EXTENSION_PHP))
include($f);
else if (!$silence) spip_log($file . " illisible");
}
function include_ecrire($file) {
# Hack pour etre compatible avec les mes_options qui appellent cette fonction
define('_DIR_INCLUDE', _DIR_RESTREINT);
include_local(_DIR_INCLUDE . $file);
}
// charge un fichier perso ou, a defaut, standard
// et retourne si elle existe le nom de la fonction homonyme, ou de suffixe _dist
function include_fonction($nom) {
$inc = ("exec_" . $nom . '.php');
$f = find_in_path($inc);
if ($f) {
if (!$GLOBALS['included_files'][$f]++) include($f);
#spip_log("surcharge de $nom trouvee dans $f");
} else {
$f = (defined(' _DIR_INCLUDE') ? _DIR_INCLUDE : _DIR_RESTREINT)
. $inc;
if (is_readable($f)) {
if (!$GLOBALS['included_files'][$f]++) include($f);
} else {
$inc = "";
}
}
if (function_exists($nom))
return $nom;
elseif (function_exists($f = $nom . "_dist"))
return $f;
else {
spip_log("fonction $nom indisponible" .
($inc ? "" : "(aucun fichier exec_$nom disponible)"));
exit;
}
}
// un pipeline est lie a une action et une valeur
// chaque element du pipeline est autorise a modifier la valeur
//
// le pipeline execute les elements disponibles pour cette action,