Как я могу изменить данные $content в Drupal 7?

Как я могу изменить данные содержимого $ в Drupal 7?

Я хочу изменить / модифицировать содержимое блока модуля: блог

Я попробовал в моем файле template.php:

function blog_block_view($delta = '') {
   return "Test, yes i am here";
}

Но ничего не происходит...

3 ответа

Чтобы изменить $ содержимое существующего блока, вам нужно создать пользовательский модуль с hook_block_view_alter () реализация.

Пример Drupal.org:

function hook_block_view_alter(&$data, $block) {
  // Remove the contextual links on all blocks that provide them.
  if (is_array($data['content']) && isset($data['content']['#contextual_links'])) {
    unset($data['content']['#contextual_links']);
  }
  // Add a theme wrapper function defined by the current module to all blocks
  // provided by the "somemodule" module.
  if (is_array($data['content']) && $block->module == 'somemodule') {
    $data['content']['#theme_wrappers'][] = 'mymodule_special_block';
  }
}

В соответствии с приведенным ниже примером вы можете изменить в файле.module.

function hook_block_view($delta = '') {
  // All of these are functionally identical.
  $block['subject'] = '';
  $block['subject'] = NULL; // Or just don't set.
  $block['title'] = '<none>'; // Undocumented, but works.
  // This will not behave as desired.
  $block['subject'] = '<none>';
  $block['content'] = array(
        '#theme' => 'feed_icon',
        '#url' => 'rss.xml',
        '#title' => t('Syndicate'),
      );
return $block; 
}

Вот правильный формат.

Убедитесь, что дельта верна, иначе вы можете изменить больше блоков, чем хотите.

/**
* Implements hook_block_view().
*/
function mycustom_module_block_view($delta = '') {

  if ($delta == "mydelta"){
    $block['subject'] = 'The Greatest Block Ever Created';
    $block['content'] = array(
      '#markup' => "<h1>Here's some content</h1>",
    );
  }

  return $block;
}
Другие вопросы по тегам