我还在学习SilverStripe,现在,我有一个我需要为网站创建的50-60页的列表。有人建议我找到一种方法来自动填充SilverStripe站点树和一些代码,以节省时间(而不是手动创建每个页面一次)。我以前从未尝试过这样的事情(有或没有CMS)。我知道父页面和子页面名称是什么,我想我需要创建一个循环来为每个父页面构建子页面。
这是SilverStripe可以实现的吗? for循环是最好的方法还是更有效的方法?如果我能够更轻松地创建这些页面,对我来说这个项目和未来的项目都会很棒,所以任何建议都会受到赞赏!
答案 0 :(得分:4)
我对此问题的理解是,您希望以编程方式预先填充页面及其内容,而不是在CMS中手动输入它们。有一些项目可能会对您有所帮助。
或者您可以简单地覆盖DataObject :: requireDefaultRecords并在那里构建页面。我经常将该方法用于功能性或一次性类型的页面(例如ShoppingCart)。
答案 1 :(得分:3)
答案 2 :(得分:0)
是的,这是可能的。
<ul>
<% loop $Menu(your id here) %>
<li>
<a href="$Link" class="$LinkingMode">$MenuTitle.XML</a>
<% if $Children %>
<ul>
<% loop $Children %>
<li>
<a href="$Link" class="$LinkingMode">$MenuTitle.XML</a>
<% if $Children %>
<ul>
<% loop $Children %>
<li>
<a href="$Link" class="$LinkingMode">$MenuTitle.XML</a>
</li>
<% end_loop %>
</ul>
<% end_if %>
</li>
<% end_loop %>
</ul>
<% end_if %>
</li>
<% end_loop %>
</ul>
请记住,代码可能略有不同,这适用于SilverStripe v3 +