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