2013-02-26 78 views
1

我写了一个简单的自定义功能采取的不止护理中(>) 这工作得很好,并返回1或0SilverStripe 3:在控制器函数调用模板中的一个循环

它停止工作当我通过一个循环调用$ Pos给函数时。

SilverStripe 3版

控制器

function MoreThen($pos, $value) { 
if($pos > $value) { 
    return TRUE; 
} else { 
    return FALSE; 
} 

}

Template.ss

<% loop GalleryObjects %> 
<% if Top.MoreThen($Pos,2) %> 
$Pos 
<% end_if %> 
+0

你可以创建自定义模板迭代: [$名次从底部内<%循环数据对象%>] [1] [1]:http://stackoverflow.com/questions/14096216/pos-from -bottom-inside-loop-dataobjects – 2013-02-26 14:50:04

回答

3

AFAIK这是不可能使用变量的函数调用的参数,只有具体诉alues。根据你想要做什么,你可能想要在你的模板中使用GalleryObjects.limit(),或者写一个特定的getter,它只返回大于2的偏移量。希望这会有所帮助

+0

我想要的是如果对象位置大于2,则显示不同大小的图像。我刚添加<%if $ Pos == 3 || $ Pos == 4 || $ Pos == 5%>。不是很干净。 – user742736 2013-02-26 03:01:20

+0

如果$ Pos!= 1 && $ Pos!= 2%><% else %> ... <% end_if %>,也许稍微不太脏的解决方法是使用<%。这将有利于图像位置> = 6 – jfbarrois 2013-02-26 03:51:50

相关问题