【问题标题】:Silverstripe Page Type MissingSilverstripe 页面类型缺失
【发布时间】:2016-03-29 23:28:29
【问题描述】:

我最近开始了一份新工作,作为其中的一部分,我继承了一个 silverstripe 网站,我对它比较陌生。他们聘请来构建网站的前一位开发人员有 19 种不同的页面类型,我需要直接编辑其中一种。

我已经导航到 themes/default/templates/layout 并找到了 15 个 .ss 模板,但我需要的模板不在那里,目录结构中是否还有其他地方可以将 .ss 文件放在 silverstripe 中?

【问题讨论】:

    标签: silverstripe


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      第一(你提到的地方):themes/default/templates/layout

      第二: themes/default/templates/

      第三个: mysite/code/... - 有时开发人员可能会在这里创建一个“模板”文件夹,所以它会是 mysite/code/templates

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

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

      【讨论】:

        【解决方案3】:

        快速而肮脏的解决方案:

        1. 使用的实际主题是什么? (在 CMS 的“设置”区域中查找)
        2. 装备这个(说它真的是“默认”)然后打开:themes/default/templates/Page.ss
        3. 在最上面编辑并写:<h1>$ClassName</h1>
        4. 鉴于所有页面类型都使用 Page.ss,那么无论您访问哪个 URL,顶部都会显示在

          标记中,其中包含页面类型类的名称。

        从那里,正如其他海报所指出的那样,使用您的操作系统的本机“查找”或“搜索”功能(查找 + grep 是您在 OS X / Unix / Linux 上的朋友)并查找打印的任何$ClassName。例如。如果 $ClassName print: "HomePage" 那么你会搜索 "HomePage.ss"。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-04
          相关资源
          最近更新 更多