0

hook_block 是否已更改?以下是我在互联网上找到的 drupal 6 示例(http://eureka.ykyuen.info/2010/11/10/drupal-create-a-block/),admin/structure/block 中没有显示块,

     * Implementation of hook_block().

     */

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

            switch ($op) {

                    //Define the block

                    case 'list':

                            $blocks[0]['info'] = t('Block Info');

                            $blocks[0]['cache'] = BLOCK_NO_CACHE;

                            return $blocks;



                    case 'configure':

                            //TODO: block configurable parameters

                            $form = array();

                            return $form;



                    case 'save':

                            //TODO: save new configuration

                            return;



                    //Display the block

                    case 'view':

                            $block['subject'] = t('Block Subject');

                            $block['content'] = 'Block Content';

                            return $block;

            }

    }

看来,drupal 7 中的 hook_block 已更改,如何重写代码?任何人都可以向我提供提示/方向吗?非常感谢你。

4

2 回答 2

2

您的代码适用于 Drupal 6。在 Drupal 7 中更改了 hook_block 的实现。在 Drupal 7 中,应该使用不同的钩子来满足您的目的。

在此处查看更多信息hook_block

于 2012-07-03T09:32:22.007 回答
2

在 Drupal 7 中,您的 hook_block() 实现将更改为:

/**
 * Implements hook_block_info().
 */
function custom_block_info() {
  $blocks = array();

  $blocks['list'] = array(
    'info' => t('Block Info'),
    'cache' => DRUPAL_NO_CACHE,
  );

  return $blocks;
}

/**
 * Implements hook_block_view().
 */
function custom_block_view($delta = '') {
  $block = array();

  switch ($delta) {
    case 'list':
      if (user_access('access content')) {
        $block['subject'] = t('Block Subject');
        $block['content'] = 'Block Content';
      }
      break;
  }

  return $block;
}
于 2012-07-03T09:46:37.567 回答