版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1333715
每个网站开发中,多多少少会需要一些默认的配置项,相对而言一条条的手动添加是极为繁琐的,要分类各种图片、文字、文件、单选、多选按钮等,在此提供一种设计思路,记不清从哪里参考而来的,个人认为比较方便,也有很大的扩展性...
1.数据库设计截图
2.数据库SQL创建语句
CREATE TABLE `xx_conf` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID标记',
`tag` varchar(20) DEFAULT NULL COMMENT '缩写标签',
`title` varchar(50) DEFAULT NULL COMMENT '配置项标题',
`value` text COMMENT '配置项的 取值',
`type` varchar(20) DEFAULT NULL COMMENT '类型',
`tip` varchar(50) DEFAULT NULL COMMENT '配置项提示信息',
`sort` int(11) DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
3.数据库信息参考
1.添加页面展示
2.核心代码参考
1.ConfigController.class.php 代码private $confModel; public function __construct() { parent::__construct(); $this->confModel = new ConfModel(); } /** * 基本配置界面 */ public function index(){ if(IS_POST){ $updateTag = $this->confModel->updateConfData(); if($updateTag){ $this->success('修改成功',U('Config/index'),2); }else{ $this->error('修改失败',U('Config/index'),2); } }else{ $confData = $this->confModel->getConfData(); $this->assign('confData',$confData); $this->display(); } } /** * 配置项的添加 */ public function add(){ $tag = $this->confModel->addConfigData(); if ($tag){ $content = '配置项添加成功'; }else{ $content = '配置项添加失败'; } $this->success($content,U('Config/index'),1); } 2.ConfModel类内部核心代码参考 注意一点,对于如下关于图片上传的代码,请参考上一篇文章的介绍,涉及到的主要代码都可以直接参考,此处不做赘述。 public function addConfigData(){ $postData = $_POST; $tag = $this->db_conf_mi ->add($postData); return $tag; } /** * 更新配置信息 */ public function updateConfData(){ $postData = $_POST; foreach ($postData as $key => $value){ $save = array( 'value' => $value, ); $this->db_conf_mi ->where("tag = '".$key."'") ->save($save); } //file文件数据更新 foreach ($_FILES as $key => $value){ $img = handleImg($key); $furl = C('REMOTE_ROOT').$img; if ($img){ ftp_upload($furl,$img); $saveData'value' = $img; $this->db_conf_mi ->where("tag = '".$key."'") ->save($saveData); } } return 1; }
1.补录 可建议自行添加配置项排序功能 如果时间允许,建议将不同类型的配置项进行剥离处理,方便统一页面设计,美观适用性增强。 2.源代码下载 >>>