web-dev-qa-db-ja.com

プログラムでDrupal 7にブロック領域を作成します

Drupal 7.でプログラムで領域を作成することに行き詰まっています。infoファイルで領域を作成する方法を知っていますが、問題は、作成するすべてのノードに特定の領域を表示することです。すべてのノードを個別にブロックします。

Drupal 7のみに興味があります。モジュールを作成することで可能であれば、それも私にとって興味深い解決策です。

5
pravat231
  1. テーマの.infoファイルを編集して、次の行を追加します。

    regions[youregionname] = Your Region name
    
  2. テンプレートファイル(「page.tpl.php」など)を編集し、次の行を追加します。

    <?php if(!empty($page['youregionname'])) : ?> <!--check if region enabled-->
      <div class='my-new-region-class' >   <!--add class to my region-->
        <?php print render($page['youregionname']); ?> <!--print the region-->
      </div>
    <?php endif; ?>
    

ファイルを編集したら、キャッシュをクリアすることを忘れないでください。

6
maged adel

それでも、テーマの.infoファイルにリージョンを作成する必要があります。ただし、これらの新しいリージョンをデータベースに手動で追加する以外に方法はありません。その後、 Node Blocks module を取得します。これにより、どのノードにどのブロックを表示するか、およびそれらをどのリージョンに配置するかを決定するのに役立ちます。

1
Clive

Maged adelが言ったように、.infoファイルでリージョンを作成し、次にpage.tpl.phpファイルでこれらの変数を使用して、adminセクションからブロックを作成し、リージョンに配置して、ノードごとに異なるようにする必要があります。

1
Hacker