Browse Source

New error page WIP.

tags/2.0.0-beta
resurtm 12 years ago
parent
commit
731cbf8980
  1. 4
      apps/bootstrap/controllers/SiteController.php
  2. BIN
      apps/bootstrap/www/tmp/gears.png
  3. 15
      apps/bootstrap/www/tmp/main.css
  4. 7
      apps/bootstrap/www/tmp/main.js
  5. 16
      framework/yii/base/ErrorHandler.php
  6. 2
      framework/yii/views/errorHandler/callStackItem.php
  7. 53
      framework/yii/views/errorHandler/main.php

4
apps/bootstrap/controllers/SiteController.php

@ -20,8 +20,10 @@ class SiteController extends Controller
public function actionIndex()
{
$x = null;
$x->y = 100;
throw new \yii\base\HttpException(500, 'Test exception');
$x = 1;
// $x = 1;
echo $this->render('index');
}

BIN
apps/bootstrap/www/tmp/gears.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

15
apps/bootstrap/www/tmp/main.css vendored

@ -50,6 +50,9 @@ h1,h2,p,img,ul li{
font-family: Arial,sans-serif;
color: #505050;
}
html,body{
overflow-x: hidden;
}
/* header */
.header{
@ -193,8 +196,18 @@ h1,h2,p,img,ul li{
margin-top: 40px;
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;
display: inline;
word-wrap: break-word;
}
/* footer */

7
apps/bootstrap/www/tmp/main.js vendored

@ -8,7 +8,7 @@ window.onload = function() {
hljs.highlightBlock(codeBlocks[i], ' ');
}
//
// code block hover line
document.onmousemove = function(e) {
var lines, i, imax, j, jmax, k, kmax,
event = e || window.event,
@ -31,7 +31,10 @@ window.onload = function() {
hoverLines[k].className = 'hover-line';
}
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';
}
}
}

16
framework/yii/base/ErrorHandler.php

@ -93,8 +93,22 @@ class ErrorHandler extends Component
if (YII_DEBUG) {
ini_set('display_errors', 1);
}
$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);
}
}
}

2
framework/yii/views/errorHandler/callStackItem.php

@ -1,13 +1,13 @@
<?php
/**
* @var \yii\base\View $this
* @var \yii\base\ErrorHandler $c
* @var string $file
* @var integer $line
* @var integer $index
* @var string[] $lines
* @var integer $begin
* @var integer $end
* @var \yii\base\ErrorHandler $c
*/
$c = $this->context;
?>

53
framework/yii/views/errorHandler/main.php

@ -2,6 +2,8 @@
/**
* @var \yii\base\View $this
* @var \Exception $e
* @var string $request
* @var integer $requestLinesCount
* @var \yii\base\ErrorHandler $c
*/
$c = $this->context;
@ -27,6 +29,14 @@ $c = $this->context;
<body>
<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"/>
<h1>
<span>Exception</span> &ndash; <?php echo $c->addTypeLinks(get_class($e)); ?>
@ -35,6 +45,7 @@ $c = $this->context;
<?php endif; ?>
</h1>
<h2><?php echo $c->htmlEncode($e->getName()); ?></h2>
<?php endif; ?>
</div>
<div class="call-stack">
@ -46,49 +57,11 @@ $c = $this->context;
</ul>
</div>
<?php /*
<div class="request">
<div id="code-wrap"></div>
<div id="code-highlighter"></div>
<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 class="code">
<pre><?php echo $c->htmlEncode($request); ?></pre>
</div>
</div>
</div>*/ ?>
<div class="footer">
<img src="/tmp/logo.png" alt="Yii Framework"/>

Loading…
Cancel
Save