我正在为 Liferay 创建一个自定义主题,我希望在每个页面布局中单独包含页脚。不幸的是,我似乎无法访问页面布局文件中的 $full_templates_path 变量。我没有运气使用#set 手动存储该值,然后在包含的模板中访问该值。
在 vanilla 主题中,文件的处理是这样的:
portal_normal.vm:
1) some init, doctype, etc.
2) #parse("$full_templates_path/header.vm")
3) $theme.include($content_include)
a) custom_layout_1.tpl
b) chat portlet
4) #parse("$full_templates_path/footer.vm")
出于布局目的,我需要偏离这种模式,如下所示:
portal_normal.vm
1) some init, doctype, etc.
2) #parse("$full_templates_path/header.vm")
3) $theme.include($content_include)
a) custom_layout_1.tpl
i) #parse("$full_templates_path/footer.vm")
b) chat portlet
当我尝试这个时,tomcat 会出错,因为在 custom_layout_1.tpl 中没有定义 $full_templates_path。我尝试通过在 portal_normal.vm 中执行以下操作来解决此问题
#set($full_footer_path = "$full_templates_path/footer.vm")
$theme.include($content_include)
然后,在 custom_layout_1.tpl 中,我在希望发出页脚标记的地方执行此操作:
#parse("$full_footer_path")
但是,tomcat 仍然报错,说 $full_footer_path 没有定义。
当我将 $full_templates_path 的值硬编码到 custom_layout_1.tpl 中的 #parse 语句中时,一切正常,但这对我来说似乎是一个 hack。
理想情况下,这应该出于正确的原因做正确的事情,而不仅仅是因为我使用了很多胶带。
关于从自定义页面布局中实现包含模板文件的方法的任何建议?