您现在的位置是:首页 > cms教程 > DedeCMS教程DedeCMS教程

织梦cms在搜索模板中怎么调用附加表字段

南春2023-12-17DedeCMS教程已有人查阅

导读今天应朋友的要求,给他的网站做一个商品价格排序搜索。我原来以为很简单,直接用[field:price/]来调用就行了,于是爽快地答应了。谁知一操作起来才发现

今天应朋友的要求,给他的网站做一个商品价格排序搜索。我原来以为很简单,直接用[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/]的结果是未定义的。

本文标签:

很赞哦! ()

相关源码

  • 帝国cms7.5品牌连锁店招商加盟商机网站模版源码本模板为招商加盟、创业投资、品牌连锁等商业领域设计,采用帝国CMS7.5内核构建,整体风格简洁大气,突出商业信任感与专业度,适合各类招商加盟项目展示、品牌连锁店宣传等商业应用场景。查看源码
  • 帝国CMS7.5漫画网站模板带手机端源码免费下载本模板为漫画内容平台设计开发,采用帝国CMS7.5内核构建,深度优化漫画作品展示结构与章节管理模式。前端采用响应式布局设计,适配各类漫画阅读场景,提供作品分类、连载追踪、热度排行等垂直领域功能模块。查看源码
  • (自适应)宽屏大气红色机械设备pbootcms模板源码下载为机械设备制造企业设计的响应式网站模板,采用PbootCMS内核开发。宽屏布局突出设备展示效果,红色工业风格贴合机械行业属性,支持PC端与手机端自动适配查看源码
  • (PC+WAP)绿色资源回收新能源环保设备pbootcms源码下载基于PbootCMS系统深度开发的环保行业模板,特别适配资源回收设备、新能源技术、环境治理装备等企业的线上展示需求。集成产品库、解决方案、环保案例等专业模块,助力企业高效传递绿色价值。查看源码
  • (自适应)中英双语配线器材扎带线卡网站pbootcms模板免费下载为线缆管理、电气配线领域打造的响应式网站模板,采用PbootCMS内核开发,可快速搭建企业级产品展示平台,数据实时同步管理。查看源码
  • (自适应多语言)WordPress开源主题MirageV资讯个人博客源码MirageV资讯类个人博客主题源码/WordPress主题/全开源MirageV 是一款开源的 WordPress 主题,支持自适应、暗黑模式、多语言等功能,查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