Zen-cart扩展国家表管理

Zen-cart中国家表的管理比较粗糙,特别是在要对应国家下拉列表进行调整时,比如把常用的国家调整到最前面,那么就需要扩展一下国家表字段了。 涉及到国家表管理的是admin/countries.


Zen-cart中国家表的管理比较粗糙,特别是在要对应国家下拉列表进行调整时,比如把常用的国家调整到最前面,那么就需要扩展一下国家表字段了。

涉及到国家表管理的是admin/countries.php文件,需要对这个文件做一些改动:

///////////////////////

$cnt = $db->metaColumns(TABLE_COUNTRIES);

if(!isset($cnt[strtoupper(‘countries_name_cn‘)])){ 

    $db->Execute("ALTER TABLE ".TABLE_COUNTRIES." ADD countries_name_cn VARCHAR( 64 ) NULL DEFAULT ‘‘");

}

if(!isset($cnt[strtoupper(‘order_by‘)])){  

    $db->Execute("ALTER TABLE ".TABLE_COUNTRIES." ADD order_by int(11) NOT NULL DEFAULT ‘0‘");

}

///////////////////////
然后就是对插入编辑时的SQL进行修改,当然接下来还有修改表单(这里忽略)。

这样可以添加中文名称和排序码,排序码添加了之后还要修改两个获取国家下拉列表的函数(前台后台分别对应一个):

#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 {

      ///////////////////////

      $cnt = $db->metaColumns(TABLE_COUNTRIES);

      if(!isset($cnt[strtoupper(‘order_by‘)])){

        $db->Execute("ALTER TABLE ".TABLE_COUNTRIES." ADD order_by int(11) NOT NULL DEFAULT ‘0‘");

      }

      ///////////////////////

      $countries = "select countries_id, countries_name

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

    }

    

    ///////////////////////

    $cnt = $db->metaColumns(TABLE_COUNTRIES);

    if(!isset($cnt[strtoupper(‘countries_name_cn‘)])){ 

        $db->Execute("ALTER TABLE ".TABLE_COUNTRIES." ADD countries_name_cn VARCHAR( 64 ) NULL DEFAULT ‘‘");

    }

    if(!isset($cnt[strtoupper(‘order_by‘)])){  

        $db->Execute("ALTER TABLE ".TABLE_COUNTRIES." ADD order_by int(11) NOT NULL DEFAULT ‘0‘");

    }

    ///////////////////////

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

  }

函数中加入了判断对应字段是否存在的逻辑,防止出错。

企业模板网站

时间: 2024-10-07 09:03:41

Zen-cart扩展国家表管理的相关文章

Zen Cart 常用SQL命令

网店日常维护过程中,难免要跟各种批量操作打交道, 虽然大多数操作可以通过批量上传 (easy populate) 和 快速更新 模块来完成, 但在应用便捷性和一些功能性的调整上, 总有一定的局限性; 网站的全部数据均存放在数据库中, 有什么变更 直接操作数据库无疑是最便捷的方式, 既然要动数据库, SQL语句是肯定离不开了, 日常跟网站打交道, 要接触熟悉各种代码, 这里又多了一种代码, 有点儿让人头大, 因此也就了本文, 下面为日常应用中可能涉及到的常用的批量操作SQL语句, 可多条同时执行

Django笔记 如何扩展User表的字段

django 自带的权限框架,其中auth_user表的字段,很难满足正常的需求,因此需要扩展,至于扩展,一般有如下几种选择: 1. 直接修改django 源码,修改User class 的定义,以及各种方法等,然后把数据库auth_user表里的字段扩展到与自己需求一致.(源代码在:django.contrib.auth.models import User),这种方式,每次升级django都得很小心. 2. 把django 的user以及认证部分的源代码拷贝到自己的app下面,然后修改,配置

SQL语句之 多表管理

SQL语句之 多表管理 一个数据库内通常会有不止一张表,有时候我们要把多张表联系起来,这就需要用到多表管理的语句. 1.外键约束 一个表中的非主键字段,如果在另外一张表中是主键,那么这个字段我们叫它做外键. 例如,现在有两个表: 学生表 - 学号,姓名,性别,所在班级号 班级表 - 班级号,班级人数 在学生表中,学号是主键:在班级表中,班级号是主键,而学生表中‘所在班级号’是非主键.所以,所在班级号对学生表来说是一个外键. 语句:CONSTRAINT student_class_fk FOREI

个人的后门程序开发(第一部分):文件操作和注册表管理

本来是想寒假时写的,结果一直懒得动手. 虽然手上有ghost源码,但是感觉功能不是我想要的,比如把精力费在学MFC写界面上不如改进下隐藏性. 基本的计划就是做一个后门程序,目的是用来进行权限维持的.目前来看是基于控制台的,而且要带有内核模块,应用层的主要问题就是没写过太大体量的程序导致搞起来很蛋疼,内核方面就是通用性坑爹, 蓝屏起来也要费时间. 第一部分就是封装的两个函数,文件操作和注册表管理.ghost是把这两个功能封装成两个类,我这里就直接用函数来实现了. VS2015编译通过 1 //文件

mysql 连接命令 表管理 ,克隆表,临时表,字符串属性,设定语句间的分隔符

连接和断开连接mysql -h host -u user -p (即,连接的主机.用户名和使用的密码).断开输入QUIT (或\q)随时退出: 表管理克隆表注意:create table ... like 语句不克隆表的外键定义,不克隆原表可能使用的data directory 和index directory. 和auto_increment --创建一张和现有的某张表结构一致的表.create table new_table like original_table --把某张的数据插入到克隆

mysl 数据库 表 管理【创建 删除 修改 改名 引擎】

mysl 数据库 表 管理 MySQL中字符大小写: 1.SQL关键字及函数名不区分字符大小写: 2.数据库.表及视图名称的大小区分与否取决于低层OS及FS 3.存储过程.存储函数及事件调度器的名字不区分大小写,但触发器区分: 4.表别名区分大小写: 5.对字段中的数据,如果字段类型为Binary类型,则区分大小写:非Binary不区分大小写: [库]: mysql> help create database; Name: 'CREATE DATABASE' Description: Synta

OracleDBA之表管理

下面是Oracle表管理的部分,用到的测试表是oracle数据库中scott用户下的表做的测试,有的实验也用到了hr用户的数据,以下这些东西是我的麦库上存的当时学Oracle的学习笔记今天拿出来和大家分享一下,转载请注明出处,下面用的Oracle的版本是10g,用的时WinServer2003的操作系统,可能有些命令和Oracle11g的有所不同,但大部分是一样的,接下来还会陆续的分享一下Oracle中对数据库的管理,对表的管理,还有Oracle中的存储过程和PL/SQL编程.用到的Oracle

Zen Cart 138 在PHP5.3环境下出现的Fatal error: Cannot redeclare date_diff()

Zen Cart 138 在PHP5.3环境下出现的Fatal error: Cannot redeclare date_diff() in includes/functions/functions_general.php错误的解决方法 原因是在这个文件中已存在函数:date_diff()了,此时,我们需要做到与旧版本的PHP兼容,将Zen Cart中的date_diff()函数进行修改,解决方法如下: if(function_exists('date_diff') && phpversi

修正zen cart商品评论显示太短的问题

找到includes\modules\pages\product_reviews\header_php.php $reviews_query_raw = “SELECT r.reviews_id, left(rd.reviews_text, 100) as reviews_text, r.reviews_rating, r.date_added, r.customers_name FROM ” . TABLE_REVIEWS . ” r, ” . TABLE_REVIEWS_DESCRIPTIO