Перейти к содержанию

Рекомендуемые сообщения

Появился модуль для создания AMP страниц товаров

 

Модуль

 

Встал отлично, но в описании товара проблема с кодировкой. Может кто подскажет как исправить?

 

Пример на моем сайте

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А контроллер и вьюшку смотрели?
Как он формирует description для товара

Изменено пользователем thentru
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я в этом не силен, если не трудно посмотрите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пишите в ЛС

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день!

И в чем была проблема?

Изменено пользователем grey0207

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо thentru за решение проблемы

 

Решение: в файле /catalog/view/theme/default/template/product/amp_product.tpl

Меняем часть кода

<?php 
 
$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($description);
libxml_use_internal_errors(false);
 
$domx = new DOMXPath($domd);
$items = $domx->query("//*[@style]");
 
foreach($items as $item) {
  $item->removeAttribute("style");
}
 
$description= $domd->saveHTML();
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', mb_convert_encoding($description, 'UTF-8')));  ?>

на

<?php
echo $description;
?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Спасибо thentru за решение проблемы

 

Решение: в файле /catalog/view/theme/default/template/product/amp_product.tpl

Меняем часть кода

<?php 
 
$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($description);
libxml_use_internal_errors(false);
 
$domx = new DOMXPath($domd);
$items = $domx->query("//*[@style]");
 
foreach($items as $item) {
  $item->removeAttribute("style");
}
 
$description= $domd->saveHTML();
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', mb_convert_encoding($description, 'UTF-8')));  ?>

на

<?php
echo $description;
?>

 

суть такая - если у вас в описании товаров нет тегов style и font можно упростить код

иначе - будет ошибка валидации AMP страницы

Изменено пользователем thentru

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

суть такая - если у вас в описании товаров нет тегов style и font можно упростить код

иначе - будет ошибка валидации AMP страницы

Валидатор ругается на страницы товара у которых описание по ширине выровнено, а именно на тег <p ругается

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Валидатор ругается на страницы товара у которых описание по ширине выровнено, а именно на тег <p ругается

Верно, у него же есть атрибут style

Попробуем решить этот вопрос регуляркой

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообщем корректное решение такое

вместо

<?php 

$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($description);
libxml_use_internal_errors(false);

$domx = new DOMXPath($domd);
$items = $domx->query("//*[@style]");

foreach($items as $item) {
  $item->removeAttribute("style");
}

$description= $domd->saveHTML();
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', $description));  ?>

используем

<?php 
$description = preg_replace('/style=(["\'])[^\1]*?\1/i', '', $description);
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', $description));  ?>

Проверяйте и тему можно считать закрытой

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообщем корректное решение такое

вместо

<?php 

$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($description);
libxml_use_internal_errors(false);

$domx = new DOMXPath($domd);
$items = $domx->query("//*[@style]");

foreach($items as $item) {
  $item->removeAttribute("style");
}

$description= $domd->saveHTML();
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', $description));  ?>

используем

<?php 
$description = preg_replace('/style=(["\'])[^\1]*?\1/i', '', $description);
echo preg_replace('/<\/font[^>]*>/', '', preg_replace('/<font[^>]*>/', '', $description));  ?>

Проверяйте и тему можно считать закрытой

Работает!!!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А подскажите, что надо подправить, чтобы модуль работал с SEO PRO?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смысл этого модуля для товаров?

AMP заточен под новости и крупные сайты. Из них выводит результаты в новостную карусель.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смысл этого модуля для товаров?

AMP заточен под новости и крупные сайты. Из них выводит результаты в новостную карусель.

AMP - это не только новости. При поиске с мобильного наличие AMP - мощный фактор ранжирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гугл ругается на структурированные данные, действительно почему то в разметке нет значения кол-ва отзывов, сама переменная есть но ко-во пустое.

<meta itemprop='reviewCount' content='' />

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Гугл ругается на структурированные данные, действительно почему то в разметке нет значения кол-ва отзывов, сама переменная есть но ко-во пустое.

<meta itemprop='reviewCount' content='' />

Автор выпустил версию 1.0.5 там это исправлено

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На данный момент ЧПУ модуль не поддерживает. Так же ссылки нужно добавить в каждый товар на amp страницу.

Add the following to the non-AMP page:
<link rel="amphtml" href="https://www.example.com/url/to/amp/document.html">

And this to the AMP page
<link rel="canonical" href="https://www.example.com/url/to/full/document.html">

Google не сможет найти страницы, если ссылки ему не дать.

Изменено пользователем kisluk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ничего не могу понять. У меня OC 1.5.

Скачал версию для него.

НО!

В версии нужен файл catalog/controller/startup/seo_url.php

Которого в 1.5.5.1.2 нет. 

А xml намерен его менять.

Решил проблему. Ниже xml с комментариями для ручной замены.

 

После замены вылезают ошибки в этой строке:

$url .= '/' . $query->row['keyword'] .'/amp/';

Undefined variable: query in  on line 95
Trying to get property of non-object in

 

 

