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

Templates .ss文件中的SIlverstripe检查页面名称,templates,silverstripe,Templates,Silverstripe,我想在template.ss文件中检查页面名称或标题,以便显示不同的图像。我想这样做: <% if $SiteConfig.Title == 'video' %> <img src="themes/blackcandy/images/image.jpg" /> <% else if $SiteConfig.Title == 'bio' %> <img src="themes/blackcandy/images/image1.jpg" /

我想在template.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 %>

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

非常感谢。

Mauro

假设您使用的是silverstripe 2.4:

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

视频
生物
注意不要在值周围加引号(bio而不是“bio”)。
我认为以下内容也是有效的:

<% if SiteConfig.Title = bio %>


但由于某些原因,它不起作用-对此不确定。

最好使用URLSEMENT

<% 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 %>


感谢陈词滥调:如果您想通过标题检查它,请使用$title(不带SiteConfig控制器)


如果要检查页面类型,请使用ClassName

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


如果您想通过Url检查,请使用URLSEMENT(请参阅Clints答案)

谢谢。它不会给出任何错误,但也不会返回任何内容。如果条件满足,它应该显示的HTML就不存在了。是的,我在SS2.4上。知道为什么吗?确定你在CMS的标题字段中输入了相应的值(例如,没有添加空格)?在url中添加了“?flush=All”?
<% if ClassName = PageType1 %>
    <img src="themes/blackcandy/images/image1.jpg" /> 
<% end_if %>