<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0
    1Understanding How Blocks Are Themed

    During a page request, the theme system will ask the block system to return a list of blocks for

    each region. It does this when generating the variables to send to the page template (usually

    page.tpl.php). To gather the themed blocks for the left and right sidebars, Drupal executes the

    following:

    $sidebar_left = theme('blocks', 'left');

    $sidebar_right = theme('blocks', 'right');

    // And any other regions exposed by hook_regions().

    You might remember that theme('blocks') is actually a call to theme_blocks(). Here’s what theme_blocks() actually does:

    function theme_blocks($region) {

    $output = '';

    if ($list = block_list($region)) {

    foreach ($list as $key => $block) {

    $output .= theme('block', $block);

    }

    }

    return $output;

    }

    2Using the Block Hook

    function hook_block($op = 'list', $delta = 0, $edit = array())

    <?php

    // $Id$

    /**

     * @file

     * Implements various blocks to improve pending content workflow.

     */

     

    /**

     * Implementation of hook_block().

     */

    function approval_block($op = 'list', $delta = 0, $edit = array()) {

     switch ($op) {

        case 'list':

          $blocks[0]['info'] = t('Pending comments');

          $blocks[1]['info'] = t('Unpublished nodes');

          return $blocks;

        case 'configure':

          // Only in block 0 (the Pending comments block) can one

          // set the number of comments to display.

          if ($delta == 0) {

            $form['approval_block_num_posts'] = array(

              '#type' => 'textfield',

              '#title' => t('Number of pending comments to display'),

              '#default_value' => variable_get('approval_block_num_posts', 5),

            );

          }

          return $form;

        case 'save':

          if ($delta == 0) {

            variable_set('approval_block_num_posts', (int) $edit['approval_block_num_posts']);

          }

          break;

        case 'view':

          if ($delta == 0 &&user_access('administer comments')) {

            // Retrieve the number of pending comments to display that

            // we saved earlier in the 'save' op, defaulting to 5.

            $num_posts = variable_get('approval_block_num_posts', 5);

            // Query the database for unpublished comments.

            $result = db_query_range('SELECT c.* FROM {comments} c WHERE c.status = %d ORDER BY c.timestamp', COMMENT_NOT_PUBLISHED, 0, $num_posts);

            // Preserve our current location so user can return after editing.

            $destination = drupal_get_destination();

            $items = array();

            while ($comment = db_fetch_object($result)) {

              $items[] = l($comment->subject, 'node/'. $comment->nid, array(), NULL, 'comment-'. $comment->cid). ' '. l(t('[edit]'), 'comment/edit/'. $comment->cid, array(), $destination);

            }

            $block['subject'] = t('Pending comments');

            // We theme our array of links as an unordered list.

            $block['content'] = theme('item_list', $items);

          }

          elseif ($delta == 1 && user_access('administer nodes')) {

            // Query the database for the 5 most recent unpublished nodes.

            // Unpublished nodes have their status column set to 0.

            $result = db_query_range('SELECT title, nid FROM {node} WHERE status = 0 ORDER BY changed DESC', 0, 5);

            $destination = drupal_get_destination();

            while ($node = db_fetch_object($result)) {

              $items[] = l($node->title, 'node/'. $node->nid). ' '. l(t('[edit]'), 'node/'. $node->nid .'/edit', array(), $destination);

            }

            $block['subject'] = t('Unpublished nodes');

            // We theme our array of links as an unordered list.

            $block['content'] = theme('item_list', $items);

          }

          return $block;

     }   

    }

    drupal_get_destination()

    This function remembers the page you were on before you submitted a form, so after you update the comment form to publish or delete a comment, you’ll be automatically redirected from whence you came.

    posted on 2007-12-04 11:50 周銳 閱讀(229) 評論(0)  編輯  收藏 所屬分類: PHP
    主站蜘蛛池模板: 亚洲爆乳无码精品AAA片蜜桃| 免费又黄又爽又猛的毛片 | 老司机亚洲精品影院在线观看| 91高清免费国产自产拍2021| 亚洲VA中文字幕无码毛片| 中文字幕无线码免费人妻| 亚洲精品成a人在线观看| 黄网站色视频免费看无下截| 国产精品久久免费视频| 日本系列1页亚洲系列| www.91亚洲| h片在线观看免费| 亚洲精品国产品国语在线| 免费网站观看WWW在线观看| 久久精品国产亚洲香蕉| 在线免费中文字幕| 亚洲娇小性色xxxx| 永久黄网站色视频免费观看| 国产精品亚洲综合| 国产亚洲精品自在线观看| 中文字幕无码免费久久9一区9| 亚洲中文字幕第一页在线 | 24小时免费看片| 中文字幕 亚洲 有码 在线| 成人免费视频网址| 免费一级做a爰片久久毛片潮| 国产亚洲精品激情都市| 午夜视频免费在线观看| 亚洲精品一二三区| 亚洲成a人片在线观看日本麻豆| 成在人线av无码免费高潮水| 久久久无码精品亚洲日韩按摩| 日本阿v免费费视频完整版| 理论亚洲区美一区二区三区| 亚洲色偷拍另类无码专区| 1000部拍拍拍18勿入免费凤凰福利| 亚洲妇女无套内射精| 国产亚洲精品岁国产微拍精品| AV无码免费永久在线观看| 污污视频网站免费观看| 中文字幕亚洲综合精品一区|