Skip to content
Extraits de code Groupes Projets
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,