2017-09-16 3 views
0

今日私はimage_fieldを "Page Title"ブロックに追加しようとしました。Drupal Pageタイトルブロック

可能かどうか分かりませんか?

できない場合は、twigテンプレートにfield_imageを追加できますか?

Tnks。

+0

何でも可能です。試したコードを表示できますか? –

+0

私はfield-node-title.html.twigのちょうど{{node.field_image.title}}(テストするタイトル)のような小枝を使用しようとしました。私はそれがこれを作るための最善の方法かどうかわからない...素早い応答のためのThks;) –

+0

私はあなたがDrupalを使用していることを知った。私はDrupalに慣れていない。他の誰かが何かを提案するかもしれませんか? –

答えて

0

以下は、お役に立ちます。まず、page_titleのテーマ提案を追加して、テンプレートを乗り越えなければならない場所を制御できるようにします。私はnode_typeをテンプレートに接尾辞として追加しています。

次に、前処理機能を追加します。最後の「ニュース」を最初の機能からのコンテンツタイプに置き換える必要があるタイプに署名を置き換えてください。

私は2番目の関数では、私は字幕と呼ばれるフィールドを取得し、テンプレートに利用できるように変数に値を追加しています。 news.html.twig - -

function mytheme_theme_suggestions_alter(array &$suggestions, array &$variables, $hook) { 
    if($hook === 'page_title') { 
    if($node = \Drupal::routeMatch()->getParameter('node')){ 
     $node_type = $node->getType(); 
     // suggestion must use _ and __ as per convention. 
     $suggestions[] = 'page_title__'.$node_type; 
    } 
    } 
} 


function mytheme_preprocess_page_title__news(&$variables) { 

    if ($node = \Drupal::routeMatch()->getParameter('node')) { 
    try { 
     if ($node->get('field_subtitle') && !$node->get('field_subtitle')->isEmpty()) { 
     $variables['sub_title'] = 
      $node->get('field_subtitle') 
      ->get(0) 
      ->get('value') 
      ->getValue(); 
     } 
    }catch(Exception $e){ 

     \Drupal::logger('mytheme')->error($e); 
    } 
    } 
} 

今すぐテンプレートにテンプレートファイルで利用できるsub_titleます、私の場合、それは、ページのタイトルだっページ-title.html.twigからコピーされ、それぞれの変数を追加しました。

+0

上記の関数をmytheme.themeファイルに追加する必要があります。 – allupaku

+0

こんにちは、私は自分のテーマに適応するためにいくつかの修正を加えてあなたの関数を使用しようとしました。しかし私がkint()を使って変数(あなたの 'sub_title'のために)に何を持っているのかを調べようとすると、 'NULL'と表示されます –

+0

変数値の関数自体をkintしようとしましたか?フィールドから適切に値を取得していますか、イメージフィールドの値はテキストフィールドと同じ構造ではありません。私の場合、私はテキストフィールドを取得しています。 – allupaku