Как пройти через сторожевой стол Друпала?
Я хочу получить все сообщения об ошибках из таблицы watchdog, но когда я получаю столбец сообщения из таблицы, он имеет %path, %function,!сообщение что-то вроде этого сообщения как я могу принять все реальное сообщение с не этими сигналами?
<?php
// Begin building the query.
$query = db_select('watchdog', 'th')
->extend('PagerDefault')
->orderBy('wid')
->distinct()
->fields('th', array('variables', 'type', 'severity', 'message'))
->limit(2000);
// Fetch the result set.
$result = $query -> execute();
// Loop through each item and add to $row
foreach ($result as $row) {
blablabla($row);
}
function blablabla($row) {
$severity = $row -> severity;
$type = $row -> type;
$message = $row -> message;
?>
Когда я использую $message
, он показывает мне что-то вроде:
%type: !message in %function (line %line of %file)...
Keep in %path
:
%type: !message in %function (line %line of %file)...
Начало перечисления файлов в %directory
.
Как я могу исправить эту вещь? Могу ли я использовать API ошибок и как я могу это сделать?
2 ответа:
Посмотрите на код ниже:
if (isset($row->message) && isset($row->variables)){ if ($row->variables === 'N;') $dbmessage = $row->message; else $dbmessage = t($row->message, unserialize($row->variables)); $dbmessage = filter_xss($dbmessage, array()); }
Это должно помочь вам начать
blablabla($row) { $variables = unserialize($row->variables); // un serialize variables $message = t($row->message, array( 'type' => $row->type, 'severity'=> $row->severity, // replace the rest of the variables ));
Также проверьте это. Вот как drupal читает из таблицы watchdog:
dblog_overview
; это функция, которая отображает эту страницуadmin/reports/dblog
dblog_event
; это функция, которая отображает одну запись dblog внутри этой страницыadmin/reports/event/ID
.