<?php
namespace CCDN\Helpers;
use CCDN\Helpers\Entities\Config;
use CCDN\Helpers\Facade\Cache;
use CCDN\Helpers\Facade\DB\Model;
/**
* Class Config
* This config class for CCDN plugin for DLE
*
* @package CCDN\Helpers
*/
class Settings
{
const PLUGIN_VERSION = '1.4.36';
const PLUGIN_NAME = 'CCDN';
const DEFAULT_CHUNK_LENGTH = 100;
const SETTINGS_TABLE = PREFIX.'_ccdn_settings';
/**
* PATH CONSTANTS
*/
const PLUGIN_PATH = ENGINE_DIR.'/inc/CCDN';
const ASSETS_PATH = ENGINE_DIR.'/skins/ccdn';
const LOG_PATH = self::PLUGIN_PATH.'/logs';
const VIEWS_PATH = self::PLUGIN_PATH.'/views/';
/**
* URL CONSTANTS
*/
const ASSETS_URL = 'engine/skins/ccdn/';
/**
* List of original voice acting
*/
const ORIGINAL_VOICE_ACTING_LIST = [
"Original",
"Serbian Original",
"Latvian Original",
"Finnish Original",
"Hebrew Original",
"Port. Original",
"Indones. Original",
"Per. Original",
"Dansk Original",
"Kaz.Original",
"Pols.Original",
"Norsk.Original",
"China.Original",
"Svens.Original",
"Dutch Original",
"Putonghua Original",
"Cantonese Original",
"Turk.Original",
"Hindi Original",
"Hungarian Original",
"Fr. Original",
"Korean. Original",
"Spanish Original",
"German Original",
"Japan Original",
"Ital. Original",
"Eng.Original",
];
/**
* Get all settings from DataBase and create from that config class
*
* @return Config
*/
public static function all()
{
$table = self::SETTINGS_TABLE;
$config = Model::select("SELECT * FROM {$table}", true);
return new Config($config);
}
/**
* Get settings from DataBase
*
* @param string $key
*
* @param int $ttl
* @return string|null
*/
public static function get($key, $ttl = 300)
{
if (Cache::has($key)) {
return Cache::get($key);
}
$table = self::SETTINGS_TABLE;
$result = Model::select("SELECT `value` FROM {$table} WHERE `key`='{$key}'");
if (!isset($result['value']) || $result['value'] === '') {
return null;
}
Cache::set($key, $result['value'], $ttl);
return $result['value'];
}
}