複数の地域にブロックを配置する


12

ユーザーが複数のリージョンに同じブロックを配置できるモジュールはありますか?そうすれば、同じViewブロックを2回作成する必要がなくなります。

回答:


16

マルチブロックモジュールにより、これが可能になります。

Drupalのブロックモジュールは、ブロックが1つのインスタンスしか持つことができないという事実によって制限されます。各ブロックは、地域、重量、可視性(およびその他)の設定と1対1の関係にあります。これは、複数の領域にブロックを配置したり、異なるページに異なる設定を持つブロックを配置することは不可能であることを意味します。MultiBlockモジュールは、既存のブロックの複数のブロックインスタンスを作成できるようにすることで、この問題を解決します。


6

同じブロックを同じページで複数回使用するか、異なるページの異なる領域に配置するかは不明です。いずれにしても、コンテキストモジュールをご覧になることをお勧めします。

コンテキストを使用すると、異なるページの異なる領域にブロックを配置できます。または、同じページに適用する2つのコンテキストを作成して、同じブロックを異なる地域に配置することもできます。


2
同じ領域内にブロックを2回配置すると、これは機能しないように見えることに注意してください。Contextは、リージョンごとに1つのブロックのコピーしか配置できないようです。
ジェフ


2

サイトのカスタムモジュールが既にある場合は、独自のブロックを定義して、既存のブロックのコンテンツを繰り返すことができます。その後、ブロックリストに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

MultiBlockモジュールを使用します。

[構造]-> [ブロック]-> [インスタンス]に移動します。一意のインスタンスタイトルを指定し、ブロックタイプを選択して保存します。次に、必要な地域にブロックを割り当てて、ブロックを有効にします。


2
マルチブロックモジュールを有効にした後、プロセス全体について説明します。
Saayanta Acharyyaチョードリー

@SaayantaAcharyyaChoudhuryその後、別の回答を書く代わりに、元の回答を編集して改善する必要があります。
-dayuloli

0

豆のモジュールは今もこの機能を備えています。カスタムブロックエンティティだけでなく、hook_blockで定義されたブロックに対しても。devバージョンとbean_allサブモジュールを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.