Не выполняется условие 'empty'

Не выполняется следующие условие, прописанное в шаблоне:

[[*content:empty=`[[$system_message]]`]]

Во вкладке «настройки» категории прописано следующее:

[[!pdoPage?
	&element=`msProducts`
	&parents=`[[*id]]`
	&limit=`24`
	&pageLimit=`10`
	&tpl=`shop_items`
	&sortdir=`DESC`
	&cache=`1`
	&cacheTime=`2600000`
	&cache_user=`1`
	&showHidden=`0`
]]

[[!+page.nav]]

Если удалить из категории вызов pdoPage, то все работает нормально и условие отрабатывает и выводит.

В исходном коде в выдаче результата (при вызове pdoPage и пустой категории) — пусто, но условие не обрабатывается и чанк не выводится (пробовал тоже самое с простым текстом — результат тот же).

Проблема не критичная и даже не второстепенная, т.к. все категории заполнены всегда. Но хотелось бы иметь такую возможность выводить сообщение, если контента нет, ведь всяко может быть. Заранее спасибо :)
Constantine
29 июня 2015, 16:34
modx.pro
1 832
0

Комментарии: 7

Сергей Фещуков
29 июня 2015, 19:51
+1
Empty — довольно таки строгое условие. Между вызовом сниппета и [[!+page.nav]] есть два перевода строки. А это уже считается непустым содержанием. Так что empty отрабатывается отлично. ;)
    Constantine
    29 июня 2015, 19:56
    0
    Два перевода строки убрал, ставил все в одну строку, без пробелов — не помогло.
    Я в программировании не силен, но что-то подобное подозревал :) На что заменить данное условие тогда?
    Максим Кузнецов
    29 июня 2015, 20:05
    +1
    Как вариант — можно выставить плейсхолдеры &totalVar=`total` &toPlaceholder=`results` и сегмент с результатами и пагинацией обернуть в него, с желаемым условием:
    [[+total:is=`0`:then=`Пусто`:else=`
    	[[+results]]
    
    	[[!+page.nav]]
    `]]
      Constantine
      30 июня 2015, 06:36
      0
      Увы. Попробовал данную конструкцию: при 0 товарах выводит результат, что «не пусто» :(
      [[+total]] выводит 4
      Хотя никаких подкатегорий или товаров нет.
        Constantine
        30 июня 2015, 06:46
        +2
        Изменил +total на другое имя — все заработало.
          Василий Наумкин
          30 июня 2015, 07:36
          0
          Это потому что total — плейсхолдер по умолчанию у всех сниппетов pdoTools. /то может быть меню, или что-нибудь еще.

          Так что, в следующем комменте ты правильно сменил это имя на другое.
        Constantine
        29 июня 2015, 20:20
        0
        Спасибо за интересную идею. Днем попробую так сделать.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7