SilverStripe заводят первых детей подряд - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть несколько детей, которые я отображаю в сетке. 4 ребенка вписывается в ряд. Теперь я хочу дать каждому первому и последнему ребенку подряд дополнительный класс для указания большего количества стилей. Я попробовал:

<% if FirstInRow %>
    <div class="gridContent firstInRow"></div>
<% else %>
    <div class="gridContent"></div>
<% end_if %>

Это функция:

function FirstInRow(){
    return ($this->Pos(1) % 4 == 1) ? true : false;
}

Ответы [ 2 ]

3 голосов
/ 22 ноября 2011

В шаблоне доступны элементы управления Modulus и MultipleOf.

$Modulus(value, offset) // returns an int
$MultipleOf(factor, offset) // returns a boolean.

http://doc.silverstripe.org/sapphire/en/reference/advanced-templates#modulus-and-multipleof

0 голосов
/ 29 ноября 2011

Модуль работает лучше, когда вы могли бы начать с 0. Попробуйте это вместо:

function FirstInRow(){
    return ($this->Pos(0) % 4 == 0);
}

Обратите внимание, что я также удалил лишний оператор ternay; Вы можете оставить это, если он сделает код более понятным для вас.

...