Commit 731cbf89 by resurtm

New error page WIP.

parent fa0022e7
...@@ -20,8 +20,10 @@ class SiteController extends Controller ...@@ -20,8 +20,10 @@ class SiteController extends Controller
public function actionIndex() public function actionIndex()
{ {
$x = null;
$x->y = 100;
throw new \yii\base\HttpException(500, 'Test exception'); throw new \yii\base\HttpException(500, 'Test exception');
$x = 1; // $x = 1;
echo $this->render('index'); echo $this->render('index');
} }
......
...@@ -50,6 +50,9 @@ h1,h2,p,img,ul li{ ...@@ -50,6 +50,9 @@ h1,h2,p,img,ul li{
font-family: Arial,sans-serif; font-family: Arial,sans-serif;
color: #505050; color: #505050;
} }
html,body{
overflow-x: hidden;
}
/* header */ /* header */
.header{ .header{
...@@ -193,8 +196,18 @@ h1,h2,p,img,ul li{ ...@@ -193,8 +196,18 @@ h1,h2,p,img,ul li{
margin-top: 40px; margin-top: 40px;
margin-bottom: 1px; margin-bottom: 1px;
} }
.request pre{ .request .code{
min-width: 860px; /* 960px - 50px * 2 */
max-width: 1100px; /* 1200px - 50px * 2 */
margin: 0 auto;
padding: 15px 50px;
}
.request .code pre{
line-height: 18px;
font-size: 14px;
font-family: Consolas, Courier New, monospace; font-family: Consolas, Courier New, monospace;
display: inline;
word-wrap: break-word;
} }
/* footer */ /* footer */
......
...@@ -8,7 +8,7 @@ window.onload = function() { ...@@ -8,7 +8,7 @@ window.onload = function() {
hljs.highlightBlock(codeBlocks[i], ' '); hljs.highlightBlock(codeBlocks[i], ' ');
} }
// // code block hover line
document.onmousemove = function(e) { document.onmousemove = function(e) {
var lines, i, imax, j, jmax, k, kmax, var lines, i, imax, j, jmax, k, kmax,
event = e || window.event, event = e || window.event,
...@@ -31,7 +31,10 @@ window.onload = function() { ...@@ -31,7 +31,10 @@ window.onload = function() {
hoverLines[k].className = 'hover-line'; hoverLines[k].className = 'hover-line';
} }
if (lineFound) { if (lineFound) {
Sizzle('.call-stack-item:eq(' + i + ') .hover-line:eq(' + j + ')')[0].className = 'hover-line hover'; var line = Sizzle('.call-stack-item:eq(' + i + ') .hover-line:eq(' + j + ')');
if (line[0]) {
line[0].className = 'hover-line hover';
}
} }
} }
......
...@@ -93,8 +93,22 @@ class ErrorHandler extends Component ...@@ -93,8 +93,22 @@ class ErrorHandler extends Component
if (YII_DEBUG) { if (YII_DEBUG) {
ini_set('display_errors', 1); ini_set('display_errors', 1);
} }
$view = new View(); $view = new View();
echo $view->renderFile($this->mainView, array('e' => $exception), $this); $request = array();
if (count($_GET) > 0) {
$request[] = '$_GET = ' . var_export($_GET, true) . ';';
}
if (count($_POST) > 0) {
$request[] = '$_POST = ' . var_export($_POST, true) . ';';
}
$request[] = '$_SERVER = ' . var_export($_SERVER, true) . ';';
$request = implode("\n\n", $request);
echo $view->renderFile($this->mainView, array(
'e' => $exception,
'request' => $request,
'requestLinesCount' => substr_count($request, "\n"),
), $this);
} }
} }
} }
......
<?php <?php
/** /**
* @var \yii\base\View $this * @var \yii\base\View $this
* @var \yii\base\ErrorHandler $c
* @var string $file * @var string $file
* @var integer $line * @var integer $line
* @var integer $index * @var integer $index
* @var string[] $lines * @var string[] $lines
* @var integer $begin * @var integer $begin
* @var integer $end * @var integer $end
* @var \yii\base\ErrorHandler $c
*/ */
$c = $this->context; $c = $this->context;
?> ?>
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
/** /**
* @var \yii\base\View $this * @var \yii\base\View $this
* @var \Exception $e * @var \Exception $e
* @var string $request
* @var integer $requestLinesCount
* @var \yii\base\ErrorHandler $c * @var \yii\base\ErrorHandler $c
*/ */
$c = $this->context; $c = $this->context;
...@@ -27,6 +29,14 @@ $c = $this->context; ...@@ -27,6 +29,14 @@ $c = $this->context;
<body> <body>
<div class="header"> <div class="header">
<?php if ($e instanceof \yii\base\ErrorException): ?>
<img src="/tmp/gears.png" alt="Gears"/>
<h1>
<span><?php echo $c->htmlEncode($e->getName()); ?></span>
&ndash; <?php echo $c->addTypeLinks(get_class($e)); ?>
</h1>
<h2><?php echo $c->htmlEncode($e->getMessage()); ?></h2>
<?php else: ?>
<img src="/tmp/attention.png" alt="Attention"/> <img src="/tmp/attention.png" alt="Attention"/>
<h1> <h1>
<span>Exception</span> &ndash; <?php echo $c->addTypeLinks(get_class($e)); ?> <span>Exception</span> &ndash; <?php echo $c->addTypeLinks(get_class($e)); ?>
...@@ -35,6 +45,7 @@ $c = $this->context; ...@@ -35,6 +45,7 @@ $c = $this->context;
<?php endif; ?> <?php endif; ?>
</h1> </h1>
<h2><?php echo $c->htmlEncode($e->getName()); ?></h2> <h2><?php echo $c->htmlEncode($e->getName()); ?></h2>
<?php endif; ?>
</div> </div>
<div class="call-stack"> <div class="call-stack">
...@@ -46,49 +57,11 @@ $c = $this->context; ...@@ -46,49 +57,11 @@ $c = $this->context;
</ul> </ul>
</div> </div>
<?php /*
<div class="request"> <div class="request">
<div id="code-wrap"></div> <div class="code">
<div id="code-highlighter"></div> <pre><?php echo $c->htmlEncode($request); ?></pre>
<div id="code-inner-wrap">
<pre id="code">$_GET = [
'show-post' => 100,
'refresh-page' => 'yes',
'ascending-sort' => 1,
];
$_POST = [
'blog-post-form' => [
'title' => 'hello',
'author_id' => '12',
],
];
$_SERVER = [
'DOCUMENT_ROOT' => '/home/resurtm/work/data',
'REMOTE_ADDR' => '::1',
'REMOTE_PORT' => '52694',
'SERVER_SOFTWARE' => 'PHP 5.4.3 Development Server',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'SERVER_NAME' => 'localhost',
'SERVER_PORT' => '8000',
'REQUEST_URI' => '/index.php?post-form[title]=hello&post-form[author_id]=12',
'REQUEST_METHOD' => 'GET',
'SCRIPT_NAME' => '/index.php',
'SCRIPT_FILENAME' => '/home/resurtm/work/data/index.php',
'PHP_SELF' => '/index.php',
'QUERY_STRING' => 'post-form[title]=hello&post-form[author_id]=12',
'HTTP_HOST' => 'localhost:8000',
'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0',
'HTTP_ACCEPT_LANGUAGE' => 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
'HTTP_ACCEPT_ENCODING' => 'gzip, deflate',
'HTTP_CONNECTION' => 'keep-alive',
'REQUEST_TIME_FLOAT' => 1369146454.0856,
'REQUEST_TIME' => 1369146454,
];</pre>
</div> </div>
</div> </div>
</div>*/ ?>
<div class="footer"> <div class="footer">
<img src="/tmp/logo.png" alt="Yii Framework"/> <img src="/tmp/logo.png" alt="Yii Framework"/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment