Лента - отделяем блоги от пользователей
Доброго времени суток!
Копался с livestreet (AltoCMS) и заметил такой глюк, в ленте не показываются посты из закрытых блогов (напрочь), даже если пользователь на них подписан… Не стал разбираться, что там и как должно работать, глянул запрос:
Я нашел более изящное решение). Вот мой запрос:
Теперь стало получше:
— Показываем топики только из блогов на которые подписан пользователь;
— Показываем топики (из персональных блогов) пользователей, на которых подписан пользователь;
Вот код функции выборки целеком
Очень гармонирует с темой Social, все как вконтактике),- отельно «Группы», отдельно «Пользователи».
Спасибо за внимание, надеюсь кому-нибудь пригодится. Если есть критика\предложения, с радостью, выслушаю…
Копался с livestreet (AltoCMS) и заметил такой глюк, в ленте не показываются посты из закрытых блогов (напрочь), даже если пользователь на них подписан… Не стал разбираться, что там и как должно работать, глянул запрос:
SELECT t.topic_id FROM ".Config::Get('db.table.topic')." as t, ".Config::Get('db.table.blog')." as b WHERE t.topic_publish = 1 AND t.blog_id=b.blog_id AND b.blog_type!='close' { AND t.topic_id < ?d } AND ( 1=0 { OR t.blog_id IN (?a) } { OR t.user_id IN (?a) } ) ORDER BY t.topic_id DESC { LIMIT 0, ?d }
Я нашел более изящное решение). Вот мой запрос:
SELECT t.topic_id FROM ".Config::Get('db.table.topic')." as t, ".Config::Get('db.table.blog')." as b WHERE t.topic_publish = 1 AND t.blog_id=b.blog_id { AND t.topic_id < ?d } AND ( false { OR t.blog_id IN (?a) } { OR (t.user_id IN (?a) AND b.blog_type='personal') } ) ORDER BY t.topic_id DESC { LIMIT 0, ?d }
Теперь стало получше:
— Показываем топики только из блогов на которые подписан пользователь;
— Показываем топики (из персональных блогов) пользователей, на которых подписан пользователь;
Вот код функции выборки целеком
/classes/modules/userfeed/mapper/Userfeed.mapper.class.php
/** * Получить ленту топиков по подписке * * @param array $aUserSubscribes Список подписок пользователя * @param int $iCount Число получаемых записей (если null, из конфига) * @param int $iFromId Получить записи, начиная с указанной * @return array */ public function readFeed($aUserSubscribes, $iCount, $iFromId) { $sql = " SELECT t.topic_id FROM ".Config::Get('db.table.topic')." as t, ".Config::Get('db.table.blog')." as b WHERE t.topic_publish = 1 AND t.blog_id=b.blog_id { AND t.topic_id < ?d } AND ( false { OR t.blog_id IN (?a) } { OR (t.user_id IN (?a) AND b.blog_type='personal') } ) ORDER BY t.topic_id DESC { LIMIT 0, ?d }"; $aTopics=$aTopics=$this->oDb->selectCol($sql, $iFromId ? $iFromId : DBSIMPLE_SKIP, count($aUserSubscribes['blogs']) ? $aUserSubscribes['blogs'] : DBSIMPLE_SKIP, count($aUserSubscribes['users']) ? $aUserSubscribes['users'] : DBSIMPLE_SKIP, $iCount ? $iCount : DBSIMPLE_SKIP ); return $aTopics; }
Очень гармонирует с темой Social, все как вконтактике),- отельно «Группы», отдельно «Пользователи».
Спасибо за внимание, надеюсь кому-нибудь пригодится. Если есть критика\предложения, с радостью, выслушаю…
Использование современных строительных материалов позволяет в процессе эксплуатации здания экономить средства. Современные приборы мониторинга утечки тепла, тепловизоры, показывают, что потери энергии в таком случае минимальны.
6 комментариев
Т.к. в активность не выводится инфо о действиях в закрытых блогах
— публикация топика
— комментирование
Логично было бы показывать эту активность только тем, кто состоит в соответствующем закрытом блоге.
Самое странное, что отображается только оценивание топика и коммента, причем всем…