Initial commit
This commit is contained in:
63
engine/Main/trait.settings.php
Normal file
63
engine/Main/trait.settings.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
// Работа с настройками BiveEngine
|
||||
|
||||
defined('ROOT_DIR') || exit;
|
||||
|
||||
trait Settings {
|
||||
public array $setting_list = array();
|
||||
|
||||
public function setting_register($setting_key, $title, $field_key): string
|
||||
{
|
||||
$this->setting_list[$setting_key] = array("title" => $title, "field_key" => $field_key);
|
||||
return $setting_key;
|
||||
}
|
||||
|
||||
public function setting_get($setting_key)
|
||||
{
|
||||
$keys = $this->db_query("SELECT `value` FROM `bive_settings` WHERE `setting_key` = ?", array($setting_key), true);
|
||||
if(!isset($keys[0])) return false;
|
||||
return $keys[0]["value"];
|
||||
}
|
||||
|
||||
public function setting_get_value($setting_key)
|
||||
{
|
||||
$value = $this->setting_get($setting_key);
|
||||
if($value === false) return false;
|
||||
|
||||
$field_key = $this->setting_get_field($setting_key);
|
||||
if($field_key === false) return false;
|
||||
|
||||
return $this->field_render_value($field_key, $setting_key, $value);
|
||||
}
|
||||
|
||||
public function setting_get_field($setting_key)
|
||||
{
|
||||
if(!isset($this->setting_list[$setting_key])) return false;
|
||||
return $this->setting_list[$setting_key]["field_key"];
|
||||
}
|
||||
|
||||
public function setting_get_title($setting_key)
|
||||
{
|
||||
if(!isset($this->setting_list[$setting_key])) return false;
|
||||
return $this->setting_list[$setting_key]["title"];
|
||||
}
|
||||
|
||||
public function setting_set($setting_key, $value): bool
|
||||
{
|
||||
$field_key = $this->setting_get_field($setting_key);
|
||||
if(!$field_key) return false;
|
||||
|
||||
$old_value = $this->setting_get($setting_key);
|
||||
$value = $this->field_render_db_value($field_key, $setting_key, $value, $old_value);
|
||||
|
||||
if($old_value === false) return $this->setting_add($setting_key, $value);
|
||||
$this->db_query("UPDATE `bive_settings` SET `value` = ? WHERE `setting_key` = ?", array($value, $setting_key), true);
|
||||
return true;
|
||||
}
|
||||
|
||||
public function setting_add($setting_key, $value)
|
||||
{
|
||||
return $this->db_insert("INSERT INTO `bive_settings`(`setting_key`, `value`) VALUES (?, ?)", array($setting_key, $value), true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user