Amp для modx

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

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

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

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" />

        Это поможет поисковику понять, где что и не посчитать страницы дублями.
      Просветов Игорь
      18 января 2019, 11:27
      0
      А как решить, если в контенте встречается картинка с тегом img, ее надо заменить на конструкцию <amp-img></amp-img>
        Сергій
        11 октября 2019, 04:59
        0
        Сам столкнулся с такой же проблемой.
          Konstantin
          11 октября 2019, 07:18
          -1
          {$_modx->resource.content | replace : 'img' : 'amp-img'}
            Сергій
            13 октября 2019, 16:14
            0
            На жаль это не подходит. Вот пример как должен выглядеть код вставки изображения.
            <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/
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          14