function ecran_securite_fichier_distant($flux) { // besoin du 1er appel uniquement if($flux['outil']!='ecran_securite' || isset($flux['texte'])) return $flux; // fichier global de config (y compris la mutu) $flux['fichier_local'] = dirname(cs_spip_file_options(4)).'/ecran_securite.php'; // fichier local de config #$flux['fichier_local'] = dirname(cs_spip_file_options(3)).'/ecran_securite.php'; return $flux; }
function cs_verif_FILE_OPTIONS($activer=false, $ecriture = false) { $include = str_replace('\\','/',realpath(_DIR_CS_TMP.'mes_spip_options.php')); $include = "@include_once \"$include\";\nif(\$GLOBALS['cs_spip_options']) define('_CS_SPIP_OPTIONS_OK',1);"; $inclusion = _CS_SPIP_OPTIONS_A."\n// Please don’t modify; this code is auto-generated\n$include\n"._CS_SPIP_OPTIONS_B; cs_log("cs_verif_FILE_OPTIONS($activer, $ecriture) : le code d'appel est $include"); if($fo = cs_spip_file_options(1)) { if(lire_fichier($fo, $t)) { // verification du contenu inclu $ok = preg_match('`\s*('.preg_quote(_CS_SPIP_OPTIONS_A,'`').'.*'.preg_quote(_CS_SPIP_OPTIONS_B,'`').')\s*`ms', $t, $regs); // s'il faut une inclusion if($activer) { // pas besoin de reecrire si le contenu est identique a l'inclusion if(($regs[1]==$inclusion)) $ecriture = false; $t2 = $ok?str_replace($regs[0], "\n$inclusion\n\n", $t):preg_replace(',<\?(?:php)?\s*,', '<?'."php\n$inclusion\n\n", $t); } else { $t2 = $ok?str_replace($regs[0], "\n", $t):$t; } cs_log(" -- fichier $fo present. Inclusion " . ($ok?" trouvee".($ecriture?" et remplacee":""):"absente".(($ecriture && $activer)?" mais ajoutee":""))); if($ecriture) if($t2<>$t) { $ok = ecrire_fichier($fo, $t2); if(!$ok) cs_log("ERREUR : l'ecriture du fichier $fo a echoue !"); } return; } else cs_log(" -- fichier $fo illisible. Inclusion non permise"); } else $fo = cs_spip_file_options(2); // creation if($activer) { if($ecriture) $ok=ecrire_fichier($fo, '<?'."php\n".$inclusion."\n\n?".'>'); cs_log(" -- fichier $fo absent. Fichier '$fo' et inclusion ".((!$ecriture || !$ok)?"non ":"")."crees"); } }
function cs_ecrire_config($regexpr, $replace, $ajout_sinon='') { $fo = cs_spip_file_options(1); $t=''; if ($fo && strlen($regexpr) && strlen($replace)) { if (lire_fichier($fo, $t) && strlen($t)) { $t = preg_replace($regexpr, $replace, $t, 1); if(ecrire_fichier($fo, $t)) return; else if(defined('_LOG_CS')) cs_log("ERREUR : l'ecriture du fichier $fo a echoue !"); } else if(defined('_LOG_CS')) cs_log(" -- fichier $fo illisible. Inclusion non permise"); if(strlen($t)) return; } // creation if(!strlen($ajout_sinon)) return; $fo = cs_spip_file_options(2); $ok = ecrire_fichier($fo, '<?'."php\n".$ajout_sinon."\n?".'>'); if(defined('_LOG_CS')) cs_log(" -- fichier $fo absent ".($ok?'mais cree avec l\'inclusion':' et impossible a creer')); }
function show_file_options() { return cs_canonicalize(str_replace("../", "", _DIR_RESTREINT_ABS).cs_spip_file_options(3)); }