FineCMS 使用手册

更新时间:2023-12-08 04:47:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

FineCMS 使用手册

目录

一、 二、

主要功能模块 ............................................................................................................ 3 安装及升级 ................................................................................................................ 4

(一) 环境需求 .................................................................................................................... 4 (二) 系统安装 .................................................................................................................... 4 (三) 系统升级 .................................................................................................................... 5 三、

使用说明 .................................................................................................................... 6

(四) 系统设置 .................................................................................................................... 6 (五) 系统安全 .................................................................................................................... 6 (六) 栏目管理 .................................................................................................................... 7 (七) 附件管理 .................................................................................................................... 7 (八) 内容管理 .................................................................................................................... 8 (九) 推荐位管理 ................................................................................................................ 8 (十)

文字块管理 ............................................................................................................ 9

(十一) 会员投稿流程 ...................................................................................................... 10 四、

功能教程 .................................................................................................................. 11

(十二) 模型使用说明 ...................................................................................................... 11 (十三) 字段类别说明 ...................................................................................................... 13 (十四) [静态/伪静态]自定义URL地址详细教程 .......................................................... 17 (十五) 生成静态教程 ...................................................................................................... 20 (十六) 表单使用教程 ...................................................................................................... 23 (十七) Ucenter使用说明 ................................................................................................ 26 (十八) 网站多语言配置方法 .......................................................................................... 28 (十九) 后台管理目录(admin)更改方法介绍 ................................................................. 29 (二十) 部分表的数据结构 .............................................................................................. 30 (二十一) 自定义Tag标签的URL规则 .......................................................................... 31 (二十二) 站内搜索参数说明及表单设计 ...................................................................... 32

(二十三) 多站点及分站配置 .......................................................................................... 34 (二十四) 会员扩展使用教程 .......................................................................................... 35 (二十五) FineCMS 模板设计指南 .................................................................................. 35 (二十六) FineCMS万能标签list功能介绍 .................................................................... 37 (二十七) 标签语法说明 .................................................................................................. 44 (二十八) 系统变量介绍 .................................................................................................. 46 (二十九) 系统函数介绍 .................................................................................................. 47 (三十) 关于栏目{$cats}调用说明 ................................................................................... 48 五、

进阶教程 .................................................................................................................. 50

(三十一) FineCMS框架基础知识介绍 ........................................................................... 50 (三十二) FineCMS的Model应用 .................................................................................. 51 (三十三) FineCMS的View应用 ..................................................................................... 64 (三十四) FineCMS的Controller应用 ............................................................................. 67 (三十五) FineCMS插件开发指南 ................................................................................... 69 (三十六) 自定义字段类别 .............................................................................................. 72 (三十七) 自定义编辑器 .................................................................................................. 75 (三十八) 个性化URL结构 .............................................................................................. 76 (三十九) 表单模型和会员扩展模型中的回调函数用法 .............................................. 78 (四十) 数据读写分离配置 .............................................................................................. 80

FineCMS(简称FC)是一款基于PHP+MySql开发的内容管理系统,其中免费版是完全开源的版本,采用MVC设计模式实现业务逻辑与表现层的适当分离,使网页设计师能够轻松 设计出理想的模板, 插件化方式开发功能易用便于扩展,支持自定义内容模型和会员模型,并且可以自定义字段,可面向中小型站点提供重量级网站建设方案。对于那些想要进行开发的技术不足,又南中羞涩的站长们是一个难得的CMS平台。目前FC只有在线手册,使用起来有些不方便我对FC手册进行了整理,希望对各位有一定帮助。

一、 主要功能

自定义模型和字段

超强的自定义模型和字段功能则把系统灵活度发挥到了极致,不用编程就实现各种信息发布和检索。 多站点及分站

支持多个站点管理及分站功能,多站只需绑定域名到根目录,使用相当方便。 多国语言支持

系统自带语言有简体中文、繁体中文、英文,其他语言扩展相当方便。 负载能力强

从缓存技术、数据库设计、代码优化等多个角度入手进行优化,支持百万级数据量。 模板制作方便

采用MVC设计模式实现了程序与模板完全分离,灵活的模板标签能完全显示全站信息。 支持文章内链

有助于提高搜索引擎对网站的爬行索引效率,支持Tag自动内链到文章。 表单功能

用于拓展内容模型和会员模型,如报名、评论、询价、咨询等。 推荐位功能

推荐位功能可以让编辑随时把信息推送至指定位置,操作简单实用。 文字块功能

把一些小段内容放在文字块中,支持HTML代码和图片上传。 自定义URL规则

可以完全自定义URL地址规则,包括栏目、内容及自定义页。 功能插件化

按照官方提供的插件为蓝本,用户可开发出属于自己的插件。 SEO处理

性化设置每个栏目的标题标签、描述标签、关键词标签,自动生成百度谷歌网站地图。

二、 安装及升级 (一) 环境需求

FineCMS 居于PHP和MySQL技术开发,可同时使用于Windows、Linux、Unix平台,环境需求如下:

1、Windows 平台

IIS/Apache + PHP5.2.x + MySQL4/5

2、Linux/Unix 平台

Apache + PHP5.2.x + MySQL3/4/5 (PHP必须在非安全模式下运行) 建议使用平台:Linux + Apache2.2 + PHP5.2.x + MySQL5.0

3、PHP必须环境或启用的系统函数

allow_url_fopen GD扩展库 MySQL扩展库 JSON支持

4、基本目录结构

..../cache 程序缓存目录[必须有可写入权限] ..../config 系统配置文件目录[必须有可写入权限] ..../controllers 系统控制器目录 ..../core 系统核心程序目录 ..../extensions 系统扩展程序目录

..../models 系统模型文件存放目录[必须有可写入权限] ..../uploadfiles 文件上传目录[必须可写入] ..../plugins 插件目录[必须可写入] ..../views 系统模板目录

(二) 系统安装

1、解压FineCMS软件压缩包,将压缩包内FineCMS目录内的所有文件及目录上传至网站根目录。 2、如果第一次安装系统,系统会自动进入程序安装向导,默认地址为http://网站/index.php?c=install。 3、根据安装向导提示设置必要的数据库连接参数以及必要的文件属性完成系统安装。

4、安装完成之后,系统默认后台管理路径是http://网站/index.php?s=admin,为了安全也可以修改路径(后面有介绍)。

(三) 系统升级

登录管理后台如果发现“系统信息”中出现“有新版本”提示,我们可以

方法一、重新下载程序(重新安装数据会重置) 下载地址:http://down.finecms.net/finecms.zip。

方法二、安装在线升级插件(若无写入权限该插件无法完成升级) 如果您是linux服务器,需要将全站设置0777权限,否则无法解压覆盖。 方法三、下载更新程序(推荐) 地址:http://down.finecms.net/

注意:升级包必须按版本顺序下载,解压后按版本顺序覆盖根目录,如果有sql文件,请导入到数据库中(注意修改表前缀哦)。

三、 使用说明

(四) 系统设置

