Last active
August 29, 2015 14:17
-
-
Save andronex/8572cd79ee92aaf97512 to your computer and use it in GitHub Desktop.
Плагин для вывода части микроразметки типа OpenGraph. Выводит в HTML код мета поле с корректным URL картнки.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Плагин для вывода части микроразметки типа OpenGraph | |
* Выводит в HTML код мета поле с корректным URL картнки. | |
* Принцип работы: если в content текущего ресурса находит хоть одну картинку, | |
* то автоматически выводит её в meta property="og:image" | |
* Если картинки не найдены в тексте, то прицепляет к ресурсу любую жёстко | |
* заданную картинку. Нужен для корректного вывода поста в соц.сетях - с нужной картинкой. | |
*/ | |
$eventName = $modx->event->name; | |
switch($eventName) { | |
case 'OnWebPagePrerender': | |
if ($cont = &$modx->resource->content && ($modx->resource->id) != 1) { | |
preg_match_all('/<img[^>]*?src=\"(.*)\"/iU', $cont, $result);//ищем все URL с картинками в данном ресурсе | |
$output = &$modx->resource->_output;//доступ к буферу вывода по ссылке | |
if ($result[1][0]) {//если хотя бы одна картинка есть | |
$output = str_replace('</head>',' | |
<meta property="og:image" content="'.MODX_URL_SCHEME.MODX_HTTP_HOST.$result[1][0].'"> | |
</head>',$output);//добавляем перед </head> meta тег разметки OpenGraph с картинкой | |
} | |
else $output = str_replace('</head>',' | |
<meta property="og:image" content="'.MODX_URL_SCHEME.MODX_HTTP_HOST.'/assets/img/example.png"> | |
</head>',$output);//иначе добавляем перед </head> meta тег разметки OpenGraph с жёстко заданной картинкой | |
} | |
break; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
В HTML коде шапки OpenGraph выглядит так (с учётом других тегов и нужен сниппет summary): | |
<meta name="keywords" content="[[*introtext:htmlent]]"> | |
<meta name="description" content="[[*description:htmlent]]"> | |
<meta property="og:title" content="[[*pagetitle:htmlent]][[*longtitle:!empty=` | [[*longtitle:htmlent]]`]][[!titlePagination]]"> | |
[[*description:ne=``:then=`<meta property="og:description" content="[[*description:htmlent]]">`:else=`<meta property="og:description" content="[[chisto:default=`Описание по дефолту, трам-пам-пам...`?input=`[[summary?len=`250` &dotted=`1` &text=`[[*content]]`]]`]]">`]] | |
<meta property="og:url" content="[[~[[*id]]?scheme=`full`]]"> | |
[[*id:is=`1`:then=`<meta property="og:image" content="http://domain.ru/assets/img/example.png">`]] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment