orderBy('lft')->firstOrFail(); $materials = Material::where('category_id',$cat->id)->paginate(6); return view('main')->with([ 'cat' => $cat, 'materials' => $materials, 'sort' => 'all' ]); } //** ------ WEB CONTROLLERS ------- **// public function indexWeb(){ $sliders = Slider::where('home', 1)->get(); $news = News::take(4)->orderBy('created_at', 'DESC')->get(); $shows = Show::where('home', 1)->orderBy('created_at', 'DESC') ->take(11) ->get(); $showTop2 = $shows->take(2); $shows->shift(); $shows->shift(); $showTop3 = $shows->take(3); $shows->shift(); $shows->shift(); $shows->shift(); $adverts = Advertisement::distinct('adv_type')->get(); $advertTop = $adverts->where('adv_type', 'top')->first(); $advertMiddle = $adverts->where('adv_type', 'middle')->first(); $advertBottom = $adverts->where('adv_type', 'bottom')->first(); return view('web.mainWeb')->with([ 'sliders' => $sliders, 'news' => $news, 'showTop3' => $showTop3, 'bestShows' => $shows, 'advertTop' => $advertTop, 'advertMiddle' => $advertMiddle, 'advertBottom' => $advertBottom, 'showTop2' => $showTop2, 'title' => 'Turkmen Tv', 'keywords' => 'Turkmen Tv', 'meta_description' => 'Turkmen Tv', ]); } public function newsList(){ $news = News::orderBy('created_at', 'DESC')->paginate(7); $main = $news->shift(); return view('web.newsList')->with([ 'news' => $news, 'main' => $main, 'title' => 'Habarlar', 'keywords' => 'Turkmen Tv Habarlar', 'meta_description' => 'Turkmen Tv Habarlar', ]); } public function getNews($newsId){ $news = News::findOrFail($newsId); $newsMenu = News::orderBy('created_at', 'DESC')->take(6)->get(); return view('web.getNews')->with([ 'news' => $news, 'newsMenu' => $newsMenu, 'title' => $news->name, 'keywords' => $news->name, 'meta_description' => $news->name, ]); } public function menuLinkWeb($menu_id){ $page = Page::where('menu_id', $menu_id)->firstOrFail(); $pageSliders = $page->sliders; $shows = $page->shows; $advs = $page->pageads; $programmes = $page->programmes; return view('web.pageWeb')->with([ 'page' => $page, 'pageSliders' => $pageSliders, 'shows' => $shows, 'advs' => $advs, 'programmes' => $programmes, 'title' => $page->titile, 'keywords' => $page->keywords, 'meta_description' => $page->meta_description, ]); } public function category($cat_id){ //dd(\request()); $request = \request(); $sort = $request['sort']; $sort = $sort ?? 'all'; //dd($request['sort']); //todo restrict sort to be only {'all','rate','date'} $cat = Category:: findOrFail($cat_id); $materials = Material::where('category_id',$cat_id); switch ($sort){ case 'rate': $materials->orderBy('like','DESC'); break; case 'date': $materials->orderBy('created_at','DESC'); break; } $materials = $materials->paginate(6); //dd($materials); return view('main')->with([ 'cat' => $cat, 'materials' => $materials, 'sort' => $sort ]); } public function download($material_id){ //todo check limits $material = Material::findOrFail($material_id); $order = Order::where('user_id',auth()->id()) ->where('material_id',$material_id) // ->where('registered',1)//todo payed ->first(); if(!empty($order)){ if(!($order->download_count !=0 && $order->downloaded == $order->download_count) ||(!empty($order->last_date) && !(Carbon::today()->lte($order->last_date)))) { $file = public_path($material->content_url); //dd(public_path($material->trailer_url)); return response()->download($file, Str::slug($material->title)); } } return redirect()->back(); } public function material($material_id){ $material = Material::findOrFail($material_id); $watch_list_cookie = Cookie::get('watchlist'); $material->view ++; $material->save(); // dd($material->details); if(!$watch_list_cookie){ $watch_list = [1 => $material_id]; Cookie::queue('watchlist', json_encode($watch_list), 450000); } else{ $watch_list = json_decode($watch_list_cookie,true); //dd($watch_list); if(!array_search($material_id,$watch_list)){ $watch_list[]=$material_id; Cookie::queue('watchlist', json_encode($watch_list), 450000); } } //todo update view count check cookie // Cookie::queue('watchlist', json_encode([$material_id]), 450000); // Cookie::queue('wishlist', $material_id, 450000); // cookie()->forever('watchlist',$material_id,450000); // dd(Cookie::get('watchlist')); $like_list_cookie = Cookie::get('likelist'); $order = Order::where('user_id',auth()->id()) ->where('material_id',$material_id) // ->where('registered',1)//todo payed ->first(); if(!empty($order)){ if($order->download_count !=0 && $order->downloaded == $order->download_count){ $order = null; }elseif (!empty($order->last_date) && !(Carbon::today()->lte($order->last_date))){ $order = null; } } $liked = !empty($like_list_cookie) && array_search($material_id, json_decode($like_list_cookie,true)); return view('material',compact('material')) ->with('liked',$liked) ->with('order',$order) ->with('cat',$material->category); } public function like($material_id){ //todo ajax post $material = Material::findOrFail($material_id); $like_list_cookie = Cookie::get('likelist'); if(!$like_list_cookie){ $like_list = [1 => $material_id]; Cookie::queue('likelist', json_encode($like_list), 450000); $material->like ++; $material->save(); } else{ $like_list = json_decode($like_list_cookie,true); //dd($watch_list); if(!array_search($material_id,$like_list)){ $like_list[]=$material_id; $material->like ++; $material->save(); Cookie::queue('likelist', json_encode($like_list), 450000); } } // return view('material',compact('material'))->with('cat',$material->category); return $material->like; } public function watch_list(){ $watch_list = json_decode(Cookie::get('watchlist'),true); $materials = null; if($watch_list){ $material_ids = array_values($watch_list); $materials = Material::whereIn('id',$material_ids)->paginate(6); } return view('watched',compact('materials')); } public function like_list(){ $like_list = json_decode(Cookie::get('likelist'),true); $request = \request(); $sort = $request['sort']; $sort = $sort ?? 'high'; $materials = null; if($like_list){ $material_ids = array_values($like_list); $materials = Material::whereIn('id',$material_ids); switch ($sort){ case 'high': $materials->orderBy('like','DESC'); break; case 'low': $materials->orderBy('like','ASC'); break; } $materials = $materials->paginate(6); } return view('liked',compact('materials'))->with('sort',$sort); } public function bought_list(){ $orders = Order::with('material') ->where('user_id',auth()->id()) // ->where('payed',0) ->paginate(6); // dd($orders);/ //todo change payed true return view('bought',compact('orders')); } public function profile(){ // dd(route()->getName()); return view('profile')->with('user',auth()->user()); } public function profileUpdate(ProfileRequest $request){ $user = auth()->user(); $user->name = $request['name']; $user->phone = $request['phone']; $user->email = $request['email']; if ( ! $request->input('password') == '') { $user->password = bcrypt($request->input('password')); } $user->save(); return redirect()->back(); } public function search(){ $request = \request(); $key = $request['key']; if(empty($key)) return redirect()->back(); $sort = $request['sort']; $sort = $sort ?? 'high'; $materials = Material::where('title','like',"%{$key}%"); switch ($sort){ case 'new': $materials->orderBy('updated_at','DESC'); break; case 'old': $materials->orderBy('updated_at','ASC'); break; case 'like': $materials->orderBy('like','DESC'); break; case 'view': $materials->orderBy('view','DESC'); break; } $materials = $materials->paginate(6); return view('search') ->with('key',$key) ->with('materials',$materials) ->with('sort',$sort); } }