一、SEO优化:

获取栏目的关键字:{$SEO['keyword']}
获取栏目的描述:{$SEO['description']}
判断栏目的title是否存在或为空,如果是的话,则用站点的title替代 :
{if isset($SEO['title']) && !empty($SEO['title'])}{$SEO['title']}{/if}{$SEO['site_title']}

二、模板加载:

{template "content" , "header_index"}
* header_index 要加载的模板名称。
* 该标签只能加载自定义的模板,对于预定义好的模板是不能进行加载的。
* 预定义的模板名称:
category_ 栏目页模板的名称都是如此命名
list_ 列表页的模板都是如此命名
article_ 内容页的模板都是如此命名
index.html 首页模板的命名
default.html 超首模板的命名
page_ 单页面的模板都是如此命名
show_ 内容页都是如此命名

三、PC 内容查询标签:

一般格式的查询:
{pc:content action="lists" catid="$catid" num="5" order="listorder,id DESC" page="$page" thumb="1" start="5"}
{loop $data $r} {/loop}
{/pc} * action 规定生成的动作,默认的是lists。如果取值 为position,表示读取推荐位中内容。那么catid就要改成了posid。
* catid 栏目ID,规定从哪个栏目中抽取数据。
* num 表示生成的数据条目的数量。
* order 表示排序的方式,DESC为降序,ASC为升序。
* page 如果指定了改属性,表示有分页。最终的分页数据则有分页标签进行调用。
* thumb 表示内容是否有缩略图。
* start 表示起始的位置。 万能查询语句:
万能查询实际上就是PC标签+SQL语言来直接对数据表进行查询。
{pc:get sql="select catname from v9_category where catid='$catid'" return "data"}
{loop $data $r}
{/loop}
{/pc} * sql 中保存的是要执行的SQL语句。
- catname 要查询的字段
- v9_category 表名
- catid 记录的关键字段。
* data中保存的是返回到的数据,这些数据都会以一个数组的形式保存到$data中,然后以$r[catname]的方式进行调用。

四、页面相关的常用标签:

{siteurl($siteid)}   显示首页的URL地址。
{$catid} | {$CAT[catid]} 显示当前栏目的ID。
{$catname} | {$CAT[catname]} 显示栏目的名称(中文)。
{$catdir} | {$CAT[catdir]} 显示栏目的名称(英文)。
{$parentid} 拿到父栏目的id
{$top_parentid} 拿到顶级栏目的id
{$inputtime} 拿到文章输出时间
{$title} 拿到文章的标题
{$id}        拿到文章的文章ID
{$modelid} 拿到模型的模型ID {catpos($catid)} 显示面包屑导航。
{$content} 加载内容。
{$page} 显示分页。 *注:{ } 该符号专用于页面展示标签数据时使用。运算判断无需添加。 =========== 依附于有数据 $data的标签 ================
{$r[title]} 显示文章的标题。
{str_cut($r[title],30,'.....')} 显示裁剪后的标题。
{$r[url]} 显示文章的链接。
{$r[thumb]} 显示文章的缩略图。
{$r[style]} 拿到内嵌样式
{thumb($r[thumb],90,90)} 显示裁剪后的缩略图。
{date("y-m-d h:m:s",$r[inputtime])} 格式化时间输出。

五、广告位调用:

