Drupal页面标题块

时间:2017-09-16 15:58:11

标签: twig block drupal-8

今天我尝试在“页面标题”块中添加image_field。

我不知道是否可能?

如果不可能,可以在树枝模板中添加field_image吗?

TNKS。

1 个答案:

答案 0 :(得分:2)

以下内容可能会对您有所帮助。首先我为page_title添加一个主题建议,以便我可以控制我必须骑过模板的地方。我正在添加node_type - 作为模板的后缀。

然后我添加了预处理功能 - 确保用你想要的类型替换签名,最后的“news”应该替换为第一个函数中的内容类型。

在第二个函数中,我正在获取一个名为subtitle的字段,并将该值添加到变量中,以便它可以在模板中使用。

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,在我的例子中,它是page-title - news.html.twig - 从page-title.html.twig复制并添加了相应的变量。