* @link http://www.spip-contrib.net/?article3572 */ if (!defined("_ECRIRE_INC_VERSION")) return; /** * On charge la config de l'outil et les valeurs d'erreurs renvoyees */ function devdebug_charger_debug(){ // On renvoie direct si pas defini if(!defined('_DEVDEBUG_MODE')) return; // Sinon, on traite if(_DEVDEBUG_MODE==1){ $prive = function_exists('test_espace_prive') ?test_espace_prive() // compatibilite pour SPIP 1.92 :(defined('_DIR_RESTREINT') ? !_DIR_RESTREINT : false); // Les liens d'erreur generes par PHP renvoient ... en local ! dans le php.ini standard // On les definit du type 'http://fr.php.net/manual/en/ %s .php' (necessite une connexion) $devdebug_langues_phpdoc = array('en','fr','de','ja','pl','ro','fa','es','tr'); if(function_exists('utiliser_langue_visiteur')) utiliser_langue_visiteur(); $lang = (isset($GLOBALS['spip_lang']) && in_array($GLOBALS['spip_lang'], $devdebug_langues_phpdoc)) ? $GLOBALS['spip_lang'] : 'fr'; @ini_set('docref_root', "http://www.php.net/manual/".$lang."/"); @ini_set('docref_ext', '.php'); // On lance le php error tracking quoiqu'il arrive @ini_set('track_errors',1); // On evite d'afficher les erreurs repetees @ini_set('ignore_repeated_errors',1); // Compatibilite PHP (recup de 'inc_version', mais qui le definit trop tard) @define('E_DEPRECATED',8192); // PHP 5.3 // Et let's go $niveau = 'E_WARNING'; if(defined('_DEVDEBUG_NIVEAU')) switch(_DEVDEBUG_NIVEAU) { case 'warning' : $niveau = "E_ALL ^ E_NOTICE"; break; case 'error' : $niveau = "E_ALL ^ (E_NOTICE | E_WARNING)"; break; case 'strict' : $niveau = "-1"; break; case 'all' : $niveau = "E_ALL | E_DEPRECATED"; break; case 'user' : $niveau = "E_USER_NOTICE | E_USER_WARNING | E_USER_ERROR"; break; case 'notice' : default : $niveau = "E_ALL"; break; } if(defined('_DEVDEBUG_ESPACE')) switch(_DEVDEBUG_ESPACE) { case 'public' : if(!$prive) { @ini_set('display_errors',1); eval("error_reporting($niveau);"); } else @ini_set('display_errors',0); break; case 'prive' : if($prive) { @ini_set('display_errors',1); eval("error_reporting($niveau);"); } else @ini_set('display_errors',0); break; default : @ini_set('display_errors',1); eval("error_reporting($niveau);"); } } elseif(_DEVDEBUG_MODE==0) @ini_set('display_errors',0); } /** * Page de reglages accessible tout le temps par le webmestre : 'ecrire/?exec=debug' * En cas de probleme * => on detoure le CS : * => "redirect" enleve * => ajout d'un input "exec" hidden * (je sais c'est mal!) */ function exec_debug() { ini_set('display_errors','1'); error_reporting(E_ALL ^ (E_NOTICE | E_WARNING)); include_spip('inc/minipres'); global $connect_statut; if ($connect_statut != "0minirezo" || !autoriser('configurer', 'configuration')){ echo minipres(); exit;} include_spip('inc/cs_outils'); $content = description_outil2('devdebug'); $content = str_replace(" name='redirect'", " name='abcdef'", $content); $content = str_replace("?exec=devdebugger", '', $content); echo minipres(' ',str_replace("", "", $content)); exit; } ?>