Имя страницы проверки SIlverstripe в файле .ss

Я хочу проверить — в файле .ss шаблона — имя или заголовок страницы, чтобы показать другое изображение. Я хотел бы сделать что-то вроде этого:

<% if $SiteConfig.Title == 'video' %> 
   <img src="themes/blackcandy/images/image.jpg" /> 
<% else if $SiteConfig.Title == 'bio' %> 
   <img src="themes/blackcandy/images/image1.jpg" /> 
... 
...

<% end_if %>

Код выше, конечно, не работает. Как это сделать? Есть ли более эффективный способ сделать это?

Большое спасибо.
Мауро


person Mauro74    schedule 10.07.2012    source источник


Ответы (3)


Если вы хотите проверить это через заголовок, используйте $Title (без контроллера SiteConfig)?

<% if $Title == 'video' %> 
   <img src="themes/blackcandy/images/image.jpg" /> 
<% else if $Title == 'bio' %> 
   <img src="themes/blackcandy/images/image1.jpg" />
<% end_if %>

Если вы хотите проверить PageType, используйте ClassName

<% if ClassName = PageType1 %>
    <img src="themes/blackcandy/images/image1.jpg" /> 
<% end_if %>

Если вы хотите проверить URL-адрес, используйте UrlSegment (см. Ответ Клинта)

person ivoba    schedule 13.07.2012

Для этого лучше всего использовать URLSegment.

<% if URLSegment = video %>
    <img src="themes/blackcandy/images/video-image.jpg" />
<% else_if URLSegment = bio %>
    <img src="themes/blackcandy/images/bio-image.jpg" />
<% end_if %>

Спасибо банально по адресу: http://www.silverstripe.org/themes-2/show/ 11325

person Clint    schedule 12.07.2012

если вы используете silverstripe 2.4:

<% control SiteConfig %>
  <% if Title = video %>
    video
  <% else_if Title = bio %>
    bio
  <% end_if %>
<% end_control %>

обратите внимание, чтобы значения не заключались в кавычки (био вместо 'био').
я также предположил, что следующее будет правильным:

<% if SiteConfig.Title = bio %>

но почему-то не работает - не уверен в этом.

person schellmax    schedule 11.07.2012
comment
Спасибо за это. он не дает никакой ошибки, но и ничего не возвращает. HTML, который он должен показывать, если условие выполнено, просто отсутствует. И да я на СС 2.4. Есть идеи, почему? - person Mauro74; 11.07.2012
comment
уверены, что вы поместили соответствующее значение в поле «Заголовок» в CMS (например, без добавления пробелов)? добавлено «?flush=All» к URL-адресу? - person schellmax; 11.07.2012