亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > PhpCMS > 正文

PHPCMS自定義標簽無法分頁問題解決辦法

2024-09-10 07:16:21
字體:
來源:轉載
供稿:網友

自定義標簽無法分頁問題對于很多朋友來講是一個無法解決的問題了,但今天小編看到一篇比較好的處理辦法,下面整理給各位參考。

PHPCMS提供了很多標簽方便調用數據,但是在二次開發中,有時要自己寫PHPCMS標簽,但是遇到分頁的時候無法顯示分頁,本人介紹開發PHPCMS標簽分頁的正確解決方案。

比如PHPCMS的lists標簽,代碼如下:

{pc:content  action=”lists” catid=”2″ where=”thumb!=” AND status=99″ order=”id DESC” num=”4″}

通過自帶的lists標簽,可以很方便調用某個類別的列表,在模板中調用,顯示分頁直接用{$pages}即可,在/modules/content/classes/content_tag.class.php中自定義了一個PHPCMS列表標簽,但是自定義的列表標簽,調用{$pages},分頁是出不來的,那么如何進行分頁呢?代碼如下:

  1. if (isset($page)) { 
  2.  $str .= '$pagesize = '.$num.';'
  3.  $str .= '$page = intval('.$page.') ? intval('.$page.') : 1;if($page<=0){$page=1;}'
  4.  $str .= '$offset = ($page - 1) * $pagesize;'
  5.  $datas['limit'] = '$offset.",".$pagesize'
  6.  $datas['action'] = $action
  7.  $str .= '$'.$op.'_total = $'.$op.'_tag->count('.self::arr_to_html($datas).');'
  8.  $str .= '$pages = pages($'.$op.'_total, $page, $pagesize, $urlrule);'

我們要了解PHPCMS標簽的原理就明白了,在/libs/classes/template_cache.class.php中定義了模板標簽解析類,原來lists標簽能夠分頁,調用了pages函數,我們注意第8行,有個_tag->count()的方法,這個方法返回的參數作為pages的第一個參數,也就是總頁數,而自定義列表標簽,并沒有count這個方法.

在/modules/content/classes/content_tag.class.php中,有個count方法,代碼如下:

  1. /** 
  2.  * 分頁統計 
  3.  * @param $data 
  4.  */ 
  5. public function count($data) { 
  6.  if($data['action'] == 'lists') { 
  7.   $catid = intval($data['catid']); 
  8.   if(!$this->set_modelid($catid)) return false; 
  9.   if(isset($data['where'])) { 
  10.    $sql = $data['where']; 
  11.   } else { //開源軟件:Vevb.com 
  12.    if($this->category[$catid]['child']) { 
  13.     $catids_str = $this->category[$catid]['arrchildid']; 
  14.     $pos = strpos($catids_str,',')+1; 
  15.     $catids_str = substr($catids_str$pos); 
  16.     $sql = "status=99 AND catid IN ($catids_str)"
  17.    } else { 
  18.     $sql = "status=99 AND catid='$catid'"
  19.    } 
  20.   } 
  21.   return $this->db->count($sql); 
  22.  } 

看到第6行,當標簽動作是lists時,進行一系列操作獲取總數,因此我們自定義的列表標簽,也應該加一個這樣的判斷,當$data[‘action’]==’自定義的動作名稱’時,計算查詢條件的總數,代碼如下:

  1. elseif ($data['action'] == 'c_lists') { 
  2.  list($catid,$language,$size,$page) = explode('-'$data['search']); 
  3.  //$catid = intval($data['catid']); 
  4.  $catid = $catid+1; 
  5.  $language_setting = getcache('language_setting''commons'); 
  6.  $size_setting = array
  7.      1=>' unit="MB" and size<=10'
  8.      ' unit="MB" and size>=10 and size<=50'
  9.      ' unit="MB" and size>=50 and size<=100'
  10.      ' unit="MB" and size>=100 and size<=200'
  11.      ' unit="MB" and size>=200 and size<=500'
  12.      ' unit="MB" and size>=500 and size<1000'
  13.      ' unit="GB" and size>=1 and size<=2'
  14.      ' unit="GB" and size>=2 and size<=4'
  15.      ' unit="GB" and size>=4'
  16.     ); 
  17.  if(!$this->set_modelid($catid)) return false; 
  18.  if(isset($data['where'])) { 
  19.   $sql = $data['where']; 
  20.  } else { 
  21.   $thumb = intval($data['thumb']) ? " AND thumb != ''" : ''
  22.   if($this->category[$catid]['child']) { 
  23.    $catids_str = $this->category[$catid]['arrchildid']; 
  24.    $pos = strpos($catids_str,',')+1; 
  25.    $catids_str = substr($catids_str$pos); 
  26.    $sql = "status=99 AND catid IN ($catids_str)".$thumb
  27.   } else { 
  28.    $sql = "status=99 AND catid='$catid'".$thumb
  29.   } 
  30.   if ($language) { 
  31.    $sql .= " AND language = '".$language_setting[$language]."'"
  32.   } 
  33.   if ($size) { 
  34.    $sql .= " AND".$size_setting[$size]; 
  35.   } 
  36.  } 
  37.  return $this->db->count($sql); 

代碼緊接著上面的,這樣,PHPCMS自定義的列表標簽也可以使用{$pages}正常顯示分頁.

PHPCMS不修改程序自定義分頁格式,請看源代碼:

  1. {if $pages
  2. <div class="pages"
  3. <select name="select_pages" onchange="location.href=this.options[this.selectedIndex].value;"
  4. {str_replace("a href""option value"str_replace(".."""str_replace("</a""</option"str_replace("a class""option class"str_replace("</span>""頁</option>"str_replace("<span>""<option selected>第"str_replace("> "">"$pages)))))))}</select>{/pc} 
  5. </div> 
  6. {/if

這里用到了PHP的替換函數str_replace,可以任意的替換默認生成代碼,從而實現PHPCMS不修改程序自定義分頁格式.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人巨大xxx极品| 久久久伊人欧美| 国产视频精品在线| 懂色av中文一区二区三区天美| 国产在线视频一区| 国产91露脸中文字幕在线| 亚洲国产免费av| 国产欧美欧洲在线观看| 亚洲高清久久久久久| 91豆花精品一区| 国产精品嫩草影院久久久| 亚洲老司机av| 全亚洲最色的网站在线观看| 狠狠躁夜夜躁人人爽天天天天97| 国产精品视频精品| 亚洲区中文字幕| 欧美综合一区第一页| 国产精品男人爽免费视频1| 国产视频综合在线| 国产精品久久久久久久久久久久久久| 欧美精品成人在线| 国产v综合ⅴ日韩v欧美大片| 亚洲精品第一页| 欧美一级高清免费播放| 国产精品影片在线观看| 国产精品18久久久久久首页狼| 亚洲色图国产精品| 亚洲色图狂野欧美| 国产精品第一第二| 91欧美激情另类亚洲| 欧美在线观看日本一区| 日韩专区在线播放| 久久久久久国产精品久久| 中文字幕av一区二区| 国产精品亚洲一区二区三区| 国产亚洲精品va在线观看| 中文字幕亚洲图片| 中文字幕自拍vr一区二区三区| 久久99亚洲精品| www.久久色.com| 欧美精品videosex性欧美| 欧美性在线观看| 91久久在线视频| 国产精品99久久99久久久二8| 久久久在线免费观看| 国产精品免费视频久久久| 97精品视频在线| 51精品在线观看| 亚洲精品v欧美精品v日韩精品| 亚洲国产91精品在线观看| 国产在线精品自拍| 欧美国产亚洲视频| 懂色av影视一区二区三区| 91免费在线视频| 亚洲激情小视频| 97精品国产97久久久久久免费| 成人免费xxxxx在线观看| 日韩免费中文字幕| 久久久在线观看| 欧美激情国产日韩精品一区18| 久国内精品在线| 91av在线影院| 亚洲美女免费精品视频在线观看| 日韩av电影国产| 日韩精品在线私人| 亚洲人成在线一二| 亚洲电影av在线| 成人天堂噜噜噜| 国产精品欧美一区二区| 亚洲国模精品一区| 成人激情在线播放| 激情懂色av一区av二区av| www.日韩av.com| 久久99亚洲热视| 国产一区二区久久精品| 性欧美在线看片a免费观看| 国产精品扒开腿做爽爽爽视频| 国产精品狼人色视频一区| 国产乱肥老妇国产一区二| 国产成人涩涩涩视频在线观看| 国产精品久久久久影院日本| 久久视频在线免费观看| 亚洲欧美激情四射在线日| 中文字幕欧美专区| 欧美性xxxx极品hd欧美风情| 日韩h在线观看| 成人免费网站在线观看| 国产大片精品免费永久看nba| 久久高清视频免费| 日韩男女性生活视频| 国外日韩电影在线观看| 国产亚洲精品综合一区91| 97碰碰碰免费色视频| 91黑丝在线观看| 一本色道久久88精品综合| 亚洲国产成人爱av在线播放| 欧美人与性动交a欧美精品| 国产精品福利小视频| 欧美富婆性猛交| 成人黄色中文字幕| 亚洲色无码播放| 亚洲国产精品免费| 亚洲国产91色在线| 中文字幕亚洲综合久久筱田步美| 日韩成人av在线| 亚洲老板91色精品久久| 色婷婷**av毛片一区| 欧美高清在线视频观看不卡| 国产香蕉精品视频一区二区三区| 国内精久久久久久久久久人| 精品久久久久久亚洲国产300| 亚洲精品欧美日韩| 国产精品免费视频久久久| 亚洲欧美中文日韩v在线观看| 在线成人激情黄色| 国产成人自拍视频在线观看| 欧美午夜视频在线观看| www.亚洲免费视频| 亚洲精品动漫100p| 91热精品视频| 久久久久久高潮国产精品视| 国产免费一区二区三区香蕉精| 中文字幕国产日韩| 国产精品久久久久久亚洲调教| 久久精品国产96久久久香蕉| 一道本无吗dⅴd在线播放一区| 国产成人精品优优av| 精品久久久久久亚洲精品| 日韩激情视频在线| 欧美国产高跟鞋裸体秀xxxhd| 亚洲精品在线91| 国产精品极品在线| 亚洲人成电影网站色| 美女啪啪无遮挡免费久久网站| 日本一本a高清免费不卡| 91国产精品91| 91精品久久久久久| 日韩av免费观影| 日韩在线欧美在线| 欧美极品第一页| 久久影视电视剧免费网站清宫辞电视| 在线观看国产成人av片| 91久久久久久久一区二区| 91精品视频免费看| 国产精品啪视频| 亚洲电影在线观看| 91天堂在线观看| 91久久久久久久久久久| 97超碰蝌蚪网人人做人人爽| 国产精品久久久久一区二区| 亚洲码在线观看| 欧美成人免费大片| 久久av红桃一区二区小说| 国产午夜精品视频免费不卡69堂| 久久久久女教师免费一区| 2019亚洲男人天堂| 91av视频在线观看| 伊人一区二区三区久久精品| 精品国产老师黑色丝袜高跟鞋| 色偷偷91综合久久噜噜| 久久99精品国产99久久6尤物| 亚洲天堂第二页| 2019中文字幕免费视频| 国产欧美一区二区白浆黑人|