роутинг новостей
Как сделать
Есть блог 'news'
Открывается он как ***.ru/blog/news
Создал новый экшен — который отображает Блог по ссылке ***.ru/news
Но внутренние сслыки Переходят на ***.ru/blog/news/1.html
Оно исходит из {$oTopic->getUrl()}. Как сделать ***.ru/news/1.html?
И как пользоваться внутренними функциями работы с контентом. Нужно получить массив последних 5-и топиков. Сейчас пока делал своими запросами… но явно же есть уже написаные функции.
п.с. нижняя панель не учитывает запросы которые я сам писал.
Есть блог 'news'
Открывается он как ***.ru/blog/news
Создал новый экшен — который отображает Блог по ссылке ***.ru/news
Но внутренние сслыки Переходят на ***.ru/blog/news/1.html
Оно исходит из {$oTopic->getUrl()}. Как сделать ***.ru/news/1.html?
И как пользоваться внутренними функциями работы с контентом. Нужно получить массив последних 5-и топиков. Сейчас пока делал своими запросами… но явно же есть уже написаные функции.
п.с. нижняя панель не учитывает запросы которые я сам писал.
11 комментариев
public function getUrl() {
if ($this->getBlogType()=='personal') {
return DIR_WEB_ROOT.'/blog/'.$this->getId().'.html';
} else {
return DIR_WEB_ROOT.'/blog/'.$this->getBlogUrl().'/'.$this->getId().'.html';
}
}
В вашем случае нужно удалить .'/blog/'. и оставить только.
было бы очень хдоровр реализовать это, чтобы иметь короткие и более красивые адреса блогов!
Это же даст нам ссылку на ***.ru/news/1.html
Но ссылка то на самом деле не действительна в системе.
Кто отвечает за реврайт?
В ActionNews.class.php стоит немного измененный ActionBlog.class.php
Возможно, в нём как раз нужно было определить эти внутренние ссылки. (хотя я очень сомневаюсь, что это здесь хранится)
Тобишь, сейчас в браузере работает ***.ru/blog/news/1.html, но не работает ***.ru/news/1.html (функция getUrl позволила только поменять шаблонную ссылку)
А что пишет? Может это поможет решить проблему?
Думается мне, что вы слишком мало действий произвели :) Там ведь надо в шаблонах actions тоже создавать ActionNews со своим index.tpl, потом надо создавать новые функции для вывода новых, плохих и хороших новостей.
Всё правильно, забыл только написать. Создал в шаблонах я тоже аналог блога.
Там в индексе указал на созданный {include file='topic_list_news_blog.tpl'}
Уже в котором я и использую {$oTopic->getUrl1()}
А на *.ru/news/1.html пишет «Ошибка: 404 К сожалению, такой страницы не существует и т.д...»
* Если номер топика правильный но УРЛ блога косяный то корректируем его и перенаправляем на нужный адрес
Возможно это то, а если нет, то бросай ты эту затею :)
Строчку тоже изменял.
Тут что то на уровне .htaccess но в этой версии я не знаю чем он управляется.
В общем — сейчас пока откажусь от этой затеи. Но в ближайшее время обязательно её сделаю.
Если есть идеи — буду благодарен. Попробую изучить ещё класс PAGE.
Дело в этом:
$this->AddEventPreg('/^[\w\-\_]+$/i','/^(\d+)\.html$/i','EventShowTopic');
Тут где то было описано как это работает.