Same name and namespace in other branches
  1. 4.7.x modules/statistics.module \statistics_block()
  2. 5.x modules/statistics/statistics.module \statistics_block()
  3. 6.x modules/statistics/statistics.module \statistics_block()

Implementation of hook_block().

File

modules/statistics.module, line 416
Logs access statistics for your site.

Code

function statistics_block($op = 'list', $delta = 0, $edit = array()) {
  switch ($op) {
    case 'list':
      if (variable_get('statistics_count_content_views', 0)) {
        $blocks[0]['info'] = t('Popular content');
      }
      return $blocks;
    case 'configure':

      // Popular content block settings
      $numbers = array(
        '0' => t('Disabled'),
      ) + drupal_map_assoc(array(
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        15,
        20,
        25,
        30,
        40,
      ));
      $output = form_select(t("Number of day's top views to display"), 'statistics_block_top_day_num', variable_get('statistics_block_top_day_num', 0), $numbers, t('How many content items to display in "day" list.'));
      $output .= form_select(t('Number of all time views to display'), 'statistics_block_top_all_num', variable_get('statistics_block_top_all_num', 0), $numbers, t('How many content items to display in "all time" list.'));
      $output .= form_select(t('Number of most recent views to display'), 'statistics_block_top_last_num', variable_get('statistics_block_top_last_num', 0), $numbers, t('How many content items to display in "recently viewed" list.'));
      return $output;
    case 'save':
      variable_set('statistics_block_top_day_num', $edit['statistics_block_top_day_num']);
      variable_set('statistics_block_top_all_num', $edit['statistics_block_top_all_num']);
      variable_set('statistics_block_top_last_num', $edit['statistics_block_top_last_num']);
      break;
    case 'view':
      if (user_access('access content')) {
        $content = array();
        $daytop = variable_get('statistics_block_top_day_num', 0);
        if ($daytop) {
          $content[] = node_title_list(statistics_title_list('daycount', $daytop), t("Today's:"));
        }
        $alltimetop = variable_get('statistics_block_top_all_num', 0);
        if ($alltimetop) {
          $content[] = node_title_list(statistics_title_list('totalcount', $alltimetop), t('All time:'));
        }
        $lasttop = variable_get('statistics_block_top_last_num', 0);
        if ($lasttop) {
          $content[] = node_title_list(statistics_title_list('timestamp', $lasttop), t('Last viewed:'));
        }
        $output = implode($content, '<br />');
        $block['subject'] = t('Popular content');
        $block['content'] = $output;
        return $block;
      }
  }
}