Đặt một khối trong nhiều khu vực


12

Có một mô-đun có thể cho phép người dùng đặt cùng một khối trong nhiều khu vực không? Bằng cách đó, tôi không phải thực hiện cùng một khối View hai lần.

Câu trả lời:


16

Multiblock mô-đun làm cho điều này có thể:

Mô-đun khối của Drupal bị giới hạn bởi thực tế là một khối chỉ có thể có một thể hiện. Mỗi khối có mối quan hệ 1: 1 với các cài đặt vùng, trọng lượng, mức độ hiển thị (và các thứ khác). Điều này có nghĩa là không thể có các khối trong nhiều vùng hoặc có các khối có cài đặt khác nhau trên các trang khác nhau. Mô-đun MultiBlock giải quyết vấn đề này bằng cách cho phép bạn tạo nhiều Trường hợp khối của các khối đã tồn tại.


6

Không rõ nếu bạn muốn sử dụng cùng một khối nhiều lần trên cùng một trang hoặc đặt nó ở các khu vực khác nhau trên các trang khác nhau. Dù bằng cách nào tôi cũng khuyên bạn nên xem mô-đun ngữ cảnh .

Sử dụng bối cảnh, bạn có thể đặt một khối với các vùng khác nhau trên các trang khác nhau. Ngoài ra, bạn có thể tạo 2 bối cảnh áp dụng cho cùng một trang và đặt cùng một khối ở các vùng khác nhau.


2
Cần lưu ý rằng điều này dường như không hoạt động khi đặt một khối hai lần trong cùng một khu vực. Dường như Bối cảnh chỉ có thể đặt một bản sao của một khối cho mỗi vùng.
Jeff


2

Nếu bạn đã có một mô-đun tùy chỉnh cho trang web, bạn có thể xác định các khối của riêng mình để lặp lại nội dung của một khối hiện có. Sau đó nó sẽ xuất hiện hai lần trong danh sách khối

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

Sử dụng Mô-đun MultiBlock .

Đi đến Cấu trúc-> Khối-> Trường hợp. Đưa ra một tiêu đề cá thể duy nhất và chọn loại khối và lưu. Sau đó kích hoạt khối bằng cách gán nó cho một khu vực mà bạn muốn.


2
Toàn bộ quá trình được giải thích sau khi kích hoạt mô-đun Multiblock.
Saayanta Acharyya Choudhury

@SaayantaAcharyyaChoudhury Sau đó, bạn nên chỉnh sửa câu trả lời ban đầu để làm cho nó tốt hơn thay vì viết một câu trả lời khác.
dayuloli

0

Các Bean mô-đun bây giờ cũng có chức năng này. Không chỉ cho các thực thể khối tùy chỉnh mà còn cho các khối được xác định trong hook_block. Xem phiên bản dev và mô hình con bean_all.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.