Files
2025-12-24 19:19:01 +03:00

81 lines
2.3 KiB
PHP

<?php
defined( 'ROOT_DIR' ) || exit;
// Страницы настройки движка
$b->admin_page_set("content", "settings", "Настройки", array(), "bive_settings_page", false, "settings");
$b->admin_page_set("settings", "main_settings","Основные", array(), "bive_settings_page");
function bive_get_settings_template_path(): string
{
return "bive-admin-panel/template/settings/settings.php";
}
function bive_settings_page()
{
global $b;
$b->template_load(bive_get_settings_template_path(), array("settings_list" => array("bive_site_name")));
}
// Сохранение настроек
$b->event_add("settings_save", "bive_settings_save");
function bive_settings_save($args)
{
global $b;
foreach ($args as $arg => $value) $b->setting_set($arg, $value);
$b->alerts_add("Данные успешно сохранены.", "info", "admin_item");
if($args["b_wingman"]) {
$admin_page = $b->ls_get_key("admin_page");
$b->admin_page_render($admin_page, true);
exit();
}
$b->router_refresh();
exit();
}
// Поля для настроек
$b->setting_register("bive_site_name", "Название сайта", "plain_text");
class SettingPage {
public array $settings_list = array();
public string $parent_slug;
public string $page_slug;
public string $page_title;
public array $params = array();
public bool $hide = false;
public bool $icon = false;
public function __construct($parent_slug, $page_slug, $page_title, $params = array(), $hide = false, $icon = false)
{
$this->parent_slug = $parent_slug;
$this->page_slug = $page_slug;
$this->page_title = $page_title;
$this->params = $params;
$this->hide = $hide;
$this->icon = $icon;
}
public function func(): Closure {
$settings_list = $this->settings_list;
return function () use ($settings_list) {
global $b;
$b->template_load(bive_get_settings_template_path(), array("settings_list" => $settings_list));
};
}
public function add(string $setting_id){
$this->settings_list[] = $setting_id;
}
public function create(){
global $b;
$b->admin_page_set($this->parent_slug, $this->page_slug, $this->page_title, $this->params, $this->func(), $this->hide, $this->icon);
}
}