2

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

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

非常感谢。
毛罗

4

3 回答 3

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 答案)

于 2012-07-13T11:14:08.500 回答
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

于 2012-07-12T15:17:32.967 回答
0

假设您使用的是 silverstripe 2.4:

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

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

<% if SiteConfig.Title = bio %>

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

于 2012-07-11T07:55:43.097 回答