когда я создаю пользовательский блок, он отображается в списке модулей и активируется нормально.Но не отображается в списке блоков - PullRequest
0 голосов
/ 09 ноября 2011

имя папки: yourModule
В этой папке у меня есть два файла ... один файл "yourModule.info" .... и другой файл "yourModule.module".

код yourModule.info:

;$ID$
name = "Your Module"
description = "Place to put PHP functions for Drupal customizations."
core = 7.x

код yourModule.module:

/*****************************************************************************
* Implementation of hook_block()
* @see http://api.drupal.org/api/function/hook_block/6
* create a minimal block
*/
function yourModule_block( $op = 'list', $delta = 0, $edit = array()) {
  switch ($op) {
  case 'list':
       // appears on the Blocks configuration page admin/build/block<br>
       $blocks = array();
       $blocks[0]['info'] = t('My Block');
       return $blocks;
  case 'view':
       // content of block; required to have 'subject' and 'content' elements
       $blocks = array();
       $blocks['subject'] = t('<center>My Block Status</center>');
       $blocks['content'] = t('<center>My Block Content</center>');
       return $blocks;
  }
}

Я ищу Google по этому поводу в течение 3 дней, но я не пользуюсь .. Я использую Drupal 7 и Wamp на Windows-XP ... Пожалуйста, спасите меня

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

Вы пометили вопрос как Drupal 7, и действительно, информационный файл вашего модуля объявляет core = 7.x, но вы используете перехватчики блоков из Drupal 6.

Для Drupal 7 вам необходимо использовать hook_block_info() и hook_block_view() соответственно.

function yourModule_block_info() {
  $blocks['my_block'] = array(
    'info' => t('My Block'), 
    'cache' => DRUPAL_NO_CACHE,
  );

  return $blocks;
}

function yourModule_block_view($delta = '') {
  $block = array();

  if ($delta == 'my_block') {
    $block['subject'] = t('My Block Status');
    $block['content'] = t('My Block Content');
  }

  return $block;
}
0 голосов
/ 09 ноября 2011

hook_block () не существует в drupal 7. Смотрите block.api.php для получения дополнительной информации.

...