用于存储在模块中的内容类型的 Drupal 8 模板
Drupal 8 template for content-type stored in module
我正在构建一个具有 drupal 8 功能的简单模块。基本上它只是一个内容类型,其中一些字段与功能模块一起导出。
现在我正尝试在我的服装模块中存储此内容类型的模板,以使该模块可在其他项目中重复使用。 总而言之:我想将我的内容类型的模板存储在模块中而不是主题中。 (在自己的模板/目录中)
在 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,但我不确定这是否是达到我想要的目标的正确方法。如果是这样(我当然试过了),有人能解释一下如何让它工作吗?我对这部分有一些疑问:
Step #2: Call the Template
In the place where you are returning your render array (whether from a controller method that is called from your router yml file, or wherever), make a call to your twig template.
将不胜感激。
编辑:
我尝试了 Drupal 7 方式。 Drupal 识别模板,在 twig-debug 中我可以看到它正在使用我的模板。 问题: 我可以在那里输入一些 HTML;但是如果我尝试使用它,例如: {{ content }}
我什么也看不到。在我的主题模板文件夹中,这是有效的。有什么想法吗?
编辑 2:
我在上面的代码示例中添加了缺失的行。对于每个人如何想达到像我一样。
已解决
我会自己回答这个问题。
我缺少用于主题化的 base hook。
'base hook' => 'node'
我为遇到相同问题的每个人编辑了问题中的示例代码。
我正在构建一个具有 drupal 8 功能的简单模块。基本上它只是一个内容类型,其中一些字段与功能模块一起导出。 现在我正尝试在我的服装模块中存储此内容类型的模板,以使该模块可在其他项目中重复使用。 总而言之:我想将我的内容类型的模板存储在模块中而不是主题中。 (在自己的模板/目录中)
在 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,但我不确定这是否是达到我想要的目标的正确方法。如果是这样(我当然试过了),有人能解释一下如何让它工作吗?我对这部分有一些疑问:
Step #2: Call the Template In the place where you are returning your render array (whether from a controller method that is called from your router yml file, or wherever), make a call to your twig template.
将不胜感激。
编辑:
我尝试了 Drupal 7 方式。 Drupal 识别模板,在 twig-debug 中我可以看到它正在使用我的模板。 问题: 我可以在那里输入一些 HTML;但是如果我尝试使用它,例如: {{ content }}
我什么也看不到。在我的主题模板文件夹中,这是有效的。有什么想法吗?
编辑 2: 我在上面的代码示例中添加了缺失的行。对于每个人如何想达到像我一样。
已解决
我会自己回答这个问题。
我缺少用于主题化的 base hook。
'base hook' => 'node'
我为遇到相同问题的每个人编辑了问题中的示例代码。