/** * Remove the specified subcategory from storage. * * @param Request $request * @param int $id * @return \Illuminate\Http\Response */ public function destroy(Request $request, $id = null) { /* * -------------------------------------------------------------------------- * Delete subcategory * -------------------------------------------------------------------------- * Check if selected variable is not empty so user intends to select multiple * rows at once, and prepare the feedback message according the type of * deletion action. */ if (!empty(trim($request->input('selected_sub')))) { $subcategory_ids = explode(',', $request->input('selected_sub')); $delete = Subcategory::whereIn('id', $subcategory_ids)->delete(); $message = Lang::get('alert.subcategory.delete_all', ['count' => $delete]); } else { $subcategory = Subcategory::findOrFail($id); $message = Lang::get('alert.subcategory.delete', ['subcategory' => $subcategory->subcategory]); $delete = $subcategory->delete(); } if ($delete) { return redirect(route('admin.category.index'))->with(['status' => 'warning', 'message' => $message]); } else { return redirect()->back()->withErrors(['error' => Lang::get('alert.error.database')]); } }
/** * Display a administrator dashboard. * * @return \Illuminate\Http\Response */ public function index() { $activities = Activity::with('contributor')->paginate(8); $statistics = ['ARTICLES' => Article::count(), 'MEMBERS' => Contributor::count(), 'CATEGORIES' => Subcategory::count(), 'MESSAGES' => Message::count(), 'FEEDBACK' => Feedback::count(), 'VISITORS' => (int) Visitor::sum('unique')]; $visitors = Visitor::take(10)->get(); return view('admin.dashboard.index', compact('activities', 'statistics', 'visitors')); }
/** * Display a listing of the subcategory. * * @param $category_slug * @param $subcategory_slug * @return \Illuminate\Http\Response */ public function subcategory($category_slug, $subcategory_slug) { $category_name = str_replace('-', ' ', $category_slug); $subcategory_name = str_replace('-', ' ', $subcategory_slug); $category = $this->category->where('category', 'like', $category_name)->firstOrFail(); $subcategory = $category->subcategories()->where('subcategory', 'like', $subcategory_name)->firstOrFail(); $articles = $this->subcategory->subcategoryArticle($subcategory->id); $data = $this->reduceArticleData($articles); return ['request_id' => uniqid(), 'status' => 'success', 'timestamp' => Carbon::now(), 'articles' => $data]; }
/** * Display a listing of the subcategory. * * @param Request $request * @param $category_slug * @param $subcategory_slug * @return \Illuminate\Http\Response */ public function subcategory(Request $request, $category_slug, $subcategory_slug) { /* * -------------------------------------------------------------------------- * Populating article by sub category * -------------------------------------------------------------------------- * Article is retrieved by category then from category select subcategory, * because some categories maybe have similar subcategory name and resulting * same slug, they return view or json depend on 'page' existences. */ $category_name = str_replace('-', ' ', $category_slug); $subcategory_name = str_replace('-', ' ', $subcategory_slug); $category = $this->category->where('category', 'like', $category_name)->firstOrFail(); $subcategory = $category->subcategories()->where('subcategory', 'like', $subcategory_name)->firstOrFail(); $articles = $this->subcategory->subcategoryArticle($subcategory->id); $breadcrumb = ['Archive' => route('article.archive'), $category->category => route('article.category', [$category_slug]), $subcategory->subcategory => route('article.subcategory', [$category_slug, $subcategory_slug])]; $next_ref = '#'; $prev_ref = '#'; if (Input::get('page', false) && $request->ajax()) { return $articles; } else { return view('article.category', compact('breadcrumb', 'next_ref', 'prev_ref')); } }
/** * Show the form for editing the specified article. * * @param $slug * @return \Illuminate\Http\Response */ public function edit($slug) { /* * -------------------------------------------------------------------------- * Show edit form * -------------------------------------------------------------------------- * Populate category into list for build drop down, and try catch old * subcategory input because it depends on category, by default subcategory * should be exist on edit because all article should have it. */ $article = Article::whereSlug($slug)->firstOrFail(); $categories = Category::pluck('category', 'id'); $subcategories = null; if (Input::old('category', '') != '') { $subcategories = Category::findOrFail(Input::old('category'))->subcategories; } else { $subcategories = Subcategory::whereCategoryId($article->subcategory->category->id)->get(); } return view('contributor.article_edit', compact('article', 'categories', 'subcategories')); }
/** * Remove the specified category from storage. * * @param Request $request * @param int $id * @return \Illuminate\Http\Response */ public function destroy(Request $request, $id = null) { /* * -------------------------------------------------------------------------- * Delete category * -------------------------------------------------------------------------- * Check if selected variable is not empty so user intends to select multiple * rows at once, and prepare the feedback message according the type of * deletion action. */ if (!empty(trim($request->input('selected')))) { $delete = DB::transaction(function () use($request) { try { $category_ids = explode(',', $request->input('selected')); $delete_subcategory = 0; if ($request->input('selected_sub') != '') { $subcategory_ids = explode(',', $request->input('selected_sub')); $delete_subcategory = Subcategory::whereIn('id', $subcategory_ids)->delete(); } $delete = Category::whereIn('id', $category_ids)->delete(); return $delete + $delete_subcategory; } catch (\Exception $e) { return redirect()->back()->withErrors(['error' => Lang::get('alert.error.transaction')])->withInput(); } }); $message = Lang::get('alert.category.delete_all', ['count' => $delete]); } else { $category = Category::findOrFail($id); $message = Lang::get('alert.category.delete', ['category' => $category->category]); $delete = $category->delete(); } if ($delete instanceof RedirectResponse) { return $delete; } if ($delete) { return redirect(route('admin.category.index'))->with(['status' => 'warning', 'message' => $message]); } else { return redirect()->back()->withErrors(['error' => Lang::get('alert.error.database')]); } }