从Silverstripe 3.0升级到3.1后,使用模板呈现DataObject不再有效。
我扩展了一个ModelAdmin,在其编辑表单中显示了一些相当复杂的标记(某些数据表)。
SSViewer::set_theme('mytheme');
Requirements::clear();
$form->Fields()->insertAfter(
new HtmlEditorField_Readonly(
'Title',
'',
//render DataObject with template inside the form
$analytics->renderWith('MyTpl')
),
'SomeField'
);
Requirements::restore();
在升级之前它运行得非常好,但现在失败了:
[用户警告]在主题中找不到这些模板 'mytheme':MyTpl.ss
(模板文件确实存在)
在此上下文中使用模板呈现DataObject有什么问题吗? 关于为什么不起作用或如何解决它的任何想法?
答案 0 :(得分:3)
如上所述,如果您启用了主题(非常确定)SS可以查看该主题文件夹,您可以(或应该,有些人可以争辩)将您的模板放在mysite/templates/...
下(特别是如果它们用于cms)首先是模板,有时可能会烦人并创建缓存问题......
我个人不再使用主题,我只是拥有mysite
下的所有内容,我实际上称之为与我的项目相关的东西,保持整洁,易于发布。
注意:主题仍然有用,但对于可能会改变设计的网站可能更多,例如,具有xmass主题的电子商务网站。我想在SilverScoop上讨论过这个......