当前位置:首页 > FineCMS 使用手册
{loop $cats $cat}
{if $cat['paentid'] == 0 && $cat['ismenu']} //先调出顶级栏目 业务逻辑处理....
{if $cat['child']} //判断该栏目是否有子栏目,N级栏目以此类推。 {loop $cats $a} //循环栏目组,$a防止与$cat冲突。
{if $a['parentid']==$cat['catid']} //子栏目的父栏目id=它父栏目id 子栏目业务逻辑处理.... {/if} {/loop} {/if} {/if} {/loop}
3、循环栏目文章
{loop $cats $cat}
{if $cat['paentid'] == 0 && $cat['typeid']==1} //先调出顶级栏目,且为内部栏目。
{if $a['parentid']==$cat['catid']} //子栏目的父栏目id=它父栏目id {list catid=$a[catid] num=10}
4、献给小白,在列表中取栏目信息
{list catid=$catid .....}
栏目:{$cats[$t['catid']]['catname']} {/list}
五、 进阶教程
(三十一) FineCMS框架基础知识介绍
一、目录结构
admin: 后台面板引入文件
cache: 缓存目录,必须具有读写权限
config: 配置目录,部分文件需要开启读写权限 controllers: 控制器目录,支持子目录(namespace) core: 框架核心
extensions: 扩展目录,用于放置第三方控件 models: 数据模型目录 plugins: 插件目录 uploadfiles:上传文件目录 views: 视图模板目录 index.php: 项目入口文件
二、命名规则
1、数据表命名规则: 数据库中数据表的命名将全部采用小写字母
2、配置文件的命名规则:配置文件名字字母全部小写,:后缀为.ini.php如:config.ini.php 3、控制器命名规则: 首字母大写+Controller.php如IndexController.php 4、数据模型命名规则: 首字母大写+Model.php 如UserModel.php 5、视图文件命名规则: 有效的html文件即可如index.html
三、控制器名字空间Namespace
相当于控制器目录,如admin就是一个名字空间
四、控制器Controller文件的开发规则
class IndexController extends Common { public function __construct() { parent::__construct(); }
public function indexAction() { 内容 } }
Controller文件的命名采用驼峰命名法则如:建立index的controller文件,其名字为IndexController.php 解释:index首字母要大写,后再加上Controller,注意这个Controller也是首字母大写的
Controller文件名字和内容中类的名字相同(字母大小写也一致的相同)
如上所示,IndexController.php的内容类的名字按照此规应为:IndexController
注意:继承Common,也可以直接继承Controller,推荐继承Common,因为系统会自动加载Common,它将作为每个namespace的公共控制器类
访问地址:index.php?s=Namespace名称&c=控制器名称&a=Action名称 五、Model文件的开发规则
Model文件的开发规则类似于Controller文件的开发规则只是把Controller换成Model的区别,最好参考Controller文件的开发规则来理解 Model文件命名采用驼峰命名法则 Model文件内容类的名字和文件名要一致
例:要建一个新Model文件,假设为demo表的model文件文件名字为:DemoModel.php内容为:
class DemoModel extends Model { public function get_primary_key() {
return $this->primary_key = 'id'; //表demo的主键 }
public function get_fields() { return $this->get_table_fields(); } }
解释:以上格式是固定格式,如果需要扩展,可在里面添加function
(三十二) FineCMS的Model应用
模型(Model)是 MVC里的M,模型用于操作数据以及数据相关的业务规则。 一、创建模型
在项目目录models中新建Model文件(具体如何操作,前面介绍时,已经详细讲述过了)。 例如:要建UserModel.php文件(注:Model文件中所有的类必须继承Model基类)。
class UserModel extends Model { public function get_primary_key() {
return $this->primary_key = 'id'; //设置主键 }
public function get_fields() {
return $this->get_table_fields(); } }
Model文件创建好后,怎么在Controller文件中调用呢? 首先对model进行实例化 $model = $this->model('user');
如果查询user数据表的所有数据,操作如下: $data = $model->findAll();
上面的例子,用到函数:findAll(),这就是在Model类中封装的函数。 二、Model 类所提供的函数及说明。
1、from($tabs, $fields) 实现SQL语句中:“select `数据表字段` from 数据表 ”部分的处理。 参数说明:
$tabs为所要查询的数据表。如果所要查询的数据表为多个(大于1个),参数要为数组。如:array(''数据表1, '数据表2', ...) ;
注:当参数为空时,数据表则默认为当前model所对应的数据表。
$fields 为所要查询的数据表字段。默认为“*”,即当此参数为null时,则视为查询数据表所有的字段。 如果查询字段为多个,参数要为数组类型。如:array('字段1', '字段2'); 使用举例: 例一、
$model->from('user');
SQL语句为:select * from user 例二、
$model->from('user', array('userid', 'username'));
显示SQL语句为:SELECT `userid`, `username` FROM `user` 例三、
$model->from(array('content', 'user'), array('title', 'username'));
显示SQL语句为:SELECT `title`, `username` FROM `content`, `user` 例四、
$model->from(array('p'=>'content', 'u'=>'user'), array('p.title', 'u.username'));
显示SQL语句为:
SELECT `p`.`title`, `u`.`username` FROM `content` AS `p`, `user` AS `u`
注:array('p'=>'content', 'u'=>'user'),这里数组索引为非数字时,则代表SQL语句中的ALIAS(更名)情况。 例五、
$model->from(array('p'=>'content', 'u'=>'user'), array('name'=>'p.title', 'u.username'));
显示SQL语句为:SELECT `p`.`title` AS `name`, `u`.`username` FROM `content` AS `p`, `user` AS `u`
共分享92篇相关文档