2013-02-26 55 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

相關問題