Dedehtml.com

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

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

织梦联动类别-地区调用不显示第三级城市的原因

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

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

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

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

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

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

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

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 `#@__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 `#@__sys_enum` SET evalue=".$v['evalue'] ." WHERE id=".$v['id'];
			$dsql->ExecuteNoneQuery($sql);
		}
	}
}

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

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.dedehtml.com/notes/dede-nativeplace-son.html
(5)
打赏 微信扫一扫 微信 支付宝 QQ 扫码打赏

织梦其他模型使用联动类型地区联动

Dedehtml赞(2)

官方模型的联动类型只能模型是在【独立模型】或者官方默认的【分类信息】模型下使用,其他模型下使用无效,我们来让联动类型支持所有模型。

织梦联动筛选伪静态[单链接形式]

Dedehtml赞(4)

伪静态URL 网站用的是静态,筛选用的是伪静态,筛选的伪静态地址以字段和键值呈现,让筛选URL与静态保持一致。 如: 静态栏目页 http://www.dedehtml.com/juji/ 静态栏目页分页 http://www.dedehtml.com/juji