FineCMS 使用手册 联系客服

发布时间 : 星期一 文章FineCMS 使用手册更新完毕开始阅读4c2379bc2cc58bd63186bdc1

{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} //先调出顶级栏目,且为内部栏目。

当前顶级栏目:{$cat['catname']}

{if $cat['child']} //判断该栏目是否有子栏目。 {loop $cats $a} //循环子栏目数组,赋值$a。

{if $a['parentid']==$cat['catid']} //子栏目的父栏目id=它父栏目id {list catid=$a[catid] num=10}

  • {$t['title']}
  • //循环子栏目中的文章i信息 {/list} {/if} {/loop} {/if} {/if} {/loop}

    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`