Drupal 8 Twig - 自定义块 - 两个工作第三个的树枝模板不是吗?
Drupal 8 Twig - custom block - two twig templates working third is not?
我有一个自定义模块 modero_kbo 可以创建自定义块。
我需要根据它在我页面上的位置以不同方式显示它。
我的 modero_kbo.module:
中有这个功能
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
)
),
);
}
这在我的自定义主题 .theme 文件中:
/**
* 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 来源中。
前两个实际工作,第三个不工作。
我已经对所有文件名和拼写进行了三次检查。
我有 3 个不同的模板文件,前两个可以使用,第三个显示在建议列表中,但由于某种原因未被使用?
modero-kbo-vat.html.twig
modero-kbo--landing-page.html.twig
modero-kbo--landing-page--modero-kbo-form-2.html.twig
我们在这里发现的一个错误是我应该只使用 modero_kbo_theme()
函数中的第一个数组。
moderosolid_theme_suggestions_modero_kbo_vat_alter
改变了那个主题。
我们无法弄清楚为什么第三个挂钩不起作用,我们怀疑表单变量可能在过程中的某个时刻不可用。
我通过复制块并使用自定义模板创建新块解决了这个问题。
我有一个自定义模块 modero_kbo 可以创建自定义块。 我需要根据它在我页面上的位置以不同方式显示它。
我的 modero_kbo.module:
中有这个功能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
)
),
);
}
这在我的自定义主题 .theme 文件中:
/**
* 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 来源中。 前两个实际工作,第三个不工作。 我已经对所有文件名和拼写进行了三次检查。
我有 3 个不同的模板文件,前两个可以使用,第三个显示在建议列表中,但由于某种原因未被使用?
modero-kbo-vat.html.twig
modero-kbo--landing-page.html.twig
modero-kbo--landing-page--modero-kbo-form-2.html.twig
我们在这里发现的一个错误是我应该只使用 modero_kbo_theme()
函数中的第一个数组。
moderosolid_theme_suggestions_modero_kbo_vat_alter
改变了那个主题。
我们无法弄清楚为什么第三个挂钩不起作用,我们怀疑表单变量可能在过程中的某个时刻不可用。
我通过复制块并使用自定义模板创建新块解决了这个问题。