/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $forum_groups = App\Forum_group::all(); $forums = App\Forum::all(); foreach ($forum_groups as $group) { $arr = []; foreach ($forums as $forum) { if ($group->id == $forum->forum_group_id) { $arr[] = $forum; } } $group->forums = $arr; foreach ($group->forums as $forum) { $forum->post_count = App\Post::join('threads', 'threads.id', '=', 'posts.thread_id')->join('forums', 'threads.forum_id', '=', 'forums.id')->where('threads.forum_id', '=', $forum->id)->count(); $forum->thread_count = App\Thread::where('forum_id', '=', $forum->id)->count(); $forum->latest = App\Post::select('users.username', 'posts.*', 'threads.title')->join('threads', 'threads.id', '=', 'posts.thread_id')->join('forums', 'threads.forum_id', '=', 'forums.id')->join('users', 'users.id', '=', 'posts.user_id')->where('forums.id', '=', $forum->id)->orderBy('posts.created_at', 'desc')->first(); } } $this->data['forum_groups'] = $forum_groups; return view('forum.index', $this->data); }
<?php namespace App; use App\PostProcessor\PostProcessor; use Route; /* * Clearboard Routes */ Route::get('/', function () { return view('clearboard.pages.index', ['forums' => Forum::all()]); }); Route::get('/forum/{fid}-{_}', 'ForumController@getForum'); Route::get('/thread/{tid}-{_}', 'ThreadController@getThread'); // Route for processing markdown to HTML. Route::post('/ajax/markdown', 'MarkdownController@postParse'); Route::post('/ajax/markdown_inline', 'MarkdownController@postInlineParse'); // for parsing inline markdown // Posting routes Route::post('/ajax/new_post', 'PostController@newPost'); Route::post('/ajax/new_thread', 'ThreadController@newThread'); Route::get('/newthread/{forumid}', 'ThreadController@createThread')->middleware('auth'); // Registration Route::get('/register', function () { return view('clearboard.pages.register'); }); Route::post('/ajax/register', 'LoginController@postRegister'); // Authentication routes Route::group(array('prefix' => '/auth'), function () { Route::post('/login', 'LoginController@postLogin'); Route::get('/logout', 'Auth\\AuthController@getLogout');