Amp для modx
Наткнулся на плагин для revo AMP модх.
ссылка на github репозиторий
Кто реализовывал AMP на modx? Поделитесь любой информацией.
ссылка на github репозиторий
Кто реализовывал AMP на modx? Поделитесь любой информацией.
Комментарии: 18
Делал AMP страници через подмену шаблона при наличии get параметра ?amp, только со страницами блога.
Пример url:
Повесил на событие (OnLoadWebDocument)
Валидацию с get параметром проходит.
search.google.com/test/amp
Пример url:
https://sitename.com/articles/articles-name.html?amp
Условие замены шаблона. (возможно кто-то подскажет как его немножко улучшить, не знал как взять id шаблона текущей страницы одним запросом)$id = $modx->resource->get('id'); // Get current page id
$resource = $modx->getObject('modResource',$id); // Get current object
$template = $resource->get('template'); // Get current page template
if($template == 5 && isset($_GET['amp'])) {
$modx->resource->set('template', 23);
}
$modx->resource->cacheable = false; // Disable cache
Важно выключить кэширование, чтобы изменение шаблона не закешировалось.Повесил на событие (OnLoadWebDocument)
Валидацию с get параметром проходит.
search.google.com/test/amp
ID шаблона можно получить сразу, без дополнительных запросов в бд:
$template = $modx->resource->template;
Спасибо.
Разобрался кто? Я что т до конца не пойму:
Как поисковику сказать что у тебя есть страница с AMP !? или он проверяет всегда:
— Плагин с репозитория не понял как его запустить!?
Как поисковику сказать что у тебя есть страница с AMP !? или он проверяет всегда:
https://sitename.com/page.html
// хм ... а есть ли у этой станицы amp?
https://sitename.com/page.html?amp
// есть, занесем её в базу!
Если следовать по примеру выше, то он проверяет только один шаблон, если нужно много, то как реализовать плагин?— Плагин с репозитория не понял как его запустить!?
Плагин на событие OnLoadWebDocument:
Всем спасибо, работает!
<?php
$id = $modx->resource->get('id'); // Get current page id
$resource = $modx->getObject('modResource',$id); // Get current object
$template = $modx->resource->template; // Get current page template
if($template == 5 && isset($_GET['amp'])) {
$modx->resource->set('template', 23);
}
$modx->resource->cacheable = false; // Disable cache
В шаблонах// что бы показать, что у тебя есть amp страница
<link rel="amphtml" href="http://site.ru/page?amp" />
// на amp странице показать главную, что бы не было дублей
<link rel="canonical" href="http://site.ru/page" />
Проверка тут: search.google.com/test/ampВсем спасибо, работает!
Роман, добрый день! Не смог разобраться с установкой последнего плагина на github.com/modxcms/ampify
в результате использовал 0.0.4 бэту от 16-года, сделал все по инструкции, но столкнулся с проблемой, с которой, быть может, вы мне поможете:
1. при формировании амп страниц не подтягиваются изображения, а если и подтягиваются, то не в валидном формате для амп
2. объявить amphtml по Вашему шаблону не получается, в моем случае ампы находятся по site.ru/amp/directory/page, каноническая site.ru/directory/page
3. как все-же поставить последнюю версию плагина? установщик пакетов не считает архив транспортным пакетом.
Заранее благодарен.
в результате использовал 0.0.4 бэту от 16-года, сделал все по инструкции, но столкнулся с проблемой, с которой, быть может, вы мне поможете:
1. при формировании амп страниц не подтягиваются изображения, а если и подтягиваются, то не в валидном формате для амп
2. объявить amphtml по Вашему шаблону не получается, в моем случае ампы находятся по site.ru/amp/directory/page, каноническая site.ru/directory/page
3. как все-же поставить последнюю версию плагина? установщик пакетов не считает архив транспортным пакетом.
Заранее благодарен.
решил почти все, кроме:
2. объявить amphtml по Вашему шаблону не получается, в моем случае ампы находятся по site.ru/amp/directory/page, каноническая site.ru/directory/page
2. объявить amphtml по Вашему шаблону не получается, в моем случае ампы находятся по site.ru/amp/directory/page, каноническая site.ru/directory/page
Как поисковику сказать что у тебя есть страница с AMP
Ответ на вопрос: добавить на основную страницу (в head) следующий метатег со ссылкой на АМП версию:
в свою очередь, на АМП странице обязательно должен быть тег canonical, указывающий на основную версию страницы.
Это поможет поисковику понять, где что и не посчитать страницы дублями.
Ответ на вопрос: добавить на основную страницу (в head) следующий метатег со ссылкой на АМП версию:
<link rel="amphtml" href="https://sitename.com/page.html?amp">
в свою очередь, на АМП странице обязательно должен быть тег canonical, указывающий на основную версию страницы.
<link rel="canonical" href="https://sitename.com/page.html" />
Это поможет поисковику понять, где что и не посчитать страницы дублями.
Так выше в комментарии написал же!
Не увидел. Торопился…
А как решить, если в контенте встречается картинка с тегом img, ее надо заменить на конструкцию <amp-img></amp-img>
Сам столкнулся с такой же проблемой.
{$_modx->resource.content | replace : 'img' : 'amp-img'}
На жаль это не подходит. Вот пример как должен выглядеть код вставки изображения.
<amp-img alt="A view of the sea"
src="/static/inline-examples/images/sea.jpg"
width="900"
height="675"
layout="responsive">
</amp-img>
Инфо: amp.dev/ru/documentation/components/amp-img/
gist.github.com/elalemanyo/034490164beb7b935559585ff1cc7d9f
вот скрипт
При выводе контента подсунь функцию на обработку
вот скрипт
При выводе контента подсунь функцию на обработку
$scontent = _ampify_img($resource->get('content'));
и далее выводишь $scontent
Всем привет! А никто не сталкивался с тем что после установки данного плагина
<?php
$id = $modx->resource->get('id');
$resource = $modx->getObject('modResource',$id);
$template = $modx->resource->template;
if($template == 39 && isset($_GET['amp'])) {
$modx->resource->set('template', 56);
}
$modx->resource->cacheable = false;
Перестает работать корзина на Shopkeeper3? т.е. добавить в корзину кнопка срабатывает, а товар в корзину не добавляет и появляется просто значок вечной загрузки. При отключении плагина все начинает работать
В AMP сторонние JS-скрипты не работают.
И просто включив плагин — вы ничего не получите. Или валидацию страница не пройдет (99%) или разметка поплывет. Там ооочень много подводных камней.
АМП как и YandexRSS — в основном для новостных/статейных сайтов. АМП для магазинов мало подходит — конверсии никакой почти. Только если низкочастотные выводить в амп — и то это же только для гугла.
И просто включив плагин — вы ничего не получите. Или валидацию страница не пройдет (99%) или разметка поплывет. Там ооочень много подводных камней.
АМП как и YandexRSS — в основном для новостных/статейных сайтов. АМП для магазинов мало подходит — конверсии никакой почти. Только если низкочастотные выводить в амп — и то это же только для гугла.
В AMP-шаблон я не выводил скрипты, сделал просто описание товара. Проверку AMP все страницы отрабатывают как нужно. Не работает именно на нормальных страницах сайта. Видимо событие OnLoadWebDocument этого плагина каким-то образом конфликтует с Shopkeeper3. Хотя в самом Shopkeeper3 оно вроде-бы не используется.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.