0

hook_blockは変更されていますか?以下は私がインターネット(http://eureka.ykyuen.info/2010/11/10/drupal-create-a-block/)で見つけたdrupal 6の例であり、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

コードはDrupal6で機能します。hook_blockの実装はDrupal7で変更されています。Drupal7には、目的を果たすために使用する必要のあるさまざまなフックがあります。

詳細は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 に答える