Добавляем AMP страницы в cs-cart
Идея
Привет всем, итак давайте добавим AMP без покупки модулей в магазине.
Что я сделал:
- Создал модуль который добавляет на страницы:
-
блога
-
категории товара
-
карточки товара
Модуль делает ссылку:
Ссылку на развернутый рядом с магазином 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
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