{loop $pinfo $p}
document.write('<li><a href="{$p['setting'][1]['linkurl']}" class="fl" target="_blank">{$p['name']}</a><em class="fr">{$p['setting'][1]['title']}</em></li>');
{/loop} {loop $pinfo $p}
document.write('<a href="{$p['setting'][1]['linkurl']}" target="_blank" title="{$p['setting'][1]['alt']}"><img src="{$p['setting'][1]['imageurl']}" alt="{$p['setting'][1]['alt']}"
     height="{$height}" width="{$width}"/></a>');
{/loop}

六、基础语法:

定义变量 {php $num=0}
* 注意有些变量是系统自定义的,例如:$catid 、$CATEGORYS 、$parentid 等。
判断 {if $num==0}
双分支判断 {if $num==0} {else} {/if}
结合变量来控制列表生成数量:
{php $num=0}
{pc:content action="lists" catid="67" num="30" order="listorder , id DESC" page="$page"}
{loop $data $r}
{php $num++}
<li> <a href="{$r[url]}" target="_blank">{$r{title}}</a></li>
{if $num%5==0}<hr />{/if}
{/loop}
{/pc}

七、实例与技巧:

#1 loop中拿到文章的属性:

{pc:content  action="position" posid="14" order="listorder DESC,id DESC" num="5"}
{loop $data $r}
$r[catid] //当前文章所属栏目id
$r[catdir] // 当前文章所属栏目英文名称
$r[catname] //当前文章所属栏目中文名称 {/loop}
{/pc}

#2 PC标签的三种用处:

循环列表:
{pc:content action="lists" catid = }
循环推荐位
{pc:content action="position" posid = }
循环栏目:
{pc:content action="category" catid=}

#3 根据栏目名称获得栏目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] = (String)$a;
}
?>
//调用方法:$catList['categoryName']

#4 CATEGORYS数组实例使用

* explode -- 将字符串转换为数组
* empty -- 判断是否为空
* array_keys -- 以参数数组的“键”组成一个新的数组返回。
* end -- 返回数组最后一个数组元素。 <ul class="clearfix gamedata-list">
<?php
$strchildid = $CATEGORYS[$catid]['arrchildid'];
$arrchildid = explode(',',$strchildid);
if(!empty($arrchildid)){
foreach($arrchildid as $v){
if($v == $catid) {
countinue;//过滤自己
}else if($CATEGORYS[$v]['parentid'] != $catid){
countinue;//过滤非直接子类
}else{
?>
<li class="tit newplayer nl_{$CATEGORYS[$v]['catdir']}"><span></span>{$CATEGORYS[$v]['catname']}</li>
<li class="main-text">
<?php
$strchildid2 = $CATEGORYS[$v]['arrchildid'];
$arrchildid2 = explode(',',$strchildid2);
if(!empty($arrchildid2)){
foreach($arrchildid2 as $v2){
if($v2 == $v) {
countinue;//过滤自己
}else{
?> <dl>
<dt><span></span>{$CATEGORYS[$v2]['catname']}:</dt>
<dd>
{pc:content action="lists" catid="$v2" num="20" order="listorder DESC,id DESC"}
{php $e= end(array_keys($data))}
{loop $data $key $r}
<a href="{$r[url]}" target="_blank">{$r[title]}</a>
{if $key != $e}
<span>|</span>
{/if}
{/loop}
{/pc}
</dd>
</dl> <?php
}
}
}
}
}
}
?>
</li>
</ul>

#5 pc标签使用示例

<div class="gamedata-content">
{pc:content action="category" catid="$catList['gamedata']" order="listorder DESC" num ="100" }
{loop $data $r}
<h3 class="gamedata-title">{$r[catname]}</h3>
<ul class="gamedata-content-list">
{pc:content action="category" catid="$r[catid]" order="listorder DESC" num="500" }
{loop $data $s}
<li>
<dl class="clearfix">
<dt>{$s[catname]}<i></i></dt>
<dd>
{pc:content action="lists" catid="$s[catid]" num="1000" order="listorder,id DESC"}
{php $e= end(array_keys($data))}
{loop $data $key $v}
<a href="{$v[url]}" target="_blank">{$v[title]}</a>
{if $key != $e}
<span>|</span>
{/if}
{/loop}
{/pc}
</dd>
</dl>
</li>
{/loop}
{/pc}
{/loop}
{/pc}
</div>

八、CATEGORYS 常用命令:

$CATEGORYS(栏目命令) 标签
$CATEGORYS是一个二维数组,它用于保存当前栏目的相关信息。
$CATEGORYS[65][catname]返回指定栏目的栏目名称
$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]} 上上级栏目链接

