?

dede文章副欄目調用 完美解決DEDE封面調用副欄目文章列表方法

2012-06-15 10:54?來源 溫州視線

  dede副欄目調用方法用普通DEDE調用欄目的代碼無效,dede封面或者首頁調用副欄目的文章,用dede arclist是無法顯示的,網上查了一下都是下面說的第一種方法,這樣修改后是能調用副欄目的文章列表,但是首頁、頻道頁、列表頁的推薦無效了,第二種方法可以完美解決調用副欄目文章的問題。

  修改文件/include/taglib/arclist.lib.php
  修改原代碼:
  if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')';
  else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';
  以上是原代碼替換成:
  if($CrossID=='')$orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).') or FIND_IN_SET('.GetSonIds($typeid).',arc.typeid2)';
else $orwheres[] = 'arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')or FIND_IN_SET('.GetSonIds($typeid).',arc.typeid2)';
  代碼說明:
  arc.typeid IN ('.GetSonIds($typeid).')查詢dede_arctiny表中的typeid字段,如果是有.GetSonIds($typeid).的就查詢并返回去。這里沒有typeid2所以在這里就要加上 or FIND_IN_SET('.GetSonIds($typeid).',arc.typeid2)'
意思就是查詢typeid2字段中如果包含了.GetSonIds($typeid).此數字的話也返回。但是這樣一設置封面的推薦什么的都不顯示了,所以只能用模糊查詢。

  模糊查詢說明:
  mysql中如果用like模糊查詢的話,也是可以的。不過可能不是很準。
  代碼如下:
  if($CrossID=='')$orwheres[] = " (arc.typeid in (".GetSonIds($typeid).") or arc.typeid2 in(".GetSonIds($typeid).") or CONCAT( ',', arc.typeid2, ',' ) LIKE '%,".$typeid.",%' )";
  else $orwheres[] = " (arc.typeid in (".GetSonIds($typeid).",".$CrossID.") or arc.typeid2 in (".GetSonIds($typeid).",".$CrossID.") or CONCAT( ',', arc.typeid2, ',' ) LIKE '%,".$typeid.",%')";
  這個代碼已經試過了,很好。

  一般SQL是可以支持CHARINDEX函數的。不過可惜的是Mysql不支持這個函數所以只能用以上方法或者like模糊查詢了。如果你有更好的方法的話。除外,我只知道這兩種就先發出來了。

  本文來源 電腦互助網|http://www.pc811.com 原文鏈接:http://www.pc811.com/6/4/25022.html

編輯: yujeu

    dede副欄目調用相關文章


    ?
    聯系方法 - 招聘信息 - 隱私政策 - 網絡營銷 - 網站地圖
    溫州視線信息技術有限公司版權所有
    好运彩3直播 亚上彩游戏 福建麻将16张玩法 风车赚钱怎么样真的吗 在澳门赌博真的有人稳定赚钱吗 壹加壹线上娱乐游戏 开淘宝店卖食品赚钱吗 有哪些页游升级能赚钱 腾讯麻将来了是真人吗 俄罗斯代购 赚钱吗 可以挂机自由交易赚钱的游戏 众益彩票首页 刷新闻赚钱央视 手机加微信可以赚钱是真的吗 微乐南昌麻将外挂 食之契约赚钱 市政工程最赚钱的是