返回頂部
關閉軟件導航
位置:首頁 > 資訊 > 帝國新聞>帝國、PHPCMS及織夢對比(二):支持SQL調用的標簽

  對于一般的CMS用戶,CMS系統默認的標簽封裝的越完整,使用越簡單越受歡迎,但如果是個性化數據調用需求較多的用戶,通常都會感覺系統內置的標簽局限性太大,不夠靈活,特別是懂PHP或MYSQL的站長朋友們,更希望能夠很方便的直接通過SQL語句在模板中自由調用數據庫中的各種數據。

  我對PHP和MYSQL不能算精通,但能算CMS的深度用戶,很多時候去測試一款CMS時,都會考慮這款CMS是否支持直接在模板中通過SQL語句來讀取CMS系統內的或者外部數據源的數據。很多時候,希望突破內置標簽的局限性,靈活自由的以各種形式來調用CMS數據庫中的數據,特別是不同程序間的數據整合調用時,支持SQL語句的標簽能夠省去很多麻煩。

  那么本文中下面落葉對帝國CMS、PHPCMS及DEDECMS這三款CMS中的支持通過SQL語句直接調用數據的標簽作一些對比分析。

  1)帝國CMS中直接通過SQL語句調用數據的標簽:

  如顯示欄目id為1的10條新聞表記錄

  [ecmsinfo]"select * from phome_ecms_news where classid=1 order by id desc limit 10"帝國cms批量助手,10,30,0,24,1,0[/ecmsinfo]

  實際上帝國CMS中支持直接SQL語句調用數據的標簽不止ecmsinfo這一個標簽,所謂的靈動標簽 (e:loop)、文字調用標簽phomenews等。

  我看到帝國CMS官方論壇有用戶問過,帝國CMS的支持SQL語句的標簽是否支持讀取外部數據源,管理員WC的回復是只支持同一個數據庫中的數據的讀取,其實這個不難理解,實際是就帝國CMS的SQL數據調用功能不支持外部數據源的調用,因為如果是多套程序安裝在同一個數據庫下,那本身就可以當作同一套程序來處理數據,如同一數據庫中安裝了論壇 和帝國CMS,直接把論壇的數據表當作帝國CMS的自定義數據表來調用一樣的道理。

  帝國CMS的SQL標簽的優點再于,SQL語句查詢結果本身在標簽內部作了處理,用戶可以直接在標簽中定義標題截取長度、是否顯示欄目名稱、時間格式化等,這些在PHPCMS及DEDECMS的類似標簽中都是需要直接在標簽的innertxt中自己作邏輯判斷和調用函數處理的,這點對于普通用戶還是比較方便的。畢竟帝國cms軟件采集,調用文章列表,要個性化的地方也就基本標題顯示長度,時間顯示格式,是否在前面顯示欄目名及列表的模板樣式,帝國這樣的標簽都可以很好的實現,夠用了。

  2)PHPCMS中的直接通過SQL語句調用數據的標簽:GET標簽

  如帶分頁,示例(調用欄目ID為1通過審核的10條信息,標題長度不超過25個漢字,顯示更新日期,帶分頁)

  {get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc" rows="10" page="$page"}

  標題:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])}

  {/get}

  在我看來GET標簽是PHPCMS中好用的標簽,要查詢什么數據,直接寫好SQL語句,使用GET標簽,并且可定自定義是否分頁,分頁每頁顯示的條數,分頁的URL規則等等,GET標簽之間的內容為讀取出來的數組變量,可直接使用PHP模板語法輸出,亦可調用全局函數或PHP原生函數進行數據處理后輸出。整個處理過程很適合PHP程序員的思維。

  GET標簽的另一個優勢是能夠很方便的調用外部數據源,即其它程序的MYSQL數據庫,并且不管是否在同一MYSQL中,不管是不在同一臺服務器,只需要在PHPCMS后臺數據源管理處添加外部數據源的主機如localhost或服務器IP,然后填寫數據庫名、數據庫用戶名及數據庫密碼,測試連接成功后,后面即可直接在模板中使用GET標簽調用外部數據源。

  \

  get 標簽調用外部數據示例(調用數據源為bbs,分類ID為1的10個最新主題,主題長度不超過25個漢字,顯示更新日期):

  {get dbsource="bbs" sql="select * from cdb_threads where fid=1 order by dateline desc" rows="10"}

  主題:{str_cut($r[subject], 50)} URL:http://www.pmume.com/viewthread.php帝國cms采集軟件?tid={$r[tid]} 更新日期:{date('Y-m-d', $r[dateline])}

  {/get}

  這點是非常方便的,一個文章主站+論壇 ,然后直接在主站首頁調用論壇中的帖子,使用GET標簽,可以以任何想實現的方式來讀取論壇數據庫的帖子,而其它程序中則只能通過JS調用或者通過改程序來實現。

  GET標簽的優勢還在于,如果是進行二次開發,新建一個abc.php頁面,只需要引用PHPCMS的公共文件,即可直接使用PHPCMS的模板引擎,然后在模板目錄下新建一個abc.html即可在模板中使用GET標簽調用任何想調用的內容。

  如果MYSQL數據庫不在同一服務器,在PHPCMS后臺填好數據庫設置,然后在遠程服務器的MY.INI文件中設置禁用域名DNS反向解析,然后使用GET標簽遠程調用,速度會和同一臺服務器相差無幾,跨服務器數據調用非常方便。

  不過,我還不滿足于此,還希望GET標簽能直接調用其它類型的數據庫數據,如SQL server中的數據,如果能實現這樣,那跨語言平臺整合那將非常方便了。如主站是PHPCMS的,論壇是.NET,這樣如果GET標簽也支持讀SQL server中的數據,那真是無敵了。

  3)DEDECMS中直接通過SQL語句調用數據的標簽:SQL標簽

  如調用文章表中會員ID為1的會員發布的10條文章

  {dede:sql sql='Select * from dede_archives where mid=1 limit 10'}

  <a href='/plus/view.php?aid=[field:id/]' target='_blank'>[field:title/]</a>

  {/dede:sql}

  從DEDECMS中SQL標簽文檔來看,該SQL標簽直接使用SQL語句來調用簡單的文章列表,還是非常方便的,處理好的innertxt也支持用 PHP函數處理后輸出,這點和PHPCMS中挺像,但是貌似沒有PHPCMS的GET標簽強大,不支持分頁,更不會支持分頁的自定義URL格式。

  當然,一般的用于側邊欄調用一些內置標簽不方便實現的數據,夠用了。

