讓織夢主頁可以調用副欄目(副標題爲9個之內)

網站找了很久 關於織夢調用副欄目的例子 代碼爲

 打開/include/taglib/arclist.lib.php,代碼約位於295-296行(我目前用的DedeCMS最新版 5.7 SP1),查找以下兩行代碼:

 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 arc.typeid2 IN ('.GetSonIds($typeid).')) ';

   else $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.') OR arc.typeid2 IN ('.GetSonIds($typeid).','.$CrossID.')) ';

  OK,這樣就改完了,保存後如果你是生成靜態的,請生成相關的。如果是動態的,請更新系統緩存。然後就可以看到效果了。

以上代碼有一個問題 大家想下

typeid2

字段中爲以“,”分割的字符串 和後面的 in集合比較會出現未知結果。 因此解決它可以寫一個 類似 split的函數來解決它 但是 該死的mysql還不支持 返回表結構的函數(別噴我 我的mysql是 門外漢的水平)  沒辦法 咱笨 啊 用死辦法 寫 一個 死欄目的比較  反正生成靜態頁面只 調用一次慢就慢吧 。

代碼如下

                if($CrossID=='') $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).') OR ( SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',1),\',\',-1) IN ('.GetSonIds($typeid).') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',2),\',\',-1) IN ('.GetSonIds($typeid).') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',3),\',\',-1) IN ('.GetSonIds($typeid).') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',4),\',\',-1) IN ('.GetSonIds($typeid).') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',5),\',\',-1) IN ('.GetSonIds($typeid).') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',6),\',\',-1) IN ('.GetSonIds($typeid).') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',7),\',\',-1) IN ('.GetSonIds($typeid).') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',8),\',\',-1) IN ('.GetSonIds($typeid).') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',9),\',\',-1) IN ('.GetSonIds($typeid).')))';
                else $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.') OR ( SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',1),\',\',-1) IN ('.GetSonIds($typeid).','.$CrossID.') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',2),\',\',-1) IN ('.GetSonIds($typeid).','.$CrossID.') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',3),\',\',-1) IN ('.GetSonIds($typeid).','.$CrossID.') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',4),\',\',-1) IN ('.GetSonIds($typeid).','.$CrossID.') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',5),\',\',-1) IN ('.GetSonIds($typeid).','.$CrossID.') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',6),\',\',-1) IN ('.GetSonIds($typeid).','.$CrossID.') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',7),\',\',-1) IN ('.GetSonIds($typeid).','.$CrossID.') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',8),\',\',-1) IN ('.GetSonIds($typeid).','.$CrossID.') OR  SUBSTRING_INDEX(SUBSTRING_INDEX(arc.typeid2,\',\',9),\',\',-1) IN ('.GetSonIds($typeid).','.$CrossID.'))) ';


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章