tv с другой страницы и fastField

Здравствуйте, подскажите пожалуйста, вызываю tv с другой страницы:
работает [[#1.tv.content]]
не работает [[#1.tv.content:snippet]]
(мне нужно чтоб б работал :snippet

а именно конструкция не срабатывает
[[*contents_city:is=``:then=`[[#1.tv.contents:snippet]]`:else=`[[*contents_city:snippet]]`]]
… если тв пустое, тогда покажем тв «contents» со страницы id(1), если не пустое то покажем тв «contents_city» текущей страницы.
Игорь
09 июля 2022, 21:19
modx.pro
489
0

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

Артур Шевченко
09 июля 2022, 22:34
0
Какой результат ожидается от этой конструкции
[[#1.tv.content:snippet]]
    Игорь
    10 июля 2022, 08:21
    0
    Вывод tv но с через сниппет (snippet) без сниппета никак не обойтись, в нем php функция str_replace замена строк
      Игорь
      10 июля 2022, 08:58
      0
      Попробую в чанк засунуть конструкцию, а не в шаблон
        Игорь
        10 июля 2022, 09:37
        0
        не… не работает.

        [[*contents_city:is=``:then=`[[#1.tv.contents:snippet]]`:else=`[[*contents_city:snippet]]`]] не работает
        [[*contents_city:is=``:then=`[[#1.tv.contents:snippet]]`:else=`[[*contents_city:snippet]]`]] не работает
        [[*contents_city:is=``:then=`[[#1.tv.contents]]`:else=`[[*contents_city:snippet]]`]] работает
        [[*contents_city:is=``:then=`[[#1.contents]]`:else=`[[*contents_city:snippet]]`]] работает
          Игорь
          10 июля 2022, 10:10
          0
          нашел причину

          в tv [[*contents]] нутри есть чанк [[$forma-zakaza]]

          внутри [[$forma-zakaza]]:

          <div class="container col-12 col-md-12 content my-5">
          <div class="modal-dialog modal-dialog-centered" role="document">
          <div class="modal-content forma mx-auto p-0 p-sm-2 border-0">
          <div class="forma_modal_padding">
          	  [[!AjaxForm?
          	  &snippet=`FormIt`
          	  &form=`modalFormTpl-zakaz-form`
          	  &hooks=`spam,FormItSaveForm,offerrum`
          	  &emailTpl=`contactEmailTpl-zakaz`
          &emailSubject=`[[++site_name]] - №[[!+nowdate:default=`now`:strtotime:date=`%d%m%M%S`]]`
              &emailTo=`info@site.ru`
              &successMessage=`Ваша заявка отправлена. 
          Ожидайте пожалуйста звонка`
            
                &emailFrom=``
          	  &formName=`[[++site_name]]`
          	  &validate=`phone:required,text,user:blank,username:blank,captcha:blank`
          &successMessage=`<strong>Сообщение успешно отправлено.</strong>
          
          Спасибо за заявку
          Ожидайте пожалуйста, с Вами свяжутся`
          	  ]]
          	  </div>
              </div>
            </div>
          </div>
          если удаляю из [[*contents]], "[[$forma-zakaza]]" тогда конструкция работает…
          осталось придумать как обыграть вызов формы заказа…
            Игорь
            10 июля 2022, 10:16
            0
            сделал так

            <div class="container col-12 col-md-12 content my-5">
            <div class="modal-dialog modal-dialog-centered" role="document">
            <div class="modal-content forma mx-auto p-0 p-sm-2 border-0">
            <div class="forma_modal_padding">
            	  [[!AjaxForm?
            	  &snippet=`FormIt`
            	  &form=`modalFormTpl-zakaz-form`
            	  &hooks=`spam,FormItSaveForm,offerrum`
            	  &emailTpl=`contactEmailTpl-zakaz`
            &emailSubject=``
                &emailTo=``
                &successMessage=`Ваша заявка отправлена. 
            Ожидайте пожалуйста звонка`
                  &emailFrom=``
            	  &formName=``
            	  &validate=`phone:required,text,user:blank,username:blank,captcha:blank`
            &successMessage=`<strong>Сообщение успешно отправлено.</strong>
            
            Спасибо за заявку
            Ожидайте пожалуйста, с Вами свяжутся`
            	  ]]
            	  </div>
                </div>
              </div>
            </div>
            теперь вроде бы все работает
              Игорь
              10 июля 2022, 10:27
              0
              Проблема решена, разобрался, оказывается мешали скобки в форме заказа
              [[++site_name]]  и [[!+nowdate:default=`now`:strtotime:date=`%d%m%M%S`]]
        Артур Шевченко
        10 июля 2022, 10:50
        +1
        Чтобы применить модификатор надо сначала получить значение, то есть либо так
        [[[[#1.tv.name]]: snippet]]
        Либо вот так
        [[snippet?`input`=`[[#1.tv.name]]`]]
        А в целом рекомендую переходить на феном или Смарти (zoomx) там есть механизм наследования он сильно облегчает жизнь, ну и нормальный if
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8