1854 lines
84 KiB
PHP
1854 lines
84 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Admin;
|
|
use App\Advertisement;
|
|
use App\Appointment;
|
|
use App\ContactInfoItem;
|
|
use App\Course;
|
|
use App\CoursesCategory;
|
|
use App\Donation;
|
|
use App\DonationLogs;
|
|
use App\EventAttendance;
|
|
use App\EventPaymentLogs;
|
|
use App\Events;
|
|
use App\EventsCategory;
|
|
use App\Facades\InstagramFeed;
|
|
use App\Faq;
|
|
use App\Feedback;
|
|
use App\Helpers\LanguageHelper;
|
|
use App\Helpers\NexelitHelpers;
|
|
use App\ImageGallery;
|
|
use App\ImageGalleryCategory;
|
|
use App\JobApplicant;
|
|
use App\Jobs;
|
|
use App\JobsCategory;
|
|
use App\Knowledgebase;
|
|
use App\KnowledgebaseTopic;
|
|
use App\Language;
|
|
use App\Mail\AdminResetEmail;
|
|
use App\Mail\CallBack;
|
|
use App\Mail\ContactMessage;
|
|
use App\Mail\PlaceOrder;
|
|
use App\Mail\RequestQuote;
|
|
use App\Menu;
|
|
use App\Newsletter;
|
|
use App\Order;
|
|
use App\Page;
|
|
use App\PaymentLogs;
|
|
use App\ProductCategory;
|
|
use App\ProductOrder;
|
|
use App\ProductRatings;
|
|
use App\Products;
|
|
use App\ProductShipping;
|
|
use App\ProductSubCategory;
|
|
use App\Quote;
|
|
use App\ServiceCategory;
|
|
use App\Services;
|
|
use App\Blog;
|
|
use App\BlogCategory;
|
|
use App\Brand;
|
|
use App\HeaderSlider;
|
|
use App\KeyFeatures;
|
|
use App\PricePlan;
|
|
use App\StaticOption;
|
|
use App\TeamMember;
|
|
use App\User;
|
|
use App\Counterup;
|
|
use App\Testimonial;
|
|
use App\VideoGallery;
|
|
use App\Works;
|
|
use App\WorksCategory;
|
|
use Barryvdh\DomPDF\Facade\Pdf;
|
|
use Illuminate\Filesystem\Filesystem;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Cache;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\Facades\Mail;
|
|
use Illuminate\Support\Facades\Session;
|
|
use Illuminate\Support\Str;
|
|
use Svg\Tag\Image;
|
|
use Symfony\Component\Process\Process;
|
|
use App\Helpers\HomePageStaticSettings;
|
|
|
|
class FrontendController extends Controller
|
|
{
|
|
|
|
public function index()
|
|
{
|
|
$home_page_variant = get_home_variant();
|
|
$lang = LanguageHelper::user_lang_slug();
|
|
//make a function to call all static option by home page
|
|
$static_field_data = StaticOption::whereIn('option_name',HomePageStaticSettings::get_home_field(get_static_option('home_page_variant')))->get()->mapWithKeys(function ($item) {
|
|
return [$item->option_name => $item->option_value];
|
|
})->toArray();
|
|
if (!empty(get_static_option('home_page_page_builder_status'))){
|
|
return view('frontend.frontend-home')->with([ 'static_field_data' => $static_field_data]);
|
|
}
|
|
|
|
$all_header_slider = HeaderSlider::where('lang', $lang)->get();
|
|
$all_counterup = Counterup::where('lang', $lang)->get();
|
|
$all_key_features = KeyFeatures::where('lang', $lang)->get();
|
|
$all_service = Services::where(['lang' => $lang, 'status' => 'publish'])->orderBy('sr_order', 'ASC')->take(get_static_option('home_page_01_service_area_items'))->get();
|
|
$all_testimonial = Testimonial::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->get();
|
|
$all_price_plan = PricePlan::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('home_page_01_price_plan_section_items'))->get();
|
|
$all_team_members = TeamMember::where('lang', $lang)->orderBy('id', 'desc')->take(get_static_option('home_page_01_team_member_items'))->get();
|
|
$all_brand_logo = Brand::all();
|
|
$all_work = Works::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('home_page_01_case_study_items'))->get();
|
|
$all_blog = Blog::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(6)->get();
|
|
$all_contact_info = ContactInfoItem::where(['lang' => $lang])->orderBy('id', 'desc')->get();
|
|
$all_service_category = ServiceCategory::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('home_page_01_service_area_items'))->get();
|
|
$all_contain_cat = $all_work->map(function ($index) { return $index->categories_id; });
|
|
$works_cat_ids = [];
|
|
foreach($all_contain_cat as $k=>$v){
|
|
foreach($v as $key=>$value){
|
|
if(!in_array($value, $works_cat_ids)){
|
|
$works_cat_ids[]=$value;
|
|
}
|
|
}
|
|
}
|
|
$all_work_category = WorksCategory::find($works_cat_ids);
|
|
|
|
|
|
$blade_data = [
|
|
'static_field_data' => $static_field_data,
|
|
'all_header_slider' => $all_header_slider,
|
|
'all_counterup' => $all_counterup,
|
|
'all_key_features' => $all_key_features,
|
|
'all_service' => $all_service,
|
|
'all_testimonial' => $all_testimonial,
|
|
'all_blog' => $all_blog,
|
|
'all_price_plan' => $all_price_plan,
|
|
'all_team_members' => $all_team_members,
|
|
'all_brand_logo' => $all_brand_logo,
|
|
'all_work_category' => $all_work_category,
|
|
'all_work' => $all_work,
|
|
'all_service_category' => $all_service_category,
|
|
'all_contact_info' => $all_contact_info,
|
|
];
|
|
|
|
if (in_array($home_page_variant,['10','12','16']) ){
|
|
//appointment module for home page 10,12,16
|
|
$appointment_query = Appointment::query();
|
|
$appointment_query->with('lang_front');
|
|
$feature_product_list = get_static_option('home_page_' . get_static_option('home_page_variant') . '_appointment_section_category') ?? '';
|
|
$feature_product_list = unserialize($feature_product_list, ['class' => false]);
|
|
if (is_array($feature_product_list) && count($feature_product_list) > 0) {
|
|
$appointment_query->whereIn('categories_id', $feature_product_list);
|
|
}
|
|
$appointments = $appointment_query->get();
|
|
$blade_data['appointments'] = $appointments;
|
|
}
|
|
|
|
if ($home_page_variant == '20'){
|
|
$breaking_news = Blog::where(['lang' => $lang, 'status' => 'publish','breaking_news' => 1])->orderBy('id', 'desc')->take(12)->get();
|
|
$blade_data['breaking_news'] = $breaking_news;
|
|
$blade_data['header_slider_item'] = Blog::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('home20_header_section_items',5))->get();
|
|
|
|
//advertisement code top section
|
|
$advertisement_type = get_static_option('home_page_newspaper_advertisement_type');
|
|
$advertisement_size = get_static_option('home_page_newspaper_advertisement_size');
|
|
$add_query = Advertisement::select('id','type','image','slot','status','redirect_url','embed_code','title');
|
|
if (!empty($advertisement_type)){
|
|
$add_query = $add_query->where('type',$advertisement_type);
|
|
}
|
|
if (!empty($advertisement_size)){
|
|
$add_query = $add_query->where('size',$advertisement_size);
|
|
}
|
|
$add = $add_query->where('status',1)->inRandomOrder()->first();
|
|
$blade_data['add_id'] = $add?->id;
|
|
|
|
$image_markup = render_image_markup_by_attachment_id($add?->image,null,'full');
|
|
$redirect_url = $add?->redirect_url;
|
|
$slot = $add?->slot;
|
|
$embed_code = $add?->embed_code;
|
|
|
|
$blade_data['advertisement_markup'] = '';
|
|
if ($add->type === 'image'){
|
|
$blade_data['advertisement_markup'].= '<a href="'.$redirect_url.'">'.$image_markup.'</a>';
|
|
}elseif($add->type === 'google_adsense'){
|
|
$blade_data['advertisement_markup'].= $this->script_add($slot);
|
|
}else{
|
|
$blade_data['advertisement_markup'].= '<div>'.$embed_code.'</div>';
|
|
}
|
|
//advertisement code top section
|
|
|
|
|
|
//advertisement code bottom section
|
|
$advertisement_type = get_static_option('home_page_newspaper_advertisement_type_bottom');
|
|
$advertisement_size = get_static_option('home_page_newspaper_advertisement_size_bottom');
|
|
$add_query = Advertisement::select('id','type','image','slot','status','redirect_url','embed_code','title');
|
|
if (!empty($advertisement_type)){
|
|
$add_query = $add_query->where('type',$advertisement_type);
|
|
}
|
|
if (!empty($advertisement_size)){
|
|
$add_query = $add_query->where('size',$advertisement_size);
|
|
}
|
|
$add = $add_query->where('status',1)->inRandomOrder()->first();
|
|
$blade_data['add_id'] = $add?->id;
|
|
|
|
$image_markup = render_image_markup_by_attachment_id($add?->image,null,'full');
|
|
$redirect_url = $add?->redirect_url;
|
|
$slot = $add?->slot;
|
|
$embed_code = $add?->embed_code;
|
|
|
|
$blade_data['advertisement_markup_bottom'] = '';
|
|
if ($add?->type === 'image'){
|
|
$blade_data['advertisement_markup_bottom'].= '<a href="'.$redirect_url.'">'.$image_markup.'</a>';
|
|
}elseif($add?->type === 'google_adsense'){
|
|
$blade_data['advertisement_markup_bottom'].= $this->script_add($slot);
|
|
}else{
|
|
$blade_data['advertisement_markup_bottom'].= '<div>'.$embed_code.'</div>';
|
|
}
|
|
//advertisement code bottom section
|
|
|
|
$popular_categories_id = json_decode(get_static_option('home20_popular_news_section_'.$lang.'_categories'));
|
|
$popular_categories = BlogCategory::where(['status' => 'publish','lang' => $lang])->whereIn('id',$popular_categories_id)->get();
|
|
$blade_data['popular_categories'] = $popular_categories;
|
|
$video_news_items = Blog::where(['status' => 'publish','lang' => $lang])->whereNotNull('video_url')->take(get_static_option('home20_video_news_section_items',4))->get();
|
|
|
|
|
|
$blade_data['video_news_items'] = $video_news_items;
|
|
|
|
$sport_news_categories_id = json_decode(get_static_option('home20_sports_news_section_'.$lang.'_categories'));
|
|
$sports_news_item = Blog::where(['status' => 'publish','lang' => $lang])->whereIn('blog_categories_id',$sport_news_categories_id)->take(get_static_option('home20_sports_news_section_items',5))->get();
|
|
$blade_data['sports_news_item'] = $sports_news_item;
|
|
|
|
$hot_news_categories_id = json_decode(get_static_option('home20_hot_news_section_'.$lang.'_categories'));
|
|
$hot_news_item = Blog::where(['status' => 'publish','lang' => $lang])->whereIn('blog_categories_id',$hot_news_categories_id)->take(get_static_option('home20_hot_news_section_items',5))->get();
|
|
$blade_data['hot_news_item'] = $hot_news_item;
|
|
}
|
|
|
|
if ($home_page_variant == '13'){
|
|
//popular donation cause
|
|
$popular_cause_query = Donation::query();
|
|
$popular_cause_list = get_static_option('home_page_13_' . $lang . '_popular_cause_popular_cause_list') ?? serialize([]);
|
|
$popular_cause_list = unserialize($popular_cause_list, ['class' => false]);
|
|
$popular_cause_items = get_static_option('home_page_13_popular_cause_popular_cause_items') ?? '';
|
|
$popular_cause_order = get_static_option('home_page_13_popular_cause_popular_cause_order') ?? 'asc';
|
|
$popular_cause_orderby = get_static_option('home_page_13_popular_cause_popular_cause_orderby') ?? 'id';
|
|
|
|
if (count($popular_cause_list) > 0) {
|
|
$popular_cause_query->whereIn('id', $popular_cause_list);
|
|
}
|
|
|
|
$popular_causes = $popular_cause_query->where('lang', $lang)->orderBy($popular_cause_orderby, $popular_cause_order)->take($popular_cause_items)->get();
|
|
$blade_data['popular_causes'] = $popular_causes;
|
|
}
|
|
|
|
if (in_array($home_page_variant,['13','15','17','18'])){
|
|
$all_events = Events::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'DESC')->take(get_static_option('home_page_01_event_area_items'))->get();
|
|
$latest_products = Products::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'DESC')->take(get_static_option('home_page_products_area_items'))->get();
|
|
$blade_data['all_events'] = $all_events;
|
|
$blade_data['latest_products'] = $latest_products;
|
|
}
|
|
if (in_array($home_page_variant,['15','18'])){
|
|
$product_query = Products::query();
|
|
$feature_product_list = get_static_option('home_page_15_' . $lang . '_featured_product_area_items') ?? serialize([]);
|
|
$feature_product_list = unserialize($feature_product_list, ['class' => false]);
|
|
if (count($feature_product_list) > 0) {
|
|
$product_query->whereIn('id', $feature_product_list);
|
|
}
|
|
$featured_products = $product_query->where('lang', $lang)->get();
|
|
|
|
//best selling product
|
|
$top_selling_products = Products::where(['lang' => $lang, 'status' => 'publish'])->orderBy('sales', 'desc')->take(get_static_option('home_page_15_top_selling_product_area_items'))->get();
|
|
$blade_data['featured_products'] = $featured_products;
|
|
$blade_data['top_selling_products'] = $top_selling_products;
|
|
}
|
|
|
|
|
|
if (in_array($home_page_variant,['17'])){
|
|
//courses category
|
|
$all_courses_category = CoursesCategory::where(['status' => 'publish'])->get();
|
|
//
|
|
$featured_courses_ids = unserialize(get_static_option('featured_courses_ids'), ['class' => false]); //fetch featured courses from db by admin selected ids;
|
|
$featured_courses = Course::with('lang_front')->whereIn('id', $featured_courses_ids)->get(); //fetch featured courses from db by admin selected ids;
|
|
//
|
|
$latest_courses = Course::with('lang_front')->get()->take(get_static_option('course_home_page_all_course_area_items')); //get all latest course items, limit by admin given limit;
|
|
|
|
$blade_data['latest_courses'] = $latest_courses;
|
|
$blade_data['featured_courses'] = $featured_courses;
|
|
$blade_data['all_courses_category'] = $all_courses_category;
|
|
}
|
|
|
|
if (in_array($home_page_variant,['18'])){
|
|
//product categories
|
|
$product_categories = ProductCategory::where(['lang' => $lang, 'status' => 'publish'])->get();
|
|
$blade_data['product_categories'] = $product_categories;
|
|
}
|
|
|
|
if (in_array($home_page_variant,['19'])){
|
|
//hot deal section products
|
|
$selected_products = json_decode(get_static_option('home_page_19_'.get_user_lang().'_todays_deal_products')) ?? [];
|
|
$hot_deal_pro = Products::with("ratings")
|
|
->withCount('ratings')
|
|
->whereIn('id',$selected_products)->where(['lang' => $lang, 'status' => 'publish'])->get();
|
|
$blade_data['all_hot_deal_products'] = $hot_deal_pro;
|
|
|
|
//store area section products
|
|
$selected_categories = json_decode(get_static_option('home19_store_section_'.get_user_lang().'_categories')) ?? [];
|
|
$store_area_categories = ProductCategory::whereIn('id',$selected_categories)->where(['lang' => $lang, 'status' => 'publish'])->take(get_static_option('home19_store_section_category_items'))->get();
|
|
$blade_data['all_store_area_categories'] = $store_area_categories;
|
|
|
|
//Popular section products
|
|
$selected_popular_products = json_decode(get_static_option('home_page_19_'.get_user_lang().'_popular_area_products')) ?? [];
|
|
$all_popular_products = Products::with("ratings")
|
|
->withCount('ratings')
|
|
->whereIn('id',$selected_popular_products)->where(['lang' => $lang, 'status' => 'publish'])->get();
|
|
$blade_data['all_popular_products'] = $all_popular_products;
|
|
|
|
//Instagram Section
|
|
$post_items = get_static_option('home_page_19_instagram_area_item_show');
|
|
$instagram_data = Cache::remember('instagram_feed',now()->addDay(2),function () use($post_items) {
|
|
$insta_data = InstagramFeed::fetch($post_items);
|
|
return $insta_data ?? [];
|
|
});
|
|
|
|
if (!$instagram_data) {
|
|
// return '';
|
|
}
|
|
$blade_data['all_instagram_data'] = $instagram_data;
|
|
$pro_cat = ProductCategory::with('subcategory')->where(['lang' => $lang, 'status' => 'publish'])->get();
|
|
$blade_data['product_categories_for_sidebar'] = $pro_cat;
|
|
}
|
|
|
|
return view('frontend.frontend-home')->with($blade_data);
|
|
|
|
}
|
|
|
|
private function script_add($slot){
|
|
$google_adsense_publisher_id = get_static_option('google_adsense_publisher_id');
|
|
return <<<HTML
|
|
<div>
|
|
<ins class="adsbygoogle"
|
|
style="display:block"
|
|
data-ad-client="{$google_adsense_publisher_id}"
|
|
data-ad-slot="{$slot}"
|
|
data-ad-format="auto"
|
|
data-full-width-responsive="true"></ins>
|
|
<script>
|
|
(adsbygoogle = window.adsbygoogle || []).push({});
|
|
</script>
|
|
</div>
|
|
HTML;
|
|
}
|
|
|
|
public function popular_item_by_category(Request $request){
|
|
$popular_categories_blogs = Blog::where(['status' => 'publish','lang' => LanguageHelper::user_lang_slug()])->where('blog_categories_id',$request->catid)->get();
|
|
$output = '';
|
|
foreach($popular_categories_blogs as $item){
|
|
$output .= '<div class="col-lg-6 col-md-6"><div class="single-news margin-top-40"><div class="news-thumb">';
|
|
$output .= render_image_markup_by_attachment_id($item->image,'grid');
|
|
$output .= ' <ul class="news-date-tag"> <li class="tag-list-item"> '.$item->created_at->format('d M Y').' </li>';
|
|
$output .= '<li class="tag-list-item">'.get_blog_category_by_id($item->blog_categories_id,'link','item').' </li>';
|
|
$output .= '</ul></div> <div class="news-contents"><h3 class="news-common-title">';
|
|
$output .= '<a href="'.route('frontend.blog.single',$item->slug).'"> '.$item->title.'</a>';
|
|
$output .= ' </h3></div></div></div>';
|
|
}
|
|
|
|
return $output;
|
|
}
|
|
|
|
public function product_story_item_by_category(Request $request){
|
|
$popular_categories_products = Products::with('ratings')->withCount('ratings')
|
|
->where(['status' => 'publish','lang' => LanguageHelper::user_lang_slug()])
|
|
->where('category_id',$request->catid)->get();
|
|
$output = '';
|
|
$badge_markup = '';
|
|
$colors = ['bg-color-stock','bg-color-three'];
|
|
foreach($popular_categories_products as $key=> $item){
|
|
$pro_id = $item->id;
|
|
$image = render_image_markup_by_attachment_id($item->image,'radius-10','grid');
|
|
$single_route = route('frontend.products.single',$item->slug);
|
|
$rating_function = ratingMarkup($item->ratings->avg("ratings"),$item->ratings_count);
|
|
$badge = $item->badge;
|
|
$title = $item->title;
|
|
$sale_price = amount_with_currency_symbol($item->sale_price);
|
|
$regular_price = amount_with_currency_symbol($item->regular_price);
|
|
|
|
|
|
|
|
$badge_markup = '<span class="percent-box '.$colors[$key % count($colors)].' radius-5"> '.$badge.' </span>';
|
|
|
|
$short_description = $item->short_description;
|
|
$stock = str_replace('_',' ', ucfirst($item->stock_status));
|
|
$category = optional($item->category)->title;
|
|
$subcategory = optional($item->subcategory)->title;
|
|
$img = get_attachment_image_by_id($item->image);
|
|
$img_url = $img['img_url'];
|
|
|
|
$product = $item;
|
|
$view = view('frontend.pages.products.product-attribute-passing',compact('product'))->render();
|
|
|
|
$cart_markup_with_variant = '
|
|
<a class="icon"title="View Details"
|
|
href="'.$single_route.'">
|
|
<i class="fas fa-eye"></i></a>';
|
|
|
|
$cart_markup_without_variant = '
|
|
|
|
<a class="icon cart-loading ajax_add_to_cart_with_icon"
|
|
data-product_id="'.$pro_id.'"
|
|
data-product_title="'.$title.'"
|
|
data-product_quantity="1"
|
|
href="javascript:void(0)"> <i class="fas fa-shopping-cart"></i> </a>
|
|
';
|
|
|
|
$cart_markup_condition = '';
|
|
if(!empty($item->variant) && count(json_decode($item->variant,true)) > 0){
|
|
$cart_markup_condition = $cart_markup_with_variant;
|
|
}else{
|
|
$cart_markup_condition = $cart_markup_without_variant;
|
|
}
|
|
|
|
$regular_price_markup = '';
|
|
if(!empty($item->regular_price) && $item->regular_price > 0){
|
|
$regular_price_markup = '<span class="fs-16 flash-old-prices ff-rubik"> '.$regular_price.' </span>';
|
|
}
|
|
|
|
$output.= <<<ITEM
|
|
|
|
<div class="col-lg-3 col-sm-6 mt-4 grid-item np1 np2 np3">
|
|
<div class="global-card-item style-02 center-text radius-10">
|
|
<div class="global-card-thumb radius-10">
|
|
<a href="{$single_route}">
|
|
{$image}
|
|
</a>
|
|
<div class="thumb-top-contents right-side">
|
|
{$badge_markup}
|
|
</div>
|
|
<ul class="global-thumb-icons">
|
|
<li class="lists" data-bs-toggle="tooltip" data-bs-placement="top" title="add to cart">
|
|
{$cart_markup_condition}
|
|
</li>
|
|
<li class="lists" data-bs-toggle="tooltip" data-bs-placement="top" title="add to Wishlist">
|
|
<a class="icon cart-loading ajax_add_to_wishlist_with_icon"
|
|
data-product_id="{$pro_id}"
|
|
href="javascript:void(0)"> <i class="fas fa-heart"></i> </a>
|
|
</li>
|
|
<li class="lists" data-bs-toggle="tooltip" data-bs-placement="top" title="Product Details">
|
|
<a class="icon store_quick_view"
|
|
data-toggle="modal"
|
|
data-target="#quick_view"
|
|
data-id="{$pro_id}"
|
|
data-title="{$title}"
|
|
data-short_description="{$short_description}"
|
|
data-regular_price="{$regular_price}"
|
|
data-sale_price="{$sale_price}"
|
|
data-in_stock="$stock"
|
|
data-category="{$category}"
|
|
data-subcategory="{$subcategory}"
|
|
data-image="{$img_url}"
|
|
data-attribute='{$view}'>
|
|
<i class="fas fa-search-plus"></i>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="global-card-contents">
|
|
{$rating_function}
|
|
<h5 class="common-title-two hover-color-three mt-2"> <a href="{$single_route}"> {$title}</a> </h5>
|
|
<div class="global-card-flex-contents">
|
|
<div class="single-global-card">
|
|
<div class="global-card-left">
|
|
<div class="price-update-through">
|
|
<span class="fs-20 fw-500 ff-rubik flash-prices color-three"> {$sale_price} </span>
|
|
{$regular_price_markup}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
ITEM;
|
|
|
|
}
|
|
|
|
return $output;
|
|
}
|
|
|
|
public function home_page_change($id)
|
|
{
|
|
|
|
$whitelist = array(
|
|
'127.0.0.1',
|
|
'::1',
|
|
);
|
|
$remote_addr = url('/');
|
|
preg_match('/xgenious/',$remote_addr,$match);
|
|
if(!in_array($remote_addr, $whitelist) && empty($match)){
|
|
return $match;
|
|
}
|
|
|
|
$home_page_variant = $id;
|
|
if(!in_array($id,['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21'])){
|
|
abort(404);
|
|
}
|
|
$lang = LanguageHelper::user_lang_slug();
|
|
$all_header_slider = HeaderSlider::where('lang', $lang)->get();
|
|
$all_counterup = Counterup::where('lang', $lang)->get();
|
|
$all_key_features = KeyFeatures::where('lang', $lang)->get();
|
|
$all_service = Services::where(['lang' => $lang, 'status' => 'publish'])->orderBy('sr_order', 'ASC')->take(get_static_option('home_page_01_service_area_items'))->get();
|
|
$all_testimonial = Testimonial::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->get();
|
|
$all_price_plan = PricePlan::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('home_page_01_price_plan_section_items'))->get();
|
|
$all_team_members = TeamMember::where('lang', $lang)->orderBy('id', 'desc')->take(get_static_option('home_page_01_team_member_items'))->get();
|
|
$all_brand_logo = Brand::all();
|
|
$all_work = Works::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('home_page_01_case_study_items'))->get();
|
|
$all_blog = Blog::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(6)->get();
|
|
$all_contact_info = ContactInfoItem::where(['lang' => $lang])->orderBy('id', 'desc')->get();
|
|
$all_service_category = ServiceCategory::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('home_page_01_service_area_items'))->get();
|
|
$all_contain_cat = $all_work->map(function ($index) { return $index->categories_id; });
|
|
$works_cat_ids = [];
|
|
foreach($all_contain_cat as $k=>$v){
|
|
foreach($v as $key=>$value){
|
|
if(!in_array($value, $works_cat_ids)){
|
|
$works_cat_ids[]=$value;
|
|
}
|
|
}
|
|
}
|
|
$all_work_category = WorksCategory::find($works_cat_ids);
|
|
//make a function to call all static option by home page
|
|
$static_field_data = StaticOption::whereIn('option_name', HomePageStaticSettings::get_home_field($home_page_variant))->get()->mapWithKeys(function ($item) {
|
|
return [$item->option_name => $item->option_value];
|
|
})->toArray();
|
|
|
|
|
|
$blade_data = [
|
|
'home_page' => $id,
|
|
'static_field_data' => $static_field_data,
|
|
'all_header_slider' => $all_header_slider,
|
|
'all_counterup' => $all_counterup,
|
|
'all_key_features' => $all_key_features,
|
|
'all_service' => $all_service,
|
|
'all_testimonial' => $all_testimonial,
|
|
'all_blog' => $all_blog,
|
|
'all_price_plan' => $all_price_plan,
|
|
'all_team_members' => $all_team_members,
|
|
'all_brand_logo' => $all_brand_logo,
|
|
'all_work_category' => $all_work_category,
|
|
'all_work' => $all_work,
|
|
'all_service_category' => $all_service_category,
|
|
'all_contact_info' => $all_contact_info,
|
|
];
|
|
|
|
if (in_array($home_page_variant,['10','12','16']) ){
|
|
//appointment module for home page 10,12,16
|
|
$appointment_query = Appointment::query();
|
|
$appointment_query->with('lang_front');
|
|
$feature_product_list = get_static_option('home_page_' . $home_page_variant . '_appointment_section_category') ?? '';
|
|
$feature_product_list = unserialize($feature_product_list, ['class' => false]);
|
|
if (is_array($feature_product_list) && count($feature_product_list) > 0) {
|
|
$appointment_query->whereIn('categories_id', $feature_product_list);
|
|
}
|
|
$appointments = $appointment_query->get();
|
|
$blade_data['appointments'] = $appointments;
|
|
|
|
}
|
|
|
|
if ($home_page_variant == '13'){
|
|
//popular donation cause
|
|
$popular_cause_query = Donation::query();
|
|
$popular_cause_list = get_static_option('home_page_13_' . $lang . '_popular_cause_popular_cause_list') ?? serialize([]);
|
|
$popular_cause_list = unserialize($popular_cause_list, ['class' => false]);
|
|
$popular_cause_items = get_static_option('home_page_13_popular_cause_popular_cause_items') ?? '';
|
|
$popular_cause_order = get_static_option('home_page_13_popular_cause_popular_cause_order') ?? 'asc';
|
|
$popular_cause_orderby = get_static_option('home_page_13_popular_cause_popular_cause_orderby') ?? 'id';
|
|
|
|
|
|
if (count($popular_cause_list) > 0) {
|
|
$popular_cause_query->whereIn('id', $popular_cause_list);
|
|
}
|
|
$popular_causes = $popular_cause_query->where('lang', $lang)->orderBy($popular_cause_orderby, $popular_cause_order)->take($popular_cause_items)->get();
|
|
$blade_data['popular_causes'] = $popular_causes;
|
|
}
|
|
|
|
if (in_array($home_page_variant,['13','15','17','18'])){
|
|
$all_events = Events::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'DESC')->take(get_static_option('home_page_01_event_area_items'))->get();
|
|
$latest_products = Products::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'DESC')->take(get_static_option('home_page_products_area_items'))->get();
|
|
$blade_data['all_events'] = $all_events;
|
|
$blade_data['latest_products'] = $latest_products;
|
|
}
|
|
if (in_array($home_page_variant,['15','18'])){
|
|
$product_query = Products::query();
|
|
$feature_product_list = get_static_option('home_page_15_' . $lang . '_featured_product_area_items') ?? serialize([]);
|
|
$feature_product_list = unserialize($feature_product_list, ['class' => false]);
|
|
if (count($feature_product_list) > 0) {
|
|
$product_query->whereIn('id', $feature_product_list);
|
|
}
|
|
$featured_products = $product_query->where('lang', $lang)->get();
|
|
|
|
//best selling product
|
|
$top_selling_products = Products::where(['lang' => $lang, 'status' => 'publish'])->orderBy('sales', 'desc')->take(get_static_option('home_page_15_top_selling_product_area_items'))->get();
|
|
$blade_data['featured_products'] = $featured_products;
|
|
$blade_data['top_selling_products'] = $top_selling_products;
|
|
}
|
|
|
|
|
|
if (in_array($home_page_variant,['17'])){
|
|
//courses category
|
|
$all_courses_category = CoursesCategory::where(['status' => 'publish'])->get();
|
|
//
|
|
$featured_courses_ids = unserialize(get_static_option('featured_courses_ids'), ['class' => false]); //fetch featured courses from db by admin selected ids;
|
|
$featured_courses = Course::with('lang_front')->whereIn('id', $featured_courses_ids)->get(); //fetch featured courses from db by admin selected ids;
|
|
//
|
|
$latest_courses = Course::with('lang_front')->get()->take(get_static_option('course_home_page_all_course_area_items')); //get all latest course items, limit by admin given limit;
|
|
|
|
$blade_data['latest_courses'] = $latest_courses;
|
|
$blade_data['featured_courses'] = $featured_courses;
|
|
$blade_data['all_courses_category'] = $all_courses_category;
|
|
}
|
|
|
|
if (in_array($home_page_variant,['18'])){
|
|
//product categories
|
|
$product_categories = ProductCategory::where(['lang' => $lang, 'status' => 'publish'])->get();
|
|
$blade_data['product_categories'] = $product_categories;
|
|
}
|
|
|
|
|
|
|
|
if (in_array($home_page_variant,['19'])){
|
|
//hot deal section products
|
|
$selected_products = json_decode(get_static_option('home_page_19_'.get_user_lang().'_todays_deal_products')) ?? [];
|
|
$hot_deal_pro = Products::with("ratings")
|
|
->withCount('ratings')
|
|
->whereIn('id',$selected_products)->where(['lang' => $lang, 'status' => 'publish'])->get();
|
|
$blade_data['all_hot_deal_products'] = $hot_deal_pro;
|
|
|
|
//store area section products
|
|
$selected_categories = json_decode(get_static_option('home19_store_section_'.get_user_lang().'_categories')) ?? [];
|
|
$store_area_categories = ProductCategory::whereIn('id',$selected_categories)->where(['lang' => $lang, 'status' => 'publish'])->take(get_static_option('home19_store_section_category_items'))->get();
|
|
$blade_data['all_store_area_categories'] = $store_area_categories;
|
|
|
|
//Popular section products
|
|
$selected_popular_products = json_decode(get_static_option('home_page_19_'.get_user_lang().'_popular_area_products')) ?? [];
|
|
$all_popular_products = Products::with("ratings")
|
|
->withCount('ratings')
|
|
->whereIn('id',$selected_popular_products)->where(['lang' => $lang, 'status' => 'publish'])->get();
|
|
$blade_data['all_popular_products'] = $all_popular_products;
|
|
|
|
//Instagram Section
|
|
$post_items = get_static_option('home_page_19_instagram_area_item_show');
|
|
$instagram_data = Cache::remember('instagram_feed',now()->addDay(2),function () use($post_items) {
|
|
$insta_data = InstagramFeed::fetch($post_items);
|
|
return $insta_data ?? [];
|
|
});
|
|
|
|
if (!$instagram_data) {
|
|
//return '';
|
|
}
|
|
$blade_data['all_instagram_data'] = $instagram_data;
|
|
$pro_cat = ProductCategory::with('subcategory')->where(['lang' => $lang, 'status' => 'publish'])->get();
|
|
$blade_data['product_categories_for_sidebar'] = $pro_cat;
|
|
}
|
|
|
|
|
|
|
|
if ($home_page_variant == '20'){
|
|
$breaking_news = Blog::where(['lang' => $lang, 'status' => 'publish','breaking_news' => 1])->orderBy('id', 'desc')->take(12)->get();
|
|
$blade_data['breaking_news'] = $breaking_news;
|
|
$blade_data['header_slider_item'] = Blog::where(['lang' => $lang, 'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('home20_header_section_items',5))->get();
|
|
|
|
//advertisement code top section
|
|
$advertisement_type = get_static_option('home_page_newspaper_advertisement_type');
|
|
$advertisement_size = get_static_option('home_page_newspaper_advertisement_size');
|
|
$add_query = Advertisement::select('id','type','image','slot','status','redirect_url','embed_code','title');
|
|
if (!empty($advertisement_type)){
|
|
$add_query = $add_query->where('type',$advertisement_type);
|
|
}
|
|
if (!empty($advertisement_size)){
|
|
$add_query = $add_query->where('size',$advertisement_size);
|
|
}
|
|
$add = $add_query->where('status',1)->inRandomOrder()->first();
|
|
$blade_data['add_id'] = $add->id;
|
|
|
|
$image_markup = render_image_markup_by_attachment_id($add->image,null,'full');
|
|
$redirect_url = $add->redirect_url;
|
|
$slot = $add->slot;
|
|
$embed_code = $add->embed_code;
|
|
|
|
$blade_data['advertisement_markup'] = '';
|
|
if ($add->type === 'image'){
|
|
$blade_data['advertisement_markup'].= '<a href="'.$redirect_url.'">'.$image_markup.'</a>';
|
|
}elseif($add->type === 'google_adsense'){
|
|
$blade_data['advertisement_markup'].= $this->script_add($slot);
|
|
}else{
|
|
$blade_data['advertisement_markup'].= '<div>'.$embed_code.'</div>';
|
|
}
|
|
//advertisement code top section
|
|
|
|
|
|
//advertisement code bottom section
|
|
$advertisement_type = get_static_option('home_page_newspaper_advertisement_type_bottom');
|
|
$advertisement_size = get_static_option('home_page_newspaper_advertisement_size_bottom');
|
|
$add_query = Advertisement::select('id','type','image','slot','status','redirect_url','embed_code','title');
|
|
if (!empty($advertisement_type)){
|
|
$add_query = $add_query->where('type',$advertisement_type);
|
|
}
|
|
if (!empty($advertisement_size)){
|
|
$add_query = $add_query->where('size',$advertisement_size);
|
|
}
|
|
$add = $add_query->where('status',1)->inRandomOrder()->first();
|
|
$blade_data['add_id'] = $add->id;
|
|
|
|
$image_markup = render_image_markup_by_attachment_id($add->image,null,'full');
|
|
$redirect_url = $add->redirect_url;
|
|
$slot = $add->slot;
|
|
$embed_code = $add->embed_code;
|
|
|
|
$blade_data['advertisement_markup_bottom'] = '';
|
|
if ($add->type === 'image'){
|
|
$blade_data['advertisement_markup_bottom'].= '<a href="'.$redirect_url.'">'.$image_markup.'</a>';
|
|
}elseif($add->type === 'google_adsense'){
|
|
$blade_data['advertisement_markup_bottom'].= $this->script_add($slot);
|
|
}else{
|
|
$blade_data['advertisement_markup_bottom'].= '<div>'.$embed_code.'</div>';
|
|
}
|
|
//advertisement code bottom section
|
|
|
|
$popular_categories_id = json_decode(get_static_option('home20_popular_news_section_'.$lang.'_categories'));
|
|
$popular_categories = BlogCategory::where(['status' => 'publish','lang' => $lang])->whereIn('id',$popular_categories_id)->get();
|
|
$blade_data['popular_categories'] = $popular_categories;
|
|
$video_news_items = Blog::where(['status' => 'publish','lang' => $lang])->whereNotNull('video_url')->take(get_static_option('home20_video_news_section_items',4))->get();
|
|
$blade_data['video_news_items'] = $video_news_items;
|
|
|
|
$sport_news_categories_id = json_decode(get_static_option('home20_sports_news_section_'.$lang.'_categories'));
|
|
$sports_news_item = Blog::where(['status' => 'publish','lang' => $lang])->whereIn('blog_categories_id',$sport_news_categories_id)->take(get_static_option('home20_sports_news_section_items',5))->get();
|
|
$blade_data['sports_news_item'] = $sports_news_item;
|
|
|
|
$hot_news_categories_id = json_decode(get_static_option('home20_hot_news_section_'.$lang.'_categories'));
|
|
$hot_news_item = Blog::where(['status' => 'publish','lang' => $lang])->whereIn('blog_categories_id',$hot_news_categories_id)->take(get_static_option('home20_hot_news_section_items',5))->get();
|
|
$blade_data['hot_news_item'] = $hot_news_item;
|
|
}
|
|
|
|
|
|
return view('frontend.frontend-home-demo')->with($blade_data);
|
|
}
|
|
|
|
|
|
public function flutterwave_pay_get()
|
|
{
|
|
return redirect_404_page();
|
|
}
|
|
|
|
public function blog_page()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_blogs = Blog::where(['lang'=> $lang , 'status' => 'publish'])->orderBy('id', 'desc')->paginate(get_static_option('blog_page_item'));
|
|
return view('frontend.pages.blog.blog')->with([
|
|
'all_blogs' => $all_blogs
|
|
]);
|
|
}
|
|
|
|
public function category_wise_blog_page($id)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_blogs = Blog::where(['blog_categories_id' => $id, 'lang' => $lang,'status' => 'publish'])->orderBy('id', 'desc')->paginate(get_static_option('blog_page_item'));
|
|
if (empty($all_blogs)){
|
|
abort(404);
|
|
}
|
|
$all_recent_blogs = Blog::where(['lang' => $lang,'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('blog_page_recent_post_widget_item'))->get();
|
|
$all_category = BlogCategory::where(['status' => 'publish', 'lang' => $lang])->orderBy('id', 'desc')->get();
|
|
$category_name = BlogCategory::where(['id' => $id, 'status' => 'publish'])->first()->name;
|
|
return view('frontend.pages.blog.blog-category')->with([
|
|
'all_blogs' => $all_blogs,
|
|
'all_categories' => $all_category,
|
|
'category_name' => $category_name,
|
|
'all_recent_blogs' => $all_recent_blogs,
|
|
]);
|
|
}
|
|
|
|
public function tags_wise_blog_page($tag)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_blogs = Blog::where(['lang' => $lang,'status' => 'publish'])->Where('tags', 'LIKE', '%' . $tag . '%')
|
|
->orderBy('id', 'desc')->paginate(get_static_option('blog_page_item'));
|
|
if (empty($all_blogs)){
|
|
abort(404);
|
|
}
|
|
$all_recent_blogs = Blog::where(['lang' => $lang,'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('blog_page_recent_post_widget_item'))->get();
|
|
$all_category = BlogCategory::where(['status' => 'publish', 'lang' => $lang])->orderBy('id', 'desc')->get();
|
|
return view('frontend.pages.blog.blog-tags')->with([
|
|
'all_blogs' => $all_blogs,
|
|
'all_categories' => $all_category,
|
|
'tag_name' => $tag,
|
|
'all_recent_blogs' => $all_recent_blogs,
|
|
]);
|
|
}
|
|
|
|
public function blog_search_page(Request $request)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_recent_blogs = Blog::where(['lang' => $lang,'status' => 'publish'])->orderBy('id', 'desc')->take(get_static_option('blog_page_recent_post_widget_item'))->get();
|
|
$all_category = BlogCategory::where(['status' => 'publish', 'lang' => $lang])->orderBy('id', 'desc')->get();
|
|
$all_blogs = Blog::where(['lang' => $lang,'status' => 'publish'])->Where('title', 'LIKE', '%' . $request->search . '%')
|
|
->orderBy('id', 'desc')->paginate(get_static_option('blog_page_item'));
|
|
|
|
return view('frontend.pages.blog.blog-search')->with([
|
|
'all_blogs' => $all_blogs,
|
|
'all_categories' => $all_category,
|
|
'search_term' => $request->search,
|
|
'all_recent_blogs' => $all_recent_blogs,
|
|
]);
|
|
}
|
|
|
|
public function blog_single_page($slug)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$blog_post = Blog::where('slug', $slug)->first();
|
|
if (empty($blog_post)){
|
|
abort(404);
|
|
}
|
|
$all_recent_blogs = Blog::where(['lang' => $lang,'status' => 'publish'])->orderBy('id', 'desc')->paginate(get_static_option('blog_page_recent_post_widget_item'));
|
|
$all_category = BlogCategory::where(['status' => 'publish', 'lang' => $lang])->orderBy('id', 'desc')->get();
|
|
|
|
$all_related_blog = Blog::where(['lang' => $lang,'status' => 'publish'])->Where('blog_categories_id', $blog_post->blog_categories_id)->orderBy('id', 'desc')->take(6)->get();
|
|
|
|
return view('frontend.pages.blog.blog-single')->with([
|
|
'blog_post' => $blog_post,
|
|
'all_categories' => $all_category,
|
|
'all_recent_blogs' => $all_recent_blogs,
|
|
'all_related_blog' => $all_related_blog,
|
|
]);
|
|
}
|
|
|
|
|
|
public function dynamic_single_page($slug)
|
|
{
|
|
$page_post = Page::where('slug', $slug)->first();
|
|
if (empty($page_post)){
|
|
abort(404);
|
|
}
|
|
return view('frontend.pages.dynamic-single')->with([
|
|
'page_post' => $page_post
|
|
]);
|
|
}
|
|
|
|
public function showAdminForgetPasswordForm()
|
|
{
|
|
return view('auth.admin.forget-password');
|
|
}
|
|
|
|
public function sendAdminForgetPasswordMail(Request $request)
|
|
{
|
|
$this->validate($request, [
|
|
'username' => 'required|string:max:191'
|
|
]);
|
|
$user_info = Admin::where('username', $request->username)->orWhere('email', $request->username)->first();
|
|
if (!empty($user_info)) {
|
|
$token_id = Str::random(30);
|
|
$existing_token = DB::table('password_resets')->where('email', $user_info->email)->delete();
|
|
if (empty($existing_token)) {
|
|
DB::table('password_resets')->insert(['email' => $user_info->email, 'token' => $token_id]);
|
|
}
|
|
//fetch email tempalte content from admin panel
|
|
$message_body = get_static_option('admin_reset_password_' . LanguageHelper::default_slug() . '_message');
|
|
$reset_url = '<a class="btn" href="' . route('admin.reset.password', ['user' => $user_info->username, 'token' => $token_id]) . '">' . __("Reset Password") . '</a>'."\n";
|
|
$message = str_replace(
|
|
[
|
|
'@username',
|
|
'@name',
|
|
'@reset_url'
|
|
],
|
|
[
|
|
$user_info->username,
|
|
$user_info->name,
|
|
$reset_url
|
|
], $message_body);
|
|
|
|
$data = [
|
|
'username' => $user_info->username,
|
|
'message_content' => $message
|
|
];
|
|
try {
|
|
Mail::to($user_info->email)->send(new AdminResetEmail($data));
|
|
}catch (\Exception $e){
|
|
return redirect()->back()->with(NexelitHelpers::item_delete($e->getMessage()));
|
|
}
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('Check Your Mail For Reset Password Link'),
|
|
'type' => 'success'
|
|
]);
|
|
}
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('Your Username or Email Is Wrong!!!'),
|
|
'type' => 'danger'
|
|
]);
|
|
}
|
|
|
|
public function showAdminResetPasswordForm($username, $token)
|
|
{
|
|
return view('auth.admin.reset-password')->with([
|
|
'username' => $username,
|
|
'token' => $token
|
|
]);
|
|
}
|
|
|
|
public function AdminResetPassword(Request $request)
|
|
{
|
|
$this->validate($request, [
|
|
'token' => 'required',
|
|
'username' => 'required',
|
|
'password' => 'required|string|min:8|confirmed'
|
|
]);
|
|
$user_info = Admin::where('username', $request->username)->first();
|
|
$user = Admin::findOrFail($user_info->id);
|
|
$token_iinfo = DB::table('password_resets')->where(['email' => $user_info->email, 'token' => $request->token])->first();
|
|
if (!empty($token_iinfo)) {
|
|
$user->password = Hash::make($request->password);
|
|
$user->save();
|
|
return redirect()->route('admin.login')->with(['msg' => __('Password Changed Successfully'), 'type' => 'success']);
|
|
}
|
|
|
|
return redirect()->back()->with(['msg' => __('Somethings Going Wrong! Please Try Again or Check Your Old Password'), 'type' => 'danger']);
|
|
}
|
|
|
|
public function lang_change(Request $request)
|
|
{
|
|
session()->put('lang', $request->lang);
|
|
return redirect()->route('homepage');
|
|
}
|
|
|
|
|
|
public function services_single_page($slug)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$service_item = Services::where('slug', $slug)->first();
|
|
if (empty($service_item)){
|
|
abort(404);
|
|
}
|
|
$service_category = ServiceCategory::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$price_plan = !empty($service_item) && !empty($service_item->price_plan) ? PricePlan::find(unserialize($service_item->price_plan)) : '';
|
|
return view('frontend.pages.service.service-single')->with(['service_item' => $service_item, 'service_category' => $service_category, 'price_plan' => $price_plan]);
|
|
}
|
|
|
|
public function category_wise_services_page($id, $any)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$category_name = ServiceCategory::find($id)->name;
|
|
if(empty($category_name)){
|
|
abort('404');
|
|
}
|
|
$service_item = Services::where(['categories_id' => $id, 'lang' => $lang])->paginate(6);
|
|
return view('frontend.pages.service.service-category')->with(['service_items' => $service_item, 'category_name' => $category_name]);
|
|
}
|
|
|
|
public function work_single_page($slug)
|
|
{
|
|
$work_item = Works::where('slug', $slug)->first();
|
|
if (empty($work_item)){
|
|
abort(404);
|
|
}
|
|
$all_works = [];
|
|
$all_related_works = [];
|
|
foreach ($work_item->categories_id as $cat) {
|
|
$all_by_cat = Works::where(['lang' => get_user_lang()])->where('categories_id', 'LIKE', '%' . $work_item->$cat . '%')->take(6)->get();
|
|
for ($i = 0; $i < count($all_by_cat); $i++) {
|
|
array_push($all_works, $all_by_cat[$i]);
|
|
}
|
|
}
|
|
array_unique($all_works);
|
|
return view('frontend.pages.work.work-single')->with(['work_item' => $work_item, 'related_works' => $all_works]);
|
|
}
|
|
|
|
public function about_page()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_brand_logo = Brand::all();
|
|
$all_team_members = TeamMember::where('lang', $lang)->orderBy('id', 'desc')->take(get_static_option('about_page_team_member_item'))->get();
|
|
$all_testimonial = Testimonial::where('lang', $lang)->orderBy('id', 'desc')->take(get_static_option('about_page_testimonial_item'))->get();
|
|
$all_key_features = KeyFeatures::where('lang', $lang)->get();
|
|
return view('frontend.pages.about')->with([
|
|
'all_brand_logo' => $all_brand_logo,
|
|
'all_team_members' => $all_team_members,
|
|
'all_testimonial' => $all_testimonial,
|
|
'all_key_features' => $all_key_features,
|
|
]);
|
|
}
|
|
|
|
public function service_page()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_services = Services::where('lang', $lang)->orderBy('sr_order', 'asc')->paginate(get_static_option('service_page_service_items'));
|
|
return view('frontend.pages.service.services')->with(['all_services' => $all_services]);
|
|
}
|
|
|
|
public function work_page()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_work = Works::where(['lang' => $lang])->orderBy('id', 'desc')->paginate(12);
|
|
|
|
$all_contain_cat = [];
|
|
foreach ($all_work as $work) {
|
|
$all_contain_cat[] = $work->categories_id;
|
|
}
|
|
$all_work_category = WorksCategory::find(array_unique(array_flatten($all_contain_cat)));
|
|
|
|
return view('frontend.pages.work.work')->with(['all_work' => $all_work, 'all_work_category' => $all_work_category]);
|
|
}
|
|
|
|
|
|
public function team_page()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_team_members = TeamMember::where('lang', $lang)->orderBy('id', 'desc')->paginate(12);
|
|
|
|
return view('frontend.pages.team-page')->with(['all_team_members' => $all_team_members]);
|
|
}
|
|
|
|
public function faq_page()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_faq = Faq::where(['lang' => $lang, 'status' => 'publish'])->get();
|
|
return view('frontend.pages.faq-page')->with([
|
|
'all_faqs' => $all_faq
|
|
]);
|
|
}
|
|
|
|
public function contact_page()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_contact_info = ContactInfoItem::where('lang', $lang)->get();
|
|
return view('frontend.pages.contact-page')->with([
|
|
'all_contact_info' => $all_contact_info
|
|
]);
|
|
}
|
|
|
|
public function plan_order($id)
|
|
{
|
|
$order_details = PricePlan::findOrFail($id);
|
|
|
|
return view('frontend.pages.package.order-page')->with([
|
|
'order_details' => $order_details
|
|
]);
|
|
}
|
|
|
|
|
|
public function static_payment_cancel_page()
|
|
{
|
|
return view('frontend.payment.static-payment-cancel');
|
|
}
|
|
|
|
|
|
public function request_quote()
|
|
{
|
|
return view('frontend.pages.quote-page');
|
|
}
|
|
|
|
public function subscribe_newsletter(Request $request)
|
|
{
|
|
$this->validate($request, [
|
|
'email' => 'required|string|email|max:191|unique:newsletters'
|
|
],
|
|
[
|
|
'required' => __('Enter Valid Email'),
|
|
'unique' => __('This Email Already Registered'),
|
|
]);
|
|
Newsletter::create($request->all());
|
|
return response()->json(__('Thanks for Subscribe Our Newsletter'));
|
|
}
|
|
|
|
public function category_wise_works_page($id)
|
|
{
|
|
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$category = WorksCategory::findOrFail($id);
|
|
if (empty($category)) {
|
|
return redirect_404_page();
|
|
}
|
|
$all_works = Works::where(['lang' => $lang, 'status' => 'publish'])->where('categories_id', 'LIKE', '%' . $id . '%')->paginate(12);
|
|
$category_name = $category->name;
|
|
|
|
return view('frontend.pages.work.work-category')->with(['all_work' => $all_works, 'category_name' => $category_name]);
|
|
|
|
}
|
|
|
|
|
|
public function price_plan_page()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_price_plan = PricePlan::where(['lang' => $lang])->get()->groupBy('categories_id');
|
|
return view('frontend.pages.price-plan')->with(['all_price_plan' => $all_price_plan]);
|
|
}
|
|
|
|
public function order_confirm($id)
|
|
{
|
|
$order_details = Order::findOrFail($id);
|
|
return view('frontend.payment.order-confirm')->with(['order_details' => $order_details]);
|
|
}
|
|
|
|
public function booking_confirm($id)
|
|
{
|
|
$attendance_details = EventAttendance::findOrFail($id);
|
|
return view('frontend.payment.booking-confirm')->with(['attendance_details' => $attendance_details]);
|
|
}
|
|
|
|
public function event_payment_success($id)
|
|
{
|
|
$extract_id = substr($id, 6);
|
|
$extract_id = substr($extract_id, 0, -6);
|
|
$attendance_details = EventAttendance::find($extract_id);
|
|
if (empty($attendance_details)) {
|
|
return view('frontend.pages.404');
|
|
}
|
|
$payment_log = EventPaymentLogs::where('attendance_id', $attendance_details->id)->first();
|
|
$event_details = Events::find($attendance_details->event_id);
|
|
|
|
return view('frontend.pages.events.attendance-success')->with([
|
|
'attendance_details' => $attendance_details,
|
|
'payment_log' => $payment_log,
|
|
'event_details' => $event_details,
|
|
]);
|
|
}
|
|
|
|
public function event_payment_cancel($id)
|
|
{
|
|
$attendance_details = EventAttendance::findOrFail($id);
|
|
return view('frontend.pages.events.attendance-cancel')->with(['attendance_details' => $attendance_details]);
|
|
}
|
|
|
|
public function order_payment_success($id)
|
|
{
|
|
$extract_id = substr($id, 6);
|
|
$extract_id = substr($extract_id, 0, -6);
|
|
$order_details = Order::findOrFail($extract_id);
|
|
|
|
if (empty($order_details)) {
|
|
return view('frontend.pages.404');
|
|
}
|
|
$package_details = PricePlan::find($order_details->package_id);
|
|
$payment_details = PaymentLogs::where('order_id', $extract_id)->first();
|
|
return view('frontend.payment.payment-success')->with(
|
|
[
|
|
'order_details' => $order_details,
|
|
'package_details' => $package_details,
|
|
'payment_details' => $payment_details,
|
|
]);
|
|
}
|
|
|
|
public function order_payment_cancel($id)
|
|
{
|
|
$order_details = Order::findOrFail($id);
|
|
return view('frontend.payment.payment-cancel')->with(['order_details' => $order_details]);
|
|
}
|
|
|
|
//donation
|
|
public function donations()
|
|
{
|
|
$all_donations = Donation::where(['status' => 'publish', 'lang' => get_user_lang()])->orderBy('id', 'desc')->paginate(get_static_option('donor_page_post_items'));
|
|
|
|
return view('frontend.pages.donations.donation')->with([
|
|
'all_donations' => $all_donations
|
|
]);
|
|
}
|
|
|
|
public function donations_single($slug)
|
|
{
|
|
$donation = Donation::where('slug', $slug)->first();
|
|
if (empty($donation)) {
|
|
return redirect_404_page();
|
|
}
|
|
$all_donations = DonationLogs::where(['status' => 'complete', 'donation_id' => $donation->id])->orderBy('id', 'desc')->paginate(5);
|
|
return view('frontend.pages.donations.donation-single')->with([
|
|
'all_donations' => $all_donations,
|
|
'donation' => $donation,
|
|
]);
|
|
}
|
|
|
|
//jobs
|
|
public function jobs()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_jobs = Jobs::where(['status' => 'publish', 'lang' => $lang])->orderBy('id', 'desc')->paginate(get_static_option('site_job_post_items'));
|
|
$all_job_category = JobsCategory::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
return view('frontend.pages.jobs.jobs')->with([
|
|
'all_jobs' => $all_jobs,
|
|
'all_job_category' => $all_job_category,
|
|
]);
|
|
}
|
|
|
|
public function jobs_category($id, $any)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_jobs = Jobs::where(['status' => 'publish', 'lang' => $lang, 'category_id' => $id])->orderBy('id', 'desc')->paginate(get_static_option('site_job_post_items'));
|
|
if (empty($all_jobs)){
|
|
abort(404);
|
|
}
|
|
$all_job_category = JobsCategory::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$category_name = JobsCategory::find($id)->title;
|
|
return view('frontend.pages.jobs.jobs-category')->with([
|
|
'all_jobs' => $all_jobs,
|
|
'all_job_category' => $all_job_category,
|
|
'category_name' => $category_name,
|
|
]);
|
|
}
|
|
|
|
public function jobs_search(Request $request)
|
|
{
|
|
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_jobs = Jobs::where(['status' => 'publish', 'lang' => $lang])->where('title', 'LIKE', '%' . $request->search . '%')->paginate(get_static_option('site_job_post_items'));
|
|
$all_job_category = JobsCategory::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$search_term = $request->search;
|
|
|
|
return view('frontend.pages.jobs.jobs-search')->with([
|
|
'all_jobs' => $all_jobs,
|
|
'all_job_category' => $all_job_category,
|
|
'search_term' => $search_term,
|
|
]);
|
|
}
|
|
|
|
public function jobs_single($slug)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$job = Jobs::where('slug', $slug)->first();
|
|
if (empty($job)) {
|
|
abort(404);
|
|
}
|
|
$all_job_category = JobsCategory::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
return view('frontend.pages.jobs.jobs-single')->with([
|
|
'job' => $job,
|
|
'all_job_category' => $all_job_category
|
|
]);
|
|
}
|
|
|
|
public function jobs_apply($id)
|
|
{
|
|
$job = Jobs::findOrFail($id);
|
|
|
|
return view('frontend.pages.jobs.jobs-apply')->with([
|
|
'job' => $job
|
|
]);
|
|
}
|
|
|
|
//products
|
|
public function products(Request $request)
|
|
{
|
|
$lang = LanguageHelper::user_lang_slug();
|
|
$selected_rating = $request->rating ? $request->rating : '';
|
|
$query = Products::query();
|
|
if ($selected_rating) {
|
|
$product_ids = [];
|
|
$all_products_id = ProductRatings::where('ratings', '>=', $selected_rating)->get('product_id');
|
|
foreach ($all_products_id as $product_id) {
|
|
$product_ids[] = $product_id->product_id;
|
|
}
|
|
$query->find(array_unique($product_ids));
|
|
}
|
|
$query->where(['status' => 'publish', 'lang' => $lang]);
|
|
$maximum_available_price = Products::max('sale_price');
|
|
$all_category = ProductCategory::with('subcategory')->where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$selected_category = $request->cat_id ? $request->cat_id : '';
|
|
$selected_subcategory = $request->subcat_id ? $request->subcat_id : '';
|
|
$search_term = $request->q ? $request->q : '';
|
|
$selected_order = $request->orderby ? $request->orderby : 'default';
|
|
|
|
if ($selected_category) {
|
|
$query->where(['category_id' => $selected_category]);
|
|
}
|
|
if ($selected_subcategory) {
|
|
$query->where(['subcategory_id' => $selected_subcategory]);
|
|
}
|
|
|
|
$min_price = $request->min_price ? $request->min_price : 0;
|
|
$max_price = $request->max_price ? $request->max_price : $maximum_available_price;
|
|
if ($min_price && $min_price > 0) {
|
|
$query->where('sale_price', '>=', $min_price);
|
|
}
|
|
|
|
if ($max_price) {
|
|
$query->where('sale_price', '<=', $max_price);
|
|
}
|
|
if ($search_term) {
|
|
$query->where('title', 'LIKE', '%' . $search_term . '%');
|
|
}
|
|
if ($selected_order == 'old') {
|
|
$query->orderBy('id', 'ASC');
|
|
} elseif ($selected_order == 'high_low') {
|
|
$query->orderBy('sale_price', 'DESC');
|
|
} elseif ($selected_order == 'low_high') {
|
|
$query->orderBy('sale_price', 'ASC');
|
|
} else {
|
|
$query->orderBy('id', 'DESC');
|
|
}
|
|
$all_products = $query->paginate(get_static_option('product_post_items'));
|
|
|
|
return view('frontend.pages.products.products')->with([
|
|
'all_products' => $all_products,
|
|
'all_category' => $all_category,
|
|
'search_term' => $search_term,
|
|
'selected_rating' => $selected_rating,
|
|
'selected_order' => $selected_order,
|
|
'min_price' => $min_price,
|
|
'max_price' => $max_price,
|
|
'selected_category' => $selected_category,
|
|
'pages' => $request->pages,
|
|
'maximum_available_price' => $maximum_available_price,
|
|
'selected_subcategory' => $selected_subcategory,
|
|
]);
|
|
}
|
|
|
|
public function product_single($slug)
|
|
{
|
|
$product = Products::where('slug', $slug)->first();
|
|
if (empty($product)) {
|
|
abort(404);
|
|
}
|
|
$related_products = Products::where('category_id', $product->category_id)->get()->except($product->id)->take(4);
|
|
$average_ratings = ProductRatings::Where('product_id', $product->id)->pluck('ratings')->avg();
|
|
return view('frontend.pages.products.product-single')->with(
|
|
[
|
|
'product' => $product,
|
|
'related_products' => $related_products,
|
|
'average_ratings' => $average_ratings
|
|
]);
|
|
}
|
|
|
|
public function products_category($id, $any)
|
|
{
|
|
$all_products = Products::where(['status' => 'publish', 'category_id' => $id])->orderBy('id', 'desc')->paginate(get_static_option('product_post_items'));
|
|
$category_name = ProductCategory::find($id)->title;
|
|
if (empty($category_name)){
|
|
abort(404);
|
|
}
|
|
return view('frontend.pages.products.product-category')->with([
|
|
'all_products' => $all_products,
|
|
'category_name' => $category_name,
|
|
]);
|
|
}public function products_subcategory($id, $any)
|
|
{
|
|
$all_products = Products::where(['status' => 'publish', 'subcategory_id' => $id])->orderBy('id', 'desc')->paginate(get_static_option('product_post_items'));
|
|
$category_name = ProductSubCategory::find($id)->title;
|
|
if (empty($category_name)){
|
|
abort(404);
|
|
}
|
|
return view('frontend.pages.products.product-subcategory')->with([
|
|
'all_products' => $all_products,
|
|
'category_name' => $category_name,
|
|
]);
|
|
}
|
|
|
|
public function products_cart()
|
|
{
|
|
$all_cart_items = get_cart_items();
|
|
$all_shipping = ProductShipping::where(['lang' => get_default_language(), 'status' => 'publish'])->orderBy('order', 'ASC')->get();
|
|
return view('frontend.pages.products.product-cart')->with([
|
|
'all_cart_items' => $all_cart_items,
|
|
'all_shipping' => $all_shipping,
|
|
]);
|
|
}
|
|
|
|
public function products_wishlist()
|
|
{
|
|
$all_cart_items = get_cart_items();
|
|
$all_shipping = ProductShipping::where(['lang' => get_default_language(), 'status' => 'publish'])->orderBy('order', 'ASC')->get();
|
|
return view('frontend.pages.products.product-wishlist')->with([
|
|
'all_cart_items' => $all_cart_items,
|
|
'all_shipping' => $all_shipping,
|
|
]);
|
|
}
|
|
|
|
public function product_checkout()
|
|
{
|
|
return view('frontend.pages.products.product-checkout');
|
|
}
|
|
|
|
public function product_payment_success($id)
|
|
{
|
|
$extract_id = substr($id, 6);
|
|
$extract_id = substr($extract_id, 0, -6);
|
|
$order_details = ProductOrder::find($extract_id);
|
|
if (empty($order_details)) {
|
|
return redirect_404_page();
|
|
}
|
|
return view('frontend.pages.products.product-success')->with(['order_details' => $order_details]);
|
|
}
|
|
|
|
public function product_payment_cancel($id)
|
|
{
|
|
$order_details = ProductOrder::find($id);
|
|
if (empty($order_details)) {
|
|
return redirect_404_page();
|
|
}
|
|
return view('frontend.pages.products.product-cancel')->with(['order_details' => $order_details]);
|
|
}
|
|
|
|
public function product_ratings(Request $request)
|
|
{
|
|
$this->validate($request, [
|
|
'product_id' => 'required',
|
|
'ratings' => 'required',
|
|
'ratings_message' => 'nullable|string'
|
|
]);
|
|
|
|
$existing_rating = ProductRatings::where(['product_id' => $request->product_id, 'user_id' => auth()->user()->id])->first();
|
|
if (!empty($existing_rating)) {
|
|
return redirect()->back()->with(['msg' => __('You have already rated this product'), 'type' => 'danger']);
|
|
}
|
|
ProductRatings::create([
|
|
'ratings' => $request->ratings,
|
|
'message' => $request->ratings_message,
|
|
'product_id' => $request->product_id,
|
|
'user_id' => auth()->user()->id
|
|
]);
|
|
|
|
return redirect()->back()->with(['msg' => __('Thanks for your rating'), 'type' => 'success']);
|
|
}
|
|
|
|
//events
|
|
public function events()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_events = Events::where(['status' => 'publish', 'lang' => $lang])->orderBy('id', 'desc')->paginate(get_static_option('site_events_post_items'));
|
|
$all_event_category = EventsCategory::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
return view('frontend.pages.events.event')->with([
|
|
'all_events' => $all_events,
|
|
'all_event_category' => $all_event_category,
|
|
]);
|
|
}
|
|
|
|
public function events_category($id, $any)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_events = Events::where(['status' => 'publish', 'lang' => $lang, 'category_id' => $id])->orderBy('id', 'desc')->paginate(get_static_option('site_events_post_items'));
|
|
$all_events_category = EventsCategory::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$category_name = optional(EventsCategory::find($id))->title;
|
|
if (empty($category_name)){
|
|
abort(404);
|
|
}
|
|
|
|
return view('frontend.pages.events.event-category')->with([
|
|
'all_events' => $all_events,
|
|
'all_events_category' => $all_events_category,
|
|
'category_name' => $category_name,
|
|
]);
|
|
}
|
|
|
|
public function events_search(Request $request)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_events = Events::where(['status' => 'publish', 'lang' => $lang])->where('title', 'LIKE', '%' . $request->search . '%')->paginate(get_static_option('site_events_post_items'));
|
|
$all_events_category = EventsCategory::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$search_term = $request->search;
|
|
|
|
return view('frontend.pages.events.event-search')->with([
|
|
'all_events' => $all_events,
|
|
'all_event_category' => $all_events_category,
|
|
'search_term' => $search_term,
|
|
]);
|
|
}
|
|
|
|
public function events_single($slug)
|
|
{
|
|
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$event = Events::where('slug', $slug)->first();
|
|
if (empty($event)) {
|
|
return redirect_404_page();
|
|
}
|
|
$all_events_category = EventsCategory::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
return view('frontend.pages.events.event-single')->with([
|
|
'event' => $event,
|
|
'all_event_category' => $all_events_category
|
|
]);
|
|
}
|
|
|
|
public function event_booking($id)
|
|
{
|
|
$event = Events::find($id);
|
|
return view('frontend.pages.events.event-booking')->with([
|
|
'event' => $event
|
|
]);
|
|
}
|
|
|
|
//knowledgebase
|
|
public function knowledgebase()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_knowledgebase = Knowledgebase::where(['status' => 'publish', 'lang' => $lang])->paginate(get_static_option('site_knoeledgebase_post_items'))->groupby('topic_id');
|
|
$all_knowledgebase_category = KnowledgebaseTopic::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$popular_articles = Knowledgebase::where(['status' => 'publish', 'lang' => $lang])->orderBy('views', 'desc')->get()->take(5);
|
|
return view('frontend.pages.knowledgebase.knowledgebase')->with([
|
|
'all_knowledgebase' => $all_knowledgebase,
|
|
'popular_articles' => $popular_articles,
|
|
'all_knowledgebase_category' => $all_knowledgebase_category,
|
|
]);
|
|
}
|
|
|
|
public function knowledgebase_category($id, $any)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_knowledgebase = Knowledgebase::where(['status' => 'publish', 'lang' => $lang, 'topic_id' => $id])->orderBy('views', 'desc')->paginate(get_static_option('site_knowledgebase_post_items'));
|
|
|
|
if (empty($all_knowledgebase)){
|
|
abort(404);
|
|
}
|
|
$all_knowledgebase_category = KnowledgebaseTopic::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$popular_articles = Knowledgebase::where(['status' => 'publish', 'lang' => $lang])->orderBy('views', 'desc')->get()->take(5);
|
|
$category_name = KnowledgebaseTopic::find($id)->title;
|
|
return view('frontend.pages.knowledgebase.knowledgebase-category')->with([
|
|
'all_knowledgebase' => $all_knowledgebase,
|
|
'all_knowledgebase_category' => $all_knowledgebase_category,
|
|
'popular_articles' => $popular_articles,
|
|
'category_name' => $category_name,
|
|
]);
|
|
}
|
|
|
|
public function knowledgebase_search(Request $request)
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_knowledgebase = Knowledgebase::where(['status' => 'publish', 'lang' => $lang])->where('title', 'LIKE', '%' . $request->search . '%')->orderBy('views', 'desc')->paginate(get_static_option('site_knowledgebase_post_items'));
|
|
$all_knowledgebase_category = KnowledgebaseTopic::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$popular_articles = Knowledgebase::where(['status' => 'publish', 'lang' => $lang])->orderBy('views', 'desc')->get()->take(5);
|
|
$search_term = $request->search;
|
|
|
|
return view('frontend.pages.knowledgebase.knowledgebase-search')->with([
|
|
'all_knowledgebase' => $all_knowledgebase,
|
|
'all_knowledgebase_category' => $all_knowledgebase_category,
|
|
'popular_articles' => $popular_articles,
|
|
'search_term' => $search_term,
|
|
]);
|
|
}
|
|
|
|
public function knowledgebase_single($slug)
|
|
{
|
|
$knowledgebase = Knowledgebase::where('slug', $slug)->first();
|
|
if (empty($knowledgebase)) {
|
|
return redirect_404_page();
|
|
}
|
|
$old_views = is_null($knowledgebase->views) ? 0 : $knowledgebase->views + 1;
|
|
Knowledgebase::find($knowledgebase->id)->update(['views' => $old_views]);
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
|
|
$all_knowledgebase_category = KnowledgebaseTopic::where(['status' => 'publish', 'lang' => $lang])->get();
|
|
$popular_articles = Knowledgebase::where(['status' => 'publish', 'lang' => $lang])->orderBy('views', 'desc')->get()->take(5);
|
|
return view('frontend.pages.knowledgebase.knowledgebase-single')->with([
|
|
'knowledgebase' => $knowledgebase,
|
|
'all_knowledgebase_category' => $all_knowledgebase_category,
|
|
'popular_articles' => $popular_articles,
|
|
]);
|
|
}
|
|
|
|
|
|
public function showUserForgetPasswordForm()
|
|
{
|
|
return view('frontend.user.forget-password');
|
|
}
|
|
|
|
public function sendUserForgetPasswordMail(Request $request)
|
|
{
|
|
$this->validate($request, [
|
|
'username' => 'required|string:max:191'
|
|
]);
|
|
$user_info = User::where('username', $request->username)->orWhere('email', $request->username)->first();
|
|
if (!empty($user_info)) {
|
|
$token_id = Str::random(30);
|
|
$existing_token = DB::table('password_resets')->where('email', $user_info->email)->delete();
|
|
DB::table('password_resets')->insert(['email' => $user_info->email, 'token' => $token_id]);
|
|
|
|
|
|
//fetch email tempalte content from admin panel
|
|
$message_body = get_static_option('user_reset_password_' . LanguageHelper::default_slug() . '_message');
|
|
$reset_url = '<a class="btn" href="' . route('user.reset.password', ['user' => $user_info->username, 'token' => $token_id]) . '">' . __("Reset Password") . '</a>'."\n";
|
|
$message = str_replace(
|
|
[
|
|
'@username',
|
|
'@name',
|
|
'@reset_url'
|
|
],
|
|
[
|
|
$user_info->username,
|
|
$user_info->name,
|
|
$reset_url
|
|
], $message_body);
|
|
|
|
$data = [
|
|
'username' => $user_info->username,
|
|
'message_content' => $message
|
|
];
|
|
|
|
try {
|
|
Mail::to($user_info->email)->send(new AdminResetEmail($data));
|
|
}catch (\Exception $e){
|
|
return back()->with(NexelitHelpers::item_delete($e->getMessage()));
|
|
}
|
|
|
|
return redirect()->back()->with([
|
|
'msg' => __('Check Your Mail For Reset Password Link'),
|
|
'type' => 'success'
|
|
]);
|
|
}
|
|
return redirect()->back()->with([
|
|
'msg' => __('Your Username or Email Is Wrong!!!'),
|
|
'type' => 'danger'
|
|
]);
|
|
}
|
|
|
|
public function showUserResetPasswordForm($username, $token)
|
|
{
|
|
return view('frontend.user.reset-password')->with([
|
|
'username' => $username,
|
|
'token' => $token
|
|
]);
|
|
}
|
|
|
|
public function UserResetPassword(Request $request)
|
|
{
|
|
$this->validate($request, [
|
|
'token' => 'required',
|
|
'username' => 'required',
|
|
'password' => 'required|string|min:8|confirmed'
|
|
]);
|
|
$user_info = User::where('username', $request->username)->first();
|
|
$user = User::findOrFail($user_info->id);
|
|
$token_iinfo = DB::table('password_resets')->where(['email' => $user_info->email, 'token' => $request->token])->first();
|
|
if (!is_null($token_iinfo)) {
|
|
$user->password = Hash::make($request->password);
|
|
$user->save();
|
|
return redirect()->route('user.login')->with(['msg' => __('Password Changed Successfully'), 'type' => 'success']);
|
|
}
|
|
|
|
return redirect()->back()->with(['msg' => __('Somethings Going Wrong! Please Try Again'), 'type' => 'danger']);
|
|
}
|
|
|
|
public function donation_payment_success($id)
|
|
{
|
|
$extract_id = substr($id, 6);
|
|
$extract_id = substr($extract_id, 0, -6);
|
|
$donation_logs = DonationLogs::find($extract_id);
|
|
if (empty($donation_logs)) {
|
|
return redirect_404_page();
|
|
}
|
|
$donation = Donation::find($donation_logs->donation_id);
|
|
return view('frontend.pages.donations.donation-success')->with(['donation_logs' => $donation_logs, 'donation' => $donation]);
|
|
}
|
|
|
|
public function donation_payment_cancel($id)
|
|
{
|
|
$donation_logs = DonationLogs::find($id);
|
|
if (empty($donation_logs)) {
|
|
return redirect_404_page();
|
|
}
|
|
return view('frontend.pages.donations.donation-cancel')->with(['donation_logs' => $donation_logs]);
|
|
}
|
|
|
|
public function generate_invoice(Request $request)
|
|
{
|
|
$order_details = ProductOrder::find($request->order_id);
|
|
if (empty($order_details)) {
|
|
return redirect_404_page();
|
|
}
|
|
$pdf = PDF::loadView('backend.products.pdf.order', ['order_details' => $order_details]);
|
|
return $pdf->download('product-order-invoice.pdf');
|
|
}
|
|
|
|
public function generate_donation_invoice(Request $request)
|
|
{
|
|
$donation_details = DonationLogs::find($request->id);
|
|
if (empty($donation_details)) {
|
|
return redirect_404_page();
|
|
}
|
|
$pdf = PDF::loadView('invoice.donation', ['donation_details' => $donation_details]);
|
|
return $pdf->download('donation-invoice.pdf');
|
|
}
|
|
|
|
public function generate_event_invoice(Request $request)
|
|
{
|
|
$attendance_details = EventAttendance::find($request->id);
|
|
if (empty($attendance_details)) {
|
|
return redirect_404_page();
|
|
}
|
|
$payment_log = EventPaymentLogs::where(['attendance_id' => $request->id])->first();
|
|
$pdf = PDF::loadView('invoice.event-attendance', ['attendance_details' => $attendance_details, 'payment_log' => $payment_log]);
|
|
return $pdf->download('event-attendance-invoice.pdf');
|
|
}
|
|
|
|
public function generate_package_invoice(Request $request)
|
|
{
|
|
$payment_details = PaymentLogs::where(['order_id' => $request->id])->first();
|
|
$order_details = Order::where(['id' => $request->id])->first();
|
|
if (empty($order_details)) {
|
|
return redirect_404_page();
|
|
}
|
|
$pdf = PDF::loadView('invoice.package-order', ['order_details' => $order_details, 'payment_details' => $payment_details]);
|
|
return $pdf->download('package-invoice.pdf');
|
|
}
|
|
|
|
public function testimonials()
|
|
{
|
|
$default_lang = Language::where('default', 1)->first();
|
|
$lang = !empty(session()->get('lang')) ? session()->get('lang') : $default_lang->slug;
|
|
$all_testimonials = Testimonial::where('lang', $lang)->paginate(6);
|
|
return view('frontend.pages.testimonial-page')->with(['all_testimonials' => $all_testimonials]);
|
|
}
|
|
|
|
public function feedback_page()
|
|
{
|
|
return view('frontend.pages.feedback-page');
|
|
}
|
|
|
|
public function clients_feedback_page()
|
|
{
|
|
$all_feedback = Feedback::all();
|
|
return view('frontend.pages.clients-feedback')->with(['all_feedback' => $all_feedback]);
|
|
}
|
|
public function video_gallery_page()
|
|
{
|
|
$order = get_static_option('site_video_gallery_order') ?? 'DESC';
|
|
$order_by = get_static_option('site_video_gallery_order_by') ?? 'id';
|
|
$all_gallery_images = VideoGallery::where(['status' => 'publish'])->orderBy($order_by, $order)->paginate(get_static_option('site_video_gallery_post_items'));
|
|
|
|
return view('frontend.pages.video-gallery')->with(['all_gallery_videos' => $all_gallery_images]);
|
|
}
|
|
|
|
public function image_gallery_page()
|
|
{
|
|
$order = !empty(get_static_option('site_image_gallery_order')) ? get_static_option('site_image_gallery_order') : 'DESC';
|
|
$order_by = !empty(get_static_option('site_image_gallery_order_by')) ? get_static_option('site_image_gallery_order_by') : 'id';
|
|
$all_gallery_images = ImageGallery::where(['lang' => get_user_lang()])->orderBy($order_by, $order)->paginate(get_static_option('site_image_gallery_post_items'));
|
|
$all_contain_cat = [];
|
|
foreach ($all_gallery_images as $work) {
|
|
$all_contain_cat[] = $work->cat_id;
|
|
}
|
|
$all_category = ImageGalleryCategory::find($all_contain_cat);
|
|
return view('frontend.pages.image-gallery')->with(['all_gallery_images' => $all_gallery_images, 'all_category' => $all_category]);
|
|
}
|
|
|
|
|
|
public function ajax_login(Request $request)
|
|
{
|
|
$this->validate($request, [
|
|
'username' => 'required|string',
|
|
'password' => 'required|min:6'
|
|
], [
|
|
'username.required' => __('username required'),
|
|
'password.required' => __('password required'),
|
|
'password.min' => __('password length must be 6 characters')
|
|
]);
|
|
|
|
if (Auth::guard('web')->attempt(['username' => $request->username, 'password' => $request->password], $request->get('remember'))) {
|
|
return response()->json([
|
|
'msg' => __('login Success Redirecting'),
|
|
'type' => 'danger',
|
|
'status' => 'valid'
|
|
]);
|
|
}
|
|
return response()->json([
|
|
'msg' => __('Username Or Password Doest Not Matched !!!'),
|
|
'type' => 'danger',
|
|
'status' => 'invalid'
|
|
]);
|
|
}
|
|
|
|
public function job_payment_cancel($id)
|
|
{
|
|
$extract_id = substr($id, 6);
|
|
$extract_id = substr($extract_id, 0, -6);
|
|
$applicant_details = JobApplicant::find($extract_id);
|
|
$job_details = Jobs::find($applicant_details->jobs_id);
|
|
if (empty($applicant_details)) {
|
|
return redirect_404_page();
|
|
}
|
|
return view('frontend.pages.jobs.job-cancel')->with(['applicant_details' => $applicant_details, 'job_details' => $job_details]);
|
|
}
|
|
|
|
public function job_payment_success($id)
|
|
{
|
|
$extract_id = substr($id, 6);
|
|
$extract_id = substr($extract_id, 0, -6);
|
|
$applicant_details = JobApplicant::find($extract_id);
|
|
if (empty($applicant_details)) {
|
|
return redirect_404_page();
|
|
}
|
|
$job_details = Jobs::find($applicant_details->jobs_id);
|
|
return view('frontend.pages.jobs.job-success')->with(['applicant_details' => $applicant_details, 'job_details' => $job_details]);
|
|
}
|
|
|
|
public function subscriber_verify(Request $request){
|
|
Newsletter::where('token',$request->token)->update([
|
|
'verified' => 1
|
|
]);
|
|
return view('frontend.thankyou');
|
|
}
|
|
public function donor_list()
|
|
{
|
|
$all_donation_log = DonationLogs::where('status', 'complete')->get();
|
|
return view('frontend.pages.donor-list')->with(['all_donation_log' => $all_donation_log]);
|
|
}
|
|
|
|
|
|
public function product_download(Request $request,$id){
|
|
$product_details = Products::find($id);
|
|
if (!is_null($product_details)){
|
|
//check this user purchased this item or not
|
|
if (file_exists('assets/uploads/downloadable/'.$product_details->downloadable_file)){
|
|
$temp_file = asset('assets/uploads/downloadable/'.$product_details->downloadable_file);
|
|
$file_extensions = pathinfo($temp_file,PATHINFO_EXTENSION);
|
|
$file = new Filesystem();
|
|
$file->copy($temp_file, 'assets/uploads/downloadable/'.\Str::slug($product_details->title).'.'.$file_extensions);
|
|
return response()->download('assets/uploads/downloadable/'.\Str::slug($product_details->title).'.'.$file_extensions)->deleteFileAfterSend(true);
|
|
}
|
|
}
|
|
|
|
return back()->with(['msg' => __('file download success'),'type' => 'success']);
|
|
}
|
|
|
|
public function home_advertisement_click_store(Request $request)
|
|
{
|
|
Advertisement::where('id',$request->id)->increment('click');
|
|
return response()->json('success');
|
|
}
|
|
|
|
public function home_advertisement_impression_store(Request $request)
|
|
{
|
|
Advertisement::where('id',$request->id)->increment('impression');
|
|
return response()->json('success');
|
|
}
|
|
}//end class
|