dedecms自定義聯動類別呼叫及修改方法
阿新 • • 發佈:2019-02-06
- require_once(DEDEROOT.'/data/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'=>'','自定義聯動類別欄位名'=>'','typeid'=>$typeid,
- 'channelid'=>$channelid,'linkallplace'=>'','linkealltype'=>'','linkeall自定義聯動類別欄位名'=>'');
- $fields['nativeplace'] = $fields['infotype'] = $fields['自定義聯動類別欄位名'] = '';
- $fields['linkalltype'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}& amp;nativeplace={$nativeplace}'>不限</a>";
- //下面新增一行
- $fields['linkeall 自定義聯動類別欄位名'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}& amp;自定義聯動類別欄位名={$自定義聯動類別欄位名}&nativeplace={$nativeplace}'>不限< /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}& amp;自定義聯動類別欄位名={$eid}&nativeplace={$nativeplace}'>{$em}</a& gt;";
- }
- }
- else
- {
- $sontype = ( ($自定義聯動類別欄位名 % 500 != 0) ? $自定義聯動類別欄位名 : 0 );
- $toptype = ( ($自定義聯動類別欄位名 % 500 == 0) ? $自定義聯動類別欄位名 : ( $自定義聯動類別欄位名-($membertype%500) ) );
- $fields[' 自定義聯動類別欄位名'] = "<a href='{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}& amp;自定義聯動類別欄位名={$toptype}&nativeplace={$nativeplace}'><b& gt;{$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}& amp;自定義聯動類別欄位名={$eid}&nativeplace={$nativeplace}'>{$em}</a& gt;";
- }
- }
- }
- 再修改 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['自定義聯動類別欄位名']}'";
- }
- }