ctrlpanel/app/Providers/AppServiceProvider.php

111 lines
3.5 KiB
PHP
Raw Permalink Normal View History

2021-06-05 09:26:32 +00:00
<?php
namespace App\Providers;
2023-01-25 21:32:59 +00:00
use App\Models\UsefulLink;
2023-05-08 12:01:02 +00:00
use App\Settings\GeneralSettings;
2023-02-07 15:35:04 +00:00
use App\Settings\MailSettings;
use Exception;
2021-06-05 09:26:32 +00:00
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Log;
2021-06-05 09:26:32 +00:00
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\Validator;
2021-06-05 09:26:32 +00:00
use Illuminate\Support\ServiceProvider;
2023-05-08 12:01:02 +00:00
use Qirolab\Theme\Theme;
2023-03-04 14:13:14 +00:00
2021-06-05 09:26:32 +00:00
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Paginator::useBootstrap();
Schema::defaultStringLength(191);
Validator::extend('multiple_date_format', function ($attribute, $value, $parameters, $validator) {
$ok = true;
$result = [];
// iterate through all formats
foreach ($parameters as $parameter) {
//validate with laravels standard date format validation
$result[] = $validator->validateDateFormat($attribute, $value, [$parameter]);
}
//if none of result array is true. it sets ok to false
if (!in_array(true, $result)) {
$ok = false;
$validator->setCustomMessages(['multiple_date_format' => 'The format must be one of ' . implode(',', $parameters)]);
}
return $ok;
});
2022-01-24 11:12:50 +00:00
// Force HTTPS if APP_URL is set to https
if (config('app.url') && parse_url(config('app.url'), PHP_URL_SCHEME) === 'https') {
URL::forceScheme('https');
}
2023-05-05 10:01:57 +00:00
//get the Github Branch the panel is running on
try {
$stringfromfile = file(base_path() . '/.git/HEAD');
$firstLine = $stringfromfile[0]; //get the string from the array
$explodedstring = explode('/', $firstLine, 3); //seperate out by the "/" in the string
$branchname = $explodedstring[2]; //get the one that is always the branch name
} catch (Exception $e) {
$branchname = 'unknown';
Log::notice($e);
}
config(['BRANCHNAME' => $branchname]);
// Do not run this code if no APP_KEY is set
if (config('app.key') == null) return;
2023-01-26 22:26:00 +00:00
try {
if (Schema::hasColumn('useful_links', 'position')) {
$useful_links = UsefulLink::where("position", "like", "%topbar%")->get()->sortby("id");
view()->share('useful_links', $useful_links);
}
} catch (Exception $e) {
Log::error("Couldnt find useful_links. Probably the installation is not completet. " . $e);
2023-01-25 21:32:59 +00:00
}
2023-05-08 12:01:02 +00:00
try {
$generalSettings = $this->app->make(GeneralSettings::class);
if (!file_exists(base_path('themes') . "/" . $generalSettings->theme)) {
$generalSettings->theme = "default";
}
if ($generalSettings->theme && $generalSettings->theme !== config('theme.active')) {
Theme::set($generalSettings->theme, "default");
} else {
Theme::set("default", "default");
}
2023-05-05 10:00:10 +00:00
$settings = $this->app->make(MailSettings::class);
$settings->setConfig();
} catch (Exception $e) {
Log::error("Couldnt load Settings. Probably the installation is not completet. " . $e);
}
2021-06-05 09:26:32 +00:00
}
}