Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

ocdev_pro
 Поделиться

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

OCDEV.pro - Мультиязык SEO PRO, код языка в url и правильный hreflang


OCDEV.pro - Мультиязык SEO PRO, код языка в url и правильный hreflang


OCDEV.pro - Мультиязык SEO PRO (ocStore, Opencart.pro 2.x), OCDEV.pro - Hreflang (ocStore 3.x) - модуль для решения проблемы с мультиязычностью сайта. Протестирован на платформах ocStore, Opencart.pro 2.x

Данный модуль создан и распространяется бесплатно исключительно для поддержки и развития сборки ocStore от opencartforum.com


Работает только с SeoPro который присутствует в сборках ocStore, Opencart.pro. Работа с SeoPro установленным на чистый Opencart от других авторов не гарантируется, но возможна адаптация и настройка при обращении в ЛС, исключительно на платной основе.


Модуль никогда не будет дорабатываться и публиковаться для чистого Opencart или других сборок. Установка и адаптация модуля на чистый Opencart, это достаточно трудоемкая платная услуга (обращайтесь в ЛС или по контактам в профиле).

Доступные функции модуля OCDEV.pro - Мультиязык SEO PRO (ocStore, Opencart.pro 2.x):
  • Формирует корректный тег Hreflang
  • Добавляет код языка в url, Например https://site.com/tovar или https://site.com/ua/tovar

    Язык по умолчанию остается без префикса в URL

  • Заменяет стандартный блок языка, не используя ajax или отправку форм. Смена языка происходит непосредственно при клике на ссылку в блоке переключателей
  • Добавляет мультиязычные мета-данные для главной страницы
  • Заменяет адрес магазина на мультиязычный на странице контактов
  • Позволяет стандартному модулю карты-сайта формировать раздельный sitemap.xml для каждого языка

    Необходимо добавить правила в .htaccess или в настройках nginx, описано в инструкции

Доступные функции модуля OCDEV.pro - Hreflang (ocStore 3.x):
  • Формирует корректный тег Hreflang
  • Добавляет мультиязычные мета-данные для главной страницы
  • Заменяет адрес магазина на мультиязычный на странице контактов
  • Позволяет стандартному модулю карты-сайта формировать раздельный sitemap.xml для каждого языка

    Необходимо добавить правила в .htaccess или в настройках nginx, описано ниже в инструкции

  • Модуль не добавляет префикс языка в URL! И в целом не влияет на формирования ссылок на Вашем сайте в отличии от модуля для ocStore2.x

Код языка в URL модуль для ocStore 3 не добавляет. В Opencart (ocStore) 3 ссылки всех сущностей уже отличаются и задаются как уникальное значение для каждого языка.

Такой подход вполне приемлем и не создает никаких преград для индексации. Если исходить из того, что ЧПУ для категории формируется из заголовка, путем транслитерации, то в свою очередь имеем:
При при транслитерации с русского, Категория - Детские игрушки будет иметь вид - detskie-igrushki
с украинского - Дитячі іграшки будет иметь вид - dytiachi-ihrashky
на английском - Toys for kids будет иметь вид - toys-for-kids
на немецком - Kinderspielzeug будет иметь вид - kinderspielzeug

Для поисковой системы главное найти мета-тег hreflang который будет сообщать о том, что страница есть и на других языках и в свою очередь поисковая система сможет прочитать данные с мета-тега о языке страницы и получить ссылку на нее.

Интеграция с другими модулями
  • Протестирована работа с фильтрами: Filter Vier, GoFilter, Mega Filter Pro/Plus начиная с версии фильтра 2.0.5.6.8

  • Нужно поставить версию MegaFilter Pro версии не ниже указанной выше и модификацию mega_filter_ocd_multilang_fix.ocmod.xml

  • Протестирована работа с ocFilter начиная с версии фильтра 4.8

 

  • Модуль не совместим с модулями серии SEOCMS от markimax
Требования
  • Сборка ocStore, Opencart.pro
  • Включенный SeoPro
  • файл htaccess.txt переименован в .htaccess
  • PHP версии 5.3 и выше
