主页 > 教程合集 > DedeCMS >

DedeCMS联动类别地区调用不显示第三级城市的解决方法

时间:2019-12-02 阅读:0

首先我们先弄清楚织梦联动类别地区调用不显示第三级城市的原因:

1、附加表dede_addoninfos或者你的其他表中的字段nativeplace数据类型为int型,无法保存第三级城市对应的的evalue值(比如:东山区  对应的  10001.001)

2、枚举表dede_sys_enum中的第三级城市对应evalue值错误(比如:东山区 10001.1 应该为 东山区 10001.001)

DedeCMS联动类别地区调用不显示第三级城市的解决方法

织梦联动类别地区调用不显示第三级城市的解决方法:

1、修改附加表dede_addoninfos或者你的其他表中的字段nativeplace把它的数据类型为char型

后台-系统-SQL命令行工具,执行一下这个语句:


ALTER TABLE dede_addoninfos CHANGE nativeplace nativeplace CHAR( 20 ) NOT NULL DEFAULT '0'
 

注意:dede_addoninfos是你的附加表名,如果你是其他模型记得改成你的:

DedeCMS联动类别地区调用不显示第三级城市的解决方法

2、修正枚举表dede_sys_enum所有第三级城市对应的evalue值

打开/include/enums.func.php 找到:


foreach($egroups as $egroup)
 

在它上面加入:


if($egroup == 'nativeplace' || $egroups['nativeplace'] == 'nativeplace')
{
$dsql->SetQuery("SELECT id,evalue FROM `dede_sys_enum` WHERE egroup='nativeplace'");
$dsql->Execute();
while($row = $dsql->GetArray())
{
$res[]= $row;
}
foreach($res as $k=>$v)
{
if(preg_match("#([0-9]{1,}).([0-9]{1,})#", $v['evalue'], $matchs))
{
$valKey = $matchs[1] + $matchs[2]/ 1000;
$v['evalue'] = $valKey;
$sql ="UPDATE `dede_sys_enum` SET evalue=".$v['evalue'] ." WHERE id=".$v['id'];
$dsql->ExecuteNoneQuery($sql);
}
}
}
 

最后在后台-联动类别管理-更新一下【地区】的更新缓存即可。

本站所有资源均在Resource资源站有分享,你可以点击 >>> Resource 进入资源站自助提取,也可以扫描以下店铺二维码直接选购,自动极速发货

余斗微信二维码

扫描微信加好友咨询
了解更多

余斗淘宝店铺二维码

淘宝扫描二维码购买
自动发货

余斗余斗
  • 版权声明:原创文章由发表在DedeCMS分类下,2019-12-02最后更新,转载注明出处。

相关推荐

返回顶部