Amp для modx

Наткнулся на плагин для revo AMP модх.
ссылка на github репозиторий

Кто реализовывал AMP на modx? Поделитесь любой информацией.
Oleh
23 июля 2017, 16:22
modx.pro
11
7 112
0

Комментарии: 18

t.g
t.g
23 июля 2017, 22:47
2
+1
Делал AMP страници через подмену шаблона при наличии get параметра ?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
    Klike
    24 июля 2017, 08:50
    1
    0
    ID шаблона можно получить сразу, без дополнительных запросов в бд:
    $template = $modx->resource->template;
      t.g
      t.g
      24 июля 2017, 09:14
      0
      Спасибо.
    Роман
    04 октября 2017, 00:44
    0
    Разобрался кто? Я что т до конца не пойму:
    Как поисковику сказать что у тебя есть страница с AMP !? или он проверяет всегда:
    https://sitename.com/page.html
    // хм ... а есть ли у этой станицы amp?
    https://sitename.com/page.html?amp
    // есть, занесем её в базу!
    Если следовать по примеру выше, то он проверяет только один шаблон, если нужно много, то как реализовать плагин?

    — Плагин с репозитория не понял как его запустить!?
      Роман
      04 октября 2017, 12:00
      2
      +1
      Плагин на событие 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

      Всем спасибо, работает!
        Bress
        05 января 2018, 11:53
        0
        Роман, добрый день! Не смог разобраться с установкой последнего плагина на github.com/modxcms/ampify
        в результате использовал 0.0.4 бэту от 16-года, сделал все по инструкции, но столкнулся с проблемой, с которой, быть может, вы мне поможете:
        1. при формировании амп страниц не подтягиваются изображения, а если и подтягиваются, то не в валидном формате для амп
        2. объявить amphtml по Вашему шаблону не получается, в моем случае ампы находятся по site.ru/amp/directory/page, каноническая site.ru/directory/page
        3. как все-же поставить последнюю версию плагина? установщик пакетов не считает архив транспортным пакетом.
        Заранее благодарен.
          Bress
          05 января 2018, 14:05
          0
          решил почти все, кроме:
          2. объявить amphtml по Вашему шаблону не получается, в моем случае ампы находятся по site.ru/amp/directory/page, каноническая site.ru/directory/page
        Иван Бондаренко
        04 октября 2017, 12:35
        0
        Как поисковику сказать что у тебя есть страница с AMP
        Ответ на вопрос: добавить на основную страницу (в head) следующий метатег со ссылкой на АМП версию:

        <link rel="amphtml" href="https://sitename.com/page.html?amp">

        в свою очередь, на АМП странице обязательно должен быть тег canonical, указывающий на основную версию страницы.

        <link rel="canonical" href="https://sitename.com/page.html" />

        Это поможет поисковику понять, где что и не посчитать страницы дублями.
          Роман
          04 октября 2017, 12:39
          0
          Так выше в комментарии написал же!
      Просветов Игорь
      18 января 2019, 11:27
      0
      А как решить, если в контенте встречается картинка с тегом img, ее надо заменить на конструкцию <amp-img></amp-img>
      Georg
      05 мая 2021, 09:50
      0
      Всем привет! А никто не сталкивался с тем что после установки данного плагина
      <?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? т.е. добавить в корзину кнопка срабатывает, а товар в корзину не добавляет и появляется просто значок вечной загрузки. При отключении плагина все начинает работать
        Shedko Denis
        05 мая 2021, 14:50
        0
        В AMP сторонние JS-скрипты не работают.
        И просто включив плагин — вы ничего не получите. Или валидацию страница не пройдет (99%) или разметка поплывет. Там ооочень много подводных камней.

        АМП как и YandexRSS — в основном для новостных/статейных сайтов. АМП для магазинов мало подходит — конверсии никакой почти. Только если низкочастотные выводить в амп — и то это же только для гугла.
          Georg
          05 мая 2021, 15:18
          0
          В AMP-шаблон я не выводил скрипты, сделал просто описание товара. Проверку AMP все страницы отрабатывают как нужно. Не работает именно на нормальных страницах сайта. Видимо событие OnLoadWebDocument этого плагина каким-то образом конфликтует с Shopkeeper3. Хотя в самом Shopkeeper3 оно вроде-бы не используется.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        18