首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DEDECMS织梦解决联动类别地区调用不显示第三级城市的方法

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

作者头像
米米素材网
发布2022-07-10 18:09:41
发布2022-07-10 18:09:41
1.8K00
代码可运行
举报
文章被收录于专栏:站长技术站长技术
运行总次数:0
代码可运行

这篇文章主要为大家详细介绍了织梦模板联动类别地区调用不显示第三级城市的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

       这个问题是一用户自己在做开发时候发现的,首先我们先弄清楚织梦联动类别地区调用不显示第三级城市的原因:

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
ALTER TABLE dede_addoninfos CHANGE nativeplace nativeplace CHAR( 20 ) NOT NULL DEFAULT '0'

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
foreach($egroups as $egroup)

在它上面加入:

代码语言:javascript
代码运行次数:0
运行
复制
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);}}}

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

以上就是织梦模板联动类别地区调用不显示第三级城市的解决方法的全部内容,希望对大家的学习和解决疑问有所帮助

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档