Автозаполнение элементов дерева сайта для сайта SilverStripe
Я все еще изучаю SilverStripe, и сейчас у меня есть список из 50-60 страниц, которые я должен создать для сайта. Было предложено найти способ автоматического заполнения дерева сайта SilverStripe некоторым кодом, чтобы сэкономить время (вместо того, чтобы вручную создавать каждую страницу по одному). Я никогда не пробовал что-то подобное раньше (с или без CMS). Я знаю, что такое имена родительских и дочерних страниц, и я полагаю, что мне нужно создать цикл для создания дочерних страниц для каждого родителя.
Это возможно в SilverStripe? Будет ли цикл for лучшим подходом или есть более эффективный способ? Если бы я мог облегчить создание этих страниц, это было бы здорово для меня и для этого проекта, и для будущих, поэтому любой совет будет оценен по достоинству!
3 ответа
Мое понимание этого вопроса заключается в том, что вы хотите предварительно заполнять страницы и их содержимое программно, а не вводить их вручную в CMS. Есть несколько проектов, которые могут вам помочь.
- Заполнить модуль ( https://github.com/dnadesign/silverstripe-populate)
- 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+