欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-05-25 13:18:59
...
Zencart 国家排序及中文名称的扩展

最终实现效果如上

具体步骤:

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

最终效果

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

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