|
|
08.03.2015, 22:39
|
|
usps
Михаил Кузин
Зарегистрирован: 2014-10-28
Сообщений: 11
|
Здравствуйте!
Есть раздел, в котором присутствует инфоблок с новостями. Когда ходишь по новостям
внутри данного раздела, адресная строка имеет вид /раздел/год/месяц/дата/. Но когда заходишь в новостной раздел с других (не новостных) разделов сайта, адрес остается как /раздел/, хотя при этом отображаются новости за определенный год/месяц/день/.
Если кто знает, как изменить адрес при входе в новостной раздел из других разделов сайта с /раздел/ на /раздел/год/месяц/дата/, откликнитесь пожалуйста. Слышал что с этим может помочь модуль "маршрутизация", но на практике даже если его включить и настроить, задачу решить не удается.
|
|
|
09.03.2015, 00:16
|
|
usps
Михаил Кузин
Зарегистрирован: 2014-10-28
Сообщений: 11
|
Пока мне удалось решить задачу добавлением в системные настройки компонента раздела вот такой конструкции:
<?
$ai = date(Y).'/'.date(m).'/'.date(d);
?>
<?= opt($_SERVER['REQUEST_URI'] == '/раздел/',"
<meta http-equiv='refresh' content='0; url=http://адрес_сайта/раздел/$ai/'>
") ?>
Кто-нибудь знает как решить задачу чтобы страница при входе в раздел не перезагружалась? Т.е. фактически чтобы маршрутизация отрабатывала еще до загрузки страницы.
|
|
|
09.03.2015, 15:37
|
|
Nexwich
Панасин Александр
Зарегистрирован: 2011-04-05
Сообщений: 1037
|
Код:header('Location: /news...'); // Переадрисация должна стоять на верху
exit; // Чтобы далее не чего не обрабатывать
У вас проблема вероятно где то глубже. Возможно в сессию записывается и потому верно отображает хотя ссылка не верная. Может в htaccess что то прописано или в настройках макета.
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|
|
|
09.03.2015, 16:38
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Причина проста: просто у вас там, где формируются ссылки на новости, вместо $fullDateLink написано $fullLink. Это и приводит к тому, что ссылки формируются в "обычном" виде вместо ссылок с датами.
|
|
|
09.03.2015, 23:55
|
|
usps
Михаил Кузин
Зарегистрирован: 2014-10-28
Сообщений: 11
|
Спасибо! Но конструкция
<?
$ai = date(Y).'/'.date(m).'/'.date(d);
?>
<?= opt($_SERVER['REQUEST_URI'] == '/раздел/',"
<?php header('Location: http://сайт/раздел/$ai/');
exit; ?>
") ?>
не работает. Причем по отдельности opt и сама переадресация по header работают, а вот вместе не хотят. Есть мысли что может быть не так?
|
|
|
10.03.2015, 13:44
|
|
Nexwich
Панасин Александр
Зарегистрирован: 2011-04-05
Сообщений: 1037
|
Тут множественные ошибки синтаксиса. Будьте внимательнее. За вас его не кто форматировать не будет.
Код:<?
$ai = date(Y).'/'.date(m).'/'.date(d);
?>
<?= opt($_SERVER['REQUEST_URI'] == '/раздел/',"
<?php header('Location: http://сайт/раздел/$ai/');
exit; ?>
") ?>
Как они сюда попали? Да еще и в функцию. Я гляжу вы далеко пойдете. Прошу прощения но такие ошибки стыдно допускать. Как вообще можно открыть PHP теги в функции PHP?
Почему $_SERVER['REQUEST_URI'] вы не поместили в кавычки? По той же самой причине функции не заключаются в кавычки внутри другой функции.
Решение
Код:<?
$ai = date(Y).'/'.date(m).'/'.date(d);
if($_SERVER['REQUEST_URI'] == '/раздел/' OR $current_sub[Subdivision_ID] == 234){
header('Location: /раздел/$ai/'); // Указывать внутри сайта абсолютную ссылку не нужно
exit;
}
?>
Я бы изменил условие с ($_SERVER['REQUEST_URI'] == '/раздел/') на ($current_sub[Subdivision_ID] == 234), где 234 - номер раздела новостей.
Ищите проблему, а не ставьте костыли.
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|
|
|
10.03.2015, 17:30
|
|
Гость
Гость
|
Александр, благодарю за указание на ошибки, все заработало!
Только в Вашем решении вместо header('Location: /раздел/$ai/'); нужно указывать header('Location: /раздел/'.$ai.'/'); иначе переменная при перенаправлении воспринимается дословно. А current_sub тут использовать не удается, т.к. все новости находятся в одном этом разделе и при такой конструкции начинается циклическая переадресация.
|