Автозаполнение элементов дерева сайта для сайта SilverStripe

Я все еще изучаю SilverStripe, и сейчас у меня есть список из 50-60 страниц, которые я должен создать для сайта. Было предложено найти способ автоматического заполнения дерева сайта SilverStripe некоторым кодом, чтобы сэкономить время (вместо того, чтобы вручную создавать каждую страницу по одному). Я никогда не пробовал что-то подобное раньше (с или без CMS). Я знаю, что такое имена родительских и дочерних страниц, и я полагаю, что мне нужно создать цикл для создания дочерних страниц для каждого родителя.

Это возможно в SilverStripe? Будет ли цикл for лучшим подходом или есть более эффективный способ? Если бы я мог облегчить создание этих страниц, это было бы здорово для меня и для этого проекта, и для будущих, поэтому любой совет будет оценен по достоинству!

3 ответа

Мое понимание этого вопроса заключается в том, что вы хотите предварительно заполнять страницы и их содержимое программно, а не вводить их вручную в CMS. Есть несколько проектов, которые могут вам помочь.

  1. Заполнить модуль ( https://github.com/dnadesign/silverstripe-populate)
  2. SilverSmith ( https://github.com/unclecheese/SilverSmith)

Или вы можете просто переопределить DataObject::requireDefaultRecords и создать страницы там. Я бы часто использовал этот метод для функциональных или одноразовых страниц (например, ShoppingCart).

Существует также Импорт дерева сайтов от SilverStrip Labs. Это размещено на Github

Да, это возможно.

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

Другие вопросы по тегам