我正在使用Unclecheese仪表板模块。现在我正在尝试重载(? I think that's the right englisch term)
Dashboard_Content.ss模板。为此,我将其内容复制到我的模块目录下“Includes”文件夹中具有相同名称的新文件中。做了我的改变并保存了。
在刷新后没有任何反应,但如果我将相同的模板文件放在mysite / templates / Includes而不是mymodule / templates / Includes下,它会按预期运行...
即使我从仪表板文件夹中删除了原始模板文件,我的模块文件夹中的文件也无法识别。
我的下一个尝试是扩展仪表板并使用另一个模板
进行渲染<?php
class CSYMDashboardExtension extends DataExtension {
public function init() {
$config = SiteConfig::current_site_config();
if(!$config->CompanyID || !$config->CompanyOwner || !$config->Bank || !$config->IBAN || !$config->BIC || !$config->UstID || !$config->SenderEmail) {
return $this->owner
->customise(
['Message' => 'Die Einrichtung ist noch nicht komplett abgeschlossen! Wird das System in diesem Zustand verwendet werden Fehler auftreten! Bitte setzen Sie die Einrichtung hier fort <a href="/admin/settings/">Einstellungen</a>']
)->renderWith(['DCTest']);
}
}
}
但无论模板文件位于何处,这都行不通(我也尝试了onAfterInit()
。
在我的模块config.yml中,我已声明它在框架和cms之后加载After: 'framework/*','cms/*'
有没有人能解决这个问题?
编辑:作为一个侧面说明,我在重载UploadField_FileButtons.ss模板时遇到了类似的问题。直到我将“包含”-Folder更改为“包含”之后,才会识别出这一点。但对于仪表板案例,它不是双向的。
答案 0 :(得分:2)
模块模板难以覆盖其他模块的模板(如果可能的话......?)
我建议您在特定于主题模块的<current_theme>_dashboard
文件夹中覆盖模板,并将其与目前的结构类似。
所以最后,你的文件将在:
themes/templates/<current_theme>_dashboard/includes/Dashboard_Content.ss
参考: https://docs.silverstripe.org/en/3.2/developer_guides/templates/template_inheritance