Условный оператор или что-то типа того?
Приветствую
Скажем есть набор скриптов и стилей, подключаемых в head. он в целом одинаков на всех страницах, за исключением того, что на главной присутствуют пару дополнительных.
Вопрос: в modx Revo можно как-то задать условие или что-то типа того «если эта главная страница, то подключать указанные скрипты, если нет, то нет»? Или как-то по другому можно это сделать, без необходимости плодить чанки и чтобы само подставлялось, а не нужно было выбирать каждый раз при создании страницы?
Скажем есть набор скриптов и стилей, подключаемых в head. он в целом одинаков на всех страницах, за исключением того, что на главной присутствуют пару дополнительных.
Вопрос: в modx Revo можно как-то задать условие или что-то типа того «если эта главная страница, то подключать указанные скрипты, если нет, то нет»? Или как-то по другому можно это сделать, без необходимости плодить чанки и чтобы само подставлялось, а не нужно было выбирать каждый раз при создании страницы?
Комментарии: 8
[[*id:is=`1`:then=`
<link rel="stylesheet" href="style.css">
`]]
Или на Fenom{if $_modx->resource.id == 1}
<link rel="stylesheet" href="style.css">
{/if}
спасибо)
а можете ткнуть, где можно прочитать про создание условий, подобных первому?
а можете ткнуть, где можно прочитать про создание условий, подобных первому?
Или для конкретной страницы вызвать regClientCss
почитал в инете
скажите, я правильно понял, что надо создать сниппет, в содержимом указать код вызова, и после этого вызывать сниппет в коде страницы (документа), а не в шаблоне? или как сделать чтобы вызывалась функция только для одной страницы?
скажите, я правильно понял, что надо создать сниппет, в содержимом указать код вызова, и после этого вызывать сниппет в коде страницы (документа), а не в шаблоне? или как сделать чтобы вызывалась функция только для одной страницы?
Да по разному можно, можно через плагин например, уже в нем условия писать.
Можно в сниппете.
Можно через fenom прям со страницы.
Короче куча вариантов) нельзя сказать, что какой-то из них верный
Можно в сниппете.
Можно через fenom прям со страницы.
Короче куча вариантов) нельзя сказать, что какой-то из них верный
В вашей задаче проще всего условие поставить в чанке/шаблоне как в первом комментарии вам написали. Для сниппета или плагина так же придется условие ставить.
ModX IF создание условий
Скачиваем и устанавливаем пакет IF
Например, нам нужно что бы слайдер отображлся только на главной странице, с id=1, тогда вставляем в шаблон:
Еще например, нам надо что бы выводился ЗАГОЛОВОК, если РАСШИРЕННЫЙ ЗАГОЛОВОК пуст, тогда вписываем:
или
subject — самый важный параметр, его сравниваем
operator — каким образом сравниваем, по умолчанию =
operand — с чем сравниваем
then — что выводим, если верно
else — что выводим, если ложно
debug — выводим все обработанные параматры, если true
die — если этот и прошлый параметр true, то выполняется die() после вывода всех параметров
Операторы IF:
neq — не равно
eq — равно
lt — меньше
gt — больше
lte — меньше, либо равен
gte — больше, либо равен
isempty — выполняется если парамер пустой
notempty — если не пустой
null — если параметр имеет значение 0
inarray — Выполняется если Главный параметр находится в списке, перечисленном через запятую, в Операнде
Скачиваем и устанавливаем пакет IF
Например, нам нужно что бы слайдер отображлся только на главной странице, с id=1, тогда вставляем в шаблон:
[[If? &subject=`[[*id]]` &operator=`EQ` &operand=`1` &then=`[[$slider]]`]]
или через модификаторы[[*id:is=`[[++site_start]]`:then=`[[$slider]]`:else=``]]
Еще например, нам надо что бы выводился ЗАГОЛОВОК, если РАСШИРЕННЫЙ ЗАГОЛОВОК пуст, тогда вписываем:
[[If? &subject=`[[*longtitle]]` &operator=`notempty` &then=`[[*longtitle]]`&else=`[[*pagetitle]]` ]]
или
[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]
Параметры IF для MODX REVO:subject — самый важный параметр, его сравниваем
operator — каким образом сравниваем, по умолчанию =
operand — с чем сравниваем
then — что выводим, если верно
else — что выводим, если ложно
debug — выводим все обработанные параматры, если true
die — если этот и прошлый параметр true, то выполняется die() после вывода всех параметров
Операторы IF:
neq — не равно
eq — равно
lt — меньше
gt — больше
lte — меньше, либо равен
gte — больше, либо равен
isempty — выполняется если парамер пустой
notempty — если не пустой
null — если параметр имеет значение 0
inarray — Выполняется если Главный параметр находится в списке, перечисленном через запятую, в Операнде
IF подтормаживает генерацию страничек, Fenom работает быстрее, я как раз сейчас занимаюсь переходом на Fenom
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.