Страница 1 из 1

Как вывести страницу новостей вместо главной страницы.

Добавлено: 12.09.2019, 18:43
IvanIvanov
Подскажите, как вывести вместо главной страницы, страницу новостей.

# Блог
RewriteRule ^([a-z]{2}/)?blog/([^/]+)/?$ index.php?module=BlogView&url=$2&lang_label=$1&type_post=blog [L,QSA]
RewriteRule ^([a-z]{2}/)?blog/?$ index.php?module=BlogView&lang_label=$1&type_post=blog [L,QSA]
# Новости
RewriteRule ^([a-z]{2}/)?news/([^/]+)/?$ index.php?module=BlogView&url=$2&lang_label=$1&type_post=news [L,QSA]
##RewriteRule ^([a-z]{2}/)?news/?$ index.php?module=BlogView&lang_label=$1&type_post=news [L,QSA] (закомментировал)

и вместо главной
##RewriteRule ^([a-z]{2}/?)?/?$ index.php?module=MainView&lang_label=$1&page_url=$2 [L,QSA] (закомментировал)
указал
RewriteRule ^([a-z]{2}/?)?/?$ index.php?module=BlogView&lang_label=$1&type_post=news [L,QSA]

Но почему-то главная отображается виде страницы 404

Добавлено: 13.09.2019, 07:02
korshunov
Пробуйте в view/BlogView.php заменить фрагмент
if (!in_array($this->type_post, array('blog', 'news'))) {
return false;
}
на
if (!in_array($this->type_post, array('blog', 'news'))) {
$this->type_post='news';
}

Вообще, по поводу этого фрагмента надо сказать, что сделано довольно странно и нерационально (речь про 2.3.4) - в самом классе, который предназначен для вывода, делается еще зачем-то проверка URL. Это задача должна решаться по-хорошему ВНЕ этого класса, до его вызова. А текущее состояние - выглядит весьма криво...

Например, если захочет кто-то поменять в адресе news на articles, то потребуется лишнее редактирование. Или захочет добавить третий тип. Или как в текущей теме - лишняя забота...

Понятно, что нужна лишняя проверка, что определять тип - news или blog, но в других-то подобных ситуациях это делается иначе - созданием параметра в htaccess. А текущее положение - явно костыльная самодеятельность разработчиков...

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

Добавлено: 13.09.2019, 07:08
IvanIvanov
Спасибо тебе, korshunov. Проверил, всё заработало!