This commit is contained in:
2025-10-04 11:46:59 +07:00
commit 97427d7cff
498 changed files with 47596 additions and 0 deletions

208
inc/Hura8/System/Config.php Normal file
View File

@@ -0,0 +1,208 @@
<?php
namespace Hura8\System;
use Hura8\Traits\ClassCacheTrait;
class Config
{
use ClassCacheTrait;
public static function getRequestLanguage() : string {
return static::getCache("getRequestLanguage", function () {
$lang = $_REQUEST[Constant::LANGUAGE_ID] ?? DEFAULT_LANGUAGE;
return (array_key_exists($lang , Constant::languagePermitList())) ? $lang : DEFAULT_LANGUAGE;
});
}
public static function getClientInfo() {
return static::getCache("getClientInfo", function () {
$config_file = CONFIG_DIR . '/client/client.info.php';
if(file_exists($config_file)) {
return include $config_file;
}
return [];
});
}
public static function getProductHotTypeList(){
return static::getCache('getProductHotTypeList', function (){
$config_file = CONFIG_DIR . "/client/product.hottype.php";
if(!file_exists($config_file)) {
die("File: client/product.hottype.php not exist !");
}
return include $config_file;
});
}
public static function getRoutes() {
return static::getCache("getRoutes", function () {
$config_file = CONFIG_DIR . '/client/routing_main.php';
if(!file_exists($config_file)) {
die("File not exist: config/client/routing_main.php");
}
return include $config_file;
});
}
public static function getEntityLanguageFields() {
return static::getCache("getEntityLanguageFields", function () {
$config_file = CONFIG_DIR . '/client/language_fields.php';
if(!file_exists($config_file)) {
die("File not exist: config/client/language_fields.php");
}
return include $config_file;
});
}
public static function getSettingsEmail() {
return static::getCache("getSettingsEmail", function () {
$system_config_file = CONFIG_DIR . '/system/settings.email.php';
if(!file_exists($system_config_file)) {
die("File not exist: config/system/settings.email.php");
}
$system_config = include $system_config_file;
// client extension
$client_config_file = CONFIG_DIR . '/client/settings.email-extend.php';
$client_config = [];
if(file_exists($client_config_file)) {
$client_config = include $client_config_file;
}
$final_config = $system_config;
if(isset($client_config['email'])) {
$final_config['email'] = array_merge($final_config['email'], $client_config['email']);
}
if(isset($client_config['template'])) {
$final_config['template'] = array_merge($final_config['template'], $client_config['template']);
}
return $final_config;
});
}
public static function getSettingsPrint() {
return static::getCache("getSettingsPrint", function () {
$config_file = CONFIG_DIR . '/system/settings.print.php';
if (!file_exists($config_file)) {
// die("File not exist: config/system/settings.print.php");
return [];
}
return include $config_file;
});
}
public static function getRelationConfigForItem($item_type) {
return static::getCache("getRelationConfigForItem-".$item_type, function () use ($item_type) {
$config_relation_file = ROOT_DIR . '/config/client/config_relation.php';
if(!file_exists($config_relation_file)) {
die("config/client/config_relation.php does not exist!");
}
$system_relation_file = ROOT_DIR . '/config/system/relation_config.php';
if(!file_exists($system_relation_file)) {
die("config/system/relation_config.php does not exist!");
}
$config_relation = include $config_relation_file;
$available_content = include $system_relation_file;
if(isset($config_relation[$item_type])) {
$config = array();
foreach ($config_relation[$item_type] as $type) {
if(isset($available_content[$type])) $config[$type] = $available_content[$type];
}
return $config;
}
return [];
});
}
public static function getProductImageTypes(){
$config_image_type_file = ROOT_DIR . "/config/client/config_product_image_types.php";
if(!file_exists($config_image_type_file)){
return [
'standard' => 'Hình sản phẩm',
];
}
return include $config_image_type_file;
}
public static function getProductUnitList() {
return static::getCache("getProductUnitList", function (){
$config_file = CONFIG_DIR . "/client/product.unit.php";
if(file_exists($config_file)) {
return include $config_file;
}
return [];
});
}
public static function getLanguageCount(){
$language_list = static::getLanguageConfig();
$count = sizeof($language_list);
return ($count > 1) ? $count : 1; //always have at least 1 language
}
public static function getLanguageConfig(){
return static::getCache('getLanguageConfig', function (){
$config_file = CONFIG_DIR . "/client/language_enable.php";
if(!file_exists($config_file)) {
return [];
}
return include $config_file;
});
}
public static function getClientBuildConfig() {
return static::getCache("getClientBuildConfig", function (){
$config_file = CONFIG_DIR . '/build/store.config.php';
if(file_exists($config_file)) {
return include $config_file;
}
return [];
});
}
}