搜尋了好久,沒找到一個好的方法,就湊活用這個方法吧。也許只有這個方法比較好
先在後臺的“聯動類別管理”裡新增“類別組”,“類 別 名”填中文,“快取組名”填英文字母。
在“分類名稱”後面增加分類
然後在“內容模型管理”裡點“分類資訊”,在點“欄位管理”,點“新增新欄位”。“表單提示文字”填中文,“欄位名稱”填英文字母
這樣,在分類資訊裡新增文字的時候就有對應的選擇了。
然後就是在前臺顯示。
先修改 include\taglib\infolink.lib.php 檔案
搜尋require_once(DEDEDATA.'/enums/infotype.php');
下面新增
require_once(DEDEROOT.'/data/enums/自定義聯動類別欄位名.php');
修改
function lib_infolink(&$ctag,&$refObj) { global $dsql,$nativeplace,$infotype,$自定義聯動類別欄位名,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite; global $em_nativeplaces,$em_infotypes,$em_自定義聯動類別欄位名s; //看清楚,這裡後面的個s
搜尋$fields = array('nativeplace'=>'','infotype'=>''
修改
$fields = array('nativeplace'=>'','infotype'=>'','自定義聯動類別欄位名'=>'','typeid'=>$typeid, 'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>'','linkall自定義聯動類別欄位名'=>''); $fields['nativeplace'] = $fields['infotype'] = $fields['自定義聯動類別欄位名'] = '';
搜尋$fields['linkalltype'] =
在下面新增
$fields['linkall自定義聯動類別欄位名'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定義聯動類別欄位名={$自定義聯動類別欄位名}'>不限</a>";
搜尋if(is_array($ctp->CTags))在這句上面新增
//自定義聯動類別欄位連結 if(empty($自定義聯動類別欄位名)) { foreach($em_自定義聯動類別欄位名s as $eid=>$em) { if($eid % 500 != 0) continue; $fields['自定義聯動類別欄位名'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定義聯動類別欄位名={$eid}&nativeplace={$nativeplace}'>{$em}</a>"; } } else { $sontype = ( ($自定義聯動類別欄位名 % 500 != 0) ? $自定義聯動類別欄位名 : 0 ); $toptype = ( ($自定義聯動類別欄位名 % 500 == 0) ? $自定義聯動類別欄位名 : ( $自定義聯動類別欄位名-($membertype%500) ) ); $fields['自定義聯動類別欄位名'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定義聯動類別欄位名={$toptype}&nativeplace={$nativeplace}'><b>{$em_自定義聯動類別欄位名s[$toptype]}</b></a> "; foreach($em_自定義聯動類別欄位名s as $eid=>$em) { if($eid < $toptype+1 || $eid > $toptype+499) continue; if($eid == $自定義聯動類別欄位名) { $fields['自定義聯動類別欄位名'] .= " <b>{$em}</b>"; } else { $fields['自定義聯動類別欄位名'] .= " <a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}&自定義聯動類別欄位名={$eid}&nativeplace={$nativeplace}'>{$em}</a>"; } } }
再修改plus\list.php檔案
搜尋$infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype );在下面新增一句
$自定義聯動類別欄位名 = ( (empty($自定義聯動類別欄位名) || !is_numeric($自定義聯動類別欄位名)) ? 0 : $自定義聯動類別欄位名 );
再搜尋if(!empty($infotype)) $cArr['infotype'] = $infotype;,在下面新增
if(!empty($自定義聯動類別欄位名)) $cArr['自定義聯動類別欄位名'] = $自定義聯動類別欄位名;
找到include\arc.sglistview.class.php檔案
搜尋if(!empty($this->searchArr['keyword']))在上面新增
//自定義聯動類別 if(!empty($this->searchArr['自定義聯動類別欄位名'])) { if($this->searchArr['自定義聯動類別欄位名'] % 500 ==0 ) { $naddQuery .= " And arc.自定義聯動類別欄位名 >= '{$this->searchArr['自定義聯動類別欄位名']}' And arc.自定義聯動類別欄位名 < '".($this->searchArr['自定義聯動類別欄位 名']+500)."'"; } else { $naddQuery .= "And arc.自定義聯動類別欄位名 = '{$this->searchArr['自定義聯動類別欄位名']}'"; } }
前臺模板呼叫
[field:linkall自定義聯動類別欄位名/] [field:自定義聯動類別字]