2017-09-28 3 views
0

カスタムブロックを作成するカスタムモジュールmodero_kboがあります。 私のページに配置されている場所によって、このブロックを別に表示する必要があります。私のカスタムテーマ.themeファイルでDrupal 8枝 - カスタムブロック - 2つの枝テンプレートが3番目に働いていませんか?

function modero_kbo_theme() { 
    return array(
    'modero_kbo_vat' => array(
     'variables' => array(
     'form' => NULL 
    ) 
    ), 
    'modero_kbo__landing_page' => array(
     'variables' => array(
     'form' => NULL 
    ) 
    ), 
    'modero_kbo__landing_page__modero_kbo_form_2.html.twig' => array(
     'variables' => array(
     'form' => NULL 
    ) 
    ), 
); 
} 

そして、この:

/** 
* Implements hook_theme_suggestions_HOOK_alter() for modero_kbo.html.twig. 
*/ 
function moderosolid_theme_suggestions_modero_kbo_vat_alter(array &$suggestions, array $variables) { 
    if($node = \Drupal::routeMatch()->getParameter('node')){ 
    $suggestions[] = 'modero_kbo__' . $node->bundle(); 
    $suggestions[] = 'modero_kbo__' . $node->bundle() . '__' . $variables['form']['#attributes']['data-drupal-selector']; 
    } 
} 

全3つのテンプレートの提案は上の私のHTMLソースに現れている

私は、この私のmodero_kbo.moduleで機能を持っていますページ。 最初の2つは実際に動作し、3つ目は機能しません。 私はすべてのファイル名とスペルをチェックしました。

3つのテンプレートファイルがあります。最初の2つは機能しています.3番目のテンプレートファイルは提案リストに表示されていますが、何らかの理由で使用されていませんか?私たちはここで見つける

modero-kbo-vat.html.twig 
modero-kbo--landing-page.html.twig 
modero-kbo--landing-page--modero-kbo-form-2.html.twig 

enter image description here

答えて

0

一つのエラーは、私だけmodero_kbo_theme()関数の最初のアレイを使用しなければならないということです。

moderosolid_theme_suggestions_modero_kbo_vat_alterはテーマを変更します。

第3フックが機能しない理由を理解できなかったので、フォーム変数がプロセスのある時点で利用できないと思われます。

私はブロックをコピーし、カスタムテンプレートで新しいブロックを作成することでこれを解決しました。

関連する問題