Мой сайт MODX должен получить первое изображение со всех страниц для метатегов Open Graph, которые будут подключены к блоку Head для всех шаблонов.
Проблема в том, что не все изображения находятся в content
часть страницы. Некоторые из них расположены внутри чанков, а другие — внутри телевизоров. (Поиск тега изображения из содержимого не является проблемой.)
Возможно, можно получить все блоки и телевизоры и просмотреть их значения для проверки изображений.
Но есть ли способ получить <body>
содержимое ресурса?
Вероятно, несколькими способами вы можете попробовать написать плагин для разбора всего содержимого страницы, похоже, что может использоваться событие OnWebPageComplete (взгляните на различные события, чтобы увидеть, является ли один более подходящим}
Вы можете попробовать извлечь ресурс из кеша, имея в виду, что любые chnks / snippets / TVs, вызываемые на странице без кэширования, не будут отображаться в файле кеша ресурсов.
Вы можете получить список телевизоров, как только вы загрузили ресурс & затем используйте getTVValue чтобы получить значение.
Если у вас есть изображение в чанке, GetChunk может сработать [возможно, я никогда не пытался использовать его таким образом], чтобы получить его содержимое, но я бы изобразил, что изображение в чанке будет получено с телевизора, так что вы сможете получить его с помощью getTVValue.
Вы также можете просто настроить телевизор для изображения OpenGraph и явно установить его постранично.
Вероятно, написание плагина & какое-то регулярное выражение будет наименее болезненным способом сделать это.
Других решений пока нет …