Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Теперь мы команда!

Модуль SEO URL для мультиязычного интернет магазина на Opencart

Автор: в категории Плагины и модули 59 комментариев

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

Nikita_Sp Multilanguage SEO URL module

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

Модуль MultiLanguage SEO URL работает исключительно с SEO_PRO, позволяя создать необходимую структуру для создания мультиязычного интернет магазина. Для наглядности вы можете ознакомиться с ниже расположенными несколькими скриншотами.

В архиве стандартная комплектация моих модулей: скриншоты, файлы README рус. и англ. версии, файлы для загрузки на сервер. При загрузке ни один файл не будет перезаписан.

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

Спасибо за доверие, не забываем подписываться и ставить +1, ведь именно благодаря ВАШИМ “лайкам” я вижу что работа не напрасна, а комментарии дают вдохновение на сотворение новых модулей и модификацию имеющихся!

Также буду рад услышать ваши комментарии относительно данного и иных моих модулей, а также предложения по их улучшению, и идеи для написания новых модулей!

Скачать MultiLanguage SEO URL для Opencart: nikita_sp-multilanguage-seo-url

UPD: По многочисленный просьбам был проведен анализ модуля и обнаружен баг, вызывающий ошибку «Notice: Undefined index: in /home/…/vqmod/vqcache/vq2-catalog_controller_common_seo_pro.php on line 77«. Данное обновление исправляет ошибку. Спасибо пользователям, которые указали на ошибку и предоставили данные для доступа на сервера для определения и анализа ошибки. (Андрей, Fusses, Bassel)

Скачать MultiLanguage SEO URL 1.2 для Opencartnikita_sp-multilanguage-seo-url-1.2

UPD2: Внимание: для того чтобы позволить поисковым роботам просматривать сайт на других языках по ссылке, необходимо открыть файл index.php (Opencart 1.5.x, 2.0.x) в корне вашего сайта, и найти строку (~162 line):

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {

UPD3: для версии Opencart 2.1.x необходимо найти строку:

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages)) {

И перед условием вставить следующий код:

$language_from_url = explode("/", $request->server['REQUEST_URI']);
foreach($language_from_url as $lang){
	if(array_key_exists($lang, $languages)){
		$language_from_url = $lang;
		break;
	}
}
// If nothing was found don't apply
if(is_array($language_from_url)){
	$language_from_url = false;
}

Далее (шаг 2), для версии Opencart 1.5.x и 2.0.x необходимо найти строку (~167 line):

$code = $detect;

и после нее вставить код

}elseif ($language_from_url && array_key_exists($language_from_url, $languages) && $languages[$language_from_url]['status'] ){
	$code = $language_from_url;

Для версии Opencart 2.1.x необходимо найти строку ()

$code = $detect ? $detect : $config->get('config_language');

И перед ней добавить:

if(!$detect && ($language_from_url && array_key_exists($language_from_url, $languages) && $languages[$language_from_url]['status'])){
$detect = $language_from_url;
}

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

По-умолчанию, язык выбирается исходя из нескольких параметров:

  • выбранного языка на сайте (session или cookie)
  • определенного через браузер (в каждом браузере есть информация о языке)

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

Если вам необходимо, чтобы способ определения языка по URL был основным, то в таком случае на шаге 2 найдите первую строку условия:

Opencart 1.5.x, 2.0.x:

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {

Opencart 2.1.x:

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages)) {

И перед ней добавьте:

if ($language_from_url && array_key_exists($language_from_url, $languages)){
	$code = $language_from_url;
}else

Должно получится что-то вроде:

if ($language_from_url && array_key_exists($language_from_url, $languages)){
	$code = $language_from_url;
}elseif (isset($session->data['language']) && array_key_exists($session->data['language'], $languages)) {

При такой конфигурации куки и сессия не будут влиять на выбор языка страницы — только URL, но я не думаю что это правильно с точки зрения разработки сайта. Статью дополнил исключительно из соображений полноты и по просьбам пользователей в комментариях. Если у вас остались еще вопросы — пишите в комментарии. Спасибо.

Вверх!

Меню блога

Категории блога

Облако тегов