/**
  * 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'));
     }
 }
예제 #5
0
 /**
  * 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')]);
     }
 }