PHPCMS模板制作精髓

时间:2016-05-19123举报小编:admin

常用标签

{$SEO['keyword']} 页面关键字

{$SEO['description']} 页面描述

{APP_PATH} 首页地址 格式 http://www.orsoon.com/

{$title} 文章标题

{$url}   文章链接 仅限于动态或伪静态页面,纯静态页面请使用 {go($catid,$id)}

{$content} 文章内容

{$description} 文章描述

时间标签

{$inputtime} 创建时间 2013-10-06 21:31:00

{$updatetime}更新时间 2013-10-06 21:31:00 注:在静态文章页中无法调用

{date('Y-m-d',strtotime($inputtime))} 循环外使用 2013-10-06

{date('Y-m-d',$r[inputtime])} 循环内使用 2013-10-06

字符截断

其中$v为loop循环的变量,也有人习惯用$r

{str_cut($v[title], 30)} 文章标题 限制30字符

{str_cut($v[description],100,'..')} 文章描述,限制100字符,超出部分显示".."

{strip_tags($v[description]} 去除格式的描述

{str_cut(strip_tags($v[description]),200,'[…]')}  去除格式的描述,并在200字符时切断,用[…]表示切断部分

缩略图

{$v[thumb]} 完整图片

{thumb($v[thumb],150,112)} 把图片裁剪成宽150,高112,裁剪后的图片自动在附件中生成

栏目参数

{$CAT[catname]} 栏目名称

{$CAT[letter]} 栏目拼音

{$CAT[url]} 栏目链接

以上标签首页不能调用,分类页和文章页都可以。从某种意义上讲 $CAT = $CATEGORYS[$catid] 但是$CATEGORYS是二维数组,可以在任意位置调用。可以看下 

面包屑导航

{catpos($catid)} 当前位置,在首页什么都不显示,在栏目页和文章页会显示所在栏目层级。一般都这么用

当前位置: 首页 > {catpos($catid)}

文章页的上一篇和下一篇代码

上一篇:{$previous_page[title]}

下一篇:{$next_page[title]}

点击数调用

必须先调用jquery库,比如


需要显示的位置加入代码


最后还需要调用下统计代码


注:以上代码是依据HTML5的规则,省略了指定类型的标签。

文件导入

{template "content","header"} 调用content目录下的header.html文件

{template "content","footer"} 调用content目录下的header.html文件

{template "content","filename"} 调用content目录下的filename.html文件

判断首页分类列表页内页

下面是我自己总结出来的,用户PHPCMS的页面判断

{if !$catid}首页{/if}

{if $child}栏目首页{/if}

{if $parentid}栏目列表页{/if}

{if $catname}栏目首页和栏目列表页{/if}

{if $id}内容页{/if}

{if $tag}标签列表页

栏目列表

{pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"}
{loop $data $r}{$r[catname]}{/loop}
{/pc}

调用哪一级别的栏目列表,主要取决于参数catid的值。

一级栏目列表 catid="0"

同级栏目列表 catid="$parentid" 

如果需要当前栏目高亮,则只需要用if语句判断一下即可


更复杂的情况见 

文章列表

分类最新文章

{pc:content action="lists" catid="$catid" num="20" order="id DESC"} 
{loop $data $v}{$v['title']}{/loop}
{/pc}

全站最新文章

{pc:get sql="SELECT * FROM v9_news a,v9_news_data b WHERE a.id=b.id ORDER BY inputtime DESC"}
{loop $data $v}{$v[title]}{/loop}
{/pc}

随机文章

把排序部分改成 order="rand()"

添加分页功能

在pc标签最后加一个属性 page="$page",并在{/pc}前添加 {if $pages}{$pages}{/if} 来调出分页

分页属性分2种情况,不按照以下情况添加属性,分页功能无法实现

    page="$page" 静态页面分页

    page="$_GET[page]" 动态页面分页

推荐内容

推荐到首页

{pc:content action="position" posid="2" order="id DESC" num="5"}
{loop $data $key $val}{$val['title']}{/loop}
{/pc}

只推荐到当前栏目(包括子栏目的文章)

{pc:content action="position" posid="5" order="id DESC" catid=$catid}
{loop $data $v}
{/loop}
{/pc}

栏目点击排行

{pc:content action="hits" catid="$catid" order="weekviews DESC" num="10"}
{loop $data $key $val}{$val['title']}{/loop}
{/pc}

day 调用多少天内的排行,默认值0,一般也不用这个属性

order 排序类型(本月排行- monthviews DESC 、本周排行 - weekviews DESC、今日排行 - dayviews DESC)

全站点击排行

PHPCMS默认仅支持栏目点击排行榜,在V9版本中,也可以通过数据库来调用全站点击排行。

{pc:get sql="SELECT DISTINCT url,title,views FROM v9_news,v9_hits WHERE v9_news.id = substring(v9_hits.hitsid,5) ORDER BY v9_hits.views DESC" num="10" }{loop $data $v}{$v[title]}点击数:{$v[views]}{/loop}{/pc}

相关文章

{pc:content action="relation" relation="$relation" keywords="$rs[keywords]" catid="$catid" num="10" id="$id"}
{if $data}
{loop $data $r}{$r[title]}{/loop}
{/if}
{/pc}

PHPCMS的相关文章是根据关键字来获取的,拥有相同关键字的文章被定义为相关文章。

其他参数,如 catid="$catid" 指仅调用当前分类下的相关文章,而且这个catid参数必须有,否则一篇文章都调用不到,id=”$id” 排除当前文章。

注意:{if $data}和{/if}之间的内容,仅在存在相关文章时显示,其他列表调用都可以这么用。

但是并不是每篇文章都有相关文章的,所以在没有相关文章时我们就调用随机文章

{pc:content action="relation" relation="$relation" keywords="$rs[keywords]" catid="$catid" num="12" id="$id"}
{if $data}
{loop $data $v}{$v['title']}"{/loop}
{else}
{pc:get sql="SELECT * FROM v9_news WHERE catid=$catid and id!=$id ORDER BY RAND()" num="12"}
{loop $data $v}{$v['title']}"{/loop}
{/pc}
{/if}
{/pc}

调用随机文章列表中,我设定了条件必须是同一个分类下的文章且不能包含本身。

友情链接

{pc:link action="type_list" order="listorder DESC"}
{loop $data $v}{$v['name']}{/loop}
{/pc}

更复杂的友情链接见 

最后附上一些比较实用的方法