十三月娶你 发表于 2012-4-18 10:46:40

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

在织梦dedecms网站的搜索模板页中怎么调用自定义字段呢?

比如在默认dedecms模板搜索页面是没办法使用来调用 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中使用了,只要你的模型有附加表,你就可以使用表里的任何字段
另外注意:如果附加表里有字段名和主表字段名一样的,使用的结果是未定义的。
现在就要方便多了,哈哈!
页: [1]
查看完整版本: 织梦DEDECMS网站的搜索模板页中调用自定义字段