Фильтры вывода для TV-плесхолдеров
Здравствуйте! Подскажите, можно ли использовать фильтры вывода для TV-плейсхолдеров?
В TV введена ссылка, а нужно поставить значение из TV без тега, т.е. только текст внутри ссылки. Я попробовала использовать фильтр striptags, но из этого ничего не вышло… Подскажите, пожалуйста, кто знает, как правильно это можно сделать? И можно ли так делать вообще?..
Вызов сниппета:
В TV введена ссылка, а нужно поставить значение из TV без тега, т.е. только текст внутри ссылки. Я попробовала использовать фильтр striptags, но из этого ничего не вышло… Подскажите, пожалуйста, кто знает, как правильно это можно сделать? И можно ли так делать вообще?..
Вызов сниппета:
[[pdoResources? &tpl=`tpl.SignsAll` &includeTVs=`YinYan`]]
Содержание чанка tpl.SignsAll: [[+tv.YinYan:striptags]]
Содержание tv.YinYan: <a href="[[~358]]">Инь</a>
Нужно вывести только слово «Инь». Комментарии: 11
Если у нужного вам tv выставлен тип «ссылка», то вы можете зайти в настройки самого тв и указать параметры вывода, допустим, «строку» или любой другой, подходящий вас.
Дело в том, что во всех остальных местах этот TV используется как множественный выбор и должен выводится в виде ссылки. А его текстовое значение требуется только в одном месте.
Можете написать сниппет для решения задачи, допустим getUrlText:
— вызывать так: [[!getUrlText? &url=`ваше_тв`]]
Ну или можете посмотреть в сторону jevix, но он для конкретной задачи будет что пушка по воробью.
<?php
preg_match('/\>(.*)<\/a>/', $url, $matches);
return $matches[1];
— вызывать так: [[!getUrlText? &url=`ваше_тв`]]
Ну или можете посмотреть в сторону jevix, но он для конкретной задачи будет что пушка по воробью.
Не получается, почему-то… ничего не выводится.
Только что проверил сниппет у себя — значения возвращаются.
Давайте еще раз, конструкция вызова у вас будет выглядеть примерно так:
Проверьте точное соответствие созданного вами сниппета и обновите кэш. + параметр &fastMode у pdoResources должен быть равен 0.
Давайте еще раз, конструкция вызова у вас будет выглядеть примерно так:
[[!getUrlText? &url=`[[+tv.YinYan]]`]]
— если вызывать внутри pdoResources в том месте, где нужно обработать ссылку.Проверьте точное соответствие созданного вами сниппета и обновите кэш. + параметр &fastMode у pdoResources должен быть равен 0.
Прошу прощения, в первый раз нечаянно сделала опечатку в названии сниппета… Но теперь вообще что-то странное происходит. При вызове сниппета getUrlText после перезагрузки страницы исчез весь html-код. Осталось только вот это:
<html>
<head></head>
<body data-pinterest-extension-installed="cr1.39.1"></body>
</html>
Вы точно правильно переписали содержимое сниппета?
Есть ли что-то в логе ошибок?
Если содержимое сниппета написано правильно — можете скинуть доступ на почту, посмотрю.
<?php
preg_match('/\>(.*)<\/a>/', $url, $matches);
return $matches[1];
Есть ли что-то в логе ошибок?
Если содержимое сниппета написано правильно — можете скинуть доступ на почту, посмотрю.
Максим, вы отредактировали свой сниппет в вашем комментарии выше или мне показалось?
У меня такой (копировала с вашего первоначального):
У меня такой (копировала с вашего первоначального):
<?php
function getUrlText($url) {
preg_match('/\>(.*)<\/a>/', $url, $matches);
return $matches[1];
}
return getUrlText($url);
Да, все верно — отредактировал.
Измените на тот код, что приложил выше — должно помочь.)
Измените на тот код, что приложил выше — должно помочь.)
Выше у вас тот же код, что и ниже :)
В параметрах вывода стоит разделитель в виде запятой.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.