PHPCMS 标签与示例的更多相关文章

  1. phpcms标签整理_当前栏目调用

    phpcms标签整理_当前栏目调用 转载 **//SQL语句调用: {pc:get sql="select * from phpcms_category where catid in($ca ...

  2. java continue break 关键字 详解 区别 用法 标记 标签 使用 示例 联系

    本文关键词: java continue break 关键字 详解 区别  用法 标记  标签 使用 示例 联系   跳出循环 带标签的continue和break 嵌套循环  深入continue ...

  3. JSTL中forEach标签应用示例【转】【补】

    forEach样例 <%@ page language="java" import="java.util.*" pageEncoding="ut ...

  4. phpcms 标签

    都说pc标签{pc:content参数名="参数值"参数名="参数值"参数名="参数值"} 但是 参数名对应的具体参数值有那些,菜鸟就不知道 ...

  5. jsp的三种自定义标签 写法示例

    1.自定义方法标签 引入方式示例: <%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> 写 ...

  6. 让pre标签自动换行示例代码

    pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码.对于技术博客经 ...

  7. PHPCMS标签:get标签

    GET标签源自于PHPCMS 2008版,其使用SQL语句直接获取数据的特性,成为大家制作模板的首选. 在V9中这样强大的工具也得到保留下来. GET标签使用方式如下: {pc:get sql=&qu ...

  8. PHPCMS标签大全

    {$head[title]} 页面标题,用法: {$phpcms[sitename]} 网站名称 用法: {$head[keywords]} 要害字 用法: {$head[description]} ...

  9. phpcms 标签解析

    phpcms 每个pc标签对应modules控制器下一个 tag.class类 比如 {pc:content action="position" posid="2&quo ...

随机推荐

  1. ENode 2.0 - 深入分析ENode的内部实现流程和关键地方的幂等设计

    前言 ENode是一个基于消息的架构,使用ENode开发的系统,每个环节都是处理消息,处理完后产生新的消息.本篇文章我想详细分析一下ENode框架内部是如何实现整个消息处理流程的.为了更好的理解我后面 ...

  2. Actor的原理

    先从著名的c10k问题谈起.有一个叫Dan Kegel的人在网上(http://www.kegel.com/c10k.html)提出:现在的硬件应该能够让一台机器支持10000个并发的client.然 ...

  3. 记一次Url重写_发布之后iis 404

    把api封装完,客户要求app的url能不能不变(客户之前用的php的api开发app,已经开发了很多了,所以希望不改动url).但是这个规则要求是:xx/api.php?s=/{controller ...

  4. git版本管理策略及相关技巧(A)

    公司几乎所有的项目都是使用 git 仓库来管理代码,以前对 git 只有些肤浅的了解,每次提交代码或者上线的时候总是会提心吊胆,生怕出现一些未知的问题.经过三个月的踩坑和填坑, git 操作颇显成熟. ...

  5. Yii 框架学习--01 框架入门

    Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...

  6. [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.

    前言:今天来回顾下SpringMVC的开发原理, 使用图文并茂的方式 来解析其中的内幕, 我相信懂了其中的运行机制后, 对于面试中SpringMVC大家都可以说so easy了. 一, 图示法 第二张 ...

  7. Atitit.软件中见算法 程序设计五大种类算法

    Atitit.软件中见算法 程序设计五大种类算法 1. 算法的定义1 2. 算法的复杂度1 2.1. Algo cate2 3. 分治法2 4. 动态规划法2 5. 贪心算法3 6. 回溯法3 7. ...

  8. 关于C#中的线程重启的问题

    首先不管是C#也好,还是java也好,对于已经Abort的线程是无法再次Start的,除非是声明私有变量new一个新的线程,网上也有很多人说可以Suspend挂起线程,然后再Resume继续,但是相信 ...

  9. salesforce 零基础学习(二十六)自定义图表chart简单介绍(使用apex和VF实现)

    chart在报表中经常使用到,他可以使报表结果更加直观的展现给用户.salesforce支持VF和apex代码来更好的展示chart. chart分类:常用的图表样式有饼状图,柱状图,折线图,条形图, ...

  10. js判断函数是否存在、判断是否为函数

    代码: <script type="text/javascript"> //判断是否为函数 try { if(typeof FunName === "func ...