在PHPCMS V9中正式开始需要PC标签做为数据的获取的方式。
PC标签是以下面的方式进行声明
{pc:content action="lists" cache="3600" num="20" page="$page"}{/pc}PC标签必须以{pc}开头,并以{/pc}结尾的代码片段。
当然不以{/pc}结尾并不会引起程序致命性的错误,导致程序无法继续运行。
以下为两种已知可能会出现的问题:
当网页中出现两个PC标签时,可能会使得没有闭合的PC标签之后的PC标签数据和其混乱。在后台可视化编辑时,可能出现网页结构错乱的问题。PC标签分析:
PC标签中{pc:}冒号之后跟随的为模块名。如上面的例子中调用的是内容模型的PC标签。
action=”list”
这个形式所代表的是参数。每一个PHPCMS V9模型都为其PC标签定义了调用的参数。其中有一些调用参数是系统保留的参数,其对所有的PC标签都是有效的。
参数必须使用
参数名=”参数值”
的方式填写,多个参数之间使用空格分开(如下例),参数值可使用双引号来包括,无论是什么形式的引号都必须是成对出现的。
{pc:content 参数名=”参数值” 参数名=”参数值” 参数名=”参数值”}
请查看PC标签保留参数相关章节,以了解具体保留参数及其用途。
PC标签分类:
PC标签包含两个类别,分别为:
工具类模块类工具类,大体上可以理解为PHPCMS V9所提供的一些工具箱。请查看PC标签工具箱相关章节,以了解更多关于工具类的PC标签的更多信息。
而模块 类,是PHPCMS V9各个模型提供给大家调用模块 数据的数据接口。查看具体模块的相关说明章节,以了解更多关于模块类的PC标签的更多信息。
如何显示PC标签中的数据:
默认情况下PC标签中的数据都是数组方式返回的,你都可以通过 $data 来获取到这个数组,如果你在PC标签中定义了return参数,返回的数组将使用return的值进行命令。
一般情况下你可以使用如下的方式来显示值:
{loop $data $key $val}
<a href=”{$val[url]}”>{$val[title]}</a><br>
{/loop}
基中的$val[url]和$val[title]需要具体根据所使用的PC标签,返回的数据来判断。
PC标签保留参数
下表为PC标签保留参数表,几乎所有的PC标签都支持这些保留参数设置
变量名 | 默认值 | 说明 |
action | null | 本参数的值表示为操作事件,模型类PC标签必须使用包含本参数,以说明要进行的操作。 |
cache | 0 | 缓存存储时间(单位秒) |
num | 20 | 获取记录的条数,最后会被模板引擎处理成limit传送到处理函数中。 |
page | null | 当前分页。一般填写为$_GET[page] |
urlrule | null | URL规则 |
return | data | 返回数据变量名 |
下例中是一个完整的使用例子。
{pc:content action=”lists” catid=”25″ num=”20″ page=”$_GET[page]” return=”data”}
<ul>
{loop $data $n $r}
<li><a href=”{$r[url]}”>{$r[title]}</a></li>
{/loop}
</ul>
{/pc}
get标签
GET标签源自于PHPCMS 2008版,其使用SQL语句直接获取数据的特性,成为大家制作模板的首选。
在V9中这样强大的工具也得到保留下来。
GET标签使用方式如下:
{pc:get sql=”SELECT * FROM phpcms_member” cache=”3600″ page=”$page” dbsource=”discuz” return=”data”}
<ul>
{loop $data $key $val}
{$val[username]}<br />
{/loop}
</ul>
{$pages}
{/pc}
从上面的代码里面可以看出GET标签所支持的参数。对照下面的列表了解每一个参数的用途:
参数 | 默认值 | 必须 | 说明 |
sql | null | 是 | 要执行的SQL语句 |
cache | 0 | 否 | 缓存时间,单位为秒 |
page | 0 | 否 | 分页,通过变量把当前的分布传给PC标签进行处理 |
dbsource | null | 否 | 数据源,当你通过系统后台的数据源模块配置过数据源时,可把数据源名填写到这里,系统会去对应的数据源来读取数据。如果要读取本系统的数据请留空 |
return | data | 否 | 返回的数据的变量 |
内容模块
内容模块PC标签调用说明
模块名:content
模块提供的可用操作
操作名 | 说明 |
内容数据列表 | |
内容相关文章 | |
内容数据点击排行榜 | |
内容栏目列表 | |
内容推荐位列表 |
position操作说明如下:
内容推荐位列表(position):
可用参数:
参数名 | 是否必须 | 默认值 | 说明 |
posid | 是 | null | 推荐位ID |
catid | 否 | null | 调用栏目ID |
thumb | 否 | 0 | 是否仅必须缩略图 |
order | 否 | null | 排序类型 |
num | 是 | null | 数据调用数量 |
代码例子:
{pc:content action=”position” posid=”2″ order=”listorder DESC” num=”4″}
<ul>
{loop $data $key $val}
<li> <a href=”{$val['url']}”>{$val['title']}</a></li>
{/loop}
</ul>
{/pc}
返回参数如下表:
字段 | 类型 | 空 | 默认 | 注释 |
title | char(80) | 否 | NULL | 推荐位标题 |
url | char | 否 | NULL | 推荐位链接地址 |
inputtime | int(10) | 否 | NULL | 推荐位发布时间 |
thumb | char | 是 | NULL | 推荐位缩略图 |
其他 | 不定 | 是 | 根据模型所设置的加入到推荐位中字段名称 |
内容列表(lists):
可用参数:
参数名 | 是否必须 | 默认值 | 说明 |
catid | 否 | null | 调用栏目ID |
where | 否 | null | sql语句的where部分 |
thumb | 否 | 0 | 是否仅必须缩略图 |
order | 否 | null | 排序类型 |
num | 是 | null | 数据调用数量 |
moreinfo | 否 | 0 | 是否调用副表数据 |
提醒:从PHPCMS V9 Beta 20101105版本开始支持moreinfo参数属性,本参数表示在返回数据的时候,会把副表中的数据也一起返回。一个内容模型分为2个表,一个主表一个副表,主表中一般是保存了标题、所属栏目等等短小的数据(方便用于索引),而副表则保存了大字段的数据,如内容等数据。在模型管理中新建字段的时候,是允许你选择存入到主表还是副表的(我们推荐的是,把不重要的信息放到副表中)。想要在列表中调取副表的数据就需要在PC标签中使用moreinfo这个属性。
代码例子:
{pc:content action=”lists” catid=”2″ order=”id DESC” num=”4″}
<ul>
{loop $data $key $val}
<li> <a href=”{$val['url']}”>{$val['title']}</a></li>
{/loop}
</ul>
{/pc}
where用法:
{pc:content action=”lists” catid=”2″ where=”`thumb`!=” AND `status`=99″ order=”id DESC” num=”4″}
<ul>
{loop $data $key $val}
<li> <a href=”{$val['url']}”>{$val['title']}</a></li>
{/loop}
</ul>
{/pc}
返回参数如下表:
字段 | 类型 | 空 | 默认 | 注释 |
title | char(80) | 否 | NULL | 推荐位标题 |
url | char | 否 | NULL | 推荐位链接地址 |
inputtime | int(10) | 否 | NULL | 推荐位发布时间 |
thumb | char | 是 | NULL | 推荐位缩略图 |
其他 | 不定 | 是 | 其他模型字段 |
点击排行榜(hits):
可用参数:
参数名 | 是否必须 | 默认值 | 说明 |
catid | 否 | null | 调用栏目ID |
day | 否 | 0 | 调用多少天内的排行 |
order | 否 | null | 排序类型(本月排行- monthviews DESC 、本周排行 – weekviews DESC、今日排行 – dayviews DESC) |
num | 是 | null | 数据调用数量 |
代码例子:
{pc:content action=”hits” catid=”2″ order=”weekviews DESC” num=”10″}
<ul>
{loop $data $key $val}
<li> <a href=”{$val['url']}”>{$val['title']}</a></li>
{/loop}
</ul>
{/pc}
返回参数如下表:
字段 | 类型 | 空 | 默认 | 注释 |
title | char(80) | 否 | NULL | 推荐位标题 |
url | char | 否 | NULL | 推荐位链接地址 |
inputtime | int(10) | 否 | NULL | 推荐位发布时间 |
thumb | char | 是 | NULL | 推荐位缩略图 |
其他 | 不定 | 是 | 其他模型字段 |
相关文章(relation):
可用参数:
参数名 | 是否必须 | 默认值 | 说明 |
catid | 否 | null | 调用栏目ID |
relation | 否 | $relation | 无需更改 |
keywords | 否 | null | 内容页面取值:$rs[keywords] |
num | 是 | null | 数据调用数量 |
代码例子:
{pc:content action=”relation” relation=”$relation” catid=”$catid” num=”5″ keywords=”$rs[keywords]“}
{loop $data $r}
<li>·<a href=”{$r[url]}” target=”_blank”>{$r[title]}</a><span>({date(‘Y-m-d’,$r[inputtime])})</span></li>
{/loop}
{/pc}
返回参数如下表:
字段 | 类型 | 空 | 默认 | 注释 |
title | char(80) | 否 | NULL | 推荐位标题 |
url | char | 否 | NULL | 推荐位链接地址 |
inputtime | int(10) | 否 | NULL | 推荐位发布时间 |
thumb | char | 是 | NULL | 推荐位缩略图 |
其他 | 不定 | 是 | 其他模型字段 |
栏目列表(category):
可用参数:
参数名 | 是否必须 | 默认值 | 说明 |
catid | 否 | 0 | 调用该栏目下的所有栏目 ,默认0,调用一级栏目 |
$siteid | 否 | 1 | 默认调用系统站点 |
order | 否 | null | 排序方式、一般按照listorder ASC排序,即栏目的添加顺序 |
代码例子:
{pc:content action=”category” catid=”0″ num=”25″ siteid=”$siteid” order=”listorder ASC”}
{loop $data $r}
<li><a href=”{$r[url]}”><span>{$r[catname]}</span></a></li> {/loop}
{/pc}
返回参数如下表:
字段 | 类型 | 默认值 | 说明 |
catid | smallint | 无 | 栏目ID |
siteid | tinyint(3) | 0 | 站点ID |
module | varchar(15) | 无 | 模块ID |
type | tinyint(1) | 1 | 栏目类型ID |
modelid | tinyint(5) | 5 | 模型ID |
parentid | smallint(5) | 5 | 上级父栏目 |
arrparentid | varchar(255) | 无 | 所有父栏目 |
child | tinyint(1) | 0 | 子栏目 |
arrchildid | mediumtext | 无 | 所有子栏目 |
catname | varchar(30) | 无 | 栏目名称 |
image | varchar(100) | 无 | 栏目图片 |
description | mediumtext | 无 | 栏目描述 |
parentdir | varchar(100) | 无 | 父栏目目录 |
catdir | varchar(30) | 无 | 栏目目录 |
url | varchar(100) | 无 | 栏目链接 |
items | mediumint(8) | 0 | 栏目内容数 |
hits | int(10) | 0 | 点击数 |
setting | mediumtext | 无 | 栏目设置 |
listorder | smallint(5) | 0 | 排序 |
ismenu | tinyint(1) | 0 | 是否显示 |
sethtml | tinyint(1) | 0 | 是否生成到根目录 |
letter | varchar(30) | 无 | 栏目拼音 |