一看就很简单,每一项都有说明的

(五) 系统安全

一、存在多管理员账号建议开启“后台操作日志”(系统设置-系统相关)。 二、更改管理目录路径(默认admin)。

1、在config/config.ini.php配置文件中找到“ADMIN_NAMESPACE”,设置成想要的目录名称(如test)。 2、再将该目录(admin)重命名为前面设置的目录(如“test”,命名规则只能为小写英文字母)。 3、访问地址就变成了http://网站/后台目录/(如http://网站/test/)。

robots.txt文件中增加屏蔽地址技巧: Disallow: /index.php?s=t* Disallow: /t*

表示以t开头的控制器或者目录禁止蜘蛛爬行,这样可以不暴露管理目录

注意事项:config.ini.php不能用记事本等软件编辑,且保存编码为utf-8无BOM格式,否则会出大问题。 三、开启“非法字符过滤”以及开启\攻击日志\(系统设置-系统相关)。

1、非法字符可以到config/attackcode.ini.php中去配置,系统集成了一些非法字符,用户可根据自己网站的需求来配置非法字符。

2、受到非法字符攻击时可以开启邮件通知(系统设置-系统相关-开启邮件通知,一定要设置”网站管理邮箱以及邮件服务器配置“哦)。

3、Ip禁止功能,若有非法字符攻击时系统会记录攻击者Ip、会员的id、受攻击页面、非法字符等信息,可以让其Ip禁止方法(系统设置-禁止访问)。

(六) 栏目管理

如图所示,栏目管理相当方便,内部栏目有直接发布信息的链接。

栏目类型分为:内部栏目(用于发布信息,必须绑定模型)、单网页(单独的一个页面)、外部链接(链接到外部的地址)。

(七) 附件管理

file: 管理员用户文件上传的目录 image:管理员用户图片上传的目录

member:会员附件目录

(八) 内容管理

操作方便,用户可以执行排序、删除、标记、移动、修改、发布等操作

(九) 推荐位管理

1、推荐位列表操作

2、推荐位中的信息管理

3、添加推荐位内容(可以直接在内容表中提取内容)

(十) 文字块管理

把一些小段内容放在文字块中,支持HTML代码和图片上传

Tag标签管理

汉字标签自动转换为拼音,支持导入标签。

将标签加入到文章内容中(也就是文章的内链方式)。 1、更新标签缓存。

2、在”系统设置“-”Tag相关“开启”文档内容中关联“(选择”是“)即可。

3、如果文章使用的是生成静态,那么必须重新生成一次,伪静态会立即生效。

(十一) 会员投稿流程

1、会员/游客投稿流程

发布稿件 -> 数据存入审核临时表(若会员组权限无需审核则直接发布) -> 管理员审核通过 -> 发布内容表中(同时删除临时表数据)

2、会员修改文档流程

修改稿件 -> 修改数据存入审核临时表 -> 待管理员审核通过 -> 更新内容表数据(同时删除临时数据) 修改稿件 -> 修改数据存入审核临时表 -> 被管理员审核拒绝 -> 修改稿件被退回

四、 功能教程

(十二) 模型使用说明

模型是FineCMS的核心,下面来介绍如何创建内容模型(会员模型、表单模型与内容模型一

致)

一、添加一个模型

后台进入“内容模型”,执行“添加”

模型名称:是你为这个模型取一个名字,比如”文章“,”产品“,”报表“ 数据表名:不能重复,小写英文即可,比如”news“,”pro“

栏目模板、列表模板、内容模板可以自定义,如果不填系统会自动给你取一个名字,必须是\文件 关于”关联表单“在表单章节有介绍 二、字段管理,添加字段

1、进入“模型列表”,执行“字段管理”,见下图

2、可以看到默认的系统字段,你可以对默认的系统字段进行修改,见下图

3、执行菜单上的“添加”,来为当前模型添加字段,见下图

字段别名:当然这个别名指的是字段的标题,比如:文章标题,电话号码等

字段名称:只能由英文字母、数字和下划线组成,并且仅能字母开头,不以下划线结尾 字段类别:根据实际情况来选择(实在不懂的可以参考”字段类别说明“这一节) 字段类型:根据你的情况来设定字段类别,就行mysql建表字段一样

字段长度:由上面的“字段类型”来决定长度,不能超过了该字段类型的最大长度,不了解可以翻翻Mysql手册

字段索引:提供了普通、唯一两种索引(不熟悉索引的朋友不要随便选择此项) 字段提示:提示这个字段是用来干什么的

前台显示:该字段在会员投稿的时候显示,选择了“隐藏”,会员投稿就不会显示了 必填字段:这里可以对字段进行有效性验证,比如简单的正则等

(十三) 字段类别说明

一、字段类别说明

1、单行文本(input) ①、参数说明

长度:文本框的width值,以px为单位 ②、调用方法 {$字段名称}

2、多行文本(textarea) ①、参数说明

宽度:文本框的width值,以px为单位 高度:文本框height值,以px为单位 ②、调用方法 {$字段名称}

3、下拉选择框(select) ①、参数说明

选项列表:选项名称1|选项值1 (回车换行) ②、调用方法 {$字段名称}

4、编辑器(editor) ①、参数说明

宽度:编辑器的width值,以百分比为单位 高度:编辑器的height值,以px为单位 类型:两种模式而已 ②、调用方法 {$字段名称}

5、单选按钮(radio)

①、参数说明

选项列表:选项名称1|选项值1 (回车换行) ②、调用方法 {$字段名称}

6、复选框(checkbox) ①、参数说明

选项列表:选项名称1|选项值1 (回车换行) ②、调用方法

{php $value=string2array($字段名称);} (v1.7.3及以上版本可直接调用$字段名称)

返回数组格式的$value,$value是选中的值,可以用loop循环操作它 7、单图上传(image) ①、参数说明

jpg、gif、png格式图片,不得超过2MB ②、调用方法

{thumb($字段名称)}

8、文件上传(file) ①、参数说明

限制格式:多个格式以,号分开,如:zip,rar,tar 文件大小:单个文件的大小限制,以MB为单位 ②、调用方法

{getfile($字段名称)}

9、多文件上传(files)

①、参数说明

限制格式:多个格式以,号分开,如:zip,rar,tar,jpg,png 文件大小:单个文件的大小限制,以MB为单位 ②、调用方法

{php $value=string2array($字段名称);}(v1.7.3及以上版本可直接调用$字段名称)

文件地址的数组:$value['file'], 文件名称的数组:$value['alt'] 循环示例如下:

{loop $value['file'] $k=>$file} 文件地址:{getfile($file)} 文件名称:{$value['alt'][$k]} {/loop}

10、日期时间(date) ①、参数说明

显示格式:与PHP的date函数格式一致 ②、调用方法 {$字段名称}

11、联动菜单(linkage) ①、参数说明

绑定菜单:选择已经建好的联动菜单 联动级别:就是这个菜单有多少级 ②、调用方法

