_hc_height, $js); // We MUST use "hackerConsole" instead of "console" because of Safari. $code = "window.hackerConsole = window.hackerConsole || window.Debug_HackerConsole_Js && new window.Debug_HackerConsole_Js();\n"; $code .= "if (window.hackerConsole) setTimeout(function() { with (window.hackerConsole) {\n"; foreach ($this->_hc_entries as $gid=>$elements) { foreach ($elements as $e) { if ($e['tip'] === null) { $file = str_replace('\\', '/', $e['file']); if (isset($_SERVER['DOCUMENT_ROOT'])) { // Under IIS DOCUMENT_ROOT may not be available. $dr = str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']); $file = preg_replace('{^'.preg_quote($dr,'{}').'}is', '~', $file); } $title = "at {$file} line {$e['line']}" . (!empty($e['function'])? ", {$e['function']}" : ""); } else { $title = $e['tip']; } $text = $this->toPre($e['text']); if (!empty($e['color'])) $text = "