کد PHP:
<?php namespace App\Http\Controllers; use App\Http\Requests; use Session; use Cookie; use App\Model\City; use App\Model\Product; use App\Model\Basket; use App\Model\Order; use App\Model\Menu; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Input; use Request; use Telegram; class HomeController extends Controller { public function __construct() { } public function search($q){ $q=trim($q); if(!trim($q)) return; $resultCount = 10; $products = Product::where('name', 'LIKE', '%'.$q. '%')->orWhere('title','LIKE', '%'.$q. '%')->paginate($resultCount); if($products) return $this->ReturnResponse($products); else return $this->ReturnResponse(null," خطا در ثبت اطلاعات "); } public function PostSearch(){ $q=trim(Input::get('search')); $resultCount = 1; $products = Product::where('name', 'LIKE', '%'.$q. '%')->orWhere('title','LIKE', '%'.$q. '%')->paginate($resultCount); return view('search',compact('products')); } public function ajaxLoadBasket(){ $baskets=Basket::ActiveBaskets(); $total=Basket::ActiveBaskets()->sum(function($t){ return $t->count * $t->price; }); return view('ajax.ajaxBasket',compact('baskets','total'))->render(); } public function SetDefaultCity($city){ Cookie::queue('city', $city, 2628000); Session::put( 'city', $city ); return redirect("/$city"); } public function ShowProduct($id){ if(!$id) return redirect('/'); $product=Product::withCount('likes')->FindorFail($id); $products4=Product::ActivePlacements(4,$product->menu_id)->withCount('likes')->whereNotIn('id',[$id])->take(6)->get(); $products=Product::NotActivePlacements($product->menu_id)->withCount('likes')->whereNotIn('id',[$id])->take(13)->get(); $cnt= $products4->count() >= 6 ? : 6 ; $need3 = (int)(ceil( $cnt / 3) * 3); $cnt=abs($need3 - $cnt); $SimilarProducts = $products4->merge($products->take($cnt)); $menu = new Menu; $breadcrumb = $menu->buildBreadcrumbParents("active",$product->menu_id); return view('product',compact('product','breadcrumb','SimilarProducts')); } public function index($city=null){ if(!$city) $city = Cookie::get('city','tehran'); $city=City::WHERE('slug',$city)->first(); $products=Product::NotActivePlacements()->Where('city_id',$city->id)->take(13)->get(); $productFirstPage=Product::Find(Config('constants.HOME.slider')); $products3=Product::ActivePlacements(3)->withCount('likes')->Where('city_id',$city->id)->get(); $productsMostSolds=Product::whereNull('disable')->where('approved',1)->where('soldcount','>',0)->Where('city_id',$city->id) ->withCount('likes')->orderby('soldcount','desc')->take(9)->get(); $productsMostLikes=Product::has('likes')->whereNull('disable')->where('approved',1)->Where('city_id',$city->id) ->withCount('likes')->orderBy('likes_count', 'desc')->take(9)->get(); /*$productsCategory1=Product::has('likes')->whereNull('disable')->where('approved',1)->Where('city_id',$city->id)->Where('maintenance',$category) ->withCount('likes')->orderBy('likes_count', 'desc')->take(9)->get();*/ $chunk = $products->splice(4); $cnt= $products3->count() >= 9 ? $products3->count() : 9 ; $need3 = (int)(ceil( $cnt / 3) * 3); $cnt=abs($need3 - $products3->count()); $products3 = $products3->merge($chunk->take($cnt)); return view('home',compact('productFirstPage','products3','productsMostSolds','productsMostLikes')); } public function ShowProducts($city=null,$category=null){ if(!$city) $city = Cookie::get('city','tehran'); $city=City::WHERE('slug',$city)->first(); $menu=Menu::Where('slug',$category)->first(); if(!$menu) $menu=Menu::findorfail(1); $products=$menu->Products()->Where('city_id',$city->id); $breadcmenu = new Menu; $breadcrumb = $breadcmenu->buildBreadcrumbParents("active",$menu->id); $menuTitle=$menu->title; return view('products',compact('products','breadcrumb','menuTitle')); } public function police() { $user = Auth::user(); if(!($this->ValidateData(['product_id' => 'required','police_reason'=>'required']))){ return $this->ReturnResponse(null," خطا در ورودی "); } $result = \App\Model\Police::create([ 'user_id' => $user->id, 'product_id'=>Input::get('product_id'), 'title'=>Input::get('police_reason'), 'info'=>Input::get('police_other_reason'), ]); if($result) return $this->ReturnResponse(" با تشکر از شما ، گزارش ثبت شد "); else return $this->ReturnResponse(null," خطا در ثبت اطلاعات "); } public function ShowContactForm(){ return view('contactus'); } public function contactStore() { if(!($this->ValidateData(['name' => 'required','email'=>'required','info'=>'required']))){ return $this->ReturnResponse(null,$this->errors); } $result = \App\Model\Message::create([ 'name'=>Input::get('name'), 'email'=>Input::get('email'), 'cell'=>Input::get('cell'), 'info'=>Input::get('info'), ]); $title =" پیام جدیدی از طرف : "; $title .=" \r\n "; $title .=$result->name; $title .= " با ایمیل : "; $title .=" \r\n "; $title .= $result->email; $title .=" \r\n "; $title .=" به سایت ارسال شده است "; if( !env('IsLocal') ) { if( Config("constants.TELEGRAM.active") ) $TelegrmResponse = Telegram::sendMessage([ 'chat_id' =>Config("constants.TELEGRAM.ADMIN_CHAT_ID"), 'text' => $title ]); } if($result) return $this->ReturnResponse(" با تشکر از شما ، پیام شما ثبت گردید و بزودی بررسی خواهد شد "); else return $this->ReturnResponse(null," خطا در ثبت اطلاعات "); } public function ShareSocial($product_id,$socialName){ if(!$product_id || !$socialName) dd("Error id"); $product=Product::FindOrFail($product_id); if($socialName=="facebook") $url="https://www.facebook.com/sharer/sharer.php?u=$product->url"; elseif($socialName=="google") $url="https://plus.google.com/share?url=$product->url"; elseif($socialName=="twitter") $url="https://twitter.com/intent/tweet?text=$product->title_dash&url=$product->url"; elseif($socialName=="telegram") $url="https://telegram.me/share/url?url=$product->url&text=$product->title_dash"; if(Auth::guest()) return redirect("$url"); $user=Auth::User(); if($user->IsSharedProduct($product_id,$socialName) ){ $msgtype="danger"; $txt=" محصول مورد نظر قبلا توسط شما به اشتراک گذاشته شده و امتیاز آن برای حساب کاربری تان ثبت گردیده است "; $txt .=" در صورت تمایل می توانید مجددا آن را به اشتراک بگذارید "; $txt .=" <a class='btn btn-success' href='$url'>ادامه اشتراک گذاری</a> "; return view('result',compact('txt','msgtype')); } else { $share=\App\Model\Share::FirstOrCreate(['user_id'=>$user->id, 'product_id'=>$product_id, 'social_name'=>$socialName, ]); $reason=" اشتراک بن $product_id $product->name در $socialName "; $t=Config('constants.TSHARE.google') ? : 0; $point=\App\Model\Point::create(['user_id'=>$user->id,'reason'=>$reason,'t'=>$t]); return redirect("$url"); } } }