{php $data=linkagelist(联动菜单keyid, 菜单id);} {loop $data $t} 名称:{$t['name']} id号:{$t['id']}

子菜单集合:{$t['arrchilds']} (若无子菜单,该值为空).

如果该菜单有子菜单就循环调用linkagelist(联动菜单keyid, 子菜单id),依次循环 {/loop}

更多联动菜单功能介绍请参考系统默认模板中的房产模型及联动菜单相关函数介绍 12、地图字段(map) ①、参数说明

百度KEY:到百度去申请

默认城市:可填写中文,如“北京” ②、调用方法

{baiduMap(模型id, HTMLdiv的id, $字段, 宽, 高)}

13、组合字段(merge)

这个最简单,不用多介绍,例子很清楚

{字段名称}[介绍],例如:{shi}室,{ting}厅,{wei}卫

14、多字段组合(fields)

“多字段组合”要区别于“组合字段”

可以把“多字段组合”看成一个独立字段,而“组合字段”是由多个独立字段组成 按照公交线路举例:

建立一个“公交线路”字段,类型为“多字段组合”字段,由“线路”,“车时”,“价钱”等字段组合,用户可以添加多组“公交线路”

“多字段组合”可以自由删除,排序选项,实现多栏展示数据 调用方式为:

{php $value=string2array($“多字段组合”名称);}(v1.7.3及以上版本可直接调用$字段名称) {loop $value $t} //循环多字段 值:{$t[字段]} {/loop}

二、自定义字段表单调用

{list action=field modelid=$modelid name=字段名称 value=字段默认值} ... {/list}

modelid:栏模型id(必选) name:字段名称(必选) value:字段值(可选)

返回数据{$t['form']}:用于表单显示(就是一个表单输入框)

返回数据{$t['data']}:返回复选框、单选按钮中的选项名称和值(数组类型,若要输出请用loop配合) 例:

①、调用模型2中的自定义字段zhiduan(默认值200)的输入表单

{list action=field modelid=2 name=zhiduan value=200} {$t['form']} {/list}

②、调用模型2中的自定义字段zhiduan(必须是复选框、单选按钮类型)的值

{list action=field modelid=2 name=zhiduan} {loop $t['data'] $n=>$v} 名称:{$n},值:{$v}; {/loop} {/list}

因为$t['data']是数组类型,说以要用loop循环输出,不用解释太多大家都懂

(十四) [静态/伪静态]自定义URL地址详细教程

一、如何开启自定义URL

进入后台,“内容管理”-“栏目管理”,选择修改或者添加栏目,“URL配置”,开启“自定义URL规则”,再配置适合自己的规则。 二、规则标签说明 {dir} : 表示栏目目录

{pdir}: 表示包含父级层次的栏目目录(不能与{dir}同时出现,两者二选一) {page}:表示分页id

{id}: 表示内容或栏目的id {y}: 表示年(内容规则中有效) {m}: 表示月(内容规则中有效) {d}: 表示日(内容规则中有效) 三、举例说明

在添加/修改栏目时候,会发现一个选项“URL设置”。

如上图,URL格式4项必填,填写规则有说明,然后保存之后更新缓存和URL地址。 记住一定要更新缓存并且更新URL地址,保障规则url生效。 这时你会发现:

“新闻(news)”栏目的地址已经变成了:http://localhost/finecms/news/china/ 其“内容页面”的地址已经变成了:http://localhost/finecms/news/china/31.html

问题来了,你点这些地址,会不会发现会出现“404”错误或者是指向首页,这是为什么呢?解决方案有2种。

方案1、生成静态页面

这是静态生成的配置,“静态文件夹”是指静态文件生成的目录,当然也可以不填(留空)表示生成在根目录

