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}

 
相关文章
|
XML 开发框架 JSON
J2EE基础XML(dtd)
J2EE基础XML(dtd)
135 0
|
机器学习/深度学习 边缘计算 人工智能
第二届边缘计算与并行、分布式计算国际学术会议(ECPDC 2025) 2025 2nd international Conference on Edge Computing, Parallel and Distributed Computing
第二届边缘计算与并行、分布式计算国际学术会议(ECPDC 2025) 2025 2nd international Conference on Edge Computing, Parallel and Distributed Computing 机器学习 计算学习理论 数据挖掘 科学计算 计算应用 数字图像处理 人工智能
261 6
|
云栖大会
2024云栖大会主论坛议程发布!
2024云栖大会 9月19日至9月21日 杭州·云栖小镇 三日主论坛议程正式发布!
412 17
|
Java 数据安全/隐私保护
利用Java图形化界面组件Swing写一个简易的登录界面
利用Java图形化界面组件Swing写一个简易的登录界面
315 1
|
SQL XML Java
MyBatis的强大特性--动态SQL
MyBatis的强大特性--动态SQL
248 2
|
Java 编译器
【Java】终于可以给自己new对象了——Java类和对象(三)
【☕Java】,千呼万唤始出来,终于可以给自己new对象了——Java类和对象
【Java】终于可以给自己new对象了——Java类和对象(三)
|
数据可视化 API 项目管理
低代码助推生物制药企业CDMO的“数字化转型”之路
药企研发每一个药物都需要建立一个新项目,并且在推出之前还需要反复试验和改良,期间产出大量的数据对药物改良有着十分重要的作用。而以往传统纸质手工记录方式,不仅耗费精力和时间,还容易因为保存不得当而导致数据的丢失,因此药企及其团队都亟需一个系统来管理繁多的项目和大量的数据。
低代码助推生物制药企业CDMO的“数字化转型”之路
|
弹性计算 NoSQL Shell
【云计算的1024种玩法】用ECS搭建个人云笔记服务
互联网科技这东西发展的真**的快,一会儿不了解就给你整出一个新概念了。做做笔记就很有必要,不过是笔记那肯定是要备份的,那么云笔记本就会很方便了。但是!笔记本肯定会大量的引用到图片和视频,这时候我们就不得不自掏腰包买VIP了,而且最大的储存容量上限也是有限制的。
23977 0
|
前端开发 .NET 测试技术
一起谈.NET技术,在Mono 2.8上部署ASP.NET MVC 2
  我们知道Mono 2.8对ASP.NET MVC 2的完全支持,下面我们就来测试下在Mono 2.8上部署ASP.NET MVC 2应用程序。我的环境是Opensuse 11.3,通过以下命令部署好Mono 2.
1032 0