Переименовать blog в community

Господа, у меня такой вопрос — я переименовал «blog» в «community» сделал все по инструкции, перенаправление и новый адрес в роутере, тепрь беда — он мои личные записи выдает как ресурс/community/10.html как с этим бороться, (в процессе написания добавил правило о сокращенном URL)

Вот что я делал в конфиге
/**
 * Настройки роутинга
 */
$config['router']['rewrite'] = array( 'blog' => 'community');
// Правила реврайта для REQUEST_URI
$config['router']['uri'] = array(
	// короткий вызов топиков из личных блогов
	'~^(\d+)\.html~i' => "blog/\\1.html",
	'~^(\d+)\.html~i' => "community/\\1.html",
);
// Распределение action
  . . . . строки пропущены . . . . 
$config['router']['page']['blog']          = 'ActionBlog';
$config['router']['page']['community']     = 'ActionBlog';


Может кто знает, помогите плз,.

АЛЬЗО! — Если убрать $config['router']['page']['blog'] из конфига перестают работать фишки вступить в блог, выйти из блога, рейтинг блога перестает работать — тупо не срабатывает когда тыкаешь,. Тема Social 2.0.4 (вчера купил — поставил)

UPD — Лучше сделать так

ort предложил гениально, как всегда)
public function getUrl() {
    if ($this->getBlog()->getType()=='personal') {
        //return Router::GetPath('blog').$this->getId().'.html';
        return '/'.$this->getId().'.html';

9 комментариев

avatar
По идеи
$config['router']['page']['community']     = 'ActionBlog';
и
'~^(\d+)\.html~i' => "blog/\\1.html",
лишне

он мои личные записи выдает как ресурс/community/10.html
это стандартное нормальное поведение. Можно поправить в сущности топика метод getUrl(), чтобы он для личных топиков выдавал короткий URL
  • ort
  • 0
avatar
Спасибо, ort ! Хорошая идея, я уже поковырял, я в шаблоне прописал
/{$oTopic->getId()}.html
там же стоит ведь сокращалка урл, т.е. теперь все топики будет /номер.html
avatar
Сейчас выяснил, что такой метод передергивает страницу если она из коллективного блога( буду копать getUrl()
avatar
В итоге вы добавили к стандатру только
avatar
$config['router']['rewrite'] = array( 'blog' => 'community');
и
if ($this->getBlog()->getType()=='personal') {
        //return Router::GetPath('blog').$this->getId().'.html';
        return '/'.$this->getId().'.html';
?
avatar
Вот так сделал
public function getUrl() {
    if ($this->getBlog()->getType()=='personal') {
        //return Router::GetPath('blog').$this->getId().'.html';
        return '/'.$this->getId().'.html';

и в конфиге
$config['router']['rewrite'] = array(
	'blog' => 'community',
);
// Правила реврайта для REQUEST_URI
$config['router']['uri'] = array(
	// короткий вызов топиков из личных блогов
	'~^(\d+)\.html~i' => "blog/\\1.html",
	'~^(\d+)\.html~i' => "community/\\1.html",
);

почему-то без вот этого
'~^(\d+)\.html~i' => "community/\\1.html",
не работает(
avatar
спасибо
avatar
return '/'.$this->getId().'.html';
неверно, нужно так:
return Confid::Get('path.root.web').'/'.$this->getId().'.html';
  • ort
  • 0
avatar
Да, так правильнее будет
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.