Popular Searches Block in Drupal

This php code can be used in a drupal block to display the most popular searches on your site.

<?php
$query = "SELECT message from {watchdog} WHERE type = 'search'";
$result = db_query($query);
$search_strings = array();
while ($row = db_fetch_object($result)) {
  preg_match('/<em>(.*)<\/em>/', $row->message, $match);
  $string = strtolower($match[1]);
  $search_strings[$string] += 1;
}
if(count($search_strings)) {
  arsort($search_strings);
  $i = 0;
  foreach ($search_strings as $key => $val) {
    if ($i < 10) {
      $i++;
      $query = preg_replace('/\s+/', '+', $key);
      $search_link = l($key,'search/node/'.$query);
      $search_link .= " ($val)";
      $items[] = $search_link;
    }
  }
  return theme('item_list',$items,'','ol');
}
?>

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <i> <strong> <cite> <em> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <css>, <diff>, <drupal5>, <html>, <javascript>, <php>. The supported tag styles are: <foo>, [foo]. PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.