Как сделать отображение только тех коллективных блогов, в которых есть топики?

Решил создать блог о своих путешествиях, а потом решил что стоит дать возможность всем пользователям писать в этом блоге.

Список стран реализовал через коллективные блоги (т.е. коллективные разделы — это страны)
Повводил страны и получил огромный список пустых коллективных разделов. Может быть подскажет кто-то, как сделать так, чтобы коллективный блог фигурировал в движке (т.е. в ТОП-блогов) только после того, как там будет размещен хотя бы 1 топик?

Мне кажется, что это решается 1 строкой кода (прописать условие при выводе списка блогов), но, к сожелению, незнаю где это сделать.

P.S.: при создании топика должен вываливаться полный список коллективных блогов, реализованный хаком автоматического подключения к блогу по рейтингу.

Заранее спасибо

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

avatar
актуально для версии 0,4
если есть желающие реализовать ЭТО, цену и срок плз в личку
avatar
В 0.4 версии самое быстрое как можно сделать, это в файле Blog.mapper.class.php переписать функцию примерно так
public function GetBlogsRating(&$iCount,$iCurrPage,$iPerPage) {		
		$sql = "SELECT 
					b.blog_id													
				FROM 
				".Config::Get('db.table.topic')." as t	
				left join ".Config::Get('db.table.blog')." as b ON (t.blog_id = b.blog_id)									 
				WHERE 									
					b.blog_type<>'personal'									
				GROUP BY b.blog_id
				ORDER by b.blog_rating desc
				LIMIT ?d, ?d 	";		
		$aReturn=array();
		if ($aRows=$this->oDb->selectPage($iCount,$sql,($iCurrPage-1)*$iPerPage, $iPerPage)) {
			foreach ($aRows as $aRow) {
				$aReturn[]=$aRow['blog_id'];
			}
		}
		return $aReturn;
	}

конечно это не самый быстрый для системы вариант, но работать будет =)
пс: Писал здесь могут быть ошибки.
avatar
заменил функцию, ничего не изменилось на сайте…
спасибо за попытку, но не помогло (
avatar
А у вас кэш включен? =)
avatar
Спасиб за подсказку, именно из-за кеша ничего и не изменилось.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.