Zencart 国家排序及中文名称的扩展
程序员文章站
2023-12-26 21:10:39
...
最终实现效果如上
具体步骤:
1. 手动或SQL修改数据表,增加2个字段
ALTER TABLE countries ADD `countries_name_cn` VARCHAR( 64 ) NULL DEFAULT '', ADD `order_by` int(11) NOT NULL DEFAULT '0';
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; }
最终效果
如果不是特别需要,后台函数也可不修改。