如果您覺得 帝國、PHPCMS及織夢對比(二):支持SQL調用的標簽 這篇文章對您有用,請分享給您的好友,謝謝
文章地址:http://www.meyanliao.com/article/diguo/dgPHPCMSjzmdbezcSQLtydbq.html
解放雙手無盡可能,有問題添加天線貓微信
主站蜘蛛池模板: 精品久久无码中文字幕| 蜜芽亚洲av无码精品色午夜| 50岁人妻丰满熟妇αv无码区| 未满十八18禁止免费无码网站| 欧洲成人午夜精品无码区久久 | 午夜无码中文字幕在线播放 | 国产精品无码专区| 西西大胆无码视频免费| 丰满日韩放荡少妇无码视频| 亚无码乱人伦一区二区| av大片在线无码免费| 无码中文字幕av免费放dvd| 人妻丝袜无码专区视频网站| 亚洲精品无码久久久久APP| 无码人妻丰满熟妇区免费| 久久久无码精品亚洲日韩软件| 亚洲av无码有乱码在线观看| 日韩精品专区AV无码| 亚洲精品无码久久一线| 精品无码一级毛片免费视频观看| 中文字幕无码不卡免费视频| 午夜不卡无码中文字幕影院| 亚洲精品无码久久久久sm| 日韩乱码人妻无码中文视频 | 东京无码熟妇人妻AV在线网址| 免费无码黄十八禁网站在线观看| 免费无码又爽又刺激高潮视频| 亚洲AV永久无码精品成人| 日韩精品无码免费专区午夜不卡| 无码人妻久久一区二区三区蜜桃 | 无码激情做a爰片毛片AV片| 西西人体444www大胆无码视频| 中文午夜人妻无码看片| 日韩av无码国产精品| 人妻少妇看A偷人无码精品| 无码av天天av天天爽| 久久久久无码专区亚洲av| 亚洲AV无码成人精品区大在线| 亚洲AV无码一区二三区| 成人无码午夜在线观看| 国产成人无码AV一区二区|