Ответы:
Мультиблочный модуль делает это возможным:
Блок-модуль Drupal ограничен тем, что блок может иметь только один экземпляр. Каждый блок имеет соотношение 1: 1 с настройками региона, веса, видимости (и других). Это означает, что невозможно иметь блоки в нескольких регионах или блоки с разными настройками на разных страницах. Модуль MultiBlock решает эту проблему, позволяя создавать несколько экземпляров блоков уже существующих блоков.
Неясно, хотите ли вы использовать один и тот же блок более одного раза на одной странице или разместить его в разных регионах на разных страницах. В любом случае, я бы порекомендовал вам взглянуть на контекстный модуль .
Используя контекст, вы можете разместить блок в разных регионах на разных страницах. В качестве альтернативы вы можете создать 2 контекста, которые применяются к одной и той же странице / страницам и разместить один и тот же блок в разных регионах.
Если у вас уже есть собственный модуль для сайта, вы можете определить свои собственные блоки, чтобы повторять содержимое существующего блока. Затем он появится дважды в списке блоков
/* -------------------
custom blocks
----------------- */
/**
* Declare what blocks are provided by this module.
* Implements hook_block_info().
*/
function MYMODULE_block_info(){
$block['fibble_home'] = array(
'info' => t('fibble (home)'),
'cache' => DRUPAL_CACHE_PER_ROLE,
);
$block['fibble_members'] = array(
'info' => t('fibble (members)'),
'cache' => DRUPAL_CACHE_PER_ROLE,
);
return $block;
}
/**
* Define what our block is going to look like.
* Implements hook_block_view().
*/
function MYMODULE_block_view($block_key){
$block = array();
// tweets block to appear twice
if($block_key == 'fibble_home' || $block_key == 'fibble_members'){
//This is the title of the block.
$block['subject'] = t('Fibble');
$fblock = module_invoke('MODULE_ORIGINAL_BLOCK', 'block_view', 'ID_ORIGINAL_BLOCK');
$fcontent = render($fblock['content']);
$block['content'] = '<!-- content repeated by MYMODULE -->';
$block['content'] .= $fcontent;
}
return $block;
}
Используйте модуль MultiBlock .
Перейдите в Структура-> Блоки-> Экземпляры. Дайте уникальный заголовок экземпляра, выберите тип блока и сохраните. Затем включите блок, назначив его в регион, где вы хотите.
Модуль Bean также теперь имеет эту функциональность. Не только для пользовательских блоков, но и для блоков, определенных в hook_block. Смотрите версию dev и подмодуль bean_all.