adding themes system

This commit is contained in:
Ibnu Maksum 2023-10-12 16:15:50 +07:00
parent a1d9b63dcf
commit 747e28e07c
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5
6 changed files with 56 additions and 5 deletions

3
.gitignore vendored
View File

@ -26,3 +26,6 @@ system/uploads/sms/**
!system/uploads/sms/index.html
system/uploads/system/**
!system/uploads/system/index.html
ui/themes/**
!ui/themes/index.html
!ui/themes/README.md

View File

@ -81,4 +81,9 @@ class Lang
return $_notifmsg_default[$key];
}
}
public static function ucWords($text)
{
return ucwords(str_replace('_', ' ', $text));
}
}

View File

@ -128,9 +128,18 @@ function _notify($msg, $type = 'e')
}
$lan_file = File::pathFixer('system/lan/' . $config['language'] . '/common.lan.php');
require($lan_file);
require $lan_file;
$ui = new Smarty();
if (!empty($config['theme']) && $config['theme'] != 'default') {
$_theme = APP_URL . '/ui/theme/' . $config['theme'];
$ui->setTemplateDir(['custom' => File::pathFixer('ui/ui_custom/'), 'theme' => $_theme, 'default' => File::pathFixer('ui/ui/')]);
} else {
$_theme = APP_URL . '/ui/ui';
$ui->setTemplateDir(['custom' => File::pathFixer('ui/ui_custom/'), 'default' => File::pathFixer('ui/ui/')]);
}
$ui->assign('_theme', $_theme);
$ui->addTemplateDir(File::pathFixer('system/paymentgateway/ui/'), 'pg');
$ui->addTemplateDir(File::pathFixer('system/plugin/ui/'), 'plugin');
$ui->setCompileDir(File::pathFixer('ui/compiled/'));

View File

@ -30,6 +30,14 @@ switch ($action) {
//ignore
}
}
$themes = [];
$files = scandir('ui/themes/');
foreach ($files as $file) {
if (is_dir('ui/themes/' . $file) && !in_array($file, ['.', '..'])) {
$themes[] = $file;
}
}
$ui->assign('themes', $themes);
run_hook('view_app_settings'); #HOOK
$ui->display('app-settings.tpl');
break;
@ -46,7 +54,6 @@ switch ($action) {
}
}
$ui->assign('lan', $folders);
$timezonelist = Timezone::timezoneList();
$ui->assign('tlist', $timezonelist);
$ui->assign('xjq', ' $("#tzone").select2(); ');
@ -242,6 +249,7 @@ switch ($action) {
$http_proxyauth = _post('http_proxyauth');
$radius_enable = _post('radius_enable');
$radius_client = _post('radius_client');
$theme = _post('theme');
run_hook('save_settings'); #HOOK
@ -289,6 +297,18 @@ switch ($action) {
$d->save();
}
$d = ORM::for_table('tbl_appconfig')->where('setting', 'theme')->find_one();
if ($d) {
$d->value = $theme;
$d->save();
} else {
$d = ORM::for_table('tbl_appconfig')->create();
$d->setting = 'theme';
$d->value = $theme;
$d->save();
}
$d = ORM::for_table('tbl_appconfig')->where('setting', 'CompanyFooter')->find_one();
if ($d) {
$d->value = $footer;

3
ui/themes/README.md Normal file
View File

@ -0,0 +1,3 @@
# Themes Folder
Folder name must only alphanumeric characters and underscores _**my_theme**_ will show as _**My Theme**_

View File

@ -53,6 +53,17 @@
<input type="text" class="form-control" id="phone" name="phone" value="{$_c['phone']}">
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Theme</label>
<div class="col-md-6">
<select name="theme" id="theme" class="form-control">
<option value="default" {if $_c['theme'] eq 'default'}selected="selected" {/if}>Default</option>
{foreach $themes as $theme}
<option value="{$theme}" {if $_c['theme'] eq $theme}selected="selected" {/if}>{Lang::ucWords($theme)}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Disable Voucher')}</label>
<div class="col-md-6">