shell bypass 403
<?php
namespace App\Http\Controllers\front;
use App\Http\Controllers\Controller;
use App\Helpers\helper;
use App\Models\About;
use App\Models\Slider;
use App\Models\Item;
use App\Models\Banner;
use App\Models\Blogs;
use App\Models\Ratting;
use App\Models\WhyChooseUs;
use App\Models\TopDeals;
use App\Models\Variation;
use App\Models\Cart;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use Session;
use Illuminate\Support\Facades\Auth;
class HomeController extends Controller
{
public function index(Request $request)
{
$user_id = @Auth::user()->id;
$session_id = Session::getId();
$sliders = Slider::with('item_info', 'category_info')->where('is_available', 1)->orderBy('reorder_id')->get();
$bannerlist = Banner::with('item_info', 'category_info')->where('is_available', 1)->orderBy('reorder_id')->get();
$banners = array();
$banners['topbanners'] = array();
$banners['bannersection1'] = array();
$banners['bannersection2'] = array();
$banners['bannersection3'] = array();
foreach ($bannerlist as $bannerdata) {
if ($bannerdata->section == 1) {
$banners['topbanners'][] = array(
"id" => $bannerdata->id,
"item_id" => $bannerdata->item_id,
"cat_id" => $bannerdata->cat_id,
"image" => helper::image_path($bannerdata->image),
"item_info" => $bannerdata->item_info,
"category_info" => $bannerdata->category_info,
);
}
if ($bannerdata->section == 2) {
$banners['bannersection1'][] = array(
"id" => $bannerdata->id,
"item_id" => $bannerdata->item_id,
"cat_id" => $bannerdata->cat_id,
"image" => helper::image_path($bannerdata->image),
"item_info" => $bannerdata->item_info,
"category_info" => $bannerdata->category_info,
);
}
if ($bannerdata->section == 3) {
$banners['bannersection2'][] = array(
"id" => $bannerdata->id,
"item_id" => $bannerdata->item_id,
"cat_id" => $bannerdata->cat_id,
"image" => helper::image_path($bannerdata->image),
"item_info" => $bannerdata->item_info,
"category_info" => $bannerdata->category_info,
);
}
if ($bannerdata->section == 4) {
$banners['bannersection3'][] = array(
"id" => $bannerdata->id,
"item_id" => $bannerdata->item_id,
"cat_id" => $bannerdata->cat_id,
"image" => helper::image_path($bannerdata->image),
"item_info" => $bannerdata->item_info,
"category_info" => $bannerdata->category_info,
);
}
}
$getblogs = Blogs::orderBy('reorder_id')->take('4')->get();
$testimonials = Ratting::with('user_info')->where('user_id', null)->where('item_id', null)->orderBy('reorder_id')->take('5')->get();
if ($user_id != null) {
$todayspecial = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('favorite', function ($query) use ($user_id) {
$query->on('favorite.item_id', '=', 'item.id')
->where('favorite.user_id', '=', $user_id);
})
->leftJoin('cart', function ($query) use ($user_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.user_id', '=', $user_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('item.id', 'cart.item_id')
->where('item.is_featured', '1')->where('item.item_status', '1')->where('item.is_deleted', 2)->orderBy('item.reorder_id')->take(9)->get();
$topitemlist = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', 'order_details.qty as order_details_qty', DB::raw('count(order_details.item_id) as item_order_counter'), DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('order_details', 'order_details.item_id', 'item.id')
->leftJoin('favorite', function ($query) use ($user_id) {
$query->on('favorite.item_id', '=', 'item.id')
->where('favorite.user_id', '=', $user_id);
})
->leftJoin('cart', function ($query) use ($user_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.user_id', '=', $user_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
->orderByDesc('item_order_counter')
->where('item.item_status', '1')->where('item.is_deleted', 2)->take(10)->get();
$recommended = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('favorite', function ($query) use ($user_id) {
$query->on('favorite.item_id', '=', 'item.id')
->where('favorite.user_id', '=', $user_id);
})
->leftJoin('cart', function ($query) use ($user_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.user_id', '=', $user_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('item.id', 'cart.item_id')
->inRandomOrder()
->where('item.item_status', '1')->where('item.is_deleted', 2)->take(10)->get();
$topdealsproducts = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', 'order_details.qty as order_details_qty', DB::raw('count(order_details.item_id) as item_order_counter'), DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('order_details', 'order_details.item_id', 'item.id')
->leftJoin('favorite', function ($query) use ($user_id) {
$query->on('favorite.item_id', '=', 'item.id')
->where('favorite.user_id', '=', $user_id);
})
->leftJoin('cart', function ($query) use ($user_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.user_id', '=', $user_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
->orderByDesc('item_order_counter')
->where('item.top_deals', '1')->where('item.is_deleted', 2)->take(6)->get();
} else {
$todayspecial = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('cart', function ($query) use ($session_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.session_id', '=', $session_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('item.id', 'cart.item_id')
->where('item.is_featured', '1')->where('item.item_status', '1')->where('item.is_deleted', 2)->orderBy('item.reorder_id')->take(9)->get();
$topitemlist = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', 'order_details.qty as order_details_qty', DB::raw('count(order_details.item_id) as item_order_counter'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('order_details', 'order_details.item_id', 'item.id')
->leftJoin('cart', function ($query) use ($session_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.session_id', '=', $session_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
->orderByDesc('item_order_counter')
->where('item.item_status', '1')->where('item.is_deleted', 2)->take(10)->get();
$recommended = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('cart', function ($query) use ($session_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.session_id', '=', $session_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('item.id', 'cart.item_id')
->inRandomOrder()
->where('item.item_status', '1')->where('item.is_deleted', 2)->take(10)->get();
$topdealsproducts = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', 'order_details.qty as order_details_qty', DB::raw('count(order_details.item_id) as item_order_counter'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
->leftJoin('order_details', 'order_details.item_id', 'item.id')
->leftJoin('cart', function ($query) use ($session_id) {
$query->on('cart.item_id', '=', 'item.id')
->where('cart.session_id', '=', $session_id);
})
->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
->orderByDesc('item_order_counter')
->where('item.top_deals', '1')->where('item.is_deleted', 2)->take(6)->get();
}
$setting = About::first();
$theme = $setting->theme;
if (env('Environment') == 'sendbox') {
if ($request->theme_id) {
$theme = $request->theme_id;
}
}
$choose = WhyChooseUs::orderBy('reorder_id')->get();
if ($request->is('pwa')) {
return view('web.themepwa', compact('sliders', 'banners', 'todayspecial', 'topitemlist', 'testimonials', 'getblogs', 'recommended', 'choose', 'setting', 'topdealsproducts'));
} else {
return view('web.home' . $theme . '.index', compact('sliders', 'banners', 'todayspecial', 'topitemlist', 'testimonials', 'getblogs', 'recommended', 'choose', 'setting', 'topdealsproducts'));
}
// return view('web.home' . $theme . '.index', compact('sliders', 'banners', 'todayspecial', 'topitemlist', 'testimonials', 'getblogs', 'recommended', 'choose', 'setting', 'topdealsproducts'));
}
public function categories(Request $request)
{
return view('web.categoryviewall');
}
public function change_dir(Request $request)
{
session()->put('direction', $request->dir);
return redirect()->back();
}
public function getProductsVariantQuantity(Request $request)
{
$name = implode('|', str_replace('_', ' ', $request->name));
$quantity = $variant_id = 0;
$price = 0;
$item = Item::where('id', $request->item_id)->first();
$topdeals = TopDeals::first();
$variant = Variation::where('item_id', $request->item_id)->where('name', $name)->first();
if ($item->has_variation == 1) {
if ($item->top_deals == 1) {
if (@$topdeals->offer_type == 1) {
$price = $variant->price - @$topdeals->offer_amount;
} else {
$price = $variant->price - $variant->price * (@$topdeals->offer_amount / 100);
}
$original_price = $variant->price;
} else {
$price = $variant->price;
$original_price = $variant->original_price;
}
} else {
if ($item->top_deals == 1) {
if (@$topdeals->offer_type == 1) {
$price = $item->price - @$topdeals->offer_amount;
} else {
$price = $item->price - $item->price * (@$topdeals->offer_amount / 100);
}
$original_price = $item->price;
} else {
$price = $item->price;
$original_price = $item->original_price;
}
}
$off = $original_price > 0 ? number_format(100 - ($price * 100) / $original_price, 1) : 0;
if ($item->has_variation == 1) {
$variant_id = @$variant->id;
$variants_name = @$request->name;
$qty = @$variant->qty;
$stock_management = @$variant->stock_management;
} else {
$variant_id = "";
$variants_name = "";
$qty = "";
$stock_management = @$item->stock_management;
}
$status = 1;
if ($item->is_available == 2 || $item->is_deleted == 1) {
$is_available = 2;
} else {
$is_available = @$variant->is_available;
}
return response()->json([
'status' => 1,
'price' => helper::currency_format($price),
'item_price' => $price,
'item_original_price' => $original_price,
'original_price' => helper::currency_format($original_price),
'variant_id' => $variant_id,
'variants_name' => $variants_name,
'is_available' => $is_available,
'quantity' => $qty,
'stock_management' => $stock_management,
'off' => $off
], 200);
}
public function changeqty(Request $request)
{
if ($request->variants_name == null) {
$item = item::where('id', $request->item_id)->first();
if (Auth::user()) {
$cartqty = Cart::select(DB::raw("SUM(qty) as totalqty"))->where('item_id', $item->id)->where('user_id', Auth::user()->id)->first();
} else {
$cartqty = Cart::select(DB::raw("SUM(qty) as totalqty"))->where('item_id', $item->id)->where('session_id', Session::getId())->first();
}
if ($cartqty->totalqty != null && $cartqty->totalqty != "") {
$qty = $cartqty->totalqty + $request->qty;
} else {
$qty = $request->qty;
}
if ($item->stock_management == 1) {
// if ($item->min_order != null && $item->min_order != "" && $item->min_order != 0) {
// if ($item->min_order > $qty) {
// return response()->json(['status' => 0, 'message' => trans('messages.min_qty_message') . $item->min_order, 'qty' => $request->qty], 200);
// }
// }
if ($item->max_order != null && $item->max_order != "" && $item->max_order != 0) {
if ($item->max_order < $qty) {
if ($cartqty->totalqty == null) {
return response()->json(['status' => 0, 'message' => trans('messages.max_qty_message') . $item->max_order, 'qty' => $request->qty - 1], 200);
} else {
return response()->json(['status' => 0, 'message' => trans('messages.cart_qty_msg') . ' ' . trans('messages.max_qty_message') . $item->max_order, 'qty' => $request->qty - 1], 200);
}
}
}
if ($qty == $item->qty) {
return response()->json(['status' => 1, 'message' => 'success', 'qty' => $qty], 200);
}
if ($qty > $item->qty && ($item->qty != null && $item->qty != "")) {
return response()->json(['status' => 0, 'message' => trans('labels.out_of_stock_msg') . ' ' . $item->item_name, 'qty' => $request->qty - 1], 200);
} else {
return response()->json(['status' => 1, 'message' => 'success', 'qty' => $request->qty], 200);
}
} else {
return response()->json(['status' => 1, 'message' => 'success', 'qty' => $request->qty], 200);
}
} else {
$variant_name = str_replace('_', ' ', $request->variants_name);
$item = Variation::where('name', str_replace(',', '|', $variant_name))->where('item_id', $request->item_id)->first();
$item_name = Item::select('item_name')->where('id', $request->item_id)->first();
if (Auth::user() && Auth::user()->type == 2) {
$cartqty = Cart::select(DB::raw("SUM(qty) as totalqty"))->where('variation_id', $item->id)->where('user_id', Auth::user()->id)->first();
} else {
$cartqty = Cart::select(DB::raw("SUM(qty) as totalqty"))->where('variation_id', $item->id)->where('session_id', Session::getId())->first();
}
if ($cartqty->totalqty != null && $cartqty->totalqty != "") {
$qty = $cartqty->totalqty + $request->qty;
} else {
$qty = $request->qty;
}
if ($item->stock_management == 1) {
// if ($item->min_order != null && $item->min_order != "" && $item->min_order != 0) {
// if ($item->min_order > $qty && $item->min_order != $qty) {
// return response()->json(['status' => 0, 'message' => trans('messages.min_qty_message') . $item->min_order, 'qty' => $request->qty], 200);
// }
// }
if ($item->max_order != null && $item->max_order != "" && $item->max_order != 0) {
if ($item->max_order < $qty && $item->max_order != $qty) {
if ($cartqty->totalqty == null) {
return response()->json(['status' => 0, 'message' => trans('messages.max_qty_message') . $item->max_order, 'qty' => $request->qty - 1], 200);
} else {
return response()->json(['status' => 0, 'message' => trans('messages.cart_qty_msg') . ' ' . trans('messages.max_qty_message') . $item->max_order, 'qty' => $request->qty - 1], 200);
}
}
}
if ($qty == $item->qty) {
return response()->json(['status' => 1, 'message' => 'success', 'qty' => $qty], 200);
}
if ($qty > $item->qty && ($item->qty != null && $item->qty != "")) {
return response()->json(['status' => 0, 'message' => trans('labels.out_of_stock_msg') . ' ' . $item_name->item_name . '(' . $item->name . ')', 'qty' => $request->qty - 1], 200);
} else {
return response()->json(['status' => 1, 'message' => 'success', 'qty' => $request->qty], 200);
}
} else {
return response()->json(['status' => 1, 'message' => 'success', 'qty' => $request->qty], 200);
}
}
}
}