design:article/full.tpl 的 design 部分已经应该做你想做的事了。它将搜索article/full.tpl 模板,从您的设计文件夹extension/myextension/design 中的templates 文件夹开始。
eZ Publish 将使用以下规则找到好的模板:
首先:确定哪些设计用于站点访问。查看您的 site.ini 文件中的 [DesignSettings] 块s
[DesignSettings]
SiteDesign=a_design_specific_or_not_to_your_siteaccess
AdditionalSiteDesignList[]=another_generic_design
AdditionalSiteDesignList[]=standard
AdditionalSiteDesignList[]=base
然后:确定哪些扩展提供设计。请参阅每个扩展的 design.ini 文件中的 [ExtensionSettings] 块(extension/ezflow/settings/design.ini.append.php 的示例):
[ExtensionSettings]
DesignExtensions[]=ezflow
最后,eZ Publish 查找模板。先尝试SiteDesign设计,然后从上到下尝试所有AdditionalSiteDesignList设计。一旦找到模板,查找就会停止,并且此信息会被缓存(即使您的 TemplaceCache / TemplateCompile / ... 已禁用)。请记住缓存部分,每次添加新模板时,意味着要覆盖另一个模板,您需要清除缓存。
因此,如果我们只有 2 个提供设计的扩展程序,例如 ezflow 和 mysite,eZ Publish 将尝试以下路径:
extension/mysite/design/a_design_specific_or_not_to_your_siteaccess/templates/full/article.tpl
extension/mysite/design/another_generic_design/templates/full/article.tpl
extension/mysite/design/standard/templates/full/article.tpl
extension/mysite/design/base/templates/full/article.tpl
extension/ezflow/design/a_design_specific_or_not_to_your_siteaccess/templates/full/article.tpl
extension/ezflow/design/another_generic_design/templates/full/article.tpl
extension/ezflow/design/standard/templates/full/article.tpl
extension/ezflow/design/base/templates/full/article.tpl
design/a_design_specific_or_not_to_your_siteaccess/templates/full/article.tpl
design/another_generic_design/templates/full/article.tpl
design/standard/templates/full/article.tpl
design/base/templates/full/article.tpl
请注意,我假设mysite 扩展的优先级高于ezflow。见settings/override/site.ini.append.php:
[ExtensionSettings]
ActiveExtensions[]
ActiveExtensions[]=mysite
....
ActiveExtensions[]=ezflow
....
这适用于system 模板。内容模板(attribute_view_gui 和 node_view_gui 函数使用的模板)的过程略有不同,请参阅 https://doc.ez.no/eZ-Publish/Technical-manual/4.x/Templates/The-template-override-system