Silverstripe页面类型缺失

时间:2016-03-29 23:28:29

标签: silverstripe

我最近开始了一项新工作,作为其中的一部分,我继承了一个银线条网站,我相对较新。他们雇用来建立网站的先前开发人员有19种不同的页面类型,我需要直接编辑其中一种。

我已导航到themes/default/templates/layout并找到了15个.ss模板,但我需要的模板不存在,目录结构中的其他位置是否可以放置.ss个文件silverstripe?

3 个答案:

答案 0 :(得分:3)

如果您熟悉PHP,请遵循类层次结构的名称,直到Page,因为模板是继承的,就像类继承属性一样。

如果你不熟悉PHP(或基于类的继承编程),那么长话短说:它将默认使用另一个确实存在的模板,可能看看Page.ss

https://docs.silverstripe.org/en/3.3/developer_guides/templates/template_inheritance/

答案 1 :(得分:1)

您可以在其他几个地方找到.ss模板文件。

首先(您提到的地方):themes/default/templates/layout

第二名: themes/default/templates/

第三: mysite/code/... - 有时开发人员可能会在此处创建“模板”文件夹,因此它会mysite/code/templates

第四:可能在您正在使用的模块中......

您可以做的另一件事是在您的代码编辑器/ IDE中,仅对.ss文件进行项目搜索,并找到尚未找到的文件。希望这有助于:)

答案 2 :(得分:0)

快速而肮脏的解决方案:

  1. 使用的实际主题是什么? (在CMS的“设置”区域中找到)
  2. 有了这个(说它确实是“默认”)然后打开:themes/default/templates/Page.ss
  3. 在最顶部编辑并撰写:<h1>$ClassName</h1>
  4. 鉴于所有页面类型都使用Page.ss,那么无论您去哪个网址,顶部都会显示在&lt; h1&gt;中。标记,包含pagetype类的名称。
  5. 从那里,正如其他海报所指出的那样,使用你的O / S的原生“查找”或“搜索”功能(在OS X / Unix / Linux上找到+ grep是你的朋友)并寻找任何$ClassName打印。例如。如果$ClassName打印:“HomePage”,那么您将搜索“HomePage.ss”。

    正如其他海报也指出的那样,如果找不到匹配的.ss模板文件,那么您的神秘页面类型默认会使用themes/default/templates/Layout/Page.ss。你可以覆盖我创建一个名为你的神秘类ala的新文件:themes/default/templates/Layout/MyMysteryClass.ss瞧,如果你愿意的话,你有能力完全重新设计这个pagetype的布局和设计。