К содержанию

Тег delivery в корзине

Добрый день.

У меня неправильно работает конструкция:
[[+delivery:gt=`0`:then=`Показать`:else=`Не показывать`]]

Мне нужно показывать информационный блок в корзине, после выбора типа доставки и отправки формы личных данных заказчика. Например, вводим неверные данные в форме и отправляем форму, показывает снова эту форму и этот блок, в том случае, если метод доставки выбран.

Спасибо!
Toyo
Toyo
27 сентября 2012, 08:58
modx.pro
1 789
Реклама

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

Toyo
Toyo Старожил
27 сентября 2012, 13:03
Уточнение, эта конструкция всегда входит в else, т.е. не показывает блок.
    Василий Наумкин
    Василий Наумкин Администратор
    27 сентября 2012, 13:08
    А кто выставил плейсхолдер delivery?

    Мои сниппеты, вроде, этого не делают. Используйте $modx->setPlaceholder();
      Toyo
      Toyo Старожил
      27 сентября 2012, 13:12
      В tpl.msAddrForm используется [[+delivery]], вот оттуда и взято. ID отображается, а этим модификатором неправильно отображается.
        Василий Наумкин
        Василий Наумкин Администратор
        27 сентября 2012, 13:57
        Окей, тогда попробуйте [[+delivery:isnot=`0`:then=``:else=``]]
          Toyo
          Toyo Старожил
          27 сентября 2012, 14:03
          Всегда показывается.
            Василий Наумкин
            Василий Наумкин Администратор
            27 сентября 2012, 14:44
            Тогда пробуйте модификатор notempty.
    Илья Уткин
    Илья Уткин Администратор
    27 сентября 2012, 13:26
    А пробовали использовать другие фильтры?

    Например:
    [[+delivery:isnotempty=`Показать`:else=`Не показывать`]]
    [[+delivery:noteq=``:then=`Показать`:else=`Не показывать`]]
      Toyo
      Toyo Старожил
      27 сентября 2012, 14:08
      До отправки формы:
      +delivery ==
      isnot=`0` = Показать
      isnotempty = Не показывать
      noteq = Не показывать

      После:
      +delivery == 1
      isnot=`0` = Показать
      isnotempty = Не показывать
      noteq = Не показывать
        Илья Уткин
        Илья Уткин Администратор
        27 сентября 2012, 14:12
        А на странице ваш блок стоит после вызова FormIt?
          Toyo
          Toyo Старожил
          27 сентября 2012, 14:12
          Илья, получается ДО, но значение +delivery ведь имеется?
            Илья Уткин
            Илья Уткин Администратор
            27 сентября 2012, 15:15
            Возможно модификатор из-за этого обрадатывается ДО setPlaceholder и в плейсхолдере нет значение во время проверки.

            Поставьте вызов FormIt в самое начало страницы — это ни на что не повлияет, просто он будет первым обрабатываться
              Toyo
              Toyo Старожил
              27 сентября 2012, 15:59
              Не помогло… :(
                Toyo
                Toyo Старожил
                27 сентября 2012, 16:02
                Похоже заработало, спасибо!
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        13