Форум русской поддержки Joomla!® CMS
06.12.2016, 22:00:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

2 разных страницы 404 для мультиязычного сайта

 (Прочитано 432 раз)
0 Пользователей и 1 Гость смотрят эту тему.
LemSug
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 6



« : 09.02.2016, 20:19:50 »

Доброго времени суток.

Есть мультиязычный сайт (русская и украинская версии). На сайте используется Кобальт 8.
Настроил кастомную страницу 404 используя гайд из документации Joomla! https://docs.joomla.org/Create_a_Custom_404_Error_Page Работает. Но надо что бы с укр. версии сайта кидало на укр. вариант 404.
id статьи для русской 404 561, а для укр. 562.
Думал раньше, что умею пользоваться поиском, но я банально не смог найти ни одного упоминания о нескольких страницах 404 для одного сайта.
Посоветовали в errors.php к существующему коду для одной страницы 404
Код:
if (($this->_error->getCode()) == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: /index.php?option=com_cobalt&view=record&id=561');
exit;}
добавить такой код:
Код:
<?php
$url =
$_SERVER['HTTP_REFERER'];
$lang = '/uk/';

$pos = strpos($url, $lang);

if($pos){
 $id = 562;
} else{
 $id = 561;
}
if (($this->_error->getCode()) == '404') {
header("HTTP/1.0 404 Not Found");
header("Location: /index.php?option=com_cobalt&view=record&id=$id");
exit;}
?>
К сожалению не работает. С укр. зеркала упорно продолжает перекидывать только на русскую 404 (index.php?option=com_cobalt&view=record&id=561)
Чувствую, что упускаю что-то не сложное, но не могу никак понять что ж не так.
Надеюсь на вашу помощь.
Записан
LemSug
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 6



« Ответ #1 : 11.02.2016, 18:47:44 »

Может хотя бы направление для поиска подкинет кто?
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #2 : 11.02.2016, 19:00:58 »

в плагине Фильтр языка "Автоматическая смена языка" не включена?
Записан
LemSug
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 6



« Ответ #3 : 11.02.2016, 19:14:48 »

Ilhom666, включена.
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Offline Offline

Пол: Мужской
Сообщений: 1453


« Ответ #4 : 11.02.2016, 19:18:31 »

Неверный подход. И в с мануалом я не согласен, ИМХО, вредная статья, в которой описывается не решение, а хак. За вывод ошибок без перенаправлений отвечает файл шаблона error.php. В нём можно указать языковые константы.
Записан
LemSug
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 6



« Ответ #5 : 11.02.2016, 19:43:13 »

Филипп Сорокин, Именно этот файл и редактировал. Каким образом указываются языковые константы, не подскажете?
Записан
effrit
Группа развития
*****

Репутация: +730/-7
Online Online

Пол: Мужской
Сообщений: 6810


effrit.com


« Ответ #6 : 11.02.2016, 19:48:03 »

LemSug, попробуйте для верности вывести через echo содержимое $url
Записан
LemSug
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 6



« Ответ #7 : 11.02.2016, 19:57:47 »

effrit, не выходит. Либо я не там пишу. В php понимаю чуть больше чем ничего, к сожалению.
Записан
effrit
Группа развития
*****

Репутация: +730/-7
Online Online

Пол: Мужской
Сообщений: 6810


effrit.com


« Ответ #8 : 11.02.2016, 20:02:31 »

вот так попробуйте

Код:
$id = 562;
$lang = JFactory::getLanguage();
$lng=$lang->getTag();
if($lng=="ru-RU") $id=561;
Записан
LemSug
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 6



« Ответ #9 : 11.02.2016, 20:09:20 »

effrit, Вы мой спаситель. Работает наконец-то. Весь мозг сломал уже пытаясь настроить. Спасибо огромное.
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Offline Offline

Пол: Мужской
Сообщений: 1453


« Ответ #10 : 11.02.2016, 20:19:21 »

Филипп Сорокин, Именно этот файл и редактировал. Каким образом указываются языковые константы, не подскажете?

Откройте дефолтный файл error.php шаблона Protostar и посмотрите, как там реализован вывод ошибок. Перенаправление — это ужасный хак, никогда так не делайте. Вы даже описание ошибки не сможете вывести, а это всегда очень полезно при мало-мальски грамотном подходе к разработке.
Записан
AndreN
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 30


« Ответ #11 : 27.06.2016, 23:44:01 »

вот так попробуйте

Код:
$id = 562;
$lang = JFactory::getLanguage();
$lng=$lang->getTag();
if($lng=="ru-RU") $id=561;

561 - это id страницы ошибки. А что тогда 562 в первой строчке?
Записан
effrit
Группа развития
*****

Репутация: +730/-7
Online Online

Пол: Мужской
Сообщений: 6810


effrit.com


« Ответ #12 : 28.06.2016, 18:46:04 »

ну в первом посте все написано. вопрос же про мультиязычный сайт с 2-мя разными страницами ошибок.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet