2016-04-28 7 views
0

私は現在Drupal 8とウェブサイトを統合しようとしています。私のフロントページは他のページとちょっと違っていて、現在のページがフロントページであればnode.html.twigをチェックする必要があります。 div "変数 "is_front"はpage.html.twigで正常に動作していますが、node.html.twigでは使用できないようです。どうすればこの問題を解決できますか?現在のページがnode.html.twigのフロントページかどうかを確認するにはどうすればよいですか?

+0

ノードは、*コンテンツ*であることがhtml.html.twigテンプレートで使用できるように、次のコードでは、is_front変数を追加します。フロントページは*ページ*です。ノード上にいる場合は、フロントページに同時に参加することはできません。まさにあなたがしようとしていることをさらに説明できますか?たぶん私は正しく理解していないかもしれません。 –

答えて

0

フロントページ内にノードを表示したい場合は、実際のノードページと同様に見えるようにするには、ノード上に「On Frontpage」のような新しい表示を作成できます。そのディスプレイでは、新しいノードテンプレートを作成します(twigファイルに適切な命名規則を使用するように注意してください。そうでない場合は動作しません)。次に、フロントページに "On Frontpage"ディスプレイを使用してノードを表示するように指示します。これは、別のテンプレート(目的のdivを含む)を使用します。

小枝テンプレートの命名規則:https://www.drupal.org/node/2354645

のでステップ:

  1. は、その特定の表示モード
  2. Microsoft FrontPageを伝えるための新しいテンプレートを作成し、あなたのノードのための新しい表示モードを作成しますそのディスプレイを使用してノードを表示する方法
+0

お返事ありがとうございました。特定の状況で使用したい表示モードを設定するにはどうすればよいですか? – GIJO

1

前処理フックを使用してこの変数を追加することもできます。

// Adds the is_front variable to html.html.twig template. 
function mytheme_preprocess_html(&$variables) { 
    $variables['is_front'] = \Drupal::service('path.matcher')->isFrontPage(); 
} 

は、その後、あなたがそうのような変数をチェックすることができ小枝テンプレート内:

{% if is_front %} 
THIS IS THE FRONTPAGE 
{% endif %} 
関連する問題