Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
admin_panel
/
app
/
Providers
:
ViewServiceProvider.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Providers; use App\Models\Gallery; use App\Models\Package; use App\Models\School; use App\Models\User; use App\Services\CachingService; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider; use stdClass; class ViewServiceProvider extends ServiceProvider { /** * Register services. * * @return void */ public function register() { // } /** * Bootstrap services. * * @return void */ public function boot() { $galleries = ''; $teachers = ''; $schoolSettings = ''; $school = ''; // Get school domain $fullDomain = $_SERVER['HTTP_HOST'] ?? ''; $parts = explode('.', $fullDomain); $subdomain = $parts[0]; $demoSchoolUrl = ''; try { $cache = app(CachingService::class); view()->composer('*', function ($view) use ($cache) { $user = auth()->user(); $schoolId = null; if ($user) { // if user has school_id column $schoolId = $user->school_id ?? null; } if ($schoolId) { $originalDateFormat = $cache->getSchoolSettings('date_format', $schoolId) ? $cache->getSchoolSettings('date_format', $schoolId) : 'Y-m-d'; $originalTimeFormat = $cache->getSchoolSettings('time_format', $schoolId) ? $cache->getSchoolSettings('time_format', $schoolId) : 'H:i:s'; $view->with('originalDateFormat', $originalDateFormat == [] ? 'Y-m-d' : $originalDateFormat); $view->with('originalTimeFormat', $originalTimeFormat == [] ? 'H:i:s' : $originalTimeFormat); // dd($originalDateFormat); } else { try { $originalDateFormat = $cache->getSystemSettings('date_format') ?? 'Y-m-d'; $originalTimeFormat = $cache->getSystemSettings('time_format') ?? 'H:i:s'; $view->with('originalDateFormat', $originalDateFormat == [] ? 'Y-m-d' : $originalDateFormat); $view->with('originalTimeFormat', $originalTimeFormat == [] ? 'H:i:s' : $originalTimeFormat); } catch (\Throwable $th) { $view->with('originalDateFormat', 'Y-m-d'); $view->with('originalTimeFormat', 'H:i:s'); } } // Share variable with all views }); $demoDomain = School::where('type', 'demo')->pluck('domain')->first(); if ($demoDomain) { $baseUrl = url('/'); $baseUrlParts = parse_url($baseUrl); $host = $baseUrlParts['host']; $host = str_replace("www.", "", $host); $hostParts = explode('.', $host); // Check if it's a subdomain or main domain if (count($hostParts) > 2) { $hostParts[0] = $demoDomain; } else { array_unshift($hostParts, $demoDomain); } $newHost = implode('.', $hostParts); $demoSchoolUrl = $baseUrlParts['scheme'] . '://' . $newHost; if (!empty($baseUrlParts['port'])) { $demoSchoolUrl .= ':' . $baseUrlParts['port']; } if (!empty($baseUrlParts['path'])) { $demoSchoolUrl .= $baseUrlParts['path']; } } } catch (\Throwable $th) { } try { // remove www from both fullDomain and subdomain $fullDomain = str_replace('www.', '', $fullDomain); $subdomain = str_replace('www.', '', $subdomain); $school = School::on('mysql')->with('user')->where('domain', $fullDomain)->orwhere('domain', $subdomain)->where('installed', 1)->first(); } catch (\Throwable $th) { } if ($school) { DB::setDefaultConnection('school'); Config::set('database.connections.school.database', $school->database_name); DB::purge('school'); DB::connection('school')->reconnect(); DB::setDefaultConnection('school'); View::share('originalDateFormat', $cache->getSchoolSettings('date_format', $school->id) ?? 'Y-m-d'); View::share('originalTimeFormat', $cache->getSchoolSettings('time_format', $school->id) ?? 'H:i:s'); $teachers = User::where('school_id', $school->id)->role('Teacher')->select('id', 'first_name', 'last_name', 'image')->with('staff')->get(); $schoolSettings = $cache->getSchoolSettings('*', $school->id); if (isset($schoolSettings['our_mission_points'])) { $schoolSettings['our_mission_points'] = explode(",", $schoolSettings['our_mission_points']); } $galleries = Gallery::where('school_id', $school->id)->with('file')->withCount([ 'file' => function ($q) { $q->where('type', 2); } ])->where('session_year_id', $schoolSettings['session_year'] ?? 1)->get(); } /*** Header File ***/ View::composer('layouts.header', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); $view->with('languages', $cache->getLanguages()); if (!empty(Auth::user()->school_id)) { $view->with('sessionYears', $cache->getAllSessionYears()); $sessionYear = $cache->getSessionYear(); $view->with('sessionYear', $sessionYear); $view->with('defaultSessionYear', $cache->getDefaultSessionYear()); $view->with('schoolSettings', $cache->getSchoolSettings()); // Get available semesters for the current viewing session year $view->with('semesters', $cache->getSemestersBySessionYear($sessionYear->id)); // Get the currently selected semester (from session or default) $view->with('semester', $cache->getSemester()); } }); /*** Include File ***/ View::composer('layouts.include', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); if (!empty(Auth::user()->school_id)) { $view->with('schoolSettings', $cache->getSchoolSettings()); } }); View::composer('auth.login', static function (\Illuminate\View\View $view) use ($cache, $schoolSettings, $school) { $view->with('schoolSettings', $schoolSettings); $view->with('systemSettings', $cache->getSystemSettings()); $view->with('school', $school); }); View::composer('auth.2fa', static function (\Illuminate\View\View $view) use ($cache, $schoolSettings, $school) { $view->with('schoolSettings', $schoolSettings); $view->with('systemSettings', $cache->getSystemSettings()); $view->with('school', $school); }); /*** Email ***/ View::composer('auth.passwords.email', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); }); View::composer('auth.passwords.reset', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); }); View::composer('auth.login', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); $trail_package = Package::where('is_trial', 1)->first(); if ($trail_package) { $trail_package = $trail_package->id; } $view->with('trail_package', $trail_package); }); View::composer('home', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); }); View::composer('layouts.home_page.master', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); if (!empty(Auth::user()->school_id)) { $view->with('schoolSettings', $cache->getSchoolSettings()); } }); View::composer('layouts.master', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); }); View::composer('layouts.school.master', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); }); View::composer('layouts.school.header', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); $view->with('languages', $cache->getLanguages()); }); View::composer('layouts.sidebar', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); }); /*** Footer File ***/ View::composer('layouts.footer_js', static function (\Illuminate\View\View $view) use ($cache) { $view->with('systemSettings', $cache->getSystemSettings()); if (!empty(Auth::user()->school_id)) { $view->with('schoolSettings', $cache->getSchoolSettings()); } }); /*** School website ***/ View::composer('school-website.*', static function (\Illuminate\View\View $view) use ($cache, $galleries, $teachers, $schoolSettings, $school) { // if ($school) { // $schoolSettings = $cache->getSchoolSettings('*',$school->id); // if (isset($schoolSettings['our_mission_points'])) { // $schoolSettings['our_mission_points'] = explode(",",$schoolSettings['our_mission_points']); // } // $view->with('schoolSettings', $schoolSettings); // } $view->with('schoolSettings', $schoolSettings); $view->with('school', $school); $view->with('teachers', $teachers); $view->with('galleries', $galleries); $view->with('systemSettings', $cache->getSystemSettings()); $view->with('languages', $cache->getLanguages()); }); } }