14-06-2012, 17:39 Посмотрели: 2291 Добавил: Alex V

Вывод сообщений об ошибках в виде администраторского оповещения WordPress


В предыдущем посте я писал о том, как сделать запись сообщений об ошибках в журнал на WordPress. Я долго после этого ещё искал новые способы решения этого вопроса, но более для разработчиков, нежели простых сайтостроителей (хотя возможно и будет полезным.)

Меня крайне разочаровал поступок разработчиков WordPress и мне стало все таки интересно найти выход с этой ситуации. Так как я сам не ахтишный программист, а больше разбираюсь в продвижение сайтов, но я верю в то, что многим мои советы и варианты решения проблем нравятся. Да и по комментариям это заметно.

Я нашел очень интересный исходный код, который можно вставить в functions.php или в сам плагин. Суть этого кода состоит в том, что сообщения об ошибках выводятся в админ. оповещении, что намного удобнее журнала ошибок.

1. И так вот этот полезный и вкусный код:

function admin_alert_errors($errno, $errstr, $errfile, $errline){
$errorType = array (
E_ERROR                            => 'ERROR',
E_CORE_ERROR           => 'CORE ERROR',
E_COMPILE_ERROR        => 'COMPILE ERROR',
E_USER_ERROR           => 'USER ERROR',
E_RECOVERABLE_ERROR  => 'RECOVERABLE ERROR',
E_WARNING              => 'WARNING',
E_CORE_WARNING         => 'CORE WARNING',
E_COMPILE_WARNING      => 'COMPILE WARNING',
E_USER_WARNING         => 'USER WARNING',
E_NOTICE               => 'NOTICE',
E_USER_NOTICE          => 'USER NOTICE',
E_DEPRECATED                   => 'DEPRECATED',
E_USER_DEPRECATED      => 'USER_DEPRECATED',
E_PARSE                => 'PARSING ERROR'
);

if (array_key_exists($errno, $errorType)) {
$errname = $errorType[$errno];
} else {
$errname = 'UNKNOWN ERROR';
}
ob_start();?>
<div class="error">
<p>
<strong><?php echo $errname; ?> Error: [<?php echo $errno; ?>] </strong><?php echo $errstr; ?><strong> <?php echo $errfile; ?></strong> on line <strong><?php echo $errline; ?></strong>
<p/>
</div>
<?php
echo ob_get_clean();
}
set_error_handler("admin_alert_errors", E_ERROR ^ E_CORE_ERROR ^ E_COMPILE_ERROR ^ E_USER_ERROR ^ E_RECOVERABLE_ERROR ^  E_WARNING ^  E_CORE_WARNING ^ E_COMPILE_WARNING ^ E_USER_WARNING ^ E_NOTICE ^  E_USER_NOTICE ^ E_DEPRECATED    ^  E_USER_DEPRECATED    ^  E_PARSE );


2. Как видите есть 4 аргумента, которые может отдавать нам функция admin_alert_errors():

- $errstr : сообщение ошибки;
- $errno : тип ошибки;
- $errline : номер строки с ошибки, очень нужная штука!
- $errfile : файл в котором есть ошибка;

3. В массиве $errorType я не советую, что-то менять. Так как это может затруднить определить название проблемы сторонним разработчикам.
Ну вот и все! Удачной работы, главное помните что этот метод работает только в админ панели, а не на сайте.
Рубрика записи: Советы

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Юзер панель
Я тебя не знаю!
Зарегистрируйся, либо

войди под своим логином!

Fuck, я забыл свой пароль!

Восстановить данные =0
Новое на сайте
Известная социальная сеть Instagram приступила к тестированию новой...
Недавно, в приложения для Android и iOS социальной сети Twitter была...
Недавно, в Google "Мой бизнес" разработчики добавили новейший способ, как...
Недавно стало известно о том, что соцсеть Facebook по упоминанию в русских...
Недавно, представитель корпорации Google, Джон Мюллер (John Mueller)...
Голосуем

Ваша любимая CMS?


DataLife Engine
WordPress
Joomla
Drupal
LiveStreet
UCOZ
Самопис
Php+Includ
Статика