cms-token/@core/app/Http/Controllers/AdminDashboardController.php

417 lines
16 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Appointment;
use App\AppointmentBooking;
use App\Course;
use App\CourseEnroll;
use App\Admin;
use App\Brand;
use App\Donation;
use App\DonationLogs;
use App\EventAttendance;
use App\EventPaymentLogs;
use App\Events;
use App\Facades\EmailTemplate;
use App\Faq;
use App\Helpers\CsvReader;
use App\Helpers\NexelitHelpers;
use App\Jobs;
use App\Language;
use App\Mail\BasicMail;
use App\Mail\ProductOrder;
use App\MediaUpload;
use App\Newsletter;
use App\Order;
use App\Products;
use App\Services;
use App\Blog;
use App\ContactInfoItem;
use App\Counterup;
use App\KeyFeatures;
use App\PricePlan;
use App\SocialIcons;
use App\TeamMember;
use App\Testimonial;
use App\Works;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;
use Intervention\Image\Facades\Image;
use Symfony\Component\Process\Process;
class AdminDashboardController extends Controller
{
public function __construct()
{
$this->middleware('auth:admin');
}
public function adminIndex()
{
$default_lang = get_default_language();
$all_blogs = Blog::where('lang', $default_lang)->count();
$total_admin = Admin::count();
$total_testimonial = Testimonial::where('lang', $default_lang)->count();
$total_team_member = TeamMember::where('lang', $default_lang)->count();
$total_counterup = Counterup::where('lang', $default_lang)->count();
$total_price_plan = PricePlan::where('lang', $default_lang)->count();
$total_services = Services::where('lang', $default_lang)->count();
$total_key_features = KeyFeatures::where('lang', $default_lang)->count();
$total_works = Works::where('lang', $default_lang)->count();
$total_jobs = Jobs::where('lang', $default_lang)->count();
$total_events = Events::where('lang', $default_lang)->count();
$total_donations = Donation::where('lang', $default_lang)->count();
$total_products = Products::where('lang', $default_lang)->count();
$total_Faq = Faq::where('lang', $default_lang)->count();
$total_brand = Brand::all()->count();
$total_product_order = \App\ProductOrder::all()->count();
$total_donated_log = DonationLogs::where('status','complete')->count();
$total_event_attendance = EventAttendance::where('status','complete')->count();
$total_courses = Course::count();
$total_courses_enroll = CourseEnroll::where('payment_status' ,'complete')->count();
$total_appointments = Appointment::count();
$total_appointment_booking = AppointmentBooking::where('payment_status' ,'complete')->count();
//recent 5 order of product order
$product_recent_order = \App\ProductOrder::orderBy('id','desc')->take(5)->get();
$package_recent_order = Order::orderBy('id','desc')->take(5)->get();
$event_attendance_recent_order = EventAttendance::orderBy('id','desc')->take(5)->get();
$donation_recent = DonationLogs::orderBy('id','desc')->take(5)->get();
$this->update_script_info();
return view('backend.admin-home')->with([
'blog_count' => $all_blogs,
'total_admin' => $total_admin,
'total_price_plan' => $total_price_plan,
'total_works' => $total_works,
'total_services' => $total_services,
'total_jobs' => $total_jobs,
'total_events' => $total_events,
'total_donations' => $total_donations,
'total_products' => $total_products,
'total_donated_log' => $total_donated_log,
'total_product_order' => $total_product_order,
'total_event_attendance' => $total_event_attendance,
'product_recent_order' => $product_recent_order,
'package_recent_order' => $package_recent_order,
'event_attendance_recent_order' => $event_attendance_recent_order,
'donation_recent' => $donation_recent,
'total_courses' => $total_courses,
'total_courses_enroll' => $total_courses_enroll,
'total_appointments' => $total_appointments,
'total_appointment_booking' => $total_appointment_booking,
]);
}
private function update_script_info(){
update_static_option('site_install_path',url('/'));
update_static_option('site_admin_path',route('admin.home'));
update_static_option('site_frontend_path',route('homepage'));
\Illuminate\Support\Facades\Cache::forget('site_script_version');
setEnvValue([
'XGENIOUS_NEXELIT_VERSION' => get_static_option('site_script_version')
]);
update_static_option('site_script_unique_key',getenv('XGENIOUS_API_KEY'));
}
public function admin_settings()
{
return view('auth.admin.settings');
}
public function admin_profile_update(Request $request)
{
$this->validate($request, [
'name' => 'required|string|max:191',
'email' => 'required|email|max:191',
'username' => 'required|string|max:191',
'image' => 'nullable|string|max:191'
]);
Admin::find(Auth::user()->id)->update(['name' => $request->name, 'email' => $request->email, 'username' => str_replace(' ', '_', $request->username), 'image' => $request->image]);
return redirect()->back()->with(['msg' => __('Profile Update Success'), 'type' => 'success']);
}
public function admin_password_chagne(Request $request)
{
$this->validate($request, [
'old_password' => 'required|string',
'password' => 'required|string|min:8|confirmed'
]);
$user = Admin::findOrFail(Auth::id());
if (Hash::check($request->old_password, $user->password)) {
$user->password = Hash::make($request->password);
$user->save();
Auth::logout();
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 adminLogout()
{
Auth::logout();
return redirect()->route('admin.login')->with(['msg' => __('You Logged Out !!'), 'type' => 'danger']);
}
public function admin_profile()
{
return view('auth.admin.edit-profile');
}
public function admin_password()
{
return view('auth.admin.change-password');
}
public function contact()
{
$all_contact_info_items = ContactInfoItem::all();
return view('backend.pages.contact')->with([
'all_contact_info_item' => $all_contact_info_items
]);
}
public function update_contact(Request $request)
{
$this->validate($request, [
'page_title' => 'required|string|max:191',
'get_title' => 'required|string|max:191',
'get_description' => 'required|string',
'latitude' => 'required',
'longitude' => 'required',
]);
update_static_option('contact_page_title', $request->page_title);
update_static_option('contact_page_get_title', $request->get_title);
update_static_option('contact_page_get_description', $request->get_description);
update_static_option('contact_page_latitude', $request->latitude);
update_static_option('contact_page_longitude', $request->longitude);
return redirect()->back()->with(['msg' => __('Contact Page Info Update Success'), 'type' => 'success']);
}
public function blog_page()
{
$all_languages = Language::all();
return view('backend.pages.blog')->with(['all_languages' => $all_languages]);
}
public function blog_page_update(Request $request)
{
$all_language = Language::all();
foreach ($all_language as $lang) {
$this->validate($request, [
'blog_page_' . $lang->slug . '_title' => 'nullable',
'blog_page_' . $lang->slug . '_item' => 'nullable',
'blog_page_' . $lang->slug . '_category_widget_title' => 'nullable',
'blog_page_' . $lang->slug . '_recent_post_widget_title' => 'nullable',
'blog_page_' . $lang->slug . '_recent_post_widget_item' => 'nullable',
]);
$fields = [
'blog_page_' . $lang->slug . '_title',
'blog_page_' . $lang->slug . '_item',
'blog_page_' . $lang->slug . '_category_widget_title',
'blog_page_' . $lang->slug . '_recent_post_widget_title',
'blog_page_' . $lang->slug . '_recent_post_widget_item'
];
foreach ($fields as $field){
update_static_option($field, $request->$field);
}
}
return redirect()->back()->with(['msg' => __('Blog Settings Update Success'), 'type' => 'success']);
}
public function home_variant()
{
return view('backend.pages.home.home-variant');
}
public function update_home_variant(Request $request)
{
$this->validate($request, [
'home_page_variant' => 'required|string'
]);
update_static_option('home_page_variant', $request->home_page_variant);
return redirect()->back()->with(['msg' => __('Home Variant Settings Updated..'), 'type' => 'success']);
}
public function admin_set_static_option(Request $request)
{
$this->validate($request,[
'static_option' => 'required|string',
'static_option_value' => 'required|string',
]);
set_static_option($request->static_option,$request->static_option_value);
return 'ok';
}
public function admin_get_static_option(Request $request)
{
$this->validate($request,[
'static_option' => 'required|string'
]);
$data = get_static_option($request->static_option);
return response()->json($data);
}
public function admin_update_static_option(Request $request)
{
$this->validate($request,[
'static_option' => 'required|string',
'static_option_value' => 'required|string',
]);
update_static_option($request->static_option,$request->static_option_value);
return 'ok';
}
public function navbar_settings(){
return view('backend.pages.navbar-settings');
}
public function breadcrumb_settings(){
return view('backend.pages.breadcrumb-settings');
}
public function update_breadcrumb_settings(Request $request){
$this->validate($request,[
'site_breadcrumb_bg' => 'nullable'
]);
$fields = [
'site_breadcrumb_bg',
'breadcrumb_background_overlay_color',
'breadcrumb_title_color',
'breadcrumb_text_color',
'breadcrumb_text_active_color',
'breadcrumb_padding_top',
'breadcrumb_padding_bottom',
];
foreach($fields as $field){
update_static_option($field,$request->$field);
}
return redirect()->back()->with(NexelitHelpers::item_update());
}
public function update_navbar_settings(Request $request){
$this->validate($request,[
'navbar_variant' => 'required'
]);
update_static_option('navbar_variant',$request->navbar_variant);
update_static_option('navbar_search_icon_status',$request->navbar_search_icon_status);
return redirect()->back()->with(NexelitHelpers::item_update());
}
public function update_navbar_color_settings(Request $request){
$this->validate($request,[
'navbar_background_color' => 'nullable|string|max:191',
'navbar_text_color' => 'nullable|string|max:191',
'navbar_text_hover_color' => 'nullable|string|max:191',
'navbar_dropdown_background_color' => 'nullable|string|max:191',
'navbar_dropdown_hover_text_color' => 'nullable|string|max:191',
'navbar_dropdown_hover_background_color' => 'nullable|string|max:191',
'topbar_button_background_hover_color' => 'nullable|string|max:191',
'topbar_button_text_hover_color' => 'nullable|string|max:191',
'topbar_button_text_color' => 'nullable|string|max:191',
'topbar_button_background_color' => 'nullable|string|max:191',
'topbar_text_hover_color' => 'nullable|string|max:191',
'topbar_text_color' => 'nullable|string|max:191',
'topbar_background_color' => 'nullable|string|max:191',
'navbar_dropdown_text_color' => 'nullable|string|max:191',
'navbar_dropdown_border_bottom_color' => 'nullable|string|max:191',
'mega_menu_background_color' => 'nullable|string|max:191',
]);
$fields = [
'navbar_background_color',
'navbar_text_color',
'navbar_text_hover_color',
'navbar_dropdown_background_color',
'navbar_dropdown_hover_text_color',
'navbar_dropdown_hover_background_color',
'topbar_button_background_hover_color',
'topbar_button_text_hover_color',
'topbar_button_text_color',
'topbar_button_background_color',
'topbar_text_hover_color',
'topbar_text_color',
'topbar_background_color',
'navbar_dropdown_text_color',
'navbar_dropdown_border_bottom_color',
'navbar_cart_background_color',
'navbar_cart_text_color',
'mega_menu_background_color',
'mega_menu_text_color',
'mega_menu_title_color',
'mega_menu_text_hover_color',
'mega_menu_button_background_color',
'mega_menu_button_text_color',
'mega_menu_button_text_hover_color',
'mega_menu_button_background_hover_color',
'navbar_cart_background_color',
'topbar_info_title_color',
'topbar_info_icon_color',
'navbar_search_icon_status',
];
foreach ($fields as $field){
update_static_option($field,$request->$field);
}
return redirect()->back()->with(NexelitHelpers::item_update());
}
public function footer_settings(){
return view('backend.pages.footer-color-settings');
}
public function update_footer_settings(Request $request){
$this->validate($request,[
'footer_widget_title_color' => 'nullable|string|max:191',
'footer_widget_text_color' => 'nullable|string|max:191',
'footer_widget_text_hover_color' => 'nullable|string|max:191',
'footer_widget_icon_color' => 'nullable|string|max:191',
'footer_copyright_area_background_color' => 'nullable|string|max:191',
'footer_copyright_area_text_color' => 'nullable|string|max:191',
'footer_background_color' => 'nullable|string|max:191'
]);
$fields = [
'footer_widget_title_color',
'footer_widget_text_color',
'footer_widget_text_hover_color',
'footer_widget_icon_color',
'footer_copyright_area_background_color',
'footer_copyright_area_text_color',
'footer_background_color',
];
foreach ($fields as $field){
update_static_option($field,$request->$field);
}
return redirect()->back()->with(NexelitHelpers::item_update());
}
}