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}

 
相关文章
|
8月前
freemarker报错500, 无法跳转到templates目录下的 index.ftl 文件问题解决
freemarker报错500, 无法跳转到templates目录下的 index.ftl 文件问题解决
|
XML 搜索推荐 PHP
使用Laravel动态生成sitemap
Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。
161 0
PHP+ajaxfileupload与jcrop插件结合 完成头像上传
这个地方我本来想做个上传进度的效果,但技术有限失败了。上传按钮我还做了一个文件大小的限制,但是由于浏览器兼容性的问题,不完美在IE6--IE9之间还有很多问题需要解决
|
Web App开发 JavaScript 前端开发
|
前端开发 JavaScript
|
JavaScript 前端开发 Java