PC标签 phpcmsv9

Java代码  

  1. {pc:content action="lists" catid="25" num="$pagesize" page="$page" return="data"}  
  2. <ul>  
  3. {loop $data $n $r}  
  4. <li><a href="{$r[url]}">{$r[title]}</a></li>  
  5. {/loop}  
  6. </ul>  
  7. {/pc}  

pc标签起作用需要在数据库module表中注册,pc:content PC 标签中{pc:}冒号之后跟随的为模块名,表示class content_tag, 前台模板文件产生的phpcms\templates\default,静态页的调试.tag标签编译后的效果,也是后台调用的方法

Java代码  

  1. <?php  
  2. $content_tag = pc_base::load_app_class("content_tag", "content");  
  3. if (method_exists($content_tag, 'lists')) {  
  4. $pagesize = 4;$page = intval($page) ? intval($page) : 1;  
  5. if($page<=0){$page=1;}$offset = ($page - 1) * $pagesize;  
  6. $content_total = $content_tag->count(array('catid'=>$catid,'order'=>'id DESC','limit'=>$offset.",".$pagesize,'action'=>'lists',));  
  7. $pages = pages($content_total, $page, $pagesize, $urlrule);  
  8. $data = $content_tag->lists(array('catid'=>$catid,'order'=>'id DESC','limit'=>$offset.",".$pagesize,'action'=>'lists',));  
  9. }  
  10. ?>  

标签中的参数变量是前提控制类提供,参数的调用,写page参数是会调用count($data) 

Java代码  

  1. {pc:comment action="get_comment" commentid="$commentid"}  
  2. {php $comment = $data;}  
  3. {/pc}  

 

 

Java代码  

  1. public function lists($data) {  
  2.     $where = '1';  
  3.     if ($data['limit']) $where .= " AND `num`='".$data['limit']."'";  
  4.     if ($data['catid']) $where .= " AND `catid`!=''";  
  5.     $listorder = array('`id` ASC', '`id` DESC', '`listorder` ASC', '`listorder` DESC');  
  6.     $result = $this->c->select($where, '*', $data['limit'], $listorder[$data['listorder']]);  
  7.     if (is_array($result)) {  
  8.         foreach($result as $k => $r) {  
  9.             if ($r['curl']) {  
  10.                 $content_arr = explode('|', $r['curl']);  
  11.                 $r['url'] = go($content_arr['1'], $content_arr['0']);  
  12.             }  
  13.             $res[$k] = $r;  
  14.             //$res['num']=  $this->count($data);  //记录总条数  
  15.            }  
  16.     } else {  
  17.         $res = array();  
  18.     }  
  19.     return $res;  
  20. }  

下表为PC标签保留参数表,几乎所有的PC标签都支持这些保留参数设置


变量名


默认值


说明

action null 本参数的值表示为操作事件,模型类PC标签必须使用包含本参数,以说明要进行的操作。

cache


0


缓存存储时间(单位秒)


num


20


获取记录的条数,最后会被模板引擎处理成limit 传送到处理函数中。


page


null


当前分页。一般填写为$_GET[page]


urlrule


null


URL规则


return


data


返回数据变量名

没有page参数$data['limit']=pagesize,有page参数$data['limit']=page,pagesize;

 

该标签解析类是在每个模块下面的classes/的以“模块名_tag.class.php”的文件

单行PHP解析语法{php $i=1;}{if $n%5==0}<li class="dashed_line"></li>{/if}

Java代码  

  1. {pc:get sql="SELECT * FROM phpcms_member" cache="3600" page="$page" dbsource="discuz" return="data"}  

 

Java代码  

  1. {pc:xml url="http://www.yourname.com/asdfasdf.xml " cache="3600"}{/pc}  

 

Java代码  

  1. {pc:json url="http://www.yourname.com/asdfasdf.json" cache="3600"}{/pc}  

为什么用模板标签?需要一些参数来控制页面的显示效果,参数自己可以手动加,如num,cache,page

Java代码  

  1. {pc:get   sql="SELECT * FROM  wechenews  ORDER BY id desc" num="7" start="23"}  
  2. {loop $data $r}  
  3.  <li><span>[{getMore($r[catid])}]&nbsp;</span><a href="{$r[url]}" class="title" title="{$r[title]}">{str_cut($r[title],32,'')}</a></li>  
  4. {/loop}  

 num调用条数   start起始输出的位置

v9的标签函数像2008那样支持limit="0,5"这样的写法

Java代码  

  1. {pc:content  action="limit"  type="lists"  catid="54"  thumb=""  order="listorder DESC"  step="3,5"}  
  2. {loop $data $r}  
  3. <li>&middot;<a href="{$r[url]}" title="{$r[title]}">{$r[title]}</a></li>  
  4. {/loop}{/pc}  

type:定义 的是类别:可选lists或者position(目前支持普通列表和推荐位)
catid:选择 了lists的类别才需要填写这个值
position:选择了position的类别才需要填写这个值
thumb:不分类 别都可以
order:排序方式 
step:传说中的limit
试验结果可行

将内容模型标签的class类文件 找出:文件地址 phpcms\modules\content\classes\content_tag .class.php
添加标签函数:

