Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
countModules — Возвращает число модулей включенных в определенную позицию (позиции). Аргументом функции является строка с названием позиции, либо логической комбинацией из нескольких.
Пример использования countModules:
В примере выше, мы проверяем количество модулей включенных в область (позицию) "user1". Если это число больше 0, то выводим позицию с обрамлением в виде <div class="modules_user1">. Таким образом можно добавлять часть шаблона только если у нас включены модули в определенные места на странице. Таким областями могут быть левая, правая колонка, наличие большой шапки на главной странице и т. д. Так мы избавим шаблон от появления нежелательных пустых пространств на сайте.
countModules может быть использован для подсчета в более чем одной позиции на сайте, можно использовать более сложные вычисления. Например
Вернет сумму модулей в позициях user1 и user2.
Так же можно использовать логические операторы, например так
Будьте внимательны при написании подобных аргументов, следующий код приведет к синтаксической ошибке:
Более того, вы должны использовать не больше одного пробела вокруг ключевых слов(символов), таких как "and" и "+". Рассмотрим более сложный пример
В этом примере позиции user1 и user2 отображаются обрамленными общим <div class="user1user2"> с разделителем <div class="greyline">. Разделитель покажется только при наличии модулей в обоих позициях. Весь блок с обрамлением отобразиться если хоть в одной из позиций есть активные модули.
Оператор | Пример | Описание |
---|---|---|
+ | user1 + user2 |
Сумма модулей в 2х позициях |
- | user1 - user2 |
Разность между количеством модулей из разных позиций |
* | user1 * user2 |
Произведение количества модулей из разных позиций |
/ | user1 / user2 |
Отношение количества модулей |
== | user1 == user2 |
Вернет истину, если количество модулей в различных позициях равно |
!= | user1 != user2 |
Вернет истину, если количество модулей не равно |
<> | user1 <> user2 |
Тоже что и !=. |
< | user1 < user2 |
Вернет истину, если в user1 меньше модулей чем в user2 |
> | user1 > user2 |
Вернет истину, если в user1 больше модулей чем в user2 |
<= | user1 <= user2 |
Вернет истину, если количество модулей в user1 меньше, либо равно количеству в user2 |
>= | user1 >= user2 |
Вернет истину, если количество модулей в user1 больше, либо равно количеству в user2 |
and | user1 and user2 |
Вернет истину если одновременно в user1 и в user2 есть активные модули |
or | user1 or user2 |
Вернет истину если хотябы в одной из позиций есть модули |
xor | user1 xor user2 |
Вернет истину если только в одной из двух позиций есть модули. Если сразу в обеих позициях есть активные модули, то вернет ложь. |
Заметим что можно использовать более 2х позиций для countModules. Вычисления происходят слева на право с учетом приоритетов операторов. Ниже операторы перечислены в порядке убывания их приоритетов.
Операторы | Оператор типа |
---|---|
* / | Арифметические операторы |
+ - | Арифметические операторы |
< <= => > | Операторы сравнения |
==! = | Операторы сравнения |
and | Логический оператор |
xor | Логический оператор |
or | Логический оператор |
Здравствуйте! Подскажите,что такое position 4[ rounded outline]
Познавательная статейка. Спасибо автору. Скажите пожалуйста а если в строке <?php if ($this->countModules( 'user1' )) : ?> вместо user1 использовать переменную, ну например: если запись будет иметь такой вид -
<?php if ($this->countModules( $position5 )) : ?> что при этом будет? У меня почему то выдаёт ошибку. Хотя шаблон стандрартный.
<?php if ($this->countModules('position5')): ?> напишите вместо этого, спустя 7 лет получите ответ))))))
Hi there, after reading this amazing piece of writing i
am as well delighted to share my experience here with friends.
Your style is very unique compared to other people I've read stuff from.
I appreciate you for posting when you've got the opportunity, Guess I'll just bookmark this web site.
Excellent, what a blog it is! This webpage provides useful information to
us, keep it up.
Keep on working, great job!