7.x dblog.admin.inc theme_dblog_message($variables)

Returns HTML for a log message.

Parameters

array $variables: An associative array containing:

  • event: An object with at least the message and variables properties.
  • link: (optional) Format message as link, event->wid is required.

Related topics

3 theme calls to theme_dblog_message()
dblog_event in modules/dblog/dblog.admin.inc
Page callback: Displays details about a specific database log message.
dblog_overview in modules/dblog/dblog.admin.inc
Page callback: Displays a listing of database log messages.
dblog_top in modules/dblog/dblog.admin.inc
Page callback: Shows the most frequent log messages of a given event type.

File

modules/dblog/dblog.admin.inc, line 284
Administrative page callbacks for the Database Logging module.

Code

function theme_dblog_message($variables) {
  $output = '';
  $event = $variables['event'];

  // Check for required properties.
  if (isset($event->message) && isset($event->variables)) {

    // Messages without variables or user specified text.
    if ($event->variables === 'N;') {
      $output = $event->message;
    }
    else {
      $output = t($event->message, unserialize($event->variables));
    }

    // If the output is expected to be a link, strip all the tags and
    // special characters by using filter_xss() without any allowed tags.
    // If not, use filter_xss_admin() to allow some tags.
    if ($variables['link'] && isset($event->wid)) {

      // Truncate message to 56 chars after stripping all the tags.
      $output = truncate_utf8(filter_xss($output, array()), 56, TRUE, TRUE);
      $output = l($output, 'admin/reports/event/' . $event->wid, array(
        'html' => TRUE,
      ));
    }
    else {

      // Prevent XSS in log detail pages.
      $output = filter_xss_admin($output);
    }
  }
  return $output;
}

Comments

alexverb’s picture

Is it normal behavior that a message without variables is not being translated? The watchdog documentation does not state to use the t() function. Also coder_sniffer will say not to use t(). But how are you supposed to translate that message then?

Cyberwolf’s picture

N; equals a serialized NULL value, afaik if you pass an empty array for the $variables argument of watchdog() the translation works fine.