Вывод картинки в OpenGraph с использованием MIGX
Добрых уток времени всем. Пытаюсь настроить красивый вид ссылок на сайт в мессенджарах.
Возникла проблема с передачей картинки. У меня на сайте есть несколько типов страниц. На одном из них использую MIGX для создания tv-поля с картинкой новости. На всех остальных этого tv-поля нет вообще.
В head прописал такой код:
Вопрос: как добавить проверку на отсутсвие tv-шки с картинкой и указанием дефолтной картинки в этом случае?
Пробовал в темплейте `openGraph_Img` указать проверку
Возникла проблема с передачей картинки. У меня на сайте есть несколько типов страниц. На одном из них использую MIGX для создания tv-поля с картинкой новости. На всех остальных этого tv-поля нет вообще.
В head прописал такой код:
<meta property="og:image" content="[[++site_url]][[getImageList?
&tvname=`image`
&tpl=`openGraph_Img`
&limit=`1`
&docid=`[[*id]]`
]]">
В темплейте `openGraph_Img` лежит просто [[+image]]
Такая конструкция работает на страницах, у которых есть tv-шка с картинкой статьи.Вопрос: как добавить проверку на отсутсвие tv-шки с картинкой и указанием дефолтной картинки в этом случае?
Пробовал в темплейте `openGraph_Img` указать проверку
[[+image:isnot=``:then=`[[+image]]`:else=`images/defaultPic.jpg`]]
но так не работает (если я правильно понимаю это потому что на других страницах такого TV просто нет, соответственно проверка не начинается). Комментарии: 9
[[+image:ne=``:then=`[[+image]]`:else=``]]
Такой вариант так же не даёт эфекта. Дефолтная картинка не показывается на страницах, где нет TV-картинки новости.
Вам принципиален этот синтаксис шаблонизатора? [[]]
У стандартного шаблонизатора modx довольно часто наблюдаются проблемы с написанием условий.
При этом на fenom ваша проблема решилась бы в одну строку.
{set $image = $_modx->resource.image? $_modx->resource.image: «images/defaultPic.jpg» }
У стандартного шаблонизатора modx довольно часто наблюдаются проблемы с написанием условий.
При этом на fenom ваша проблема решилась бы в одну строку.
{set $image = $_modx->resource.image? $_modx->resource.image: «images/defaultPic.jpg» }
Совсем не принципиален.
Я пробовал fenom, но что-то не понимаю как им пользоваться. В настройках MODX включил «использовать Fenom на страницах». В чанк с темплейтом «openGraph_Img» подставил Вашу строку и страницы, у которых к новости есть картинка перестали загружаться. Не идёт формирование html-разметки. При этом другие страницы продолжают нормально работать.
Я пробовал fenom, но что-то не понимаю как им пользоваться. В настройках MODX включил «использовать Fenom на страницах». В чанк с темплейтом «openGraph_Img» подставил Вашу строку и страницы, у которых к новости есть картинка перестали загружаться. Не идёт формирование html-разметки. При этом другие страницы продолжают нормально работать.
В чанк с темплейтом «openGraph_Img» подставил Вашу строку и страницы, у которых к новости есть картинка перестали загружаться.Ты всего скорее скопировал с неверными кавычками — тут они заменяются на «елочки», а такое в Fenom не сработает.
Если уж ты решил перейти на Fenom, то имеет смысл переписать эту конструкцию целиком. Сверху в head пишешь:
{set $data = $_modx->resource.image | fromJSON}
а затем просто{set $image = $data ? $data[0].image : 'images/defaultPic.jpg'}
<meta property="og:image" content="{'site_url' | option}{$image}">
И никаких дополнительных openGraph_Img не нужно.MIGX TV — это не более чем простой JSON, поэтому в Fenom с ним можно работать без всяких getImageList.
Ты можешь распечатать $data на странице и посмотреть, что там внутри:
{$data | print}
Переписал. Главная страница перестала загружаться :) Тупо белый лист без какого-либо кода. При этом все остальные страницы загружаются.
{$data | print}
Тоже ломает главную страницу ¯\_(ツ)_/¯
Что в логах?
Возможно у вас не установлен pdoTools
Если установлен, то возможно в системных настройках указан не тот парсер. Проверьте что в системной настройка parser_class, там должно быть указано pdoParser
Если так и есть, то возможно у вас не указано в системных настройках — использовать феном на страницах, ключ pdotools_fenom_parser
Если установлен, то возможно в системных настройках указан не тот парсер. Проверьте что в системной настройка parser_class, там должно быть указано pdoParser
Если так и есть, то возможно у вас не указано в системных настройках — использовать феном на страницах, ключ pdotools_fenom_parser
Ну копировать строку не нужно было, это был лишь пример того, что на феноме проще. У вас судя по коду используется не просто ТВ для хранения изображения а migx. Так что там нужно будет еще использовать модификатор |fromJSON и брать первый элемент.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.