You are here

function print_block in Printer, email and PDF versions 5.x

Same name and namespace in other branches
  1. 5.4 print.module \print_block()
  2. 5.3 print.module \print_block()
  3. 6 print.module \print_block()

Implementation of hook_block().

File

./print.module, line 224
Displays Printer-friendly versions of Drupal pages.

Code

function print_block($op = 'list', $delta = 0, $edit = array()) {
  switch ($op) {
    case 'list':
      $block[0]['info'] = t('Printer, e-mail and PDF versions');
      $block[0]['cache'] = BLOCK_CACHE_PER_PAGE;
      $block[1]['info'] = t('Most printed');
      $block[1]['cache'] = BLOCK_CACHE_GLOBAL;
      return $block;
      break;
    case 'configure':
      return '';
    case 'save':
      return;
    case 'view':
      switch ($delta) {
        case 0:
          $nid = preg_replace('!^node/!', '', $_GET['q']);
          if (is_numeric($nid)) {
            $node = node_load($nid);
          }
          else {
            $node = NULL;
          }
          $funcs = get_defined_functions();
          $block['content'] = '';
          foreach ($funcs['user'] as $func) {
            if (preg_match('!^print.*?_insert_link$!', $func)) {
              $link = $func(NULL, $node);
              if (!empty($link)) {
                $block['content'] .= $link;
              }
            }
          }
          break;
        case 1:
          $block['subject'] = t('Most printed');
          $result = db_query_range("SELECT path FROM {print_page_counter} ORDER BY totalcount DESC", 0, 3);
          if (db_affected_rows()) {
            $block['content'] = '<div class="item-list"><ul>';
            while ($obj = db_fetch_object($result)) {
              $block['content'] .= '<li>' . l(_print_get_title($obj->path), $obj->path) . '</li>';
            }
            $block['content'] .= '</ul></div>';
          }
          break;
      }
      return $block;
      break;
  }
}