Арифметика SilverStripe в шаблоне

Я хочу выполнить простую арифметическую операцию в шаблоне .ss.

<% loop $Images %>
    <img src="$Link" alt=""/>
    <% $Pos == 4 %>
        and {$TotalItems - 4} more foto's 
        $Break
    <% end_if %>
<% end_loop %>

Например, я хотел бы вывести

и еще 10 фото

Но лучшее, что я могу получить, это

и 14 - еще 4 фото

Я знаю, что могу сделать функцию, которая пока работает, но могу ли я выполнять арифметические операции в шаблоне?


person Matiss    schedule 21.12.2015    source источник
comment
Ну, это сработало, но это не совсем арифметика. Так что палец вверх для обходного пути. @csy_dot_io   -  person Matiss    schedule 29.01.2016


Ответы (1)


Вы могли бы сделать это так.

Сначала вы ограничиваете изображения количеством, которое хотите отобразить. После этого вы перебираете тот же набор со смещением x (4) и проверяете, есть ли еще. Если да, выведите количество оставшихся изображений.

<% loop $Images.Limit(4,0) %>
   <img src="$Link" alt=""/>
<% end_loop %>
<% if $Images.Limit(9999,4) %>
  and $Images.Limit(9999,4).Count more foto's 
<% end_if %>

код не проверен, но должен работать.

Изменить

Я думаю, что «настоящая» арифметика по умолчанию невозможна. Для этого вам нужно написать пользовательскую функцию.

person csy_dot_io    schedule 21.12.2015