国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > PhpCMS > 正文

PHPCMS V9調用全站最新內容的解決方法

2024-07-09 22:52:41
字體:
來源:轉載
供稿:網友
 phpcms教程- PHPCMS V9調用全站最新內容的解決方案 
PHPCMS v9 的數據只能調用一張表,也就是說無法一次性調用不同模型的內容。之前也有不少人問過,可是至今沒人能解答該疑問。于是,我花了一個下午的時間,在debug中尋找最佳結果。
 
一般有一下三種情況:
1、一個欄目的調用。這沒什么好說的,使用系統自帶的content標簽即可實現。
2、所有頂級欄目(同一模型)的調用。若直接使用content標簽,并指定catid=0,是無法輸出內容的。
3、多個模型的調用,也就是所謂的全站調用。這個......有點兒難。
第二種,使用get標簽即可搞定,但存在一個非常不人性化的分頁問題和一個bug。
分頁問題:一般來講,調用全站內容、排行榜之類的東西,都是新建一個單頁面欄目(在主頁等地方調用的先不談),然后在 模板添加加入代碼。但是,num屬性只能指定每一頁的列表內容條數,沒有參數可以指定頁碼數量,坑爹的是,LIMIT竟然無法使用。有人建議使用if判斷 分頁數,break跳出——貌似行不通,頁碼那里還是顯示所有分頁序號......接著就出現了第二個問題——bug
Bug:動態頁面、靜態頁面、偽靜態頁面。動態頁面,頁碼序號的鏈接中竟然包含2個page參數,不過不影響使用,算了;偽靜態頁面的鏈接都是一樣的,靜態的沒試過,有人說也一樣。
 
第三種,同樣也是用get標簽,但是這里涉及到表的連接。一般可以使用JOIN、UNION之類的操作符,但UNION ALL操作符最合適,且查詢效率最高。但是別以為這樣就可以OK了,新的問題又來了,就算使用了page屬性,也就只能顯示一頁。坑爹啊,有木有......
也曾經試過新建一個推薦位,發布文章時自動添加到這個推薦位。這樣做也行得通,但是感覺有點麻煩,且無法自動更新。
 
既然分頁出現問題,那我就自己構造分頁,看代碼!PHPCMS中國http://phpcms.org.cn
 
  1. <!--先自定義幾個變量-->
  2. {php $p=1;$pn=10;$pe=20;$ltime=time()-86400*3;}
  3. <!--調用數據,分頁顯示-->
  4. {pc:get sql="SELECT title,inputtime,url FROM phpcms_news WHERE inputtime>$ltime UNION ALL SELECT title,inputtime,url FROM phpcms_download WHERE inputtime>$ltime UNION ALL SELECT title,inputtime,url FROM phpcms_picture WHERE inputtime>$ltime ORDER BY inputtime DESC" page="$page" num=$pe cache="600" return="data"} <ul>
  5.   {loop $data $r}
  6.   <li><a href='{$r[url]}'>{$r[title]}</a></li>
  7.   {/loop}
  8. </ul>
  9. {/pc}
  10. <!--自定義頁碼顯示-->
  11. <div id="pages" class="text-c">
  12.   <a class="a1">
  13. {php echo $pn*$pe;}
  14. {L('page_item')}</a>
  15.   {loop $data $r}
  16.   {if $p==1}{if $_GET[page]!="" && $_GET[page]!=1}<a href="{$CATEGORYS[$catid][url]}&amp;page=
  17. {php echo $_GET[page]-1}
  18. " class="a1">{L('previous')}</a>{else}<a href="{$CATEGORYS[$catid][url]}" class="a1">{L('previous')}</a>{/if}{/if}
  19.   {if ($_GET[page]=="" && $p==1) || $_GET[page]==$p}<span>{$p}</span>{else}<a href="{$CATEGORYS[$catid][url]}&amp;page={$p}">{$p}</a>{/if}
  20.   {if $p==$pn}{if $_GET[page]==""}<a href="{$CATEGORYS[$catid][url]}&amp;page=2" class="a1">{L('next')}</a>{else}{if $_GET[page]==$pn}<a href="{$CATEGORYS[$catid][url]}&amp;page={$pn}" class="a1">{L('next')}</a>{else}<a href="{$CATEGORYS[$catid][url]}&amp;page=
  21. {php echo $_GET[page]+1}
  22. " class="a1">{L('next')}</a>{/if}{/if}{/if}
  23.   {php $p++}
  24.   {php if($p>$pn) break;}
  25. {/loop}
 
代碼解析:
1、先定義幾個變量,索引$p、頁面數量$pn、每頁內容數量$pe、范圍時間$ltime。大家可以按需修改。
2、使用SQL語句從news、download和picture三張表中調出title、inputtime和url三個字段的記錄,使用UNION ALL將它們連接起來,并按時間倒序排列。請將news、download、picture改成自己的、或者按需增加和刪除。
3、自定義顯示頁碼。樣式可以自定義。但是不要刪除某些代碼的換行,會報錯的。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉林市| 大姚县| 大城县| 长顺县| 成武县| 通道| 新源县| 庆元县| 鄂尔多斯市| 马鞍山市| 南木林县| 西华县| 喀喇沁旗| 集贤县| 中牟县| 光山县| 顺平县| 礼泉县| 上饶市| 高雄县| 马龙县| 大丰市| 陇川县| 金阳县| 博野县| 兴城市| 砀山县| 松潘县| 双鸭山市| 河曲县| 宁城县| 奉贤区| 上饶市| 乐清市| 麦盖提县| 衡山县| 日土县| 榆社县| 洪泽县| 宿松县| 松江区|