如何在silverstripe中创建一个不调用默认Page.ss模板的页面

时间:2018-01-30 17:47:17

标签: silverstripe

我需要为主页制作一个“正在建设中”页面。

我创建的所有模板都使用默认的Page.ss来构建头/导航和页脚。但在建设页面我不想这样做。

如何在新的网页类型中省略Page.ss的使用?

这是我的Page.ss,用作创建每个页面类型的基础

<!doctype html>
<html lang="en">
<head>
    <% base_tag %>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    $MetaTags
</head>

<body>
    <% include GraphicHeader %>
    <% include HeadNav %>

    $Layout

    <% include Footer %>           
</body>

2 个答案:

答案 0 :(得分:2)

您的主题中有两个名为 Page.ss 的文件。

  • /themes/yourtheme/templates/Page.ss 了解您网站的外部结构(<head><body>
  • /themes/yourtheme/templates/Layout/Page.ss 包含在$Layout变量中,并定义了每页类型的内部结构。

您的Page_Controller会自动尝试使用名为相关网页类(例如HomePage)的模板渲染自身,并搜索布局和基本模板。如果它没有找到,那么它将回退到名为父类等的模板,直到它找到你的Page.ss

这对两个模板,外部和内部布局都有效。

因此,如果您的主页类被称为HomePage,只需在 / themes / yourtheme / templates / 中放置 HomePage.ss 即可。 ;由HomePage及其子类占用。

使用维护模块(参见Robbie Averill的回答)可能是您的案例中更强大的解决方案。

答案 1 :(得分:1)

您可以使用this one之类的维护模式模块,并修改页面以代替“正在建设中”。

这样您就可以在公众看到“正在建设中”之前在网站上工作,直到您准备开启它为止。