織夢在發表文章時,你會發現有一個副欄目的功能.比如一個文章,他可能即屬于你的科技欄目,也屬于互聯網欄目,那你在發表這個文章時,主欄目可以選擇科技,副欄目可以在互聯網上打勾選定.
文章的副欄目保存在數據庫表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.",%')";
|

















