我是SilverStripe的新手。我需要通过扩展新的类sitetree来创建一个新页面。我的问题是如何在模板中检索经典page.php中使用的$ Layou。例如,在我的模板文件夹中,我希望为从此创建的新页面组织一个类似“布局”的文件夹。
这是控制器:
class WhitePage extends SiteTree {
private static $db = array(
);
private static $has_one = array(
);
}
class WhitePage_Controller extends ContentController {
private static $allowed_actions = array(
);
public function init() {
parent::init();
}
function index() {
return $this->renderWith("WhitePage");
}
}
我想在模板目录中在“.ss”文件中创建一个文件夹名称“whitepage”,并在模板中使用$ layoutpage instate of $ Layout ......
怎么做?
很多,很多 弗朗西斯科答案 0 :(得分:1)
您可以通过扩展WhitePage
课程,将主 WhitePage.ss 模板与多种页面类型结合使用。然后,您可以正常使用$Layout
来调用自定义布局模板。
<强> WhitePage 强>
class WhitePage extends SiteTree {
}
class WhitePage_Controller extends ContentController {
private static $allowed_actions = array(
);
public function init() {
parent::init();
}
}
<强> CustomWhitePage 强>
class CustomWhitePage extends WhitePage {
}
class CustomWhitePage_Controller extends WhitePage_Controller {
private static $allowed_actions = array(
);
public function init() {
parent::init();
}
}
在 themes / mytheme 文件夹或 mysite 文件夹中创建模板,如下所示:
templates/Page.ss
templates/WhitePage.ss
templates/Layout/Page.ss
templates/Layout/WhitePage.ss
templates/Layout/CustomWhitePage.ss
您的Layout/WhitePage.ss
和Layout/CustomWhitePage.ss
将使用templates/WhitePage.ss
父模板,而任何扩展Page
的网页都将使用templates/Page.ss
。
请务必致电?flush=all
,以便第一次加载模板。