在dedecms搜索模板中调用自定义字段名的方法

在dedecms搜索模板中调用自定义字段名, 默认dedecms搜索页面是没法使用[field:price/]来调用dede_addonshop里面的price字段的, 下面给大家分享下解决方法: 修改include/arc.searchview.class.php 第一处: 将大约320行地方的代码: if($this-ChannelType

      在dedecms搜索模板中调用自定义字段名,默认dedecms搜索页面是没法使用[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 `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 < 0 || $this->ChannelTypeid< 0){
$this->AddTable=$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:xxxx/]的结果是未定义的



 

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

织梦DEDECMS 栏目文章文章命名规则修改, 每次添加栏目的时候 都要改文章命名规则,十分麻烦, 修改下面这个地方就可以一改永亦,织梦模板网为您解答 找到\include\common.inc.php 搜索 $cfg_df_namerule 把: $cfg_df_namerule = {typedir}/{Y}/{M}{D}/{aid
很多人在修改织梦会员中心模板的时候 会遇到 明明修改了,为什么还是原来样式?确认文件没有修改错误的情况下,可能是缓存问题,你 只要把 /data/tplcache/ 里面的文件全部删除,重新访问即可。
很多新手朋友,对织梦dedecms一些模板的命名不是很了解,或者就是不知道一些模板文件是做什么用的,下面小编对一些模板文件做一一说明(请注意以下模板文件路径,模板所处的路径是不同的): 单页图文:/templets/default/singepage.htm 留言板:/templets/p
有时候我们需要实现织梦文章模型多个图片或者多个缩略图,这样的功能我们要怎么操作呢?其实方法还是蛮多的,不需要修改代码的办法就是在内容模型中建立多个字段(缺点就是想多加一个图就要多添加一个字段,而且上传也不方便,还有另外一种方法就是拓展类似
1、打开 /dede/spec_add.php 找到 $arcids = ; 改成 $arcids = array(); 2、打开 /dede/spec_edit.php 找到 $arcids = ; 改成 $arcids = array(); 完成
登陆dedecms提示你的用户名不存在,这种情况想必很多朋友都有遇到吧,遇到这种问题,我们要怎么操作呢? 1、如果是还原数据库后登录就找不到用户名,那么很可能原因是数据库里原来的用户名不是你输入的这个。这种情况我们可以用phpmyadmin等工具进入数据库看