每个网站开发中,多多少少会需要一些默认的配置项,相对而言一条条的手动添加是极为繁琐的,要分类各种图片、文字、文件、单选、多选按钮等,在此提供一种设计思路,记不清从哪里参考而来的,个人认为比较方便,也有很大的扩展性...
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.源代码下载 >>>