Фильтры вывода для TV-плесхолдеров

Здравствуйте! Подскажите, можно ли использовать фильтры вывода для TV-плейсхолдеров?
В TV введена ссылка, а нужно поставить значение из TV без тега, т.е. только текст внутри ссылки. Я попробовала использовать фильтр striptags, но из этого ничего не вышло… Подскажите, пожалуйста, кто знает, как правильно это можно сделать? И можно ли так делать вообще?..

Вызов сниппета:
[[pdoResources? &tpl=`tpl.SignsAll` &includeTVs=`YinYan`]]
Содержание чанка tpl.SignsAll:
[[+tv.YinYan:striptags]]
Содержание tv.YinYan:
<a href="[[~358]]">Инь</a>
Нужно вывести только слово «Инь».
Дарья Сизова
03 ноября 2015, 19:19
modx.pro
1 053
0

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

Максим Кузнецов
03 ноября 2015, 22:21
+1
Если у нужного вам tv выставлен тип «ссылка», то вы можете зайти в настройки самого тв и указать параметры вывода, допустим, «строку» или любой другой, подходящий вас.
    Дарья Сизова
    03 ноября 2015, 22:25
    0
    Дело в том, что во всех остальных местах этот TV используется как множественный выбор и должен выводится в виде ссылки. А его текстовое значение требуется только в одном месте.
      Максим Кузнецов
      03 ноября 2015, 22:32
      +1
      Можете написать сниппет для решения задачи, допустим getUrlText:

      <?php
      	preg_match('/\>(.*)<\/a>/', $url, $matches);
      	return $matches[1];

      — вызывать так: [[!getUrlText? &url=`ваше_тв`]]

      Ну или можете посмотреть в сторону jevix, но он для конкретной задачи будет что пушка по воробью.
        Дарья Сизова
        03 ноября 2015, 22:43
        0
        Не получается, почему-то… ничего не выводится.
          Максим Кузнецов
          03 ноября 2015, 22:48
          +1
          Только что проверил сниппет у себя — значения возвращаются.

          Давайте еще раз, конструкция вызова у вас будет выглядеть примерно так:
          [[!getUrlText? &url=`[[+tv.YinYan]]`]]
          — если вызывать внутри pdoResources в том месте, где нужно обработать ссылку.

          Проверьте точное соответствие созданного вами сниппета и обновите кэш. + параметр &fastMode у pdoResources должен быть равен 0.
            Дарья Сизова
            03 ноября 2015, 22:54
            0
            Прошу прощения, в первый раз нечаянно сделала опечатку в названии сниппета… Но теперь вообще что-то странное происходит. При вызове сниппета getUrlText после перезагрузки страницы исчез весь html-код. Осталось только вот это:
            <html>
            <head></head>
            <body data-pinterest-extension-installed="cr1.39.1"></body>
            </html>
              Максим Кузнецов
              03 ноября 2015, 22:57
              0
              Вы точно правильно переписали содержимое сниппета?
              <?php
              	preg_match('/\>(.*)<\/a>/', $url, $matches);
              	return $matches[1];

              Есть ли что-то в логе ошибок?

              Если содержимое сниппета написано правильно — можете скинуть доступ на почту, посмотрю.
                Дарья Сизова
                03 ноября 2015, 23:00
                0
                Максим, вы отредактировали свой сниппет в вашем комментарии выше или мне показалось?
                У меня такой (копировала с вашего первоначального):
                <?php
                function getUrlText($url) {
                	preg_match('/\>(.*)<\/a>/', $url, $matches);
                	return $matches[1];
                }
                return getUrlText($url);
                  Максим Кузнецов
                  03 ноября 2015, 23:01
                  0
                  Да, все верно — отредактировал.
                  Измените на тот код, что приложил выше — должно помочь.)
    Дарья Сизова
    03 ноября 2015, 22:31
    0
    В параметрах вывода стоит разделитель в виде запятой.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    11