Réponses:
Le module multibloc permet cela:
Le module de bloc de Drupal est limité par le fait qu'un bloc ne peut avoir qu'une seule instance. Chaque bloc a une relation 1: 1 avec ses paramètres de région, de poids, de visibilité (et autres). Cela signifie qu'il est impossible d'avoir des blocs dans plusieurs régions ou d'avoir des blocs ayant des paramètres différents sur différentes pages. Le module MultiBlock résout ce problème en vous permettant de créer plusieurs instances de bloc de blocs déjà existants.
Il n'est pas clair si vous souhaitez utiliser le même bloc plusieurs fois sur la même page ou le placer dans différentes régions sur différentes pages. Dans tous les cas, je vous recommande de jeter un œil au module contextuel .
En utilisant le contexte, vous pouvez placer un bloc dans différentes régions sur différentes pages. Alternativement, vous pouvez créer 2 contextes qui s'appliquent aux mêmes pages et placer le même bloc dans différentes régions.
Le module Panneaux facilite également l'utilisation de plusieurs instances du même bloc sur une page.
Si vous avez déjà un module personnalisé pour le site, vous pouvez définir vos propres blocs pour répéter le contenu d'un bloc existant. Il apparaîtra ensuite deux fois dans la liste de blocage
/* -------------------
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;
}
Utilisez le module MultiBlock .
Allez dans Structure-> Blocs-> Instances. Donnez un titre d'instance unique et sélectionnez le type de bloc et enregistrez. Activez ensuite le bloc en l'attribuant à une région où vous le souhaitez.
Le module Bean possède également cette fonctionnalité. Pas seulement pour les entités de bloc personnalisées mais aussi pour les blocs définis dans hook_block. Voir la version dev et le sous-module bean_all.