Пользовательский блок не отображается - PullRequest
0 голосов
/ 09 февраля 2012

Я создал специальный блок для установки Drupal 7 следующим образом:

/*
 * Implements hook_block_info
 * To create a block to display the information for planB in the footer.
 */

function planb_block_info() {
  $blocks['planb_footer'] = array(
    'info' => t('PlanB Footer'),
    'status' => true,
    'weight' => 0,
    'visibility' => 1,
  );
  return $blocks;
}

function planb_block_view($delta = '') {
  switch($delta) {
    case 'planb_footer':
      $block['subject'] = NULL;
      $block['content'] = footer_block_content($delta);
      return $block;
      break;
  } 
}

function footer_block_content($delta) {
  return array('#markup' => theme('footer'));
}

Теперь в моей локальной тестовой среде нижний колонтитул отображается правильно. Однако, когда я загружаю файл модуля в производственную среду, нижний колонтитул нигде не появляется. Он даже не появляется на странице Blocks, почти как если бы ловушка не регистрировалась в Drupal. Кто-нибудь знает, что я мог упустить из виду?

Я очистил кеш.

Ответы [ 3 ]

1 голос
/ 07 марта 2012

Я до сих пор не выяснил, что с этим не так, но вместо этого вернулся к созданию нижнего колонтитула с помощью графического интерфейса в администрации Drupal.

0 голосов
/ 02 декабря 2015

У меня часто возникает такая же проблема при установке пользовательского модуля в другой среде. Это происходит только тогда, когда у блока нет заданной области, поэтому мой обходной путь - переместить блок с помощью Drush после установки и включения модуля. Когда регион установлен, блок отображается в представлении администратора.

drush block-configure --module=MY_MODULE --delta=BLOCK_DELTA --region=TARGET_REGION chdir="/PATH/TO/DRUPAL"

Отсутствующий блок также имеет тенденцию появляться, если я изменяю имя дельты, но, очевидно, это не стоит хлопот при развертывании в нескольких средах.

ETA: block-configure включен в пакет drush_extras, доступный для Drush 7.

0 голосов
/ 10 февраля 2012

Это может быть проблема с кешем: вы очищали кеш на рабочем сервере? По крайней мере, реестр классов должен быть очищен, чтобы Drupal зарегистрировал ваш новый блок.

...