織夢在發表文章時,你會發現有一個副欄目的功能.比如一個文章,他可能即屬于你的科技欄目,也屬于互聯網欄目,那你在發表這個文章時,主欄目可以選擇科技,副欄目可以在互聯網上打勾選定.
文章的副欄目保存在數據庫表archives中的typeid2這個字段中.
效果圖.文章屬于商會.及德商文化等.三個欄目.我里在欄目顯示出來.點擊鏈接后,就會進入相關的欄目中.這里是js函數的形式.只作案例演示.
模板標簽代碼為
| 1 2 3 4 5 6 7 8 | {dede:arclist row='2' titlelen='100'typeid=2 orderby='id' } <span> <a href="javascript:"onclick="javascript:change_tab([field:typeid/]);">[field:typename/]</a> <!-- 上面是文章所屬的主欄目,很方便調用. --> [field:typeid2 function="get_url_by_typeid2(@me)"/] <!-- 上面是文章所屬的副欄目,需要單獨寫函數get_url_by_typeid2 --> </span> {/dede:arclist} |
函數代碼,需要增加在/include/extend.func.PHP 中
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //得到副欄目信息,并組織字符串 function get_url_by_typeid2($typeid2){ $arrs=explode(",",$typeid2);//解析副欄目字段 if($typeid2==0){ return ''; }else{ $url=''; foreach($arrs as $v){ $url.='<a href="javascript:" onclick="javascript:change_tab('.$v.');">'.get_typename($v).'</a>'; } return $url; } } //織夢根據欄目編號typeid調用typename欄目名 function get_typename($typeid){ global $dsql; $rs=$dsql->getOne("select typename from arctype where id='$typeid'"); return $rs['typename']; } |
另外特別注意,織夢標簽artlist不能調用副欄目中的文章內容的問題,即文章屬于互聯網這個副欄目,但互聯網欄目中卻不顯示這個文章.
需要修改系統文件./include/taglib/arclist.lib.php
295到296行修改
原代碼
| 1 2 | if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')'; else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')'; |
修改為
| 1 2 3 4 | 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.",%')"; |



















