織夢聯動類別-地區調用不顯示第三級城市的解決方法


織夢聯動類別-地區調用不顯示第三級城市的原因

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);
		}
	}
}

最后在后台-聯動類別管理-更新一下【地區】的更新緩存


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM