織夢分類信息頻道頁面有幾個信息檢索類型。默認的有地區、信息類別。如果要再多添加幾個怎么辦呢?這里不能直接調用,必須修改頁面代碼。全部過程份為三 步,
第一,在后臺添加聯動類型。
添加方法很簡單,在后臺找到“核心——頻道類型——聯動類別管理”。找到這兒,然后添加一個自己需要的聯動類別。這個比較 簡單,相信大家都能辦到。第二部比較麻煩,需要修改四個文件。
1. include\taglib\infolink.lib.php
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'=>'','linkalltype'=> '','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& amp; 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> {$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& amp; gt;";
}
}
}
//以上文件修改完了!
2. plus\list.php 文件
搜索 $infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype ); 在下面添加一句:
$自定義聯動類別字段名 = ( (empty($自定義聯動類別字段名) || !is_numeric($自定義聯動類別字段名)) ? 0 : $自定義聯動類別字段名 );
再搜索 if(!empty($infotype)) $cArr['infotype'] = $infotype; 在下面添加(編輯:漢網IT)
if(!empty($自定義聯動類別字段名)) $cArr['自定義聯動類別字段名'] = $自定義聯動類別字段名;
3. 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['自定義聯動類別字段名']}'";
}
}
4. include\taglib\infoguide.lib.php
找 到$fields['infotype'] .= '<script language="javascript">MakeTopSelect("infotype", '.$infotype.');</script>'."\r\n";,在其下面添加:
$fields['自定義聯動類別字段名'] .= "<input type='hidden' id='hidden_自定義聯動類別字段名' name='自定義聯動類別字段名' value='{$自定義聯動類別字段名}' />\r\n";
$fields['自定義聯動類別字段名'] .= "<span class='infosearchtxt'>類型:</span><span id='span_自定義聯動類別字段名'></span>\r\n";
$fields['自定義聯動類別字段名'] .= "<span id='span_自定義聯動類別字段名_son'></span><br />\r\n";
$fields['自定義聯動類別字段名'] .= "<script language='javascript' type='text/javascript' src='{$cfg_mainsite}{$cmspath}data/enums/自定義聯動類別字段名.js'></script& amp; gt;\r\n";
$fields['自定義聯動類別字段名'] .= '<script language="javascript">MakeTopSelect("自定義聯動類別字段名", '.$自定義聯動類別字段名.');</script>'."\r\n";
第三步就是要把相應變量放到要調用的頁面,這個應該也不難,如果我們不知道怎么做,可以參考dede模板中的默認頁面怎么調用的,根據這個調用我們自己定義的。具體網站還要具體分析。才能準確檢索出信息。