У меня есть NewsPage
типа и в навигации, я хочу показать запись под названием Latest News
, который будет оказывать последний NewsPage
(по Created
области). Это возможно?Показаны последние страницы новостей на меню навигации в SilverStripe
0
A
ответ
2
В зависимости от вашего шаблона для навигации вы сможете вставить ссылку на последнюю новостную страницу внутри элемента списка внутри ul для навигации.
Чтобы получить последнюю новостную страницу, вам нужно будет написать функцию внутри вашего Контроллера страниц, которая вернет последнюю страницу новостей. Вот пример.
function GetLatestNews()
{
return DataObject::get_one('NewsPage', '', '', 'Created DESC');
}
Внутри вашего шаблона для навигации вы должны сделать что-то вроде этого.
<ul id="navigation">
<% control Menu(1) %>
<li class="$LinkingMode"><a href="$Link">$MenuTitle.XML</a></li>
<% end_control %>
<li class="$LinkingMode"><a href="$GetLatestNews.Link">Latest News</a></li>
</ul>
Вставьте ссылку в конец навигации. Если вы хотите вставить ссылку в определенную позицию, вы можете использовать $ Pos внутри элемента управления, чтобы проверить, в какой позиции он находится. Ниже приведен пример: <%, если Поз
<ul id="navigation">
<% control Menu(1) %>
<% if Pos = 2 %>
<li class="$LinkingMode"><a href="$GetLatestNews.Link">Latest News</a></li>
<% end_if %>
<li class="$LinkingMode"><a href="$Link">$MenuTitle.XML</a></li>
<% end_control %>
</ul>
выше будет вставить ссылку на второй позиции внутри навигации.
Спасибо за подробный ответ! – Optimus