示例#1
0
 public function getCategoryArticles(Request $request, $category_id)
 {
     $user_id = \Auth::user()->id;
     $category = \p4\Category::where("id", $category_id)->first();
     # Submit a SQL statement for efficiency which retrieves the sorted list of articles for the logged in user
     $sql = "SELECT \n                a.id,\n                a.feed_id,\n                u.feed_name,\n                a.article_guid,\n                a.title,\n                a.article_text,\n                a.author,\n                a.url,\n                a.publish_date,\n                a.created_at,\n                a.updated_at\n                FROM \n                articles a INNER JOIN feeds f ON f.id = a.feed_id INNER JOIN feed_user u ON u.feed_id = f.id\n                WHERE\n                u.category_id = " . $category_id . " AND\n                a.id NOT IN (select article_id FROM article_user where user_id = " . $user_id . " and marked_as_read = 1)\n                ORDER BY \n                u.weight * (12/(Hour(TimeDiff(a.publish_date,NOW())))) DESC";
     $items = \DB::select(\DB::raw($sql));
     $article_count = count($items);
     # Pagination needs to be done manually with raw SQL queries
     $page = $request->input('page', 1);
     $articles = $this->setupPagination($items, $page, env('PAGE_SIZE', 50));
     $articles->setPath('/Category/' . $category_id);
     return view('articles', ['title' => "All articles for " . $category->name . " (" . $article_count . " articles)", 'articles' => $articles, 'user_id' => $user_id]);
 }
示例#2
0
文件: User.php 项目: ccushing/p4
 public static function setSessionFeeds($user_id)
 {
     # Set Feeds for this user in the Session Variable
     $feeds = \p4\UserFeed::where('user_id', '=', $user_id)->orderby('weight', 'DESC')->get();
     $tags = \p4\Tag::where('user_id', '=', $user_id)->orderby('weight', 'DESC')->get();
     $categories = \p4\Category::where('user_id', '=', $user_id)->orderby('weight', 'DESC')->get();
     foreach ($feeds as $f) {
         $f->stats = $f->get_stats();
     }
     foreach ($tags as $t) {
         $t->stats = $t->get_stats();
     }
     \Session::forget('myfeeds');
     \Session::forget('mytags');
     \Session::forget('categories');
     \Session::push('myfeeds', $feeds);
     \Session::push('mytags', $tags);
     \Session::push('categories', $categories);
 }
示例#3
0
 public function getRemoveCategory(Request $request, $category_id)
 {
     $user_id = \Auth::user()->id;
     echo $category_id;
     \p4\Category::where('id', '=', $category_id)->where('user_id', '=', $user_id)->delete();
     \p4\User::setSessionFeeds($user_id);
     return \Redirect::to('/ManageCategories');
 }