找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 565|回复: 0

织梦DEDECMS网站的搜索模板页中调用自定义字段

[复制链接]
发表于 2012-4-18 10:46:40 | 显示全部楼层 |阅读模式
在织梦dedecms网站的搜索模板页中怎么调用自定义字段呢?

比如在默认dedecms模板搜索页面是没办法使用[field:price/]来调用 dede_addonshop表里面的price字段的,
我们可以使用下面的解决办法:

   修改include/arc.searchview.class.php
    第一处:
    将大约320行地方的代码:
           if($this->ChannelType ChannelTypeidChannelType=="0") $id=$this->ChannelTypeid;
                 else $id=$this->ChannelType;
                 $row =$this->dsql->GetOne("Select addtable From `cn_channeltype` Where id=$id");
                 $addtable = trim($row['addtable']);
  
                                    
                         $this->AddTable=$addtable;
           }else{
                 $this->AddTable="cn_archives";
           }
改为:
           if($this->ChannelType=="0") $id=$this->ChannelTypeid;
           else $id=$this->ChannelType;
           $row =$this->dsql->GetOne("Select addtable From `cn_channeltype` Where id=$id");
           $addtable = trim($row['addtable']);
           if($this->ChannelType ChannelTypeidAddTable=$addtable;
                 $this->AddonTable='';
           }else{
                 $this->AddTable="cn_archives";
                 $this->AddonTable=$addtable;
            }
第二处:
将大约500行的地方的代码:
$query = "Select arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
           act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath
   
                                    
                 from `{$this->AddTable}` arc left join `cn_arctype` act on arc.typeid=act.id
           where {$this->AddSql} $ordersql limit $limitstart,$row";
改为:
           if (!empty($this->AddonTable)) {
                 $this->AddonTable="left join `{$this->AddonTable}` addon on addon.typeid=arc.typeid";
           }else {
                 $this->AddonTable='';
           }
           $query = "Select arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
           act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath,addon.*
  
                                    
                   from `{$this->AddTable}` arc left join `cn_arctype` act on arc.typeid=act.id {$this->AddonTable}
           where {$this->AddSql} $ordersql limit $limitstart,$row";

好了,可以在search.htm中使用[field:price/]了,只要你的模型有附加表,你就可以使用表里的任何字段
另外注意:如果附加表里有字段名和主表字段名一样的,使用[field:xxxxx/]的结果是未定义的。
现在就要方便多了,哈哈!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|要学吧论坛

GMT+8, 2026-1-24 01:15 , Processed in 0.038247 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表