用于存储在模块中的内容类型的Drupal 8模板

时间:2016-03-10 20:08:54

标签: php drupal twig drupal-modules drupal-8

我正在构建一个带有drupal 8功能的简单模块。基本上它只是一个内容类型,其中一些字段与features模块一起导出。 现在我正在尝试在我的服装模块中存储此内容类型的模板,以使模块在其他项目中可重用。 总而言之:我想在模块中存储我的内容类型的模板,而不是在主题中。 (在自己的模板/目录中)

在Drupal 7中,方法是这样的:

function mymodule_theme($existing, $type, $theme, $path) {
  return array(
  'node__mycontenttypemachinename' => array(
      'render element' => 'elements',
      'template' => 'node--mycontenttypemachinename', //removed the "templates/"
      'base hook' => 'node' //this line did the job
    )
  );
}

我在drupal网站上找到this post,但我不确定这是否是达到我想要的正确方法。如果它是方式(当然我试过这个),有人可以解释如何让它工作。我对这部分有一些问题:

  

步骤2:调用模板   在您返回渲染数组的位置(无论是从路由器yml文件调用的控制器方法,还是在任何地方),都可以调用twig模板。

帮助将不胜感激。

修改 我尝试了Drupal 7的方式。 Drupal识别模板,在twig-debug中我可以看到它正在使用我的模板。 问题:我可以在那里输入一些HTML;但如果我尝试使用它,例如:{{ content }}我什么也看不见。在我的主题模板文件夹中,这是有效的。任何想法?

编辑2: 我在上面的代码示例中添加了缺少的行。对每个人来说,想要像我一样达到同样的目标。

解决

1 个答案:

答案 0 :(得分:2)

我会自己回答这个问题。

我错过了基础挂钩用于主题。

>>> requests.get('https://kennethreitz.com', cert=('/path/client.cert', '/path/client.key'))

我在我的问题中为每个遇到相同问题的人编辑了示例代码。