141 lines
7.1 KiB
PHP
141 lines
7.1 KiB
PHP
<?php // Code within app\Helpers\Helper.php
|
|
|
|
namespace App\Helpers;
|
|
|
|
use App\Models\Setting;
|
|
use Config;
|
|
use Illuminate\Support\Str;
|
|
|
|
class Helpers
|
|
{
|
|
public static function applClasses()
|
|
{
|
|
// default data array
|
|
$DefaultData = [
|
|
'mainLayoutType' => 'vertical',
|
|
'theme' => 'light',
|
|
'sidebarCollapsed' => false,
|
|
'navbarColor' => '',
|
|
'horizontalMenuType' => 'floating',
|
|
'verticalMenuNavbarType' => 'floating',
|
|
'footerType' => 'static', //footer
|
|
'layoutWidth' => 'boxed',
|
|
'showMenu' => true,
|
|
'bodyClass' => '',
|
|
'pageClass' => '',
|
|
'pageHeader' => true,
|
|
'contentLayout' => 'default',
|
|
'blankPage' => false,
|
|
'defaultLanguage' => 'en',
|
|
'direction' => env('MIX_CONTENT_DIRECTION', 'ltr'),
|
|
];
|
|
|
|
// if any key missing of array from custom.php file it will be merge and set a default value from dataDefault array and store in data variable
|
|
$data = array_merge($DefaultData, config('custom.custom'));
|
|
|
|
// All options available in the template
|
|
$allOptions = [
|
|
'mainLayoutType' => array('vertical', 'horizontal'),
|
|
'theme' => array('light' => 'light', 'dark' => 'dark-layout', 'bordered' => 'bordered-layout', 'semi-dark' => 'semi-dark-layout'),
|
|
'sidebarCollapsed' => array(true, false),
|
|
'showMenu' => array(true, false),
|
|
'layoutWidth' => array('full', 'boxed'),
|
|
'navbarColor' => array('bg-primary', 'bg-info', 'bg-warning', 'bg-success', 'bg-danger', 'bg-dark'),
|
|
'horizontalMenuType' => array('floating' => 'navbar-floating', 'static' => 'navbar-static', 'sticky' => 'navbar-sticky'),
|
|
'horizontalMenuClass' => array('static' => '', 'sticky' => 'fixed-top', 'floating' => 'floating-nav'),
|
|
'verticalMenuNavbarType' => array('floating' => 'navbar-floating', 'static' => 'navbar-static', 'sticky' => 'navbar-sticky', 'hidden' => 'navbar-hidden'),
|
|
'navbarClass' => array('floating' => 'floating-nav', 'static' => 'navbar-static-top', 'sticky' => 'fixed-top', 'hidden' => 'd-none'),
|
|
'footerType' => array('static' => 'footer-static', 'sticky' => 'footer-fixed', 'hidden' => 'footer-hidden'),
|
|
'pageHeader' => array(true, false),
|
|
'contentLayout' => array('default', 'content-left-sidebar', 'content-right-sidebar', 'content-detached-left-sidebar', 'content-detached-right-sidebar'),
|
|
'blankPage' => array(false, true),
|
|
'sidebarPositionClass' => array('content-left-sidebar' => 'sidebar-left', 'content-right-sidebar' => 'sidebar-right', 'content-detached-left-sidebar' => 'sidebar-detached sidebar-left', 'content-detached-right-sidebar' => 'sidebar-detached sidebar-right', 'default' => 'default-sidebar-position'),
|
|
'contentsidebarClass' => array('content-left-sidebar' => 'content-right', 'content-right-sidebar' => 'content-left', 'content-detached-left-sidebar' => 'content-detached content-right', 'content-detached-right-sidebar' => 'content-detached content-left', 'default' => 'default-sidebar'),
|
|
'defaultLanguage' => array('en' => 'en', 'fr' => 'fr', 'de' => 'de', 'pt' => 'pt'),
|
|
'direction' => array('ltr', 'rtl'),
|
|
];
|
|
|
|
//if mainLayoutType value empty or not match with default options in custom.php config file then set a default value
|
|
foreach ($allOptions as $key => $value) {
|
|
if (array_key_exists($key, $DefaultData)) {
|
|
if (gettype($DefaultData[$key]) === gettype($data[$key])) {
|
|
// data key should be string
|
|
if (is_string($data[$key])) {
|
|
// data key should not be empty
|
|
if (isset($data[$key]) && $data[$key] !== null) {
|
|
// data key should not be exist inside allOptions array's sub array
|
|
if (!array_key_exists($data[$key], $value)) {
|
|
// ensure that passed value should be match with any of allOptions array value
|
|
$result = array_search($data[$key], $value, 'strict');
|
|
if (empty($result) && $result !== 0) {
|
|
$data[$key] = $DefaultData[$key];
|
|
}
|
|
}
|
|
} else {
|
|
// if data key not set or
|
|
$data[$key] = $DefaultData[$key];
|
|
}
|
|
}
|
|
} else {
|
|
$data[$key] = $DefaultData[$key];
|
|
}
|
|
}
|
|
}
|
|
|
|
//layout classes
|
|
$layoutClasses = [
|
|
'theme' => $data['theme'],
|
|
'layoutTheme' => $allOptions['theme'][$data['theme']],
|
|
'sidebarCollapsed' => $data['sidebarCollapsed'],
|
|
'showMenu' => $data['showMenu'],
|
|
'layoutWidth' => $data['layoutWidth'],
|
|
'verticalMenuNavbarType' => $allOptions['verticalMenuNavbarType'][$data['verticalMenuNavbarType']],
|
|
'navbarClass' => $allOptions['navbarClass'][$data['verticalMenuNavbarType']],
|
|
'navbarColor' => $data['navbarColor'],
|
|
'horizontalMenuType' => $allOptions['horizontalMenuType'][$data['horizontalMenuType']],
|
|
'horizontalMenuClass' => $allOptions['horizontalMenuClass'][$data['horizontalMenuType']],
|
|
'footerType' => $allOptions['footerType'][$data['footerType']],
|
|
'sidebarClass' => '',
|
|
'bodyClass' => $data['bodyClass'],
|
|
'pageClass' => $data['pageClass'],
|
|
'pageHeader' => $data['pageHeader'],
|
|
'blankPage' => $data['blankPage'],
|
|
'blankPageClass' => '',
|
|
'contentLayout' => $data['contentLayout'],
|
|
'sidebarPositionClass' => $allOptions['sidebarPositionClass'][$data['contentLayout']],
|
|
'contentsidebarClass' => $allOptions['contentsidebarClass'][$data['contentLayout']],
|
|
'mainLayoutType' => $data['mainLayoutType'],
|
|
'defaultLanguage' => $allOptions['defaultLanguage'][$data['defaultLanguage']],
|
|
'direction' => $data['direction'],
|
|
];
|
|
// set default language if session hasn't locale value the set default language
|
|
if (!session()->has('locale')) {
|
|
app()->setLocale($layoutClasses['defaultLanguage']);
|
|
}
|
|
|
|
// sidebar Collapsed
|
|
if ($layoutClasses['sidebarCollapsed'] == 'true') {
|
|
$layoutClasses['sidebarClass'] = "menu-collapsed";
|
|
}
|
|
|
|
// blank page class
|
|
if ($layoutClasses['blankPage'] == 'true') {
|
|
$layoutClasses['blankPageClass'] = "blank-page";
|
|
}
|
|
|
|
return $layoutClasses;
|
|
}
|
|
|
|
public static function updatePageConfig($pageConfigs)
|
|
{
|
|
$demo = 'custom';
|
|
if (isset($pageConfigs)) {
|
|
if (count($pageConfigs) > 0) {
|
|
foreach ($pageConfigs as $config => $val) {
|
|
Config::set('custom.' . $demo . '.' . $config, $val);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|