<?xml version="1.0" encoding="UTF-8"?>
<modification>
    <name>AMP for Product Page</name>
    <version>1.0.8</version>
    <author>yura dee</author> 
    <file path="catalog/controller/product/product.php">
        <operation>
            <search position="after"><![CDATA[$this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical');]]></search>
            <add><![CDATA[$this->document->addLink($this->url->link('product/amp_product', 'product_id=' . $this->request->get['product_id']), 'amphtml');
            ]]></add>
            <!-- Строка 233 -->
        </operation>
    </file>
    <file path="catalog/controller/common/seo_url.php">
        <!-- заменил местоположение на common -->
        <operation>
            <!-- 18 -->
            <search position="after"><![CDATA[foreach ($parts as $part) {]]></search>
            <add><![CDATA[if ( $part == 'amp') {
                    continue;
                } else
                ]]></add>
                </operation>
        <operation>
            <!-- Строка 19  -->
            <search position="before"><![CDATA[if ($url[0] == 'product_id') {]]></search>
            <add><![CDATA[if ($url[0] == 'product_id' && strpos($this->request->get['_route_'], "/amp/") !== FALSE) {
                        $this->request->get['aproduct_id'] = $url[1];
                    }
            ]]></add>
        </operation>
        <operation error="log">
            <!-- Строка 53 -->
            <search position="after"><![CDATA[
                if (!isset($this->request->get['route'])) {
            ]]></search>
            <add><![CDATA[
                if (isset($this->request->get['aproduct_id']) ) {
                    $this->request->get['route'] = 'product/amp_product';
            ]]></add>
        </operation>
        <operation error="log">
            <!-- Строка 43 -->
            <search position="replace"><![CDATA[
                if (isset($this->request->get['product_id'])) {
            ]]></search>
            <add><![CDATA[
                } elseif (isset($this->request->get['product_id']) ) {
            ]]></add>
        </operation>
        <operation error="log">
            <!-- Строка 70 -->
            <search position="replace"><![CDATA[
                ($data['route'] == 'information/information' && $key == 'information_id')
            ]]></search>
            <add><![CDATA[
                ($data['route'] == 'information/information' && $key == 'information_id') || ($data['route'] == 'product/amp_product')
            ]]></add>
        </operation>
        <operation>
            <!-- Строка 85 -->
            <search position="replace" index="1"><![CDATA[
                $url .= '/' . $query->row['keyword'];
            ]]></search>
            <add><![CDATA[
                if ($data['route'] == 'product/amp_product') {
                    $url .=  '/' . $query->row['keyword'] .'/amp/';
                }
                else {
                    $url .= '/' . $query->row['keyword'];
                }
            
            ]]></add>
        </operation>
    </file>
</modification>

 

Изменено пользователем Taury

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а без vqmod на opencart 2.3 сделал кто? может модификатор кто-нибудь сделает, а то vqmod старый век!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

, thentru, Так все-же какого мнение ? 
стоит ли устанавливать этот модуль на рабочий магазин? будет ли толк от него?

kamar87, Есть ли какие-то изменения после установки данного модуля?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 27.03.2017 в 05:32, kikaridza123 сказал:

, thentru, Так все-же какого мнение ? 
стоит ли устанавливать этот модуль на рабочий магазин? будет ли толк от него?

kamar87, Есть ли какие-то изменения после установки данного модуля?

у меня на сайте по пирогам осетинским vkusno-pirogi.ru норм пашет!!! -вот отчитываюсь о проделываемой работе: https://vk.com/seo_osetinskie_pirogi 

у мя установлена первая версия на окстор 2.1 + журнал; в АМП гугле - 90 страниц и 0 ошибок! выдача в топ заходит на 2 день после публикациИ) особенно на мобилки

Изменено пользователем kostia7alania
=анкором вставил или хз как ето называется));

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 05.09.2016 at 7:33 PM, Djon said:

А подскажите, что надо подправить, чтобы модуль работал с SEO PRO?

Чтобы всё работало с SEO PRO надо купить и поставить ещё один модуль:

SEO PRO for AMP for Product Pages

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=30324

Я купил и всё заработало. Вот пример на моём сайте:

https://obuv-pk.ru/amp/men/1-13231511

Большое спасибо автору за модуль!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 19.04.2017 в 09:19, goreev сказал:

Чтобы всё работало с SEO PRO надо купить и поставить ещё один модуль:

SEO PRO for AMP for Product Pages

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=30324

Я купил и всё заработало. Вот пример на моём сайте:

https://obuv-pk.ru/amp/men/1-13231511

Большое спасибо автору за модуль!

Подскажите плиз, ссылка с атрибутом amphtml на amp страницу, и ссылка на amp странице с атрибутом canonical на основную страницу автоматически появляются? Или придется дополнительные манипуляции производить? Спасибо! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 13.06.2017 в 14:03, Safistik сказал:

Подскажите плиз, ссылка с атрибутом amphtml на amp страницу, и ссылка на amp странице с атрибутом canonical на основную страницу автоматически появляются? Или придется дополнительные манипуляции производить? Спасибо! 

автоматом

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если верстка адаптивная, то есть смысл в amp страницах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.