0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 638 Просмотров
*

Gerostrat

  • Захожу иногда
  • 363
  • 2 / 0
  • Свидетель чайной ложки
Сайт на двух языках, но постепенно добавляется третий.
Мультиязычность реализована стандартными методами. И тут есть такая себе проблема.

На каждой странице есть переключение языка на другой. Есть если связанный материал – ссылка ведёт на на него, если связанного материала нет, то ссылка ведёт на категорию, в которой связанный материал мог бы быть (если точнее – на связанную категорию или пункт меню).

А это так себе для SEO. Страниц на сайте 3000 на русском, 3000 на украинском и 50 на английском. И эти 5950 рус/укр страниц ссылаются на разделы, а не на статьи (в виду их отсутствия) агл версии. Этого не нужно.

Где можно покопаться и исправить это? Чтобы если связанного материала у данной статьи на конкретном языке нет, то и ссылки в переключателе не него не показывалось?

Спасибо!
*

Gerostrat

  • Захожу иногда
  • 363
  • 2 / 0
  • Свидетель чайной ложки
Вот я полагаю, что это где-то в коде этого файле решается, но где? :)
Код
/modules/mod_languages/helper.php

Код
// Do not display language without frontend UI
if (!array_key_exists($language->lang_code, $sitelangs))
{
unset($languages[$i]);
}
// Do not display language without specific home menu
elseif (!isset($homes[$language->lang_code]))
{
unset($languages[$i]);
}
// Do not display language without authorized access level
elseif (isset($language->access) && $language->access && !in_array($language->access, $levels))
{
unset($languages[$i]);
}
Вот тут пишут, что не показывать языки, если бла-бла-бла.
Может тут добавить условие, если нет прямой ассоциации на тот язык, то не показывать никакой ссылки.
*

Gerostrat

  • Захожу иногда
  • 363
  • 2 / 0
  • Свидетель чайной ложки
Итак, не зная php логическим путём добавил вот такую вот строку, которая убрала ссылки на язык, если у материала на этот язык нет ассоциированного документа.
Код
elseif ( ((!isset($cassociations[$language->lang_code]) && !$menu->getItem($associations[$language->lang_code]))) )
{
unset($languages[$i]);
}
Есть проблема, связанная с тем, что пропали ссылки из других компонентов, например, при ассоциации пунктов меню карты сайта на разных языках.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Убрать из URL GET-параметр и сделать редирект на главную

Автор zeus07

Ответов: 8
Просмотров: 184
Последний ответ 19.11.2021, 13:10:41
от zeus07
Убрать?view=category из url

Автор Vlad1

Ответов: 7
Просмотров: 852
Последний ответ 08.09.2020, 06:50:07
от kostikcom
Как убрать https:/site.ru/kstegoriy/material?start=208?

Автор Dolphin4ik_1

Ответов: 0
Просмотров: 451
Последний ответ 22.11.2018, 21:52:49
от Dolphin4ik_1
Убрать из адреса.html

Автор Андрей Нестеров

Ответов: 3
Просмотров: 736
Последний ответ 30.03.2018, 11:41:57
от Apoca1ypto
Внешнюю ссылку на всех страницах, не забирая вес страниц?

Автор User82

Ответов: 3
Просмотров: 749
Последний ответ 25.04.2017, 09:55:53
от Missile