[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / devdebug_options.php
1 <?php
2 /**
3 * @name DevelopmentDebugger
4 * @author Piero Wbmstr <piero.wbmstr@gmail.com>
5 * @link http://www.spip-contrib.net/?article3572
6 */
7 if (!defined("_ECRIRE_INC_VERSION")) return;
8
9 /**
10 * On charge la config de l'outil et les valeurs d'erreurs renvoyees
11 */
12 function devdebug_charger_debug(){
13 // On renvoie direct si pas defini
14 if(!defined('_DEVDEBUG_MODE')) return;
15 // Sinon, on traite
16 if(_DEVDEBUG_MODE==1){
17 $prive = function_exists('test_espace_prive')
18 ?test_espace_prive()
19 // compatibilite pour SPIP 1.92
20 :(defined('_DIR_RESTREINT') ? !_DIR_RESTREINT : false);
21 // Les liens d'erreur generes par PHP renvoient ... en local ! dans le php.ini standard
22 // On les definit du type 'http://fr.php.net/manual/en/ %s .php' (necessite une connexion)
23 $devdebug_langues_phpdoc = array('en','fr','de','ja','pl','ro','fa','es','tr');
24 if(function_exists('utiliser_langue_visiteur')) utiliser_langue_visiteur();
25 $lang = (isset($GLOBALS['spip_lang']) && in_array($GLOBALS['spip_lang'], $devdebug_langues_phpdoc))
26 ? $GLOBALS['spip_lang'] : 'fr';
27 @ini_set('docref_root', "http://www.php.net/manual/".$lang."/");
28 @ini_set('docref_ext', '.php');
29 // On lance le php error tracking quoiqu'il arrive
30 @ini_set('track_errors',1);
31 // On evite d'afficher les erreurs repetees
32 @ini_set('ignore_repeated_errors',1);
33 // Compatibilite PHP (recup de 'inc_version', mais qui le definit trop tard)
34 @define('E_DEPRECATED',8192); // PHP 5.3
35 // Et let's go
36 $niveau = 'E_WARNING';
37 if(defined('_DEVDEBUG_NIVEAU')) switch(_DEVDEBUG_NIVEAU) {
38 case 'warning' : $niveau = "E_ALL ^ E_NOTICE"; break;
39 case 'error' : $niveau = "E_ALL ^ (E_NOTICE | E_WARNING)"; break;
40 case 'strict' : $niveau = "-1"; break;
41 case 'all' : $niveau = "E_ALL | E_DEPRECATED"; break;
42 case 'user' : $niveau = "E_USER_NOTICE | E_USER_WARNING | E_USER_ERROR"; break;
43 case 'notice' : default : $niveau = "E_ALL"; break;
44 }
45 if(defined('_DEVDEBUG_ESPACE')) switch(_DEVDEBUG_ESPACE) {
46 case 'public' :
47 if(!$prive) {
48 @ini_set('display_errors',1);
49 eval("error_reporting($niveau);");
50 }
51 else @ini_set('display_errors',0);
52 break;
53 case 'prive' :
54 if($prive) {
55 @ini_set('display_errors',1);
56 eval("error_reporting($niveau);");
57 }
58 else @ini_set('display_errors',0);
59 break;
60 default :
61 @ini_set('display_errors',1);
62 eval("error_reporting($niveau);");
63 }
64 }
65 elseif(_DEVDEBUG_MODE==0) @ini_set('display_errors',0);
66 }
67
68 /**
69 * Page de reglages accessible tout le temps par le webmestre : 'ecrire/?exec=debug'
70 * En cas de probleme
71 * => on detoure le CS :
72 * => "redirect" enleve
73 * => ajout d'un input "exec" hidden
74 * (je sais c'est mal!)
75 */
76 function exec_debug() {
77 ini_set('display_errors','1'); error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
78 include_spip('inc/minipres');
79 global $connect_statut;
80 if ($connect_statut != "0minirezo" || !autoriser('configurer', 'configuration')){ echo minipres(); exit;}
81 include_spip('inc/cs_outils');
82 $content = description_outil2('devdebug');
83 $content = str_replace(" name='redirect'", " name='abcdef'", $content);
84 $content = str_replace("?exec=devdebugger", '', $content);
85 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));
86 exit;
87 }
88
89 ?>