63 lines
2.1 KiB
PHP
63 lines
2.1 KiB
PHP
<?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);
|
||
}
|
||
} |