2017-09-28 12 views
0

나는 맞춤 블록을 만드는 맞춤 모듈 modero_kbo를 보유하고 있습니다. 내 페이지에 배치되는 위치에 따라이 블록을 다르게 표시해야합니다. 내 사용자 지정 테마 .theme 파일드루팔 (Drupal 8 나뭇 가지 - 사용자 정의 블록 - 두 나뭇 가지 템플릿 세 번째가 작동하지 않습니다?

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의 기능을 가지고 그 페이지. 처음 두 개는 실제로 작동하지만 세 번째 것은 작동하지 않습니다. 나는 모든 파일 이름과 철자를 검사했다.

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 훅이 작동하지 않는 이유를 알 수 없으므로 프로세스의 어느 시점에서 양식 변수를 사용할 수 없다고 생각됩니다.

블록을 복사하고 사용자 지정 템플릿을 사용하여 새 블록을 만들어이 문제를 해결했습니다.