Posiziona un blocco in più regioni


12

Esiste un modulo che può consentire agli utenti di posizionare lo stesso blocco in più aree? In questo modo non devo fare lo stesso blocco View due volte.

Risposte:


16

Il modulo multiblocco lo rende possibile:

Il modulo a blocchi di Drupal è limitato dal fatto che un blocco può avere solo un'istanza. Ogni blocco ha una relazione 1: 1 con le impostazioni relative a regione, peso, visibilità (e altro). Ciò significa che è impossibile avere blocchi in più aree o avere blocchi con impostazioni diverse su pagine diverse. Il modulo MultiBlock risolve questo problema consentendo di creare più istanze di blocco di blocchi già esistenti.


6

Non è chiaro se si desidera utilizzare più volte lo stesso blocco nella stessa pagina o posizionarlo in aree diverse su pagine diverse. Ad ogni modo, ti consiglio di dare un'occhiata al modulo contestuale .

Utilizzando il contesto è possibile posizionare un blocco con in diverse regioni su pagine diverse. In alternativa puoi creare 2 contesti che si applicano alla stessa pagina / e posizionando lo stesso blocco in regioni diverse.


2
Va notato che questo non sembra funzionare quando si inserisce un blocco due volte all'interno della stessa regione. Sembra che il contesto possa inserire solo una copia di un blocco per regione.
Jeff,


2

Se hai già un modulo personalizzato per il sito, puoi definire i tuoi blocchi per ripetere il contenuto di un blocco esistente. Apparirà quindi due volte nell'elenco dei blocchi

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

Utilizzare il modulo MultiBlock .

Vai a Struttura-> Blocchi-> Istanze. Assegna un titolo di istanza univoco e seleziona il tipo di blocco e salva. Quindi abilitare il blocco assegnandolo a una regione in cui si desidera.


2
L'intero processo viene spiegato dopo aver abilitato il modulo Multiblock.
Saayanta Acharyya Choudhury,

@SaayantaAcharyyaChoudhury Quindi avresti dovuto modificare la risposta originale per renderla migliore invece di scrivere un'altra risposta.
Dayuloli,

0

Anche il modulo Bean ora ha questa funzionalità. Non solo per entità di blocco personalizzate ma anche per blocchi definiti in hook_block. Vedi la versione dev e il sottomodulo bean_all.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.