Инструкция
Инструкция к модулю находиться в файлах для скачивания readme.zip. Распакуйте данный архив к себе на ПК и откройте файл index.html в браузере
Видео инструкция-обзор на YouTube

Я настоятельно рекомендую не только скачивать и устанавливать модуль на свои и клиентские магазины, но и финансово учувствовать в развитии модуля, этим Вы поддерживаете разработчика и можете рассчитывать на техническую поддержку и регулярные обновления.

Хотите поддержать автора или сказать спасибо? жмите Поддержать автора или приобретайте модуль на форуме с установкой и настройкой!

Лицензионное соглашение

Данное программное обеспечение, дальше ПО, OCDEV.pro - Мультиязык SEO PRO, OCDEV.pro - Hreflang и дополнения к нему являются объектом авторского права и защищено Законом об авторском праве. Любое лицо которое нарушает условия данной лицензии, будет лишен обновлений, технической поддержки и блокируется на официальных ресурсах распространения ПО, работоспособность модуля не гарантируется. Скачивая данное ПО легально Вы поддерживаете разработку, способствуете развитию и улучшению данного ПО.


В нелегально распространяемых копиях ПО может быть вредоносный код, который может нанести ущерб Вашему бизнесу и сайту. Остерегайтесь скачивания, приобретения ПО на сторонних ресурсах не указанных в данном лицензионном соглашении.


Все авторское ПО может размещаться только на следующих ресурсах:

 


Скачивая дополнение Вы получаете копию ПО и доступ к обновлениям.


Передача ПО третьим лицам, распространение ПО от своего имени, публикация исходного кода запрещена!


Пользователь может модифицировать ПО для расширения/исправления функционала без его публикации в сети интернет.


Техническая поддержка проводиться исключительно на платной основе по обоюдной договоренности сторон. Автор в праве отказать в технической поддержке при неадекватном поведении покупателя, хамстве, нарушении этики итд. Поддержка и консультации относительно ПО будет производиться в произвольном режиме и времени на усмотрение разработчика.


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


Права и авторство на ПО, OCDEV.pro - Мультиязык SEO PRO, OCDEV.pro - Hreflang и дополнения к нему принадлежат разработчику Ваховскому Александру Витальевичу, он же: ocdev_pro, alexwaha, сайт https://ocdev.pro


  • Добавил
  • Добавлено
    23.12.2019
  • Категория
  • Системные требования
  • Метод активации
    Без активации
  • Ioncube Loader
    Нет
  • ocStore
    3.0
    2.3.0.2.4
    2.3
    2.1
  • OpenCart.Pro, ocShop
    Opencart.pro 2.3
    Opencart.pro 2.1
  • Обращение к серверу разработчика
    Нет

 

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

Здравствуйте, может ли влиять модуль на скорость сайта?

Изменено пользователем interpromo
Ссылка на комментарий
Поделиться на других сайтах


  • 4 месяца спустя...

Версия дополнения: 1.3.2.1 для ocStore 2.3.  $language['url'] = $this->model_localisation_language->getLanguageUrl($language['language_id']);

Где в ocStore функция getLanguageUrl. Поделитесь тайными знаниями.

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


  • 2 недели спустя...

Привет, может кто сталкивался, идет ошибка 404 после оплаты в wayforpay
кидает на страницу https://******/ua/index.php?route=extension/payment/wayforpay/response или

https://******/ru/index.php?route=extension/payment/wayforpay/response


хотя по идее должно кидать на https://******/index.php?route=extension/payment/wayforpay/response

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


  • 3 месяца спустя...

Вопрос. Почему в шаблоне ochelp_language.tpl в переключателе используется конструкция

<?php echo $language['href_lang']; ?>

которая выводит ссылки для всех языков с префиксом (в.ч. и для языка по умолчанию)

если можно использовать

<?php echo $language['href']; ?>

которая делает тоже самое, только для языка по умолчанию префикс не выводится

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

В 17.09.2020 в 21:45, Vladzimir сказал:

