首页>建站相关>typecho让后台设置的代码更为易读

typecho让后台设置的代码更为易读

利用deepseek写一个简单的后台控件类,来简化一下后台的书写,利用这个类,我们可以把参数以数组的形式组装在一起,由类来轮询读取并生成控件。

一个简单的后台实现类

if (!class_exists('Aug_Config')) {

    class Aug_Config {

        private $form;

        public function __construct($form) {
            $this->form = $form;
        }
    
        public function create_setting($items) {
            foreach ($items as $item) {
                $this->create_element($item);
            }
        }

        private function create_element($item) {
            // 基本参数提取
            $name = $item[0];
            $type = $item[1];
            $label = $item[2];
            $class = $item[3];
            $options = $item[4];
            $default = $item[5];
            $description = $item[6];
            $className = '\\Typecho\\Widget\\Helper\\Form\\Element\\' . $type;
            $element = new $className( $name, $options, $default, $label, $description );
            if (!empty($class)) {
                $currentClass = $element->getAttribute('class') ?? '';
                $element->setAttribute('class', trim("$currentClass $class"));
            }
            $this->form->addInput($element);
        }

    }

}

加上上面这个类之后,我们的后台设置页可以写成这样:

function themeConfig($form) {

    // 格式: [name, type, label, class, options, default, description]
    $settings = new Aug_Config($form);

    $settingsConfig = [
        [
            'Augfav',
            'Text',
            _t('站点 Favicon'),
            'aug-general',
            null,
            null,
            _t('显示在浏览器标签上的图标,仅支持 ico 或 png 格式,仅填写文件含后缀全名,图片请上传至主题 image 文件夹。')
        ],
        [
            'Augtongji',
            'Textarea',
            _t('站点统计'),
            'aug-general',
            null,
            null,
            _t('想知道站点的受访情况?亲可以在这里加入一段站点统计代码,统计代码一般由提供统计服务的站点给出,比如百度统计。')
        ],
        [
            'Augbanner',
            'Radio',
            _t('站点 Logo 展现形式'),
            'aug-general',
            [
                '0' => _t('仅文字'),
                '1' => _t('仅图片'),
                '2' => _t('图片+文字')
            ],
            '0',
            null
        ]
    ];
    
    $settings->create_setting($settingsConfig);
}

标签: typecho

移动端可扫我直达哦~

推荐阅读

typecho 2025-04-20

关于typecho主题的目录结构

wordpress的极简主题需要有两个文件,分别是index.php以及style.css,而在typecho中,因为主题的一些配置信息默认被放在了index.php而不是style.css文件中,所以直接往主题包里仍一个index....

建站相关 typecho

typecho 2025-04-20

从零开始做一个 Typecho 主题系列

Typecho是一款轻量级、高效的开源博客程序,由国内开发者团队开发维护。它采用PHP语言编写,支持MySQL、SQLite等多种数据库,安装包体积仅有500KB左右,运行时内存占用极低,却能提供出色的性能表现。这款博客程序最大的特点...

建站相关 typecho

typecho 2025-04-18

Typecho_Db 类以及各方法基础用例

Typecho_Db 是 Typecho 博客系统的数据库操作核心类,提供了数据库连接、查询构建和执行等功能。Typecho_Db 提供了简洁高效的数据库操作接口,是Typecho插件和主题开发中最常用的类之一。主要功能数据库连接管理...

建站相关 typecho

typecho 2025-04-16

typecho 1.2.1 给标签添加description说明文字

之前写过一篇为typecho标签添加说明字段的方法,对应的是typecho1.1版本,目前typecho的稳定版本是1.2.1, 因为服务器php版本较低,一直没有去尝试新版。这几天用小皮面板搭建了一个本地的php环境,终于是正经尝试...

建站相关 typecho

typecho 2025-04-11

Typecho博客系统中的config.inc.php文件

在 Typecho 博客系统中,config.inc.php 是一个核心配置文件,用于存储数据库连接信息和系统关键设置。它通常位于 Typecho 的安装根目录下,在安装过程中自动生成。Typecho 的安装包解压后并不包含这个文件,...

建站相关 typecho

typecho 2025-04-09

Typecho尝试获取主题的一些基础信息

在Typecho的主题一览里是利用了一个循环来遍历主题,遍历主题的时候可以通过activated参数来确定是否是当前主题,这样就可以利用官方提供的函数来获取主题信息了,缺点很明显,需要多使用一个循环,浪费资源。<?php \Wi...

建站相关 typecho

typecho 2025-04-02

typecho模板解析优先级

类似于wordpress ,Typecho的模板系统也遵循特定的优先级规则,当系统寻找模板文件时会按照以下顺序进行查找:模板文件查找优先级主题自定义模板 (最高优先级)usr/themes/[主题名]/[模板文件]例如:usr/the...

建站相关 typecho

typecho 2025-03-27

typecho如何实时更新被修改后的style.css文件

给新的站点“biib.top”加了个友情链接,顺便修改了一下主题的footer背景。但浏览器缓存了站点的css文件,修改后的效果并不实时生效。直接清除浏览器缓存是个简单粗暴的办法,问题在于这个效果也只是针对博主个人,用户可不会没事瞎清...

建站相关 typecho

typecho 2024-04-20

typecho根据标签的slug name信息判断是否输出免责声明

博主是从事机械行业的,工作过程中接触了很多二手老旧的设备,因为是二手设备,不缺胳膊少腿能正常运行已是难得,完善的说明书与售后服务想都不要想了。所以找设备的说明书成了一项附加的工作,总得让设备正常运行起来,偶尔设备有个小病小痛的,也不能...

建站相关 typecho

typecho 2023-11-02

Typecho开发文档-Widget设计文档

什么是WidgetWidget是组成Typecho的最基本元素,除了已经抽象出来的类库外,其它几乎所有的功能都会通过Widget来完成.在实践中我们发现,在博客这种小型但很灵活的系统中实施一些大型框架的思想是不合适的,它会使系统灵活性...

建站相关 typecho

typecho 2023-10-25

Typecho默认路由表一览

路由器(Route)路由器(Route)是Typecho系统中的一个重要组件,类似mod_rewrite的机制,来实现独立的URL和指定的controller/action/params的映射规则.它通过识别诸如http://loca...

建站相关 typecho