phpcms 模板常用标签指南
1、关于SEO
<meta name="keywords" content="{$SEO[keyword]}"/> <meta name="description" content="{$SEO[description]}"/> <meta http-equiv="Cache-Control" content="no-transform " /> <title>{if isset($SEO[title]) && !empty($SEO[title])}{$SEO[title]}{/if}{$SEO[site_title]}</title>
说明:
{$SEO[keyword]} /* 页面关键词设置*/
{$SEO[description]} /*页面描述设置*/
{if isset($SEO[title]) && !empty($SEO[title])}{$SEO[title]}{/if}{$SEO[site_title]}/*页面title设置*/
2、关于自定义变量使用
{php $flag = 'index'}/*自定义一个php变量*/
/*通过变量值加载相应的样式*/
{if $flag == "index"} <link rel="stylesheet" type="text/css" href="/index.css" media="all"/> {elseif $flag == "pic"} <link rel="stylesheet" type="text/css" href="/common.css" media="all"/> {elseif $flag == "video"} <link rel="stylesheet" type="text/css" href="/video.css" media="all"/> {else} <link rel="stylesheet" type="text/css" href="/style.css" media="all"/> {/if}
3、加载模板
{template "content","header"}
在页面需要加载的位置将模板加载进来
4、面包屑导航(带连接)
{catpos($catid)}
5、栏目相关标签
1、用途
$CATEGORYS 是一个二维数组,主要用来保存当前频道或者模块所以栏目的基本配置信息。
2、如何设置
您可以登录后台进入模块或者频道的栏目管理,然后在线修改任何一个栏目设置即可改变参数值。修改栏目参数设置系统会更新phpcms_category里相应记录的值,同时把各栏目基本信息数组缓存到 ./data/cache/category_频道ID.php ,每次访问有栏目的模块或频道时系统会自动加载其栏目基本配置信息。
3、作用范围
$CATEGORYS 数组是系统默认加载的,可以在当前模块或频道的任何php文件和模板中调用。
常用的有
$CATEGORYS[$catid][catid] 栏目id
$CATEGORYS[$catid][module] 栏目所在的模块
$CATEGORYS[$catid][type] 栏目类型
$CATEGORYS[$catid][modelid] 栏目所属模型id
$CATEGORYS[$catid][catname] 栏目名称
$CATEGORYS[$catid][style] 栏目名称样式
$CATEGORYS[$catid][image] 栏目图片
$CATEGORYS[$catid][catdir] 栏目路径
$CATEGORYS[$catid][url] 目录url
$CATEGORYS[$catid][parentid] 栏目的父id
$CATEGORYS[$catid][arrparentid] 所有上级栏目ID
$CATEGORYS[$catid][parentdir] 父栏目的路径
$CATEGORYS[$catid][child] 是否有子栏目
$CATEGORYS[$catid][arrchildid] 栏目的所有子栏目id
$CATEGORYS[$catid][items] 栏目信息数
$CATEGORYS[$catid][ismenu] 栏目是否显示导航
{$CATEGORYS[$catid][description]} 栏目描述
{$CATEGORYS[$catid][hits]} 栏目点击数
{$CATEGORYS[$parentid][catid]} 父栏目ID
{$CATEGORYS[$parentid][catname]} 父栏目名称
{$CATEGORYS[$top_parentid][catid]} 顶级栏目ID
{$CATEGORYS[$CATEGORYS[$CAT[parentid]][parentid]][catname]} 上上级栏目名称
{$CATEGORYS[$CATEGORYS[$CAT[parentid]][parentid]][url]} 上上级栏目链接
例如:
{if $CATEGORYS[$catid]['catid'] == 8}
<li class="fl cur"><a href="/news/" class="block">综合</a></li>
{else}
<li class="fl"><a href="/news/" class="block">综合</a></li>
{/if}
6、pc标签使用
{pc:content action="lists" catid="$catid" num="9" order="listorder DESC,id DESC" page="$page"}/*加载列表数据*/ {loop $data $key $r} <li> <a href="{$r[url]}" target="_blank" class="block"> <h2 title="{$r[title]}">{$r[title]}</h2> <p>{str_cut($r[description],220,'...')}</p> <h3>{date('Y-m-d',$r[inputtime])}</h3> </a> <a href="{$r[url]}" target="_blank" class="block newlist_scale_hov" style="display:none;width:256px; height:225px;"></a> </li> {/loop} {/pc} </ul> <div class="clearfix sub_content_page clear_both"> {$pages} </div>
action 参数还有:
操作名 |
说明 |
lists |
内容数据列表 |
relation |
内容相关文章 |
hits |
内容数据点击排行榜 |
category |
内容栏目列表 |
position |
内容推荐位列表 |
action="lists" : 加载列表数据
catid="$catid":指定栏目ID '$catid'这里指的是当前栏目
num="9":加载数量,指定加载9条
order="listorder DESC,id DESC" 排序方式 desc降序 asc升序
page="$page" :是否有分页数据
{$pages}:加载分页数据
{loop $data $key $r}:循环数据 $r每条数据对象
{$r[title]}:内容标题内容
{str_cut($r[description],220,'...')}:内容描述进行裁剪 多出部分"..."代替
{date('Y-m-d',$r[inputtime])}:格式化时间 ”2015-5-15“
$r[inputtime]:文章录入时间
7、多级栏目调用(实例说明)
{pc:content action="category" catid="42" num="100" siteid="$siteid" order="listorder ASC"}
{loop $data $r}
<!--二级导航循环-->
{if $r['catid'] == $catid || $CATEGORYS[$CAT[parentid]][catid] == $r['catid'] || $CATEGORYS[$CATEGORYS[$CAT[parentid]][parentid]][catid] == $r['catid']}
<li class="cur">
<h2 class="clearfix list_titleswitch">
{if $r[child]}/*是否子节点*/
<a href="javascript:;" class="fl">{$r[catname]}/*栏目名称*/</a>
{else}
{php $flag = 0;}
/*子栏目循环*/
{pc:content action="lists" catid="$r['catid']" order="id DESC" num="1" moreinfo="1"}
{loop $data $key $val}
{if $val['url'] != ''}
{php $flag = 1;}
{if $val['important'] == '是'}/*自定义字段用来加粗栏目*
{if $val['islink']}/*是否有外链*/
<a href="{$val['url']}" class="fl" target="_blank" style="color:#f00;font-weight:bold;">{$r[catname]}</a>
{else}
<a href="{$r['url']}" class="fl" style="color:#f00;font-weight:bold;">{$r[catname]}</a>
{/if}
{else}
{if $val['islink']}
<a href="{$val['url']}/*栏目url*/" class="fl" target="_blank">{$r[catname]}/*栏目名称*/</a>
{else}
<a href="{$r['url']}/*栏目url*/" class="fl">{$r[catname]}/*栏目名称*/</a>
{/if}
{/if}
{/if}
{/loop}
{/pc}
{if $flag == 0}
<a href="{$r['url']}/*栏目url*/" class="fl">{$r[catname]}/*栏目名称*/</a>
{/if}
{/if}
<em class="fl"></em>
</h2>
{if $r[child]} <!--是否有三级栏目-->
<ul class="list_title_content">
{pc:content action="category" catid="$r[catid]" num="100" siteid="$siteid" order="listorder ASC" return="data2"}
{loop $data2 $v}<!--三级栏目循环开始-->
{if $v['catid'] == $catid || $CATEGORYS[$CAT[parentid]][catid] == $v['catid']}
<li class="clearfix cur two_navigation">
{php $flag1 = 0;}
{pc:content action="lists" catid="$v['catid']" order="id DESC" num="1" moreinfo="1"}
{loop $data $key $val}
{if $val['url'] != ''}
{if $val['important'] == '是'}
{if $val['islink']}
<a href="{$val['url']}" class="block three_navigation" target="_blank" style="color:#f00;font-weight:bold;">
{else}
<a href="{$v[url]}" class="block three_navigation" style="color:#f00;font-weight:bold;">
{/if}
{else}
{if $val['islink']}
<a href="{$val['url']}" class="block three_navigation" target="_blank">
{else}
<a href="{$v[url]}" class="block three_navigation">
{/if}
{/if}
{php $flag1 = 1;}
{/if}
{/loop}
{/pc}
{if $flag1 == 0}
{if $v[child]}
<a href="javascript:;" class="block three_navigation">
{else}
<a href="{$v[url]}" class="block three_navigation">
{/if}
{/if}
<em class="icon_normal fl"></em>
{if $v[child]}
<span>{$v[catname]} ></span>
{else}
<span>{$v[catname]}</span>
{/if}
</a>
{if $v[child]} <!--是否有四级级栏目-->
<ul class="list_title_content2">
{pc:content action="category" catid="$v[catid]" num="100" siteid="$siteid" order="listorder ASC" return="data3"}
{loop $data3 $k}<!--四级栏目循环开始-->
{if $k['catid'] == $catid}
<li class="cur">
{php $flag2 = 0;}
{pc:content action="lists" catid="$k['catid']" order="id DESC" num="1" moreinfo="1"}
{loop $data $key $val}
{if $val['url'] != ''}
{php $flag2 = 1;}
{if $val['important'] == '是'}
{if $val['islink']}
<a href="$val['url']" class="block" target="_blank" style="color:#f00;font-weight:bold;">{$k[catname]}</a>
{else}
<a href="{$k[url]}" class="block" style="color:#f00;font-weight:bold;">{$k[catname]}</a>
{/if}
{else}
{if $val['islink']}
<a href="$val['url']" class="block" target="_blank">{$k[catname]}</a>
{else}
<a href="{$k[url]}" class="block">{$k[catname]}</a>
{/if}
{/if}
{/if}
{/loop}
{/pc}
{if $flag2 == 0}
<a href="{$k[url]}" class="block">{$k[catname]}</a>
{/if}
</li>
{else}
<li>
{php $flag3 = 0;}
{pc:content action="lists" catid="$k['catid']" order="id DESC" num="1" moreinfo="1"}
{loop $data $key $val}
{if $val['url'] != ''}
{php $flag3 = 1;}
{if $val['important'] == '是'}
{if $val['islink']}
<a href="{$val['url']}" class="block" target="_blank" style="color:#f00;font-weight:bold;">{$k[catname]}</a>
{else}
<a href="{$k[url]}" class="block" style="color:#f00;font-weight:bold;">{$k[catname]}</a>
{/if}
{else}
{if $val['islink']}
<a href="{$val['url']}" class="block" target="_blank">{$k[catname]}</a>
{else}
<a href="{$k[url]}" class="block">{$k[catname]}</a>
{/if}
{/if}
{/if}
{/loop}
{/pc}
{if $flag3 == 0}
<a href="{$k[url]}" class="block">{$k[catname]}</a>
{/if}
</li>
{/if}
{/loop}
{/pc}
</ul>
{/if}
</li>
{else}
<li class="clearfix two_navigation">
{php $flag4 = 0;}
{pc:content action="lists" catid="$v['catid']" order="id DESC" num="1" moreinfo="1"}
{loop $data $key $val}
{if $val['url'] != ''}
{php $flag4 = 1;}
{if $val['important'] == '是'}
{if $val['islink']}
<a href="{$val['url']}" class="block three_navigation" target="_blank" style="color:#f00;font-weight:bold;">
{else}
<a href="{$v['url']}" class="block three_navigation" style="color:#f00;font-weight:bold;">
{/if}
{else}
{if $val['islink']}
<a href="{$val['url']}" class="block three_navigation" target="_blank">
{else}
<a href="{$v['url']}" class="block three_navigation">
{/if}
{/if}
{/if}
{/loop}
{/pc}
{if $flag4 == 0}
<a href="{$v[url]}" class="block three_navigation">
{/if}
<em class="icon_normal fl"></em>
{if $v[child]}
<span>{$v[catname]} ></span>
{else}
<span>{$v[catname]}</span>
{/if}
</a>
{if $v[child]} <!--是否有四级级栏目-->
<ul class="list_title_content2 hide">
{pc:content action="category" catid="$v[catid]" num="100" siteid="$siteid" order="listorder ASC" return="data3"}
{loop $data3 $k}<!--四级栏目循环开始-->
<li>
{php $flag5 = 0;}
{pc:content action="lists" catid="$k['catid']" order="id DESC" num="1" moreinfo="1"}
{loop $data $key $val}
{if $val['url'] != ''}
{php $flag5 = 1;}
{if $val['important'] == '是'}
{if $val['islink']}
<a href="{$val['url']}" class="block" target="_blank" style="color:#f00;font-weight:bold;">{$k[catname]}</a>
{else}
<a href="{$k['url']}" class="block" style="color:#f00;font-weight:bold;">{$k[catname]}</a>
{/if}
{else}
{if $val['islink']}
<a href="{$val['url']}" class="block" target="_blank">{$k[catname]}</a>
{else}
<a href="{$k['url']}" class="block">{$k[catname]}</a>
{/if}
{/if}
{/if}
{/loop}
{/pc}
{if $flag5 == 0}
<a href="{$k[url]}" class="block">{$k[catname]}</a>
{/if}
</li>
{/loop}
{/pc}
</ul>
{/if}
</li>
{/if}
{/loop}<!--三级栏目循环结束-->
{/pc}
</ul>
{/if}
</li>
{/loop}
{/pc}
8、内容调用
{pc:content action="lists" catid="$catid" order="id DESC" num="1" moreinfo="1"} {loop $data $key $val} <h3 class="content_title">{$CATEGORYS[$val[catid]][catname]}</h3> {$val['content']} {/loop} {/pc}
{$val['content']}:加载文章内容
9、推荐位调用
<ul class="clearfix"> {pc:content action="position" posid="23" order="listorder DESC,id DESC" num="4" thumb="1"} {loop $data $r} <li class="fl"> <a href="javascript:;" date="{$r[url]}"> <img src="{$r[thumb]}" width="291" height="154"/> </a> <p>{$r[title]}</p> <div class="index_media_zz"></div> </li> {/loop} {/pc} </ul>
action="position":指定调用时推荐位
posid="23":推荐位ID为23
thumb="1":是否有缩略图
{$r[thumb]}:缩略图url
{thumb($r[thumb],290,162)}:这种是对缩略图进行裁剪为固定尺寸
10、栏目名称与栏目目录名称调用
<h2 class="fl">{$CAT[catname]}<span>{$CAT[catdir]}</span></h2>
{$CAT[catname]}:栏目中文名称
{$CAT[catdir]}:栏目英文目录名称
11、调用最新文章,带所在版块;
{pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url as curl,a.id FROM `v9_news` a, `v9_category` b WHERE a.catid = b.catid ORDER BY `a`.`id` DESC "num="15" cache="300"} {loop $data $r} [{$r[catname]}] {str_cut($r['title'],26)} {/loop} {/pc}
12、截取调用标题长度;
{str_cut($v['title'],34)} -----超出用 ... 代替 {str_cut($v['title'],34, '???')}-----超出用 ???代替 {str_cut($v['title'],34,'')}-----超出不用任何字符代替
13、格式化时间调用;
{date('Y-m-d H:i:s',$r[inputtime])}-----2013-07-25:11:22:33 {date('m-d',$v['inputtime'])}------07-25
14、多栏目调用&多推荐位调用调用需求:文章范围为59 60 61三个栏目,并且推送到了27 和28两个推荐位;从第三条开始,连续调用7篇文章。
{pc:get sql="SELECT * FROM v9_news WHERE id IN (SELECT id FROM v9_position_data WHERE posidin(27,28) and catid in(59,60,61)) order by listorder DESC" cache="3600" start="3" num="7"return="data" } {loop $data $n $r} ·{str_cut($r[title],22,'')} {/loop} {/pc}
15、显示栏目名称;
{$catname}-----只显示名称不带链接 {$CATEGORYS[$r['catid']]['catname']}-----显示栏目名称和链接
16、获取父栏目id/获取父栏目名称;
{$CATEGORY[$catid][parentid]}-----父栏目ID {$CATEGORYS[$CAT[parentid]][catname]}-----父栏目名称
17、外部数据源调用dedecmsdb 在后台数据源处添加;
{pc:get sql="SELECT * FROM cq_member where mtype='企业' " cache="3600" dbsource="dedecmsdb"num="7" return="data"} {loop $data $r} {str_cut($r[uname],28,'')} {/loop} {/pc}
18、调用子栏目(在栏目首页模板需要用到);
{pc:content action="category" catid="$catid" num="25" siteid="$siteid" order="listorderASC"} {loop $data $r} {$r[catname]} |{/loop} {/pc}
19、显示指定id的栏目名称;
{$CATEGORYS[22]['catname']}
20、在文章面前显示文章类别;
{pc:content action="lists" catid="79" order="listorder DESC" num="14" } {loop $data $n $r} {if $TYPE[$r[typeid]][name]}[ {$TYPE[$r[typeid]][name]}] {/if}{str_cut($r[title],33,'')} {/loop} {/pc}
21、指定变量循环增长(幻灯片经常用到);
{pc:content action="lists" catid="66" order="listorder DESC" thumb="1" num="5" } {php $num = 0} {loop $data $r} linkarr[{$num}] = "{$r[url]}";picarr[{$num}] = "{$r[thumb]}";textarr[{$num}] = "{str_cut($r[title],36,'')}"; {php $num++} {/loop} {/pc}
22、文章调用使用limit;
{pc:content action="position" posid="31" order="listorder DESC" limit='1,8--'} {loop $data $r} {str_cut($r[title],36,'')} {/loop} {/pc}
23、文章从指定位置开始调用起始位置为5,调用3条;
{pc:content action="position" posid="27" order="listorder DESC" num="3" start="5"} {loop $data $r} {str_cut($r[description],115)}... {/loop} {/pc} [page]
24、文章列表页调用关键字,或者首页调用关键字注意:explode(‘,’,$r[keywords]);是将文章关键词通过英文逗号分离,也就是说每一篇文章都要以逗号间隔关键字,否则调用出来会 是全部作为一个关键字。如果是空格间隔关键字,将explode(‘,’,$r[keywords]);改成explode(‘ ‘,$r[keywords]);
{pc:content action="lists" catid="$catid" num="10" order="id DESC" page="$page"} {loop $data $r} {$r[title]} {php $keywords = explode(',',$r[keywords]);} 文章标签: {loop $keywords $keyword} {$keyword} {/loop} {/pc}
25、每当列表几行的时候出现一次某些符号(比如首页里面的文章推荐,一行显示两条,在这两条中间想加一条竖线 | 就用到这个代码了)数量大的话就容易出错,因为模运算嘛~~呵呵 不过一般也就4个标题以下;
{pc:content action="position" posid="8" order="listorder DESC" num="2"} {loop $data $r} {str_cut($r[title],26,'')}{if $n%2==1} |{/if} {/loop} {/pc}
26、v9 列表页完美支持自定义段调用;
{pc:content action="lists" catid="$catid" num="25" order="id DESC" page="$page"moreinfo="1"} {loop $data $r} [{$r['字段名']}]> {$r[title]} {/loop} {$pages} {/pc} [page]
27、当前栏目调用父级及以下栏目信息方法其他代码;
{php $arrchildid = $CATEGORYS[$CAT[parentid]][arrchildid]} {pc:get sql="SELECT * FROM v9_news where catid in($arrchildid) cache="3600" page="$page"num="12" return="data"}
28、V9表单功能 提交之后如何返回当前页面,而不是默认的首页文件地址;
找到 phpcms\modules\formguide\index.php文件第73行 showmessage(L('thanks'), APP_PATH); 修改成 如下代码即可实现自动返回前一页 showmessage(L('thanks'), HTTP_REFERER);
29、v9 首页或分页自定义字段调用和15差不多第一普通列表或栏目调用自定义字段在{pc:content action=”lists” 后加上副表moreinfo=1 (等于1时显示,0时不显示)例子:
{pc:content action="lists" moreinfo=1 catid="2" order="id DESC" num="4"} {loop $data $key $val} {$val['title']} 价格:{str_cut($v['自定义段'],100)} //100 是字数 {/loop} {/pc}
30、第二种推荐位调用自定义字段在模型里加好自定义字段后,必须把“在推荐位标签中调用”点击“是“然后用同一样的方法去调节数据就OK了,记住,如果你加了文章,必须去更新文章才会显示,自定义段在推荐中只显示你选择后,选择前加的加文章不显示,更新一下文章就显示了例子:
{pc:content action="position" posid="推荐位id" num="30" thumb="1" moreinfo="1"order="listorder DESC"} {loop $data $key $val} {str_cut($val['title'],20)} {/loop} {/pc}
31、编辑器上传图片自动使用标题作为alt参数;
一: 修改 statics/js/ckeditor/plugins/image/dialogs/image.js找到accessKey:'T','default':'' 替换成accessKey:'T','default'('#title').val() 二: 清除浏览器缓存
32、增加文章的随机点击数;
找到100行的$views = $r['views'] +1修改为: $rand_nums=rand(79,186); $views = $r['views'] + $rand_nums; 表示点击一次,增加79到186次不等
33、PHPCMS V9的get标签调用;
1、调用本系统单条数据,示例(调用ID为1的信息,标题长度不超过25个汉字,显示更新日期): {get sql="select * from phpcms_content where contentid=1" /} 标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])} 2、调用本系统多条数据,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期): {get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc"rows="10"} 标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])} {/get} 3、带分页,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期,带分页): {get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc"rows="10" page="$page"} 标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])} {/get} 分页:{$pages}
34、PHPCMS 使用栏目英文名称调用相应ID的写法
<?php $result = array(); $catList = array(); foreach ($CATEGORYS as $key=>$val) { foreach ($val as $key1=>$val1) { if($key1 == 'catdir'){ $result[$key] = $val[$key1]; } } } foreach ($result as $a=>$val){ $catList[$val] = $a; } ?>
使用
$catList['news'] //可以直接获取ID