Вопрос. Почему в шаблоне ochelp_language.tpl в переключателе используется конструкция


<?php echo $language['href_lang']; ?>

которая выводит ссылки для всех языков с префиксом (в.ч. и для языка по умолчанию)

если можно использовать


<?php echo $language['href']; ?>

которая делает тоже самое, только для языка по умолчанию префикс не выводится

Это важный момент, т.к данная переменная используется для дата атрибута data-href который в свою очередь обрабатывается в js. Также он может отличаться от переменной $language['href']
Надеюсь это исчерпывающее.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Модуль обновлен в версии 1.3.2
Также проведен рефакторинг кода и изменение в структуре, выпущен релиз 1.3.3 который не имеет обратной совместимости, но будет развиваться и поддерживаться в будущем. Связано с изменением названий файлов.

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

#BUG в версии 1.3.3

При переходе в Локализация магазина вываливает Notice

Undefined index: url 

Оно то и логично, ведь при установке модуль не добавляет новый столбец url в таблицу oc_language.

Но при этом зачем-то хранит эти данные в таблице oc_setting

ocd_multilang ocd_multilang_code

 

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

32 минуты назад, Vladzimir сказал:

#BUG в версии 1.3.3

При переходе в Локализация магазина вываливает Notice


Undefined index: url 

Оно то и логично, ведь при установке модуль не добавляет новый столбец url в таблицу oc_language.

Но при этом зачем-то хранит эти данные в таблице oc_setting


ocd_multilang ocd_multilang_code

 

Переустановите модуль, видимо не отрабатывает install.php который делает запрос в БД на добавление нового поля.
 

"ALTER TABLE `" . DB_PREFIX . "language` ADD `url` VARCHAR(32) NOT NULL AFTER `code`"

В oc_setting хранит, т.к это используется для других целей. Как хранилище данных кодов языка для формирования hreflang тегов.

Баг описанный Вами частая проблема в opencart, не знаю пока почему у некоторых выполняется команда из файла install.php, а у кого нет..
Позже доделаю выполнение этой команды при настройке модуля
 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

13 часов назад, Waha сказал:

Переустановите модуль, видимо не отрабатывает install.php который делает запрос в БД на добавление нового поля.
 


"ALTER TABLE `" . DB_PREFIX . "language` ADD `url` VARCHAR(32) NOT NULL AFTER `code`"

В oc_setting хранит, т.к это используется для других целей. Как хранилище данных кодов языка для формирования hreflang тегов.

Баг описанный Вами частая проблема в opencart, не знаю пока почему у некоторых выполняется команда из файла install.php, а у кого нет..
Позже доделаю выполнение этой команды при настройке модуля
 

Я это уже позже понял, когда стал разбираться и смотреть код модуля.

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

И тогда вопрос. Будет ли реализована мультидоменность?

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

3 часа назад, Vladzimir сказал:

И тогда вопрос. Будет ли реализована мультидоменность?

мультимагазин? Пока таких запросов не было, будут желающие проспонсировать разработку, может что и появится. Пока некогда.

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

Риторический вопрос. В чем сакральность хранения языка и префиккса в куках?

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

6 часов назад, Vladzimir сказал:

Риторический вопрос. В чем сакральность хранения языка и префиккса в куках?

Куки хранятся в браузере каждого юзера, поэтому они хранятся непосредственно на стороне клиента.
А еще их можно задавать через php в отличии от localStorage

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

9 часов назад, Waha сказал:

Куки хранятся в браузере каждого юзера, поэтому они хранятся непосредственно на стороне клиента.
А еще их можно задавать через php в отличии от localStorage

Сакральность хранения языка и префикса. Зачем эти данные вообще хранить в сессии и куках?

Ведь первое правило программирования гласит: не доверяй данным, которые пришли от пользователя.

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

1 час назад, Vladzimir сказал:

Сакральность хранения языка и префикса. Зачем эти данные вообще хранить в сессии и куках?

Ведь первое правило программирования гласит: не доверяй данным, которые пришли от пользователя.

Это здесь не уместно.

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

3 минуты назад, Waha сказал:

