自动填充SilverStripe网站

时间:2015-08-11 15:20:24

标签: php mysql silverstripe

我还在学习SilverStripe,现在,我有一个我需要为网站创建的50-60页的列表。有人建议我找到一种方法来自动填充SilverStripe站点树和一些代码,以节省时间(而不是手动创建每个页面一次)。我以前从未尝试过这样的事情(有或没有CMS)。我知道父页面和子页面名称是什么,我想我需要创建一个循环来为每个父页面构建子页面。

这是SilverStripe可以实现的吗? for循环是最好的方法还是更有效的方法?如果我能够更轻松地创建这些页面,对我来说这个项目和未来的项目都会很棒,所以任何建议都会受到赞赏!

3 个答案:

答案 0 :(得分:4)

我对此问题的理解是,您希望以编程方式预先填充页面及其内容,而不是在CMS中手动输入它们。有一些项目可能会对您有所帮助。

  1. 填充模块(https://github.com/dnadesign/silverstripe-populate
  2. SilverSmith(https://github.com/unclecheese/SilverSmith
  3. 或者您可以简单地覆盖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 +