Your IP : 216.73.216.59


Current Path : /home/quelfutuu/www/lchg/plugins/auto/couteau_suisse/v1.16.1/action/
Upload File :
Current File : /home/quelfutuu/www/lchg/plugins/auto/couteau_suisse/v1.16.1/action/description_outil.php

<?php
#-----------------------------------------------------#
#  Plugin  : Couteau Suisse - Licence : GPL           #
#  Auteur  : Patrice Vanneufville, 2006               #
#  Contact : patrice¡.!vanneufville¡@!laposte¡.!net   #
#  Infos : https://contrib.spip.net/?article2166      #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return;

include_spip('inc/filtres');

function action_description_outil_dist() {
cs_log("INIT : action_description_outil_dist() - Une modification de variable(s) a ete demandee !");
	$securiser_action = charger_fonction('securiser_action', 'inc');
	$arg = $securiser_action();
	spip_log("action_description_outil du Couteau suisse : $arg / " . _request('submit'));
//	spip_log($_POST);

//cs_log(" -- arg = $arg (index de l'outil appelant)");
	if (preg_match(",^\W*(\d+)$,", $arg, $r))
		action_description_outil_post($r[1]);
	else spip_log("action_description_outil_dist $arg pas compris");
cs_log(" FIN : action_description_outil_dist($arg)");
}

function action_description_outil_post($index) {
	global $metas_vars;
	if(defined('_SPIP19300')) $connect_id_auteur = $GLOBALS['auteur_session']['id_auteur'];
		else global $connect_id_auteur;
cs_log("Debut : action_description_outil_post($index) - On modifie la(les) variable(s) dans la base");

	// on recupere dans le POST le nom des variables a modifier et le nom de l'outil correspondant
	$variables = unserialize(urldecode(corriger_caracteres(_request('variables'))));
	$outil = corriger_caracteres(_request('outil'));
//cs_log($variables, '$variables = ');
cs_log($metas_vars, 'metas_vars :');
	// besoin des outils pour l'autorisation de modifier les variables
	include_spip('cout_utils');
	include_spip('config_outils');
	global $outils, $cs_variables;
	// on traite chaque variable
	foreach($variables as $var) if(autoriser('configurer', 'variable', 0, NULL, array('nom' => $var, 'outil' => $outils[$outil]))) {
		// on recupere dans le POST la nouvelle valeur de la variable
		$final = _request($var) ? corriger_caracteres(_request($var)) : '';
		if(in_array($var, $metas_vars['_nombres']))
			$final = intval($final);
		spip_log("Outil du Couteau Suisse ($outil). Demande de modification sur une variable par l'auteur id=$connect_id_auteur : %$var% = $final");
		// pas de modification de variable si l'outil utilise une variable externe
		$ok_modif = !isset($cs_variables[$var]['externe']);
		// action eventuelle apres validation
		if(isset($cs_variables[$var]['action'])) {
			$action = '$_CS_DATA = ' . var_export($final, 1) . "; ";
			$action = ($ok_modif ? $action : "/* Variable non modifiable : $action */ ")
				. str_replace('%s', '$_CS_DATA', $cs_variables[$var]['action']);
			spip_log("Outil du Couteau Suisse ($outil). Demande d'action sur cette variable : " . $action);
			eval($action);
			$final = $_CS_DATA;
		}
		// et on modifie les metas !
		if($ok_modif) $metas_vars[$var] = $final;

	} else
		spip_log("Outil du Couteau Suisse #$index. Modification interdite de la variable %$var% par l'auteur id=$connect_id_auteur !!");
//cs_log($metas_vars, " -- metas_vars = ");
	ecrire_meta('tweaks_variables', serialize($metas_vars));
	if(!defined('_SPIP19300')) ecrire_metas(); # Pour SPIP 1.92

cs_log(" -- donc, reinitialisation forcee !");
	// include des fichiers fonctions, si besoin, avant suppression du cache
	if (function_exists('include_fichiers_fonctions')) // SPIP >= 3.3
		include_fichiers_fonctions();
	// on reinitialise tout, au cas ou ...
	include_spip('inc/invalideur');
	suivre_invalideur("1"); # tout effacer
	purger_repertoire(_DIR_SKELS);
	purger_repertoire(_DIR_CACHE);
	purger_repertoire(_DIR_VAR . 'cache-js');
	purger_repertoire(_DIR_VAR . 'cache-css');
	include_spip('cout_utils');
	cs_initialisation(true);
cs_log(" FIN : action_description_outil_post(Array($index)) - Reinitialisation forcee terminee.");
}
?>