【问题标题】:Auto-populate site tree items for SilverStripe site为 SilverStripe 站点自动填充站点树项目
【发布时间】:2015-08-11 15:20:23
【问题描述】:

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

这在 SilverStripe 中是可能的吗? for 循环会是最好的方法还是有更有效的方法?如果我可以更轻松地创建这些页面,这对我来说非常适合这个项目和未来的项目,所以任何建议都将不胜感激!

【问题讨论】:

    标签: php mysql silverstripe


    【解决方案1】:

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

    1. 填充模块 (https://github.com/dnadesign/silverstripe-populate)
    2. 银匠 (https://github.com/unclecheese/SilverSmith)

    或者您可以简单地覆盖 DataObject::requireDefaultRecords 并在那里构建页面。我经常将这种方法用于功能性或一次性类型的页面(例如 ShoppingCart)。

    【讨论】:

    • silversmith 仅是 afaik 3.0,但填充模块效果很好!只需定义一个 yml 文件并运行填充任务。这是一个很好的节省时间
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      是的,这是可能的。

      <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+ 的

      【讨论】:

      • 我喜欢这个想法(它应该可以工作,因为我使用的是 SilverStripe 3.1)!但是这个循环需要如何放置或放置在哪里才能运行呢?我猜我在进行开发/构建时需要它运行?循环是基于包含网站导航链接列表的文本文件运行的吗?
      • 将此文件包含在您的 SideBar.ss 文件中,然后将该文件包含在您的主 Page.ss 文件中。
      • 我认为这可能不适用于我想做的事情......这应该适用于创建导航模板,但我不确定这是否会在网站树中创建页面SilverStripe CMS 后端...如果可能的话,我首先要做的是用页面自动填充站点树。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-21
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2010-10-25
      • 2016-12-09
      相关资源
      最近更新 更多