您现在的位置是:首页 > 教程 > dedecms教程dedecms教程
织梦cms在搜索模板中怎么调用附加表字段
南春2023-12-17 23:08:05dedecms教程已有人查阅
导读今天应朋友的要求,给他的网站做一个商品价格排序搜索。我原来以为很简单,直接用[field:price/]来调用就行了,于是爽快地答应了。谁知一操作起来才发现
今天应朋友的要求,给他的网站做一个商品价格排序搜索。我原来以为很简单,直接用[field:price/]来调用就行了,于是爽快地答应了。谁知一操作起来才发现,根本没法使用[field:price/]来调用dede_addonshop里面的price字段,因为系统默认不能在搜索模板中调用附加表字段。
结果搞了一个下午才发现解决方法:
修改include/arc.searchview.class.php
第一处:将大约320行地方的代码:
结果搞了一个下午才发现解决方法:
修改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数据库表和字段说明归总
相关文章
随机图文
-
织梦dedecms图片集分页标题怎么显示为注释信息
织梦dedecms内容管理系统的图片集分页默认显示标题为:标题 ,标题(2),标题(3)......这样很难看,尤其是用织梦做图片站的时候,这样的话对用户 -
dedecms怎么更换空间,dedecms搬家的方法
做网站数据换空间是经常的事情,由于dede数据库跟空间是不再一起,所以一直让许多人dede搬家是一件十分头疼的事情,其实不然,dede搬家其实十分简单 -
dedecms5.7织梦文章编辑器bug附件上传图标不显示的方法
织梦dedecms 5.7的文章编辑器中一直有一个小bug,官方也一直没有修复,就是在文章编辑器的工具菜单栏的附件上传图标按钮不显示,但是功能却不影响仍然可用。 -
dedecms织梦提示Error:Tag disabled:"php"的解决办法
dede 在较新的dedecms5.7版本安装完后会出现这个,其他版本暂时不知。出现的原因是: 官方出于安全考虑默认将{dede:php}{/dede:p
留言与评论 (共有 条评论) |