여러 지역에 블록 배치


12

사용자가 여러 지역에 동일한 블록을 배치 할 수있는 모듈이 있습니까? 그렇게하면 동일한 View 블록을 두 번 만들 필요가 없습니다.

답변:


16

멀티 블록 모듈은이를 가능하게합니다.

Drupal의 블록 모듈은 블록이 하나의 인스턴스 만 가질 수 있다는 사실에 의해 제한됩니다. 각 블록은 영역, 무게, 가시성 (및 기타) 설정과 1 : 1 관계가 있습니다. 즉, 여러 지역에 블록을 만들거나 다른 페이지에서 다른 설정을 가진 블록을 가질 수 없습니다. MultiBlock 모듈은 기존 블록의 여러 블록 인스턴스를 생성 할 수 있도록하여이 문제를 해결합니다.


6

같은 페이지에서 같은 블록을 두 번 이상 사용하거나 다른 페이지의 다른 영역에 배치 할 것인지는 확실하지 않습니다. 어느 쪽이든 컨텍스트 모듈을 살펴 보는 것이 좋습니다 .

컨텍스트를 사용하여 다른 페이지의 다른 영역에 블록을 배치 할 수 있습니다. 또는 동일한 페이지에 적용되는 2 개의 컨텍스트를 생성하고 동일한 블록을 다른 지역에 배치 할 수 있습니다.


2
동일한 지역 내에서 블록을 두 번 넣을 때 이것은 작동하지 않는 것으로 나타납니다. 컨텍스트는 영역 당 하나의 블록 사본 만 넣을 수 있습니다.
Jeff

3

또한 패널 모듈 을 사용하면 페이지에서 동일한 블록의 여러 인스턴스를 쉽게 사용할 수 있습니다.


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

1

멀티 블록 모듈을 사용하십시오 .

구조-> 블록-> 인스턴스로 이동하십시오. 고유 한 인스턴스 제목을 지정하고 블록 유형을 선택하고 저장하십시오. 그런 다음 블록을 원하는 지역에 할당하여 활성화하십시오.


2
전체 프로세스는 멀티 블록 모듈을 활성화 한 후 설명됩니다.
Saayanta Acharyya Choudhury

@SaayantaAcharyyaChoudhury 그런 다음 다른 답변을 쓰지 않고 원래 답변을 편집하여 더 좋게 만들어야합니다.
dayuloli

0

모듈은 이제이 기능이 있습니다. 커스텀 블록 엔터티뿐만 아니라 hook_block에 정의 된 블록에도 적용됩니다. dev 버전과 bean_all 서브 모듈을보십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.