SIlverstripe检查.ss文件中的页面名称

时间:2012-07-10 22:26:04

标签: templates silverstripe

我想检查模板.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 %>

上面的代码当然不起作用。我该怎么做?有没有更有效的方法呢?

非常感谢。
莫罗

3 个答案:

答案 0 :(得分:6)

如果你想通过标题检查它使用$ 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(请参阅Clints answer)

答案 1 :(得分:2)

最好使用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

答案 2 :(得分:0)

假设您正在使用silverstripe 2.4:

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

请注意不要在值周围加上引号(生物而不是'生物') 我认为以下内容也是有效的:

<% if SiteConfig.Title = bio %>

但由于某种原因它不起作用 - 不确定这一点。