Модификатор ':mod' на Fenom
У MODX есть встроенный модификатор mod: [[+number:mod]]
На Fenom не нашел такого модификатора, и пришлось повторить его логику создав собственный модификатор, может кому-нибудь пригодится.
На основе кода родного модификатора (тыкнул носом Владимир, за что ему спасибо) создаём новый сниппет mod, который будем использовать как модификатор на феноме:
Пример использования:
Мне нужно было переписать следующее выражение в чанке на Fenom:
===> UPD: оказывается не нужно никаких сниппетов, феном всё понимает сам, пример от Василия:
а вот в контексте нашего примера:
P.S. Fenom рулит!
modulus,mod — Возвращает модуль числа (по умолчанию: %2, возвращает 0 или 1).
На Fenom не нашел такого модификатора, и пришлось повторить его логику создав собственный модификатор, может кому-нибудь пригодится.
На основе кода родного модификатора (тыкнул носом Владимир, за что ему спасибо) создаём новый сниппет mod, который будем использовать как модификатор на феноме:
<?php
if (empty($options))
$options = 2;
return (float)$input % (float)$options;
Пример использования:
Мне нужно было переписать следующее выражение в чанке на Fenom:
<div class="our_services_block [[+idx:mod=`3`:eq=`0`:then=`mr`]]">
Результат:<div class="our_services_block {if $idx|mod:3 == 0}mr{/if}">
В итоге, как и ожидалось, к каждому третьему результату добавляется класс mr, что и требовалось доказать!===> UPD: оказывается не нужно никаких сниппетов, феном всё понимает сам, пример от Василия:
{$idx % 3 ? 'mr' : ''}
а вот в контексте нашего примера:
<div class="our_services_block{if ($idx % 3) == 0} mr{/if}">
P.S. Fenom рулит!
Поблагодарить автора
Отправить деньги
Комментарии: 7
Fenom не нужен этот модификатор, потому что он сам по себе понимает %.
{$idx % 3 ? 'mr' : ''}
Ага, возможно… Только я сам по себе не понимаю что это за проценты %… )))
Я по мозгам гуманитарий и до сих пор не понимаю что значит «модуль числа» и для чего он нужен (хотя пялился в разные формулы в статьях, но не дошло), поэтому пришлось выкрутиться таким образом.
А можно пример этого же выражения, но на чистом феноме?
Спасибо за пример!
Я по мозгам гуманитарий и до сих пор не понимаю что значит «модуль числа» и для чего он нужен (хотя пялился в разные формулы в статьях, но не дошло), поэтому пришлось выкрутиться таким образом.
(float)$input % (float)$options;
Спасибо за пример!
В рамках математики просто модуль немного другое понятие, а в данном случае это деление по модулю, оно же — остаток от деления (надеюсь это у вас не вызовет вопросов)
по умолчанию: %2, возвращает 0 или 1
%3: 0,1,2.
И так далее.
php.net/manual/ru/language.operators.arithmetic.php
по умолчанию: %2, возвращает 0 или 1
%3: 0,1,2.
И так далее.
php.net/manual/ru/language.operators.arithmetic.php
Спасибо за объяснение, теперь кажется начал понимать! А то никак не мог связать математический модуль с тем, что мне нужно… ))
Странно, но твой пример не срабатывает:
<div class="our_services_block{$idx % 3 ? ' mr' : ''}">
Даже в логи феном ничего не пишет — просто прерывает выполнение страницы как только доходит до этого места…
Прошу прощения, всё работает. Вот рабочий вариант:
<div class="our_services_block{if ($idx % 3) == 0} mr{/if}">
Наверное, нужно просто скобки добавить:
<div class="our_services_block{($idx % 3) ? ' mr' : ''}">
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.