(如果填写了“静态文件夹”,地址就会变成:http://localhost/finecms/静态文件夹/news/china/)

然后提交保存,再次更新缓存和URL地址,接下来即可生成页面了(不用说了,在“生成静态”中生成~) 注意:如果内容URL没有变化的话请“更新内容地址” 方案2、设置伪静态 ①、指向地址说明

栏目列表指向地址:index.php?c=content&a=list&catdir=栏目目录 或者 index.php?c=content&a=list&catid=栏目ID

栏目分页指向地址:index.php?c=content&a=list&catdir=栏目目录&page=分页 或者 index.php?c=content&a=list&catid=栏目ID&page=分页 内容页面指向地址:index.php?c=content&a=show&id=文章id

内容分页指向地址:index.php?c=content&a=show&id=文章id&page=分页 ②、举例说明

栏目列表:http://www.demo.com/list-news.html (news是栏目目录)

栏目分页:http://www.demo.com/list-news-1.html (news是栏目目录,1是分页id) 内容页面:http://www.demo.com/show-1.html (1是文章的id)

内容分页:http://www.demo.com/show-1-1.html (前者1是文章的id,后者1是分页id) 伪静态方案一:修改服务器伪静态配置文件 以apache为例,修改.htaccess文件:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^list-([a-z0-9A-Z]+).html$ index.php?c=content&a=list&catdir=$1 [L]

RewriteRule ^list-([a-z0-9A-Z]+)-([0-9]+).html$ index.php?c=content&a=list&catdir=$1&page=$2 [L] RewriteRule ^show-([0-9]+).html$ index.php?c=content&a=show&id=$1 [L]

RewriteRule ^show-([0-9]+)-([0-9]+).html$ index.php?c=content&a=show&id=$1&page=$2 [L]

以iis为例,修改httpd.ini文件:

[ISAPI_Rewrite] CacheClockRate 3600 RepeatLimit 32

RewriteRule ^(.*)/list-([a-z0-9A-Z]+)\\.html$ $1/index.php?c=content&a=list&catdir=$2 [L]

RewriteRule ^(.*)/list-([a-z0-9A-Z]+)-([0-9]+)\\.html$ $1/index.php?c=content&a=list&catdir=$2&page=$3 [L]

RewriteRule ^(.*)/show-([0-9]+)\\.html$ $1/index.php?c=content&a=show&id=$2 [L]

RewriteRule ^(.*)/show-([0-9]+)-([0-9]+)\\.html$ $1/index.php?c=content&a=show&id=$2&page=$3 [L]

以Nginx为例:

rewrite ^([^\\.]*)/list-([a-z0-9A-Z]+)\\.html$ $1/index.php?c=content&a=list&catdir=$2 last;

rewrite ^([^\\.]*)/list-([a-z0-9A-Z]+)-([0-9]+)\\.html$ $1/index.php?c=content&a=list&catdir=$2&page=$3 last;

rewrite ^([^\\.]*)/show-([0-9]+)\\.html$ $1/index.php?c=content&a=show&id=$2 last;

rewrite ^([^\\.]*)/show-([0-9]+)-([0-9]+)\\.html$ $1/index.php?c=content&a=show&id=$2&page=$3 last;

伪静态方案二:修改网站配置文件router.ini.php(Apache推荐)

当然这种方案的前提需要服务器开启伪静态并指向index.php,再次说一下方法,goooooo。 以apache为例,修改.htaccess文件:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule !\\.(js|ico|gif|jpg|png|css|swf)$ index.php [L]

然后根据上面你自定义的路由格式来设计伪静态指向(一定要懂正则表达式)。 规则匹配文件config/router.ini.php (一定注意不能用记事本之类的工具修改) 规则格式图:

按照上面的例子,我们可以设计成如下匹配规则:

熟悉正则表达式的朋友应该一眼能看懂,再次强调使用该方法一定要懂正则表达式哦~~ 注意:伪静态方案二的指向地址不需要再加index.php了

(十五) 生成静态教程

方案1、生成静态页面

这是静态生成的配置,“静态文件夹”是指静态文件生成的目录,当然也可以不填(留空)表示生成在根目录

(如果填写了“静态文件夹”,地址就会变成:http://localhost/finecms/静态文件夹/news/china/)

然后提交保存,再次更新缓存和URL地址,接下来即可生成页面了(不用说了,在“生成静态”中生成~) 注意:如果内容URL没有变化的话请“更新内容地址” 方案2、设置伪静态 ①、指向地址说明

栏目列表指向地址:index.php?c=content&a=list&catdir=栏目目录 或者 index.php?c=content&a=list&catid=栏目ID

栏目分页指向地址:index.php?c=content&a=list&catdir=栏目目录&page=分页 或者 index.php?c=content&a=list&catid=栏目ID&page=分页 内容页面指向地址:index.php?c=content&a=show&id=文章id

内容分页指向地址:index.php?c=content&a=show&id=文章id&page=分页 ②、举例说明

栏目列表:http://www.demo.com/list-news.html (news是栏目目录)

栏目分页:http://www.demo.com/list-news-1.html (news是栏目目录,1是分页id) 内容页面:http://www.demo.com/show-1.html (1是文章的id)

内容分页:http://www.demo.com/show-1-1.html (前者1是文章的id,后者1是分页id) 伪静态方案一:修改服务器伪静态配置文件 以apache为例,修改.htaccess文件:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^list-([a-z0-9A-Z]+).html$ index.php?c=content&a=list&catdir=$1 [L]

RewriteRule ^list-([a-z0-9A-Z]+)-([0-9]+).html$ index.php?c=content&a=list&catdir=$1&page=$2 [L] RewriteRule ^show-([0-9]+).html$ index.php?c=content&a=show&id=$1 [L]

RewriteRule ^show-([0-9]+)-([0-9]+).html$ index.php?c=content&a=show&id=$1&page=$2 [L]

以iis为例,修改httpd.ini文件:

[ISAPI_Rewrite] CacheClockRate 3600 RepeatLimit 32

RewriteRule ^(.*)/list-([a-z0-9A-Z]+)\\.html$ $1/index.php?c=content&a=list&catdir=$2 [L]

RewriteRule ^(.*)/list-([a-z0-9A-Z]+)-([0-9]+)\\.html$ $1/index.php?c=content&a=list&catdir=$2&page=$3 [L]

RewriteRule ^(.*)/show-([0-9]+)\\.html$ $1/index.php?c=content&a=show&id=$2 [L]

RewriteRule ^(.*)/show-([0-9]+)-([0-9]+)\\.html$ $1/index.php?c=content&a=show&id=$2&page=$3 [L]

以Nginx为例:

rewrite ^([^\\.]*)/list-([a-z0-9A-Z]+)\\.html$ $1/index.php?c=content&a=list&catdir=$2 last;

rewrite ^([^\\.]*)/list-([a-z0-9A-Z]+)-([0-9]+)\\.html$ $1/index.php?c=content&a=list&catdir=$2&page=$3 last;

rewrite ^([^\\.]*)/show-([0-9]+)\\.html$ $1/index.php?c=content&a=show&id=$2 last;

rewrite ^([^\\.]*)/show-([0-9]+)-([0-9]+)\\.html$ $1/index.php?c=content&a=show&id=$2&page=$3 last;

伪静态方案二:修改网站配置文件router.ini.php(Apache推荐)

当然这种方案的前提需要服务器开启伪静态并指向index.php,再次说一下方法,goooooo。 以apache为例,修改.htaccess文件:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule !\\.(js|ico|gif|jpg|png|css|swf)$ index.php [L]

然后根据上面你自定义的路由格式来设计伪静态指向(一定要懂正则表达式)。 规则匹配文件config/router.ini.php (一定注意不能用记事本之类的工具修改) 规则格式图:

按照上面的例子,我们可以设计成如下匹配规则:

熟悉正则表达式的朋友应该一眼能看懂,再次强调使用该方法一定要懂正则表达式哦~~ 注意:伪静态方案二的指向地址不需要再加index.php了

(十六) 表单使用教程

表单,顾名思义就是与前端用户提交数据相关的,如报名、留言、评论等 FineCMS系统支持两种类型的表单,即是独立表单和关联表单 一、独立表单介绍

1、创建表单

后台进入“表单管理”,选择“表单模型”,再“添加”模型

表单模板:提交表单的模板(默认模板中包含“post_form.html”) 列表模板:表单数据列表的模板(默认模板中包含“list_form.html”) 内容模板:表单数据详细内容的模板(默认模板中包含“list_form.html”) 创建模型之后,可以对其增加字段,跟前面的方式一致,不再重复介绍

2、查看后台表单。

创建完成之后,请F5刷新浏览器,再进入“表单管理”,会发现左侧菜单出现了刚才添加的表单“留言管理”

3、配置表单

进入“留言管理”,首先需要“配置表单”,各个参数都有说明的,不难看懂

4、管理表单和发布内容

这里不再介绍它了,跟内容管理和发布内容一致 5、表单预览

这里一定要配置好模板,否则无法预览的

二、关联表单介绍

1、创建表单

我们来创建一个“文章留言”的表单,跟上面介绍一致,不再描述

2、配置表单 基本跟前面介绍一致

v1.7.3及以上版本支持在会员中心显示表单内容列表以及“与我相关”的表单内容 “与我相关”的表单内容是什么意思?举个例子:

先把该表单“询价”(假设该表单叫“询价”,当然你也可以创建)关联到“商品”模型中;

我发布了一件商品“测试商品示例”,其他人在“测试商品示例”提交的表单内容(询价)将会显示在这里; 方便我查看其他人对我的这件商品“测试商品示例”的询价情况。

3、关联表单到模型

可以关联内容模型也可关联到会员模型,我们用“关联内容模型”举例

进入“内容管理”,再进入“内容模型”,选择需要关联的模型(我们这里关联“文章”)

选择“关联表单”中的“文章留言”,这样就关联好了 v1.7.3及以上版本支持关联多个表单,操作方式类似

4、管理表单

可以通过上面介绍的方式进行管理,也可通过关联的“文章”模型中管理 ①、通过关联的“文章”模型中管理

你会发现“文章”模型管理中会多出一个“留言”,这就是管理关联内容的入口

点击“留言”进入管理页面,跟内容管理类似,下面多了一个“批量关联”命令,用于把表单内容重新关联到其他文章中。

这里管理只能对当前文章的关联内容管理。

②、通过表单管理(跟上面介绍的一样了)。

这里是对所有表单内容管理(上面是对单个文章对应的内容管理),顶部链接可以返回到关联的“文章”页面

5、表单配置(“表单调用”)

关联类型的表单,一定要传入参数\及是文章id),否则无法提交哦

格式如:http://localhost/index.php?c=form&a=post&modelid=表单模型id&cid=文章内容id 其他都和上面介绍的一致了

三、表单URL处理

列表页面地址:index.php?c=form&a=list&modelid=表单模型id&page=分页id&cid=被关联的内容/会员id(cid参数可选)

内容页面地址:index.php?c=form&a=show&modelid=表单模型id&id=表单内容id

内容页面URL的构架可以用url()函数实现,也可以伪静态或者自定义函数实现

默认内容页面URL地址是:{url('form/show', array('modelid'=>表单模型id, 'id'=>表单内容id))}

如果采用伪静态模式,就把规则指向上面的地址哦,举个例子:

表单内容URL地址为:http://xxx/form_10_1000.html (10表示模型id,1000表示内容id,内容地址必须传递2个参数)。

伪静态设置规则为(apache为例):

RewriteRule ^form_([0-9]+)_([0-9]+).html$ index.php?c=form&a=show&modelid=$1&id=$2 [L]

就这么简单,跟淘宝客插件的URL规则设定一致

(十七) Ucenter使用说明

1、进入“会员管理”,复制“与 UCenter 通信的接口 URL”的地址,如下图

2、进入Ucenter管理中心,添加一个新应用,如下图

3、应用名称随便写,应用的主URL地址必须填写(1)处复制的地址

4、选中“开启同步登陆”,然后提交

5、提交之后,会出现一个配置信息,复制这段代码

6、把这段代码复制到FineCMS会员管理的Ucenter配置中,注意要选择“开启”Ucenter,再保存

7、再到Ucenter管理中心查看通信结果

(十八) 网站多语言配置方法

一、 配置方法(v1.7.3版本及以上)

在config/config.ini.php配置文件中找到“SYS_LANGUAGE”,默认为“zh-cn”

二、语言文件 1、语言目录

extensions/language/语言名称/,如“extensions/language/zh-cn/”

2、文件介绍

①、网站语言文件:lang.php ②、JS的语言文件:lang.js ③、编辑器的语言文件:kindeditor.js ④、日期时间字段的语言文件:calendar.js ⑥、后台模板编辑器的语言文件:edit_area.js

三、配置语言

方法很简单,将上面介绍的文件全部翻译成想要的语言即可

注意事项:所有文件不能用记事本等软件编辑,且只能保存编码为utf-8无BOM格式,否则会出大问题

(十九) 后台管理目录(admin)更改方法介绍

后台管理目录默认:admin 配置方法(v1.7.3版本及以上)

1、在config/config.ini.php配置文件中找到“ADMIN_NAMESPACE”,设置成想要的目录名称(如test) 2、再将该目录(admin)重命名为前面设置的目录(如“test”,命名规则只能为小写英文字母) 3、访问地址就变成了http://网站/后台目录/(如http://网站/test/) robots.txt文件中增加屏蔽地址技巧:

Disallow: /index.php?s=t* Disallow: /t*

表示以t开头的控制器或者目录禁止蜘蛛爬行,这样可以不暴露管理目录

如果更改了默认管理目录,原来的访问方式将不会生效(如下图),提高了网站的安全性 补充说明:若是升级用户,在config.ini.php中无法找到“ADMIN_NAMESPACE”参数,

请在后台“核心管理”-“基本配置”中点一下提交按钮,系统会重新索引配置文件,“ADMIN_NAMESPACE”参数就出现了

注意事项:config.ini.php不能用记事本等软件编辑,且保存编码为utf-8无BOM格式,否则会出大问题

(二十) 部分表的数据结构

1、内容表content_站点id,如content_1,表示站点1的内容表 id catid modelid title thumb keywords description url listorder status hits userid username inputtime updatetime

2、栏目表category

内容id,自增 栏目id 模型id 文档标题 缩略图

关键词,小写分号\分隔 文档简介,描述 内容地址 排序值

状态,1:通过,2:拒绝,3:待审,0:回收站,查询数据时只需匹配该字段不等于0即可 浏览量 发布人id 发布人用户名 文档录入时间 文档更新时间

catid typeid modelid parentid child arrchildid catname image content catdir url items ismenu pagesize setting

3、会员表member

栏目id

栏目类型,1内部栏目,2单页面,3外部链接 模型id

父级栏目,顶级栏目为0

是否存在子栏目,1存在子栏目,0不存在子栏目 所有子栏目id,应用于catid in ($cat['arrchildid']) 栏目名称 栏目图片 单网页内容 栏目目录 栏目地址 该栏目的数据量

是否在菜单中显示(针对顶级栏目) 显示数据量

数组,栏目的相关配置信息,如URL格式,权限等

id username email nickname avatar groupid modelid credits regdate regip status lastloginip lastlogintime loginip logintime

会员id 会员账号 邮箱地址 会员昵称 头像地址 会员组id 会员模型id 会员积分数量 注册时间 注册ip

状态,1通过,0未审核 上次登陆ip 上次登陆时间戳 本次登陆ip 本次登陆时间戳

4、推荐位数据表position_data

id posid thumb title description url

推荐位数据id 推荐位置id 缩略图 文档标题 文档描述,简介 文档地址

(二十一) 自定义Tag标签的URL规则

“核心管理” - “系统设置” - “TAG相关” 1、TAG列表地址规则

参数:Tag拼音{tag},分页{page}

举例:http://www.xxx.com/tag-php-20.html(php表示Tag的拼音,20表示第20页) 规则:tag-{tag}-{page}.html

指向:c=tag&a=list&kw=拼音&page=分页

示例:'^tag-([a-zA-Z0-9]+)-([0-9]+).html$' => 'c=tag&a=list&kw=${1}&page=${2}',

2、TAG标签地址规则 参数:Tag拼音{tag}

举例:http://www.xxx.com/tag-php.html(php表示Tag的拼音) 规则:tag-{tag}.html

指向:c=tag&a=list&kw=拼音

示例:'^tag-([a-zA-Z0-9]+).html$' => 'c=tag&a=list&kw=${1}',

(二十二) 站内搜索参数说明及表单设计

站内搜索页面地址:index.php?c=content&a=search

一、搜索方式介绍

1、普通搜索:配置一些时间变量就行,“核心管理”-“基本配置”中设置“搜索” 2、Sphinx:高效搜索方式,要求懂得配置

二、搜索表单介绍

搜索表单最基本的结果如下:

a,c这两个隐藏域必须存在,kw是搜索关键字(也可以写出username,表示会员名称)

当然你也可以加入一些自定义字段搜索(要加自定义字段搜索,必须加上栏目catid或者模型modelid) 如:商品作者:(栏目id或者模型id必须有哦) 三、相关示例 1、按照会员来搜索

2、在栏目catid=100中按自定义字段aaa来搜索

四、URL规则配置

1、伪静态配置,搜索规则必须服务器支持伪静态

指向地址:index.php?c=content&a=search&id=搜索id&page=分页id

2、规则配置

必填参数:{id}搜索id,{page}分页id

举例说明:/search-99-page-10.html(99是搜索id,10是分页id) 填写规则:search-{id}-page-{page}.html

伪 静 态:RewriteRule ^search-([0-9]+)-page-([0-9]+).html$ index.php?c=content&a=search&id=$1&page=$2 [L]

五、kw匹配字段设置

通过设置kw参数可匹配多个字段,支持附表字段(必须存在catid或者modelid参数) 举例说明

1、kw匹配title,keywords,description字段,OR关系

解析为:title like '%$kw%' OR keywords like '%$kw%' OR description like '%$kw%' 模糊匹配一般设置OR关系

2、kw匹配title,content,cname附表字段,OR关系

解析为:主表.catid=1 AND (主表.title like '%$kw%' OR 附表.content like '%$kw%' OR 附表.cnamelike '%$kw%')

匹配附表字段必须有caitd或者modelid

六、支持显示附表字段

参数:more=1(必须存在catid或者modelid参数) 举例:?c=content&a=search&catid=2&more=1

七、自定义搜索排序

参数:order=字段_desc[,字段_asc] 默认DESC排序(若排序附表字段必须存在catid或者modelid参数) 举例:

1、按照hits排序:?c=content&a=search&order=hits_desc

2、按照栏目3附表字段aaa排序:?c=content&a=search&catid=3&order=aaa(默认为DESC排序)

(二十三) 多站点及分站配置

一、视频教程链接

1、多站点:http://bbs.finecms.net/forum.php?mod=viewthread&tid=994&extra=page=1 2、分站:http://bbs.finecms.net/forum.php?mod=viewthread&tid=940&extra=page=1 二、多站点功能介绍

多站点采用域名匹配方式,不同的域名绑定不同的站点,站点间内容相互独立,可增强负载能力

1、独立站点

栏目、内容模型及表单模型相互独立,每个站点需要重新创建栏目及模型

2、继承站点

栏目、内容模型及表单模型继承“被继承的站点”(如地区分站,各个站的栏目都一样),由于该类型站的栏目都一致,因此栏目不能生成静态 三、模板数据调用 1、循环多站点的名称

{loop $sites $site_id=>$config} 站点id:$site_id 站点地址:$config['URL'] 站点名称:$config['SITE_NAME'] .... 打印下$config就明白了

(说明:当前站点id是变量{$siteid},当前站点高亮显示可以用到它) {/loop}

2、调用多站点内容数据

{list site=2 num=10} //调用站点2的所有内容 .... {/list}

(二十四) 会员扩展使用教程

一、会员扩展的作用

1、对会员空间评价、留言

2、会员发布动态信息,如企业的动态、新闻、产品图片等等

3、会员模型的从属关系,如“经销商会员”向某一个“品牌商会员”申请经销、“房产经纪人会员”向某一个“房产中介公司会员”申请加入等等

二、会员扩展的使用方法

这一节不再做过多的介绍,可以参考“表单的使用方法”,作用1、作用2跟表单使用差不多,作用3需要懂一下脑筋

(二十五) FineCMS 模板设计指南

配置系统模板:后台-\核心管理\“基本配置”-选择需要修改的“模板风格”下拉框 模板默认目录: /views/模板名称/

一、模板文件介绍 1、前端

网站首页:index.html

栏目首页:不固定,根据自己设定的模板而定 栏目列表:不固定,根据自己设定的模板而定 文档内容:不固定,根据自己设定的模板而定

单页页面:不固定,默认page.html,根据自己设定的模板而定 标签页面:keyword.html 标签列表:tag.html 搜索页面:search.html

会员信息:user.html(会员登录信息) 消息提示:msg.html 游客投稿:post.html 2、会员

会员注册:member/register.html

会员登录:member/login.html 找回密码:member/repass.html 激活会员:member/active.html 绑定会员:member/bang.html 消息提示:member/msg.html 会员首页:member/index.html 会员空间:member/space.html 收藏夹列:member/favorite.html 资料修改:member/edit.html 密码修改:member/password.html 头像修改:member/avatar.html 一键登录:member/oauth.html 内容管理:member/list.html 发布内容:member/add.html 附件管理:member/attachment.html 表单管理:member/form_list.html 查看表单:member/form_show.html 短消息列:member/pms_list.html 发短消息:member/pms_send.html 读短消息:member/pms_read.html 待审信息:member/verify.html

二、模板标签

标签语法:http://www.finecms.net/tag/ 变量函数:http://www.finecms.net/var/

1、所有标签语法及函数遵循PHP语法结构,不做太多解释了 2、模板标签灵活,完全支持PHP语句

3、若有JS标签,请区分“{}”系统标识符(“{ js内容 }”括号内加空格来区分就行)

三、设计技巧

1、如何在一个模板中引用另外一个模板或者引用一个公共模板? {template 模板名称}: 调用指定“模板名称”,不能加扩展名,支持目录

2、如何根据不同的会员模型来调用不同的会员模板呢?

{if $memberinfo['modelid']==123} {template 模型为123的模板} {/if}

3、如何让文章内容只能让登陆会员查看呢?

{if $memberinfo} 查看内容等等 {else}

你没有登陆不允许查看 {/if}

4、如何让文章内容只能让某一个会员组查看呢?

{if $memberinfo['groupid'] == 22} 可以让会员组groupid是22的会员查看 {else} 无权限查看 {/if}

5、如何让会员发布信息页不同的模型或者栏目使用不同的模板?

{if $catid==22}

{template member/栏目是22的模板名称} {/if}

模型的话就改成$modelid==xxx就ok

四、注意问题

1、若修改过模板文件,请务必把默认目录(把\改成其他的)更改一下,否则下次升级会被覆盖 2、不能用记事本等软件编辑,且只能保存编码为utf-8无BOM格式,否则会出大问题

(二十六) FineCMS万能标签list功能介绍

action table catid num return more order join on page urlrule pagesize 支持\推荐位(position)\、\搜索关键字(keywords)\、\相关文章(relation)\模式,普通数据查询不需要此参数 循环表名称,默认为内容表,可以用其他表,插件表格式为:插件名称.表名称(link.linkname) 当前栏目ID号 显示数量,还可以写成\相当于limit 1,5 返回数组名称,用于循环,默认值为't',调用方式:{$t['title']} 值为1时,自动调用内容表的附表内容(也就是自定义的字段) 排序,例如: order=id_desc,userid_desc,默认desc排序,可以省掉_desc 联合查询表名称(用该表的主键关联),例如:join=member 其他表的字段(非join表的自段),必须与join成对出现,否则join失效,例如:join=member on=userid 用于分页查询,如果出现了num参数,分页查询将会失效 分页URL格式(分页标识符_page_或者[page]),例如:urlrule=$catid-[page].html 分页查询每页显示的记录数量(如果出现catid,系统默认会使用该栏目的分页数量) cache thumb form site fields extend 数据缓存,单位秒,在这缓存时间内调用缓存文件而不再去访问数据库 值等于1的时候,显示有缩略图的文档;等于0的时候,显示无缩略图的文档(v1.7) 调用表单,例如:form=liuyan ,就是调用liuyan的表单数据(v1.7.5) 站点id,用于多站点调用,例如: site=2 table=content ,就是调用站点2的内容表(v1.7.5) 为sql语句指定字段,例如: fields=title,url ,与sql语法一致(不能使用`),支持自定义字段名称(v1.7.5) 对特殊sql语句进行延展,具体教程传送口 格式: {list 参数1=值1 参数2=值2 ... 参数N=值N} ... 循环体 ... {/list} 注意:参数和值不能出现引号 一、参数介绍

1、action

模式选择参数,支持\推荐位(position)\、\搜索关键字(keywords)\、\相关文章(relation)\、\自定义字段信息(field)\模式 例如:推荐位查询

{list action=position id=1} ... {/list}

返回推荐位id=1的数据并循环

2、return

数据返回变量,默认为t,循环内直接使用{$t[字段]}

{list ... return=item} {$item['title']} {/list}

返回变量就成了$item,而不再是$t,多层list标签可以用它来解决变量冲突 3、more

当其值为1时,表示联合附表查询,必须与catid或者modelid参数联合使用

{list catid=$catid more=1 cache=36000} ... {$t[附表字段]} ... {/list}

可快速查询出该栏目的自定义字段数据,可配合fields参数减少缓存大小

4、join和on

联合查询表名称,必须与on成对出现

{list table=content join=member on=userid} ... {/list}

表content与member关联查询,on是表content中的关联字段,就是以member表的主键与content表的userid字段先关联查询

5、page、pagesize(显示数量)和urlrule(分页规则)

分页查询,如果存在caitd,则使用该栏目的分页规则和显示数量,返回分页结果变量{$pagelist}

{list catid=$catid page=$page} ... {/list}

栏目分页时,会调用该栏目的分页规则配置,无需后面两个参数 6、num

Limit控制,最大显示数量

{list catid=$catid num=5} ... {/list}

最大显示5条记录(可以写成num=1,5,表示从1开始到5行结束) 7、order

{list catid=$catid order=updatetime,id} ... {/list}

示例按updatetime降序,id降序,如果升序就附加:字段_ASC(默认是降序)

8、字段作为参数(同一字段只能出现一次)

{list catid=1 username=admin num=10} ...{/list}

其中的username是内容表中的字段,解析为:catid=1 and username='admin'

{list NOTcatid=1 num=10} ...{/list}

解析为:catid not in (栏目集合)

9、cache

缓存参数,推荐list查询都加上它

{list catid=1 cache=3600} ...{/list}

缓存3600秒(1小时),在3600秒内调用缓存数据而不访问数据库,减轻服务器压力

10、thumb 是否显示缩略图

{list thumb=1 cache=3600} ...{/list}

当thumb=1时,表示显示有缩略图的文档,相当于SQL中的thumb<>'';当thumb=0时,相当于SQL中的thumb=''

11、form

表单数据查询快捷参数

{list form=liuyan cache=3600} ...{/list}

调用表单,例如表单为liuyan ,示例就是调用liuyan的表单数据,当然相对应本站点 12、site

用于查询指定站点数据

{list site=2 table=content num=10 cache=3600} ...{/list}

站点id,用于多站点调用,示例就是调用站点2的内容表数据

12、fields

为sql语句指定字段,与sql语法一致(各个字段不能使用`字段名`,程序会自动为你加上),支持自定义字段名称

{list fields=title,url,content catid=1 more=1 num=10 cache=3600} ...{/list}

示例中解析为SQL是:select `主表`.`title`,`主表`.`url`,`附表`.`content` from ....

二、相关示例

1、栏目查询

{list catid=$catid order=updatetime num=10} ... {/list}

查询当前栏目的10条数据,并按updatetime desc排序

2、栏目分页查询

{list catid=$catid order=updatetime page=$page} ... {/list}

查询当前栏目,按照当前栏目默认分页方式分页

3、自定义分页查询

{list catid=$catid order=updatetime page=$page pagesize=10 urlrule=$catid-[page].html} ... {/list}

分页查询,每页显示10条,url地址格式为:栏目id-分页id.html

4、联合附表的自定义字段查询

{list catid=$catid more=1 num=10} ... {/list}

5、Join关联查询

{list catid=$catid join=member on=userid} ... {/list}

解析为:from 内容表 left join member on 内容表.userid=member.主键

6、自定义表查询

{list table=member groupid=1} ... {/list}

查询member表中groupid=1的用户

7、插件表查询

{list table=review.revirew_total contentid=10} ... {/list}

查询review插件中的表review_total中contentid=10的数据

三、Action参数

1、推荐位(position)

{list action=position id=1 catid=$catid} ... {/list}

id:推荐位的id

catid:可选,根据推荐位的类别而决定

输出字段请参考position_data表结构,不用解释太多大家都懂

2、搜索关键字(keywords)

{list action=keywords order=addtime} ... {/list}

order:排序字段参考search表

输出字段请参考search表结构,不用解释太多大家都懂

3、相关文章(relation) ①、调用手动添加的相关文章

{list action=relation id=$id num=10} ... {/list}

id:文章的id

num:显示数量,默认10条 ②、通过关键字自动调用相关文章

{list action=relation tag=$keywords id=$id num=5}...{/list}

id:当前文章id tag:当前文章的关键字 catid:栏目id(可选) modelid:模型id(可选)

4、自定义字段显示(field)(适合自定义字段表单显示)

{list action=field modelid=$modelid name=字段名称 value=字段默认值} ... {/list}

modelid:栏模型id(必选) name:字段名称(必选) value:字段值(可选)

返回数据{$t['form']}:用于表单显示(就是一个表单输入框)

返回数据{$t['data']}:返回复选框、单选按钮中的选项名称和值(数组类型,若要输出请用loop配合) 例:

①、调用模型2中的自定义字段zhiduan(默认值200)的输入表单

{list action=field modelid=2 name=zhiduan value=200} {$t['form']} {/list}

②、调用模型2中的自定义字段zhiduan(必须是复选框、单选按钮类型)的值

{list action=field modelid=2 name=zhiduan} {loop $t['data'] $n=>$v} 名称:{$n},值:{$v}; {/loop} {/list}

因为$t['data']是数组类型,说以要用loop循环输出,不用解释太多大家都懂 四、特殊字段辅助参数

1、NOTcatid=值

注:NOT只能与栏目catid搭配

表示catid not in (栏目集合),不用解释太多大家都懂

2、OR字段名称=值

{list catid=$catid ORuserid=1 ... }

表示where ... catid=$catid or userid=1 3、IN字段名称=值

{list catid=$catid INstatus=0,1,2 ... }

表示where ... catid=$catid and status in (0,1,2)

4、BW字段名称=值

{list catid=$catid BWstatus=1,2 ... }

表示where ... catid=$catid and status between 1 and 2

5、LIKE字段名称=值

{list LIKEtitle=%finecms% ...}

表示where ... title LIKE '%finecms%',不用解释太多大家都懂

五、返回数据

1、循环变量return=?,默认为$t 2、分页变量{$pagelist}

3、SQL查询字符串{$sql}(用于测试,打印当前查询的sql语句) 4、统计变量{$total},返回数据总数量

5、循环计数{$key},用于list循环计数变量,从0开始 6、循环统计变量{$count},统计本次循环记录数量

7、支持多层lsit,防止变量冲突,必须设置不同的return值(v1.7.1及以上版本) 如果存在return值,那么所有变量必须加上后缀\值\,例如:

{list ... return=s} 循环计数变量:{$key_s} {/list}

分页:{$pagelist_s} 总数:{$total_s}

(二十七) 标签语法说明

一、模板变量

1、普通变量:{$finecms} 2、数组变量:{$finecms['name']} 3、系统常量:{SITE_PATH}

二、判断语句

{if $模板变量1 运算符 $模板变量} 模板内容1 {else} 模板内容2 {/if} 或

{if $模板变量1 运算符 $模板变量2} 模板内容1

{else if $模板变量1 运算符 $模板变量3} 模板内容2 {else} 模板内容3 {/if}

注:这里的运算符支持:> 、< 、>= 、<=、==、!= 、<>

三、循环语句

{loop 模板数组 $索引变量=>$值变量} 执行语句 {/loop} 或

{loop 模板数组 $值变量} 执行语句 {/loop}

四、Template模板

{template 模板文件}或者{include 模板文件},此模板文件一般为共享性模板文件 例如:{template header} ,模板文件这里省略了.html的后缀名

五、执行函数

1、{php PHP语句},{php echo \

2、{函数名(参数)},{strlen($str)}相当于

六、页面查询

①、{sql:模型名称 执行方法}

格式:{sql:user where(\asc\返回:$return数组

②、{plugin:插件名称::表名称 执行方法} 格式:{plugin:link::link findAll()} 返回:$return数组

(二十八) 系统变量介绍

一、通用变量

1、{SITE_PATH}:不带域名的网站地址 2、{SITE_URL}:带域名的网站地址 3、{CMS_NAME}:软件名称 4、{CMS_VERSION}:软件版本 5、{CMS_UPDATE}:更新时间 6、{SITE_THEME}:前台风格路径 7、{ADMIN_THEME}:后台风格路径 8、{EXT_PATH}:扩展目录路径 9、{LANG_PATH}:语言目录路径

10、{$数组键名}:网站配置信息(config.ini.php),如{$SITE_NAME} 11、数组{$cats}:所有栏目数组({$cats[栏目ID]}) 12、{$meta_title}:网页title标题 13、{$meta_keywords}:网页关键词 14、{$meta_description}:网页描述信息 15、{$indexc}:是否是首页index

16、{$param[参数名称]}:用于接收URL参数 17、{$memberinfo}:当前登陆会员的信息,数组格式 18、{$membermodel}:会员模型数组 19、{$membergroup}:会员组数组 20、{$sites}:多站点数组 21、{$siteid}:当前站点的id

二、栏目列表变量

1、{$page}:当前栏目的页数

2、{$arrchilds}:内部栏目的子栏目集(用于栏目列表查询list) 3、{$pageurl}:栏目分页地址格式(用于分页) 4、{$catid}:栏目id 5、{$catname}:栏目名称 ... 自动分析category表中字段

三、搜索列表变量

1、{$searchdata}:搜索结果集 2、{$searchpage}:搜索分页 3、{$kw}:关键字

4、{$searchnums}:搜索结果总数 5、{$modelid}: 搜索模型id 6、{$catid}: 搜索栏目id

四、内容页变量

1、{$cat}:当前栏目信息 2、{$page}:分页id

3、{$prev_page}:上一篇数据 4、{$next_page}:下一篇数据 5、{$pageurl}:分页格式

6、{$contentpage}:内容分页(多维数组[分页id=>对应URL地址]) ... 自动分析content表与对应附表中字段

(二十九) 系统函数介绍

1、image($thumb):返回完整的图片地址

2、thumb($thumb,宽,高):如果存在缩略图,优先调用缩略图 3、strcut($string, 长度, 截取后替代字符):字符截取 4、clearhtml($text):清除HTML格式 5、catpos(栏目ID, 间隔符):栏目面包屑导航

6、plugin(插件名称):运行插件或者判断内置控制器型插件是否存在 7、getCatNav($catid):当前栏目的子栏目或同级栏目菜单 8、getParentData($catid):父级栏目的信息

9、baiduMap($catid/$modelid[说明:v1.7.2及以下使用$catid,后面版本使用$modelid], '地图div的id', 地图值, 宽, 高):百度地图显示

10、string2array/array2string:字符串转化为数组/数组转换为字符串

11、linkagelist(顶级菜单keyid, 显示菜单列表的id):显示联动菜单子集或者同集,数组格式 12、linkagedata(顶级菜单keyid, 菜单id):取得菜单id的数据,数组格式 13、linkageids(顶级菜单keyid, 菜单id):取得菜单id的父级菜单

14、linkagepos(顶级菜单keyid, 菜单id, URL规则, 分隔符):菜单面包屑导航,URL规则中以{linkageid}匹配菜单id

15、linkageform(顶级菜单keyid, 默认值, 表单名称, 菜单级数):调用联动菜单表单选择框 16、getfile($file):返回文件完整地址

17、tag_url(关键词):返回Tag标签地址

18、get_member_avatar(会员id, 大小120/90/45/30):调用会员头像

19、get_member_info(会员id, $more=0):会员详细详细,若more=1显示自定义字段内容 20、get_tag_data(关键字字段):返回关键字数据,数组格式(v1.7.3以上) 21、count_member_size(会员id):统计会员附件目录大小(v1.7.5以上)

22、form_show_url(表单模型id, 表单数据):返回表单自定义url地址(v1.7.5以上)

23、html_to_data(数据数组, 模板文件):用于静态页面,将“数据数组”解析到指定“模板文件”中,Js动态调用它(v1.7.5以上)

(三十) 关于栏目{$cats}调用说明

FineCMS栏目信息保存在全局数组$cats中,当然你要知道栏目数组的结构了

通过这张图,大家应该对$cats数组结构了如指掌了吧 1、调用顶级栏目

{loop $cats $cat}

{if $cat['paentid'] == 0 && $cat['ismenu']} //这里的$cat[?ismenu?]是指作为菜单(在栏目管理处可以看到)。 业务逻辑处理.... {/if} {/loop}

2、调用顶级栏目(存在下级栏目)

{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也是首字母大写的

本文来源:https://www.bwwdw.com/article/rc3t.html

Top