PHPCMS 标签与示例
一、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 标签与示例的更多相关文章
- phpcms标签整理_当前栏目调用
phpcms标签整理_当前栏目调用 转载 **//SQL语句调用: {pc:get sql="select * from phpcms_category where catid in($ca ...
- java continue break 关键字 详解 区别 用法 标记 标签 使用 示例 联系
本文关键词: java continue break 关键字 详解 区别 用法 标记 标签 使用 示例 联系 跳出循环 带标签的continue和break 嵌套循环 深入continue ...
- JSTL中forEach标签应用示例【转】【补】
forEach样例 <%@ page language="java" import="java.util.*" pageEncoding="ut ...
- phpcms 标签
都说pc标签{pc:content参数名="参数值"参数名="参数值"参数名="参数值"} 但是 参数名对应的具体参数值有那些,菜鸟就不知道 ...
- jsp的三种自定义标签 写法示例
1.自定义方法标签 引入方式示例: <%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> 写 ...
- 让pre标签自动换行示例代码
pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码.对于技术博客经 ...
- PHPCMS标签:get标签
GET标签源自于PHPCMS 2008版,其使用SQL语句直接获取数据的特性,成为大家制作模板的首选. 在V9中这样强大的工具也得到保留下来. GET标签使用方式如下: {pc:get sql=&qu ...
- PHPCMS标签大全
{$head[title]} 页面标题,用法: {$phpcms[sitename]} 网站名称 用法: {$head[keywords]} 要害字 用法: {$head[description]} ...
- phpcms 标签解析
phpcms 每个pc标签对应modules控制器下一个 tag.class类 比如 {pc:content action="position" posid="2&quo ...
随机推荐
- ENode 2.0 - 深入分析ENode的内部实现流程和关键地方的幂等设计
前言 ENode是一个基于消息的架构,使用ENode开发的系统,每个环节都是处理消息,处理完后产生新的消息.本篇文章我想详细分析一下ENode框架内部是如何实现整个消息处理流程的.为了更好的理解我后面 ...
- Actor的原理
先从著名的c10k问题谈起.有一个叫Dan Kegel的人在网上(http://www.kegel.com/c10k.html)提出:现在的硬件应该能够让一台机器支持10000个并发的client.然 ...
- 记一次Url重写_发布之后iis 404
把api封装完,客户要求app的url能不能不变(客户之前用的php的api开发app,已经开发了很多了,所以希望不改动url).但是这个规则要求是:xx/api.php?s=/{controller ...
- git版本管理策略及相关技巧(A)
公司几乎所有的项目都是使用 git 仓库来管理代码,以前对 git 只有些肤浅的了解,每次提交代码或者上线的时候总是会提心吊胆,生怕出现一些未知的问题.经过三个月的踩坑和填坑, git 操作颇显成熟. ...
- Yii 框架学习--01 框架入门
Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...
- [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.
前言:今天来回顾下SpringMVC的开发原理, 使用图文并茂的方式 来解析其中的内幕, 我相信懂了其中的运行机制后, 对于面试中SpringMVC大家都可以说so easy了. 一, 图示法 第二张 ...
- Atitit.软件中见算法 程序设计五大种类算法
Atitit.软件中见算法 程序设计五大种类算法 1. 算法的定义1 2. 算法的复杂度1 2.1. Algo cate2 3. 分治法2 4. 动态规划法2 5. 贪心算法3 6. 回溯法3 7. ...
- 关于C#中的线程重启的问题
首先不管是C#也好,还是java也好,对于已经Abort的线程是无法再次Start的,除非是声明私有变量new一个新的线程,网上也有很多人说可以Suspend挂起线程,然后再Resume继续,但是相信 ...
- salesforce 零基础学习(二十六)自定义图表chart简单介绍(使用apex和VF实现)
chart在报表中经常使用到,他可以使报表结果更加直观的展现给用户.salesforce支持VF和apex代码来更好的展示chart. chart分类:常用的图表样式有饼状图,柱状图,折线图,条形图, ...
- js判断函数是否存在、判断是否为函数
代码: <script type="text/javascript"> //判断是否为函数 try { if(typeof FunName === "func ...