1 <?php
defined('SYSPATH') OR die('No direct script access.') ?
>
4 // Unique error identifier
5 $error_id = uniqid('error');
8 <style type
="text/css">
9 #kohana_error { background: #ddd; font-size: 1em; font-family:sans-serif; text-align: left; color: #111; }
11 #kohana_error h2 { margin: 0; padding: 1em; font-size: 1em; font-weight: normal; background: #911; color: #fff; }
13 #kohana_error h2 a { color: #fff; }
14 #kohana_error h2 { background: #222; }
15 #kohana_error h3 { margin: 0; padding: 0.4em 0 0; font-size: 1em; font-weight: normal; }
16 #kohana_error p { margin: 0; padding: 0.2em 0; }
17 #kohana_error a { color: #1b323b; }
18 #kohana_error pre { overflow: auto; white-space: pre-wrap; }
19 #kohana_error table { width: 100%; display: block; margin: 0 0 0.4em; padding: 0; border-collapse: collapse; background: #fff; }
20 #kohana_error table td { border: solid 1px #ddd; text-align: left; vertical-align: top; padding: 0.4em; }
21 #kohana_error div.content { padding: 0.4em 1em 1em; overflow: hidden; }
22 #kohana_error pre.source { margin: 0 0 1em; padding: 0.4em; background: #fff; border: dotted 1px #b7c680; line-height: 1.2em; }
23 #kohana_error pre.source span.line { display: block; }
24 #kohana_error pre.source span.highlight { background: #f0eb96; }
25 #kohana_error pre.source span.line span.number { color: #666; }
26 #kohana_error ol.trace { display: block; margin: 0 0 0 2em; padding: 0; list-style: decimal; }
27 #kohana_error ol.trace li { margin: 0; padding: 0; }
28 .js
.collapsed
{ display
: none
; }
30 <script type
="text/javascript">
31 document
.documentElement
.className
= document
.documentElement
.className +
' js';
34 elem
= document
.getElementById(elem
);
36 if (elem
.style
&& elem
.style
['display'])
37 // Only works with the "style" attr
38 var disp
= elem
.style
['display'];
39 else if (elem
.currentStyle
)
40 // For MSIE, naturally
41 var disp
= elem
.currentStyle
['display'];
42 else if (window
.getComputedStyle
)
43 // For most other browsers
44 var disp
= document
.defaultView
.getComputedStyle(elem
, null).getPropertyValue('display');
46 // Toggle the state of the "display" style
47 elem
.style
.display
= disp
== 'block' ?
'none' : 'block';
51 <div id
="kohana_error">
52 <h1
><span
class="type"><?php
echo $class ?
> [ <?php
echo $code ?
> ]:</span
> <span
class="message"><?php
echo htmlspecialchars( (string) $message, ENT_QUOTES
, Kohana
::$charset, TRUE); ?
></span
></h1
>
53 <div id
="<?php echo $error_id ?>" class="content">
54 <p
><span
class="file"><?php
echo Debug
::path($file) ?
> [ <?php
echo $line ?
> ]</span
></p
>
55 <?php
echo Debug
::source($file, $line) ?
>
57 <?php
foreach (Debug
::trace($trace) as $i => $step): ?
>
61 <?php
if ($step['file']): $source_id = $error_id.'source'.$i; ?
>
62 <a href
="#<?php echo $source_id ?>" onclick
="return koggle('<?php echo $source_id ?>')"><?php
echo Debug
::path($step['file']) ?
> [ <?php
echo $step['line'] ?
> ]</a
>
64 {<?php
echo __('PHP internal call') ?
>}
68 <?php
echo $step['function'] ?
>(<?php
if ($step['args']): $args_id = $error_id.'args'.$i; ?
><a href
="#<?php echo $args_id ?>" onclick
="return koggle('<?php echo $args_id ?>')"><?php
echo __('arguments') ?
></a
><?php
endif ?
>)
70 <?php
if (isset($args_id)): ?
>
71 <div id
="<?php echo $args_id ?>" class="collapsed">
72 <table cellspacing
="0">
73 <?php
foreach ($step['args'] as $name => $arg): ?
>
75 <td
><code
><?php
echo $name ?
></code
></td
>
76 <td
><pre
><?php
echo Debug
::dump($arg) ?
></pre
></td
>
82 <?php
if (isset($source_id)): ?
>
83 <pre id
="<?php echo $source_id ?>" class="source collapsed"><code
><?php
echo $step['source'] ?
></code
></pre
>
86 <?php
unset($args_id, $source_id); ?
>
90 <h2
><a href
="#<?php echo $env_id = $error_id.'environment' ?>" onclick
="return koggle('<?php echo $env_id ?>')"><?php
echo __('Environment') ?
></a
></h2
>
91 <div id
="<?php echo $env_id ?>" class="content collapsed">
92 <?php
$included = get_included_files() ?
>
93 <h3
><a href
="#<?php echo $env_id = $error_id.'environment_included' ?>" onclick
="return koggle('<?php echo $env_id ?>')"><?php
echo __('Included files') ?
></a
> (<?php
echo count($included) ?
>)</h3
>
94 <div id
="<?php echo $env_id ?>" class="collapsed">
95 <table cellspacing
="0">
96 <?php
foreach ($included as $file): ?
>
98 <td
><code
><?php
echo Debug
::path($file) ?
></code
></td
>
103 <?php
$included = get_loaded_extensions() ?
>
104 <h3
><a href
="#<?php echo $env_id = $error_id.'environment_loaded' ?>" onclick
="return koggle('<?php echo $env_id ?>')"><?php
echo __('Loaded extensions') ?
></a
> (<?php
echo count($included) ?
>)</h3
>
105 <div id
="<?php echo $env_id ?>" class="collapsed">
106 <table cellspacing
="0">
107 <?php
foreach ($included as $file): ?
>
109 <td
><code
><?php
echo Debug
::path($file) ?
></code
></td
>
114 <?php
foreach (array('_SESSION', '_GET', '_POST', '_FILES', '_COOKIE', '_SERVER') as $var): ?
>
115 <?php
if (empty($GLOBALS[$var]) OR ! is_array($GLOBALS[$var])) continue ?
>
116 <h3
><a href
="#<?php echo $env_id = $error_id.'environment'.strtolower($var) ?>" onclick
="return koggle('<?php echo $env_id ?>')">$
<?php
echo $var ?
></a
></h3
>
117 <div id
="<?php echo $env_id ?>" class="collapsed">
118 <table cellspacing
="0">
119 <?php
foreach ($GLOBALS[$var] as $key => $value): ?
>
121 <td
><code
><?php
echo htmlspecialchars( (string) $key, ENT_QUOTES
, Kohana
::$charset, TRUE); ?
></code
></td
>
122 <td
><pre
><?php
echo Debug
::dump($value) ?
></pre
></td
>