重载仪表板模板无法正常工作 - SilverStripe 3.3

时间:2016-02-15 18:36:45

标签: silverstripe

我正在使用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更改为“包含”之后,才会识别出这一点。但对于仪表板案例,它不是双向的。

1 个答案:

答案 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