Java代码  

  1. /** 
  2. * limit页标签 
  3. * @param $data 
  4. */  
  5. public function limit($data){  
  6. $data['limit']=$data['step'];  
  7. return $this->$data['type']($data);  
  8. }  

phpcms文章列表页如何获取文章的分类名称及分类链接:

效果如:

程序如下:

{pc:content action="lists" catid="$catid" num="25" order="updatetime DESC" page="$page" moreinfo="1"}

{loop $data $r}

<a href="{$CAT['url']}">{$CAT[catname]}</a>

{/loop}

{/pc}

 

时间: 2024-08-22 11:03:18

PC标签 phpcmsv9的相关文章

ThinkPHP2.1 增加PHPCMS模板引擎,支持PC标签(get,json)

本人经常使用PHPCMS模板引擎. 用ThinkPHP2.1 自带的,感觉不爽,花点时间增加了个PHPCMS模板引擎 BY 夜色紫宸風 功能:PHPCMS模板解析引擎,支持PC标签(get,json),也可以使用ThinkPHP2.1的模板数据,都支持 TemplatePhpcms.class.php 把这个文件放到 ThinkPHP\Lib\Think\Util\Template 文件夹中 <?php /** +-----------------------------------------

phpcms v9 模板标签说明大全

{template "content","header"} 调用根目录下phpcms\template\content\header文件 {CHARSET} 字符集 (gbk或者utf-8) {if isset($SEO['title']) && !empty($SEO['title'])} {$SEO['title']}{/if} {$SEO['site_title']} {$SEO['keyword']} {$SEO['description']

PHPCMS二次开 自定义标签教程

PHPCMS自定义标签的好处 1.采用标签的形式,可以自由用于模板中,方便调用,而且方便重复调用. 2.在模板中使用PHPCMS标签,生成静态页的时候,不用额外在action控制器中赋值,因为直接在模板中解析PC标签了. 如何自定义PHPCMS标签 根据PHPCMS自带的一些标签,我们可以很简单的模仿并创造出新的功能,做成标签的形式.比如内容模型,内容模型的PHPCMS标签在/modules/content/classes/content_tag.class.php.打开这个文件,新增的内容模型

CodeIgniter使用phpcms模板引擎_php实例

CodeIgniter很适合小站点应用开发,但是它自带的view功能可能会给不懂PHP的前端人员带来麻烦. 相比之下phpcms的view模板解析就强大多了,所以这里就把PHPCMS的模板解析功能剥离出来,加到PHPCMS上.首先在CodeIgniter libraries中 增加 template_cache.php 复制代码 代码如下: <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); /** *

phpcms v9 列表页调用自定义字段方法

在{pc:content XXXXXX  moreinfo="1"} 在PC标签里面加入   moreinfo="1"  后面一定要是双引号 列表页完美自定义段调用 {pc:content action="lists" catid="$catid" num="25" order="id DESC" page="$page" moreinfo="1"

渠道+财力 能否造就联想千亿梦

对于企业来说,每次变革都是一场阵痛.尤其是在企业庞大体积的企业,为了未来,不得不强行扭转固有模式和思维,去"迎合"新时代.新形势的发展时,尤为痛苦.近日,杨元庆在中国区高管内部沟通会上,制定下营收1000亿美元的目标.对于本身为传统硬件厂商来说,近年来却不断提出新战略,做出新举动的联想来说,转型的阵痛是不不可避免的,但凭借自身在渠道.资源上的优势,打造全生态链的努力,千亿梦并非遥不可及. 一.新孵化得益渠道来力 联想今年5月下旬发布的,截至2014年3月31日的2013~14财年业绩报

Phpcms V9 get语句进行多条件数据的调用例子

在phpcms中get语句是比较灵活的条件语句了,当使用phpcms自带标签调用不了的数据,我们都可以使用get语句来进行直接 sql 的调用,这在多级数据的调用上,使用的是比较普遍了的,尤其是自定义的条件数据. 先来看一个phpcms普通的pc标签调用数据代码: {pc:content action="lists" catid="$catid" num="25" order="id DESC" page="$pag

phpcms调用子栏目名称/文章怎么操作

phpcms调用子栏目名称相对比较简单一些,也是用{pc:content}来调用,只是把action设置为category,catid如果为0的话是调用所有一级栏目,如果是其他数字的话,则调用相应栏目的子栏目,比如以下的案例,catid="13"是调用栏目id为13的所有子栏目.完整的调用代码在下面,感兴趣的朋友可以测试一下 {pc:content action="category" catid="13" num="25" s

PHPcmsv9 get标签 sql语句limit无效及num和rows属性无效问题解决办法

PHPcms v9 get标签sql语句limit无效及num和rows属性无效问题至今也已经是一个老问题了,网络上也有一些表面的解决办法,但是逐日者并没有找到从底层,层模板标签解析及模板引擎代码上真正解决此问题的办法和解释.今天在使用get标签sql语句调用数据的时候当然也遇到了此问题,经过研究找到了问题的原因并且整理出本文希望对php爱好者有所帮助. 错误描述:我想从数据表中调取最新的6条数据!  代码如下 复制代码      <dl class="about_text1"&