织梦CMS在搜索模板中调用附加表字段

等你,十一月的冷风款款如约而至,尽是点滴的韵致,点点滴滴都是我的凝眸。想你,十一月的叶落纷纷布满角落,全是颗粒的珠链,颗颗粒粒都是我的心忆。爱你,十一月的阳光惨惨敷在脸庞,满是残熠的余辉,残残熠熠都是我的思绪。

今天应朋友的要求,给他的网站做一个商品价格排序搜索。我原来以为很简单,直接用[field:price/]来调用就行了,于是爽快地答应了。谁知一操作起来才发现,根本没法使用[field:price/]来调用dede_addonshop里面的price字段,因为系统默认不能在搜索模板中调用附加表字段。

结果搞了一个下午才发现解决方法:

    修改include/arc.searchview.class.php
    第一处:
    将大约320行地方的代码:
     if($this->ChannelType < 0 || $this->ChannelTypeid< 0){
if($this->ChannelType=="0") $id=$this->ChannelTypeid;
else $id=$this->ChannelType;
$row =$this->dsql->GetOne("Select addtable From
`dede_ytljzchanneltype` Where id=$id");
$addtable = trim($row['addtable']);
$this->AddTable=$addtable;
}else{
$this->AddTable="
dede_ytljzarchives";
}

改为:


if($this->ChannelType=="0") $id=$this->ChannelTypeid;
else $id=$this->ChannelType;
$row =$this->dsql->GetOne("Select addtable From
`dede_ytljzchanneltype` Where id=$id");
$addtable = trim($row['addtable']);
if($this->ChannelType < 0 || $this->ChannelTypeid< 0){
$this->AddTable=$addtable;
$this->AddonTable='';
}else{
$this->AddTable="
dede_ytljzarchives";
$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
`dede_ytljzarctype` 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
`dede_ytljzarctype` act on arc.typeid=act.id {$this->AddonTable}
where {$this->AddSql} $ordersql limit $limitstart,$row";

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

以上就是织梦CMS在搜索模板中调用附加表字段。人生旅途一场,总要逼自己一下吧,哪有什么年少轻狂,不过是年少有梦,梦总是要去追一下的吧。更多关于织梦CMS在搜索模板中调用附加表字段请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
织梦Linux下安装DedeCMS及安全设置

织梦dede后台缩略图本地上传图片加水印

织梦dede数据还原更新缓存也生成了为什么首页不对

织梦dede文档置顶并显示置顶文字或图标

织梦dede在搜索结果页添加按栏目按模型细分数据