Это здесь не уместно.

Надеюсь вы сейчас не серьезно?

Я например понимаю откуда "растут ноги" хранения языка в сессии и куках в опенкарте.

Единственно чего я не понимаю, зачем использовать данный архаизм в вашем модуле.

Честно.

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

Вы через месяц зашли в магазин - а язык то, который был месяц назад
А сесси-то нет, а кука есть?
что не так

 

Кроме того базово языком занимается ядро

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

5 часов назад, Vladzimir сказал:

Надеюсь вы сейчас не серьезно?

Я например понимаю откуда "растут ноги" хранения языка в сессии и куках в опенкарте.

Единственно чего я не понимаю, зачем использовать данный архаизм в вашем модуле.

Честно.

Модуль с открытым кодом, дорабатывайте, присылайте решение лучше, все выложим для народа. Здравая инициатива поддерживается.
На вопросы почему, а можно было так, а надо вот так.. итд отвечать не буду, все решения присылайте, могу оформить репу в git и пуште туда свои реквесты.
Давайте вместе сделаем бесплатное решение, я положил начало!

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

привет, модуль отличный для Украины, так как сайт на двух языках это норма

У меня вопрос, где поправить, что бы не изменялась кнопка языка?

 

Было

651ec9790c4e5ee0c5947e57b45479c3-full.jp

 

Стало

cbbd071dbeb0af3dec0fd72dfc4c0cfe-full.jp

 

2ff3f99db56f7efbcf8a67618447c0d7-full.jp

 

Шаблон Revolution, если это имеет значение

 

Изменено пользователем oleksij
Ссылка на комментарий
Поделиться на других сайтах

Revolution ocStore 2.3.0.2.3

Не претендую на 100% гарантию, (у меня теперь отображается всё как было), подправил для шаблона Revolution, может кому пригодиться

 

catalog.zip

 

 

Изменено пользователем oleksij
Ссылка на комментарий
Поделиться на других сайтах

16 часов назад, Waha сказал:

Модуль с открытым кодом, дорабатывайте, присылайте решение лучше, все выложим для народа. Здравая инициатива поддерживается.
На вопросы почему, а можно было так, а надо вот так.. итд отвечать не буду, все решения присылайте, могу оформить репу в git и пуште туда свои реквесты.
Давайте вместе сделаем бесплатное решение, я положил начало!

Ок. Я в начале так и написал - вопрос риторический.

Давайте репу - с меня реквест.

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

21 час назад, chukcha сказал:

Вы через месяц зашли в магазин - а язык то, который был месяц назад
А сесси-то нет, а кука есть?
что не так

 

Кроме того базово языком занимается ядро

Язык по определению не должен определяться куками и сессией. Только адресной строкой.

Неужели вы так ничего и поняли?

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

Версия ocStore 2.3.0.2.3

Подскажите плиз

Странная штука, как только я что то меняю в магазине, не важно что, Товар например отредактирую

Сразу открываю сайт и вижу

Notice: Undefined property: Proxy::getLanguageUrl in /home/pc/***/***/system/storage/modification/system/engine/action.php on line 51

Обновляю страницу, дальше проблем нет

И так каждый раз, если что то поменяю.

Что это и как с этим бороться ?

 

P.S. Отключаю модификатор, всё нормуль, вкючаю, дальше та же фигня

Изменено пользователем oleksij
Ссылка на комментарий
Поделиться на других сайтах

Как оказалось если оключить этот модификатор, ошибка пропадает

Ну это не совсем нормально, если его отключить, то требует заполнять ещё и английский вариант, хоть он и отключеный

 

Как быть? Как кто подходит к этому вопросу?

 

P.S. Какой-то полтергейс, отключил вышеуказанный мод, один раз заполнил товар для английского, и всё, при добавленни новых, редактировании старых английская вкладка не появляется, до первой очитски системного кеша, но пока кеш не чищу, всё в порядке.

 

Как быть ? Кто то знает как вообще избежать этой ошибки?

Изменено пользователем oleksij
Ссылка на комментарий
Поделиться на других сайтах

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

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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