Настройка меню навигации в SilverStripe - PullRequest
1 голос
/ 30 июня 2009

Я задавал этот вопрос на форуме SilverStripe, но ни разу не слышал. http://silverstripe.org/customising-the-cms/show/263604#post263604

Я нахожусь в процессе миграции статического сайта на основе PHP + Wordpress в SilverStripe.

На статических страницах мы настраиваем сам заголовок. У нас есть два типа логинов. Клиенты и филиалы.

На статическом сайте сегодня мы делаем что-то вроде этого:

<? require("_header_top.html"); ?> 
<? if (isset($display_affiliate_link) && $display_affiliate_link == true) { 
require("_header_middle_affiliate.html"); 
} else { 
require("_header_middle.html"); 
} ?> 
<? require("_header_bottom.html"); ?> 

Это единственное отличие в меню навигации между разделами для партнеров и клиентов.

Я попытался пойти по другому пути макета. Но я не предпочитаю, поскольку макеты выглядят на 99% одинаковыми, за исключением этого.

Я попробовал следующий хак, который работает, но он мне совсем не нравится.

<% if MenuTitle = Affiliate %> 
<a href="/affiliate_login>affiliate login</a> 
<% end_if %> 
<a href="/subscriber_login>subscriber login</a> 

Любое предложение о том, как я могу добиться этого более элегантно или лучший рекомендуемый способ реализации этого?

Викрам

1 Ответ

1 голос
/ 27 октября 2009

Я не понимаю, что не так с тем, что ты сделал ... Другие обходные пути:

  • Добавьте свойство «Тип» для объекта страницы SiteTree, чтобы разделить клиента и аффилированного лица.
  • Внутри контроллера объекта SiteTree вы можете использовать функцию «настроить», которая получает массив или объект, и вызвать функцию «renderWith», которая также доступна внутри контроллера, для рендеринга массива / объекта с файлом шаблона. (Файлы .SS). Таким образом, ваш макет для клиента и партнера будет разделен на разные файлы .SS.
...