Coloque un bloque en múltiples regiones


12

¿Existe un módulo que permita a los usuarios colocar el mismo bloque en varias regiones? De esa manera no tengo que hacer el mismo bloque de Vista dos veces.

Respuestas:


16

El módulo multibloque hace esto posible:

El módulo de bloque de Drupal está limitado por el hecho de que un bloque solo puede tener una instancia. Cada bloque tiene una relación 1: 1 con su región, peso, visibilidad (y otras configuraciones). Esto significa que es imposible tener bloques en varias regiones o tener bloques que tengan diferentes configuraciones en diferentes páginas. El módulo MultiBlock resuelve este problema permitiéndole crear múltiples instancias de bloque de bloques ya existentes.


6

No está claro si desea usar el mismo bloque más de una vez en la misma página o colocarlo en diferentes regiones en diferentes páginas. De cualquier manera, le recomendaría que eche un vistazo al módulo de contexto .

Usando el contexto, puede colocar un bloque en diferentes regiones en diferentes páginas. Alternativamente, puede crear 2 contextos que se aplican a la misma página / s y colocar el mismo bloque en diferentes regiones.


2
Cabe señalar que esto no parece funcionar cuando se pone un bloque dos veces dentro de la misma región. Parece que Context solo puede poner una copia de un bloque por región.
Jeff


2

Si ya tiene un módulo personalizado para el sitio, puede definir sus propios bloques para repetir el contenido de un bloque existente. Luego aparecerá dos veces en la lista de bloqueo

/* -------------------
    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;
}

1

Use el módulo MultiBlock .

Vaya a Estructura-> Bloques-> Instancias. Dé un título de instancia único y seleccione el tipo de bloque y guarde. Luego habilite el bloque asignándolo a una región donde desee.


2
Todo el proceso se explica después de habilitar el módulo Multiblock.
Saayanta Acharyya Choudhury

@SaayantaAcharyyaChoudhury Entonces debería haber editado la respuesta original para mejorarla en lugar de escribir otra respuesta.
dayuloli

0

El módulo Bean ahora también tiene esta funcionalidad. No solo para entidades de bloque personalizadas sino también para bloques definidos en hook_block. Vea la versión de desarrollo y el submódulo bean_all.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.