После переноса сайта с LiveStreet CMS на CoGear при помощи конвертера обнаружилась общая проблема (т.е. она будет у всех кто будет переносить данные таким же способом) "При попытке открыть список записей пользователя (блог пользователя) вываливается ошибка 404 Страница не найдена" Данная проблема обусловлена разной структурой движков.
Происходит это из-за того что в LiveStreet пользовательские блоги равны блогам коллективым (в таблице БД также делается запись). У нас же блоги — это просто список всех постов пользователя.
Решаем данную проблему смешиванием блогов пользователей и сообщества у нас.
И так, поехали… В /gears/blogs/index.php заменить метод index на следующий:
function index($url_name = FALSE, $page = 0){
if($user = $this->user->info($url_name)){
if($url_name && !is_numeric($url_name) && $user = $this->user->info($url_name)){
$this->user->head($user,'blog');
title($user->name);
if(!empty($url_name) && $user->id == $this->user->get('id')){
$this->nodes->published = FALSE;
}
$this->db->where(array('aid'=>$user->id));
}
else {
$page = $url_name;
}
$this->nodes->get($page);
}
elseif($url_name == 'all') {
$this->builder->h1(t('!gears community').(acl('community create') ? ' '.$this->builder->a($this->builder->img('/gears/global/img/icon/edit.png',FALSE,FALSE,t('edit create')),l('/community/create/')) : FALSE),TRUE);
$this->community->query();
$config['per_page'] = $this->gears->community->per_page_list;
$page = $this->pager((int)$action, $this->db->count_all_results('community',FALSE),$config);
$this->db->limit($page['limit'],$page['start']);
$all = $this->db->get('community')->result_array();
if(!$all) info();
else {
foreach($all as &$community){
if($community['icon']) {
$community['icon'] = make_icons($community['icon']);
$community['icon'] = $community['icon']['24x24'];
}
$community['class'] = 'avatar';
}
$header = array(
'icon'=>array('','image','5%','class'=>'avatar'),
'name'=>array(fc_t('community'),'link','30%',FALSE,'left','before'=>'<h1>','after'=>'</h1>'),
'aname'=>array(fc_t('admin'),'link','10%','before'=>'<span class="user">','after'=>'</span>'),
'users_num'=>array(fc_t('members'),'text','20%','before'=>'<h1>','after'=>'</h1>'),
'nodes_num'=>array(fc_t('!gears nodes'),'text','20%','before'=>'<h1>','after'=>'</h1>')
);
$info = array(
'link'=>array('/community','/user'),
'link_add'=>array('url_name','aurl_name'),
'noname'=>'true',
);
$this->form->grid('communities',$header,$all,$info)->compile();
}
}
elseif($url_name && !is_numeric($url_name)){
$this->community->show($url_name,$action,$subaction);
}
else {
$this->db->where('nodes.cid != 0');
$this->nodes->get((int)$url_name,FALSE,TRUE);
}
}
// ------------------------------------------------------------------------
}
Далее следует убрать первое правило рерайта в /gears/ls2cg/ls2cg.info т.е. удалить вот эту строку:
routes[] = "blogs/(.+) = community/$1"
Вот и все. Теперь все прекрасно работает.


Убрал часть под кат.