Beispiel #1
0
 /**
  * Список тем
  */
 public function forum($id)
 {
     if (!($forum = Forum::find_by_id($id))) {
         App::abort('default', 'Данного раздела не существует!');
     }
     $total = Topic::count(['conditions' => ['forum_id = ?', $id]]);
     $page = App::paginate(Setting::get('topics_per_page'), $total);
     $topics = Topic::all(['conditions' => ['forum_id = ?', $id], 'offset' => $page['offset'], 'limit' => $page['limit'], 'order' => 'updated_at desc', 'include' => ['forum', 'post_count', 'post_last' => ['user']]]);
     /*		$topics = Topic::all([
     			'select' => 't.*, p.user_id post_user, p.created_at post_created',
     			'from' => 'topics as t',
     			'conditions' => ['t.forum_id = ?', $id],
     			'joins' => ['LEFT JOIN (
     					SELECT topic_id, MAX(created_at) AS max FROM posts
     					GROUP BY topic_id
     				) AS latest ON t.id = latest.topic_id
     				LEFT JOIN posts p ON p.created_at = latest.max
     				AND p.topic_id = latest.topic_id'],
     			'offset' => $page['offset'],
     			'limit' => $page['limit'],
     			'order' => 't.updated_at desc',
     			'include' => [
     				'forum',
     				'post_count',
     			],*/
     $crumbs = ['/forum' => 'Форум', $forum->title];
     if ($forum->parent_id) {
         $crumbs = ['/forum' => 'Форум', '/forum/' . $forum->parent_id => $forum->parent()->title, $forum->title];
     }
     App::view('forums.forum', compact('forum', 'topics', 'page', 'crumbs'));
 }
Beispiel #2
0
/**
 *  Количество сообщений в форума
 * @return integer сообщений в форуме
 */
function forumCount()
{
    return Topic::count() . '/' . Post::count();
}
Beispiel #3
0
 /**
  * A request to unsubscribe from a topic has been made.
  *
  * @param \Ratchet\ConnectionInterface $conn
  * @param string|Topic                 $topic The topic to unsubscribe from
  */
 public function onUnSubscribe(ConnectionInterface $conn, $topic)
 {
     $this->console->info("onUnSubscribe: topic: {$topic} {$topic->count()}");
 }