Zencart 国家排序及中文名称的扩展

时间:2024-05-03 13:35:32

Zencart 国家排序及中文名称的扩展

最终实现效果如上

具体步骤:

1. 手动或SQL修改数据表,增加2个字段

ALTER TABLE countries ADD `countries_name_cn` VARCHAR( 64 ) NULL DEFAULT '', ADD `order_by` int(11) NOT NULL DEFAULT '';

2. 修改admin/countries.php文件,增加表单插入编辑功能, 共计7处,此处忽略具体代码。

3. 之后还要修改两个获取国家下拉列表的函数(前台后台分别对应一个)

#includes/functions/functions_lookups.php

  function zen_get_countries($countries_id = '', $with_iso_codes = false) {
global $db;
$countries_array = array();
if (zen_not_null($countries_id)) {
~
~
} else {
$countries = "select countries_id, countries_name, countries_name_cn
from " . TABLE_COUNTRIES . "
order by order_by, countries_name"; $countries_values = $db->Execute($countries); while (!$countries_values->EOF) {
$countries_array[] = array('countries_id' => $countries_values->fields['countries_id'],
'countries_name' => $countries_values->fields['countries_name']." - ".$countries_values->fields['countries_name_cn']); $countries_values->MoveNext();
}
} return $countries_array;
}

#admin/includes/functions/general.php

  function zen_get_countries($default = '') {
global $db;
$countries_array = array();
if ($default) {
$countries_array[] = array('id' => '',
'text' => $default);
}
$countries = $db->Execute("select countries_id, countries_name,countries_name_cn
from " . TABLE_COUNTRIES . "
order by order_by, countries_name"); while (!$countries->EOF) {
$countries_array[] = array('id' => $countries->fields['countries_id'],
'text' => $countries->fields['countries_name']." - ".$countries->fields['countries_name_cn']);
$countries->MoveNext();
} return $countries_array;
}

最终效果

Zencart 国家排序及中文名称的扩展

如果不是特别需要,后台函数也可不修改。