大家好,今天,我尝试用SilverStripe创建一个单页网站。我创建了一个主页,我把所有的页面都放在那里,这样我就有了
HomePage
Page1
Page2
Page3
在我的主页布局中,我循环显示其他页面的内容,如
<% loop Children %>
<div class="$URLSegment">
$renderWith($ClassName)
</div>
<% end_loop %>
我想在我的第一个页面中有一些文本项,所以我创建了它们,并在我的Page1.php中创建了合适的函数,比如这个
public function getTextItems(){
return $this->TextItems();
}
我以为通过调用布局中的函数,文本项就会出现。这实际上是我的问题,如果我试图从我的子页面中调用一些对象,我的布局中不会出现任何内容。有人知道我是否有办法跑完全程吗?或者也许这不是写一页纸的最佳方式。。。因此,如果你有一些提示,comon:)
谢谢!Thomas
通常,对于简单的单页网站,我会将所有内容都放入主页,而不会循环到其子级。无论如何,我认为您的问题是getTextItems()被定义到Controller中,而在Children()上循环将只提取Models。
此外,看看这个全新的模块,我几天前刚刚看到它(但从未测试过):
http://addons.silverstripe.org/add-ons/wernerkrauss/silverstripe-onepage