1: <?php
2: 3: 4: 5: 6: 7: 8: 9:
10:
11: if (!defined('XOOPS_ROOT_PATH')) exit();
12:
13: require_once XOOPS_ROOT_PATH . "/class/errorhandler.php";
14:
15: define("XOOPS_DEBUG_OFF",0);
16: define("XOOPS_DEBUG_PHP",1);
17: define("XOOPS_DEBUG_MYSQL",2);
18: define("XOOPS_DEBUG_SMARTY",3);
19:
20: class Legacy_DebuggerManager
21: {
22: 23: 24: 25:
26: function createInstance(&$instance, $debug_mode)
27: {
28: if (is_object($instance)) {
29: return;
30: }
31:
32: switch($debug_mode) {
33: case XOOPS_DEBUG_PHP:
34: $instance = new Legacy_PHPDebugger();
35: break;
36:
37: case XOOPS_DEBUG_MYSQL:
38: $instance = new Legacy_MysqlDebugger();
39: break;
40:
41: case XOOPS_DEBUG_SMARTY:
42: $instance = new Legacy_SmartyDebugger();
43: break;
44:
45: case XOOPS_DEBUG_OFF:
46: default:
47: $instance = new Legacy_NonDebugger();
48: break;
49: }
50: }
51: }
52:
53: class Legacy_AbstractDebugger
54: {
55: function Legacy_AbstractDebugger()
56: {
57: }
58:
59: function prepare()
60: {
61: }
62:
63: function isDebugRenderSystem()
64: {
65: return false;
66: }
67:
68: 69: 70:
71: function renderLog()
72: {
73: }
74:
75: function displayLog()
76: {
77: }
78: }
79:
80: class Legacy_NonDebugger extends Legacy_AbstractDebugger
81: {
82: }
83:
84: 85: 86: 87:
88: class Legacy_PHPDebugger extends Legacy_AbstractDebugger
89: {
90: function prepare()
91: {
92: error_reporting(E_ALL);
93: $GLOBALS['xoopsErrorHandler'] =& XoopsErrorHandler::getInstance();
94: $GLOBALS['xoopsErrorHandler']->activate(true);
95: }
96: }
97:
98: 99: 100: 101:
102: class Legacy_MysqlDebugger extends Legacy_AbstractDebugger
103: {
104: function prepare()
105: {
106: $GLOBALS['xoopsErrorHandler'] =& XoopsErrorHandler::getInstance();
107: $GLOBALS['xoopsErrorHandler']->activate(true);
108: }
109:
110: function renderLog()
111: {
112: $xoopsLogger =& XoopsLogger::instance();
113: return $xoopsLogger->dumpAll();
114: }
115:
116: function displayLog()
117: {
118: echo '<script type="text/javascript">
119: <!--//
120: debug_window = openWithSelfMain("", "xoops_debug", 680, 600, true);
121: ';
122: $content = '<html><head><meta http-equiv="content-type" content="text/html; charset='._CHARSET.'" /><meta http-equiv="content-language" content="'._LANGCODE.'" /><title>'.htmlspecialchars($GLOBALS['xoopsConfig']['sitename']).'</title><link rel="stylesheet" type="text/css" media="all" href="'.getcss($GLOBALS['xoopsConfig']['theme_set']).'" /></head><body>'.$this->renderLog().'<div style="text-align:center;"><input class="formButton" value="'._CLOSE.'" type="button" onclick="javascript:window.close();" /></div></body></html>';
123: $lines = preg_split("/(\r\n|\r|\n)( *)/", $content);
124: foreach ($lines as $line) {
125: echo 'debug_window.document.writeln("'.str_replace('"', '\"', $line).'");';
126: }
127: echo '
128: debug_window.document.close();
129: //-->
130: </script>';
131: }
132: }
133:
134: 135: 136: 137:
138: class Legacy_SmartyDebugger extends Legacy_AbstractDebugger
139: {
140: function prepare()
141: {
142: $GLOBALS['xoopsErrorHandler'] =& XoopsErrorHandler::getInstance();
143: $GLOBALS['xoopsErrorHandler']->activate(true);
144: }
145:
146: function isDebugRenderSystem()
147: {
148: $root =& XCube_Root::getSingleton();
149: $user =& $root->mContext->mXoopsUser;
150:
151: return is_object($user) ? $user->isAdmin(0) : false;
152: }
153: }
154:
155: ?>
156: