Добавление Google AMP (Acelerated mobile pages)

Добавляем AMP страницы в cs-cart
Идея
Привет всем, итак давайте добавим AMP без покупки модулей в магазине.

Что я сделал:

  1. Создал модуль который добавляет на страницы:
  • блога

  • категории товара

  • карточки товара

Модуль делает ссылку:

Ссылку на развернутый рядом с магазином Yii2 фреймворк

Если мой магазин: example.com

То например страница блога: examble.com/myblogname/my_blog_post_article_1/

Поднимаю фреймворк на: amp.example.com

И делаю три контроллера:

amp.example.com/blog - для страниц блога (что уже работает сейчас)

amp.example.com/good - для карточек товаров

amp.example.com/cat - для страничек категорий

Создание модуля в cs-cart
Модуль состоит из трех файлов:

  • /app/addons/amp_sw/addon.xml
<?xml version="1.0"?> amp_sw 1.0 4294967294 0 MULTIVENDOR,ULTIMATE en </addon - var/lang/en/amp_sw.po

msgid ""msgstr “Project-Id-Version: tygh\n”“Content-Type: text/plain; charset=UTF-8\n”“Language-Team: English\n”"Language: en_US"msgctxt "Addons::name::amp_sw"msgid "amp_sw_title"msgstr "Google AMP Pages Module"msgctxt "Addons::description::amp_sw"msgid "amp_sw_description"msgstr “This module implement page header modifications for such pages: Categories, Goods Pages, Blog Pages”

  • var/lang/ru/amp_sw.po

msgid ""msgstr “”“Project-Id-Version: cs-cart-latest\n”“Content-Type: text/plain; charset=UTF-8\n”“Language-Team: Russian\n”“Language: ru_RU\n”“Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n”“X-Generator: crowdin.com\n”“X-Crowdin-Project: cs-cart-latest\n”“X-Crowdin-Language: ru\n”“X-Crowdin-File: /release-4.8.2/addons/my_changes.po\n”“Last-Translator: cscart translations@cs-cart.com\n”"PO-Revision-Date: 2018-08-20 09:09\n"msgctxt "Addons::name::amp_sw"msgid "amp_sw_title"msgstr "Google AMP Pages Module"msgctxt "Addons::description::amp_sw"msgid "amp_sw_description"msgstr “Специальный модуль Google AMP Pages: Categories, Goods, Blog pages”

  • desing/thems/responsive/templates/addons/hooks/index/links.post.tpl

{assign var="_path" value=$seo_canonical.current}

{if isset($location_data.dispatch) && ($location_data.dispatch == “categories.view” || $location_data.dispatch==“products.view” || $location_data.dispatch==“pages.view?page_type=B”)}

    {if $location_data.dispatch == "categories.view" && isset($category_data.category_id)} 
            {assign var="page_type" value="cat"}
            {assign var="id" value=$category_data.category_id}
    
    {elseif $location_data.dispatch=="products.view" && isset($product.product_id) }
        {assign var="page_type" value="good"}
        {assign var="id" value=$product.product_id}

    {elseif $location_data.dispatch && $location_data.dispatch=="pages.view?page_type=B" && isset($page.page_id) }
        {assign var="page_type" value="blog"}
        {assign var="id" value=$page.page_id}


    {elseif $location_data.dispatch || $location_data.dispatch=="index.index"}
        {assign var="page_type" value="index"}
        
    {else assign var="page_type" value="error"}
    
    {/if}
        
        {assign var="new_amp" value="amp.akademorto.kz"}
        {assign var="new_amp_ptype" value="{$new_amp}/{$page_type}"}
        {assign var="old" value="akademorto.kz"}


        <link rel="amphtml" href="{$_path|replace:$old:$new_amp_ptype}/{$id}">

{/if}

Все, модуль готов. Так же необходимо зарегистрировать пользователя с правом доступа к API.
Теперь переходим к Yii2:
!Ребята, этот блог не предназначен для демонстрации кода. Можно я у себя размещу:

https://space-warriors.com/blog/55-dobavlaem-amp-stranicy-v-cs-cart

Если кого-то заинтересует - я могу видео сделать. Но блог у меня уже работает и карточка товара, практически окончена. Осталось доделать - страницу категории
Блог выглядит вот -так: https://amp.akademorto.kz/blog/shkola/vse-o-varikoznom-trikotazhe-vybor-i-sovety-vrachey-ru/30

4 лайка