1.栏目创建
模板设置
没有子类进入列表首页
有子类进入列表页
内容页直接{$..}调用数据
其他页要使用list等语法
>list标签
{list action=cache name=module} 获取全部模块数据
{list action=content} 获取内容详情
{list action=category} 获取栏目
{list action=linkage} 获取联动菜单
{list action=search_field} 获取搜索字段(不知如何使用)
{list action=related} 相关文章
{list action=tags} 全局tags
{list action=sql} sql查询
{list action=table} 数据表查询
{list action=form} 站点表单循环
{list action=member} 会员循环
{list action=module} 循环模块内容数据
{list action=search} 模块搜索
pid 上级栏目ID
tid 顶级栏目ID
catid 当前栏目ID
2.插件开发
>创建插件配置文件:finecms/app/名.php
<?php
// 此文件用于开发插件用
return array(
'menu' => array(
'控制器名称/方法名称' => array('自定义插件名称', 'fa fa-user')
),
'cache' => array(
array(
'url' => dr_url('控制器名称/cache', array('admin' => 1)),
'name' => fc_lang('%s缓存', fc_lang('插件缓存更新')),
),
)
);
注解:
menu是插件的菜单,表示你这个插件有哪些菜单出现在后台、
cache表示每次更新缓存时就会运行这个缓存文件,比如初始化插件、安装数据库等操作
>创建数据库
cache/install/SQL名.sql
DROP TABLE IF EXISTS `{dbprefix}blogroll`;
CREATE TABLE `{dbprefix}blogroll` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '序号',
`name` varchar(200) NOT NULL COMMENT '名称',
`url` varchar(200) NOT NULL COMMENT '地址',
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=32 DEFAULT CHARSET=utf8 COMMENT='插件名称'
>创建控制器
/finecms/dayrui/controllers/admin/控制器名称.php //名称首字母大写
语法:
class 控制器名称 extends M_Controller{}
控制器中写方法,传值,渲染到模板 //类似 Thinkphp
$this->template->assign('list', $list);
$this->template->display('adver_index.html');
控制器中写入缓存方法:
public function cache() {
// 检测插件数据表是否安装
if (!$this->db->table_exists($this->db->dbprefix('表名称'))
&& is_file(WEBPATH.'cache/install/SQL名.sql')) {
$sql = file_get_contents(WEBPATH.'cache/install/SQL名.sql');
$this->sql_query(str_replace('{dbprefix}', $this->db->dbprefix, $sql));
}
//必写的系统缓存
$this->system_model->cache();
(int)$_GET['admin'] or $this->admin_msg(fc_lang('操作成功,正在刷新...'), isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '', 1);
}
构造函数
function __construct(){
parent::__construct();
.......
}
数据库
public $tablename;
链接数据表
$this->tablename = $this->db->dbprefix('数据表名称') //表名称要有前缀
查询
$data = $this->db->where('id',$id)->limit(1)->get($this->tablename)->row_array();
添加
$this->db->insert($this->tablename, $data);
返回新插入行的ID:
$id = $this->db->insert_id();
修改
$this->db->where('id',(int)$id)->update($this->tablename, $data);
删除
$this->db->where_in('id', $ids)->delete($this->tablename);
添加字段
$fields = array(
字段名称 => array(
'type' => 'varchar',
'constraint' => '50',
.......
'comment'=>'字段备注',
'after' => '哪个字段之后添加'
)
);
$this->load->dbforge();
$this->dbforge->add_column('表名称',$fields);
删除字段
$this->load->dbforge();
$this->dbforge->drop_column('表名称', '字段名');
修改字段
$fields = array(
'原字段名称' => array(
'name' => '新字段名称',
'type' => 'TEXT',
........
),
);
$this->dbforge->modify_column('table_name', $fields);
接收前端数据
$post = $this->input->post('data',true);
返回某个表所有字段名
$this->db->list_fields($table);
指定字段添加/修改内容
$data = array(
字段名称 => 内容
);
$this->db->update/insert(表名称, $data);
>创建模板文件
/finecms/dayrui/templates/文件名称.html
模板语法是{$名}
3.后台权限管理
后台导航内容目录:config/admin_menu.php;
页面显示导航内容:finecms/dayrui/controllers/admin/Home.php;
1.通过session获取当前会员id:
$uid=$this->session->userdata['uid'];
2.通过uid控制导航显示与隐藏,if判断:
可用array_splice($result,开始索引(int),截取长度)等方法处理导航目录数组;