• ecshop 全局变量的设置和加载方式


     $_CFG数组主要是放置一些系统参数,并且全站共享的数据,在使用的时候,ecshop里面常常以$GLOBALS['_CFG']全局变量的模式来处理。

     ecshop 的$GLOBALS['_CFG'],主要是在includes/init.php中出现并且初始化,$_CFG = load_config();load_config()函数负责将参数取出来。includes\lib_common.php 文件中包含了这个ecshop函数

    function load_config()
    {
        $arr = array();
    
        $data = read_static_cache('shop_config');
        if ($data === false)
        {
            $sql = 'SELECT code, value FROM ' . $GLOBALS['ecs']->table('shop_config') . ' WHERE parent_id > 0';
            $res = $GLOBALS['db']->getAll($sql);
    
            foreach ($res AS $row)
            {
                $arr[$row['code']] = $row['value'];
            }
    
            /* 对数值型设置处理 */
            $arr['watermark_alpha']      = intval($arr['watermark_alpha']);
            $arr['market_price_rate']    = floatval($arr['market_price_rate']);
            $arr['integral_scale']       = floatval($arr['integral_scale']);
            //$arr['integral_percent']     = floatval($arr['integral_percent']);
            $arr['cache_time']           = intval($arr['cache_time']);
            $arr['thumb_width']          = intval($arr['thumb_width']);
            $arr['thumb_height']         = intval($arr['thumb_height']);
            $arr['image_width']          = intval($arr['image_width']);
            $arr['image_height']         = intval($arr['image_height']);
            $arr['best_number']          = !empty($arr['best_number']) && intval($arr['best_number']) > 0 ? intval($arr['best_number'])     : 3;
            $arr['new_number']           = !empty($arr['new_number']) && intval($arr['new_number']) > 0 ? intval($arr['new_number'])      : 3;
            $arr['hot_number']           = !empty($arr['hot_number']) && intval($arr['hot_number']) > 0 ? intval($arr['hot_number'])      : 3;
            $arr['promote_number']       = !empty($arr['promote_number']) && intval($arr['promote_number']) > 0 ? intval($arr['promote_number'])  : 3;
            $arr['top_number']           = intval($arr['top_number'])      > 0 ? intval($arr['top_number'])      : 10;
            $arr['history_number']       = intval($arr['history_number'])  > 0 ? intval($arr['history_number'])  : 5;
            $arr['comments_number']      = intval($arr['comments_number']) > 0 ? intval($arr['comments_number']) : 5;
            $arr['article_number']       = intval($arr['article_number'])  > 0 ? intval($arr['article_number'])  : 5;
            $arr['page_size']            = intval($arr['page_size'])       > 0 ? intval($arr['page_size'])       : 10;
            $arr['bought_goods']         = intval($arr['bought_goods']);
            $arr['goods_name_length']    = intval($arr['goods_name_length']);
            $arr['top10_time']           = intval($arr['top10_time']);
            $arr['goods_gallery_number'] = intval($arr['goods_gallery_number']) ? intval($arr['goods_gallery_number']) : 5;
            $arr['no_picture']           = !empty($arr['no_picture']) ? str_replace('../', './', $arr['no_picture']) : 'images/no_picture.gif'; // 修改默认商品图片的路径
            $arr['qq']                   = !empty($arr['qq']) ? $arr['qq'] : '';
            $arr['ww']                   = !empty($arr['ww']) ? $arr['ww'] : '';
            $arr['default_storage']      = isset($arr['default_storage']) ? intval($arr['default_storage']) : 1;
            $arr['min_goods_amount']     = isset($arr['min_goods_amount']) ? floatval($arr['min_goods_amount']) : 0;
            $arr['one_step_buy']         = empty($arr['one_step_buy']) ? 0 : 1;
            $arr['invoice_type']         = empty($arr['invoice_type']) ? array('type' => array(), 'rate' => array()) : unserialize($arr['invoice_type']);
            $arr['show_order_type']      = isset($arr['show_order_type']) ? $arr['show_order_type'] : 0;    // 显示方式默认为列表方式
            $arr['help_open']            = isset($arr['help_open']) ? $arr['help_open'] : 1;    // 显示方式默认为列表方式
    
            if (!isset($GLOBALS['_CFG']['ecs_version']))
            {
                /* 如果没有版本号则默认为2.0.5 */
                $GLOBALS['_CFG']['ecs_version'] = 'v2.0.5';
            }
    
            //限定语言项
            $lang_array = array('zh_cn', 'zh_tw', 'en_us');
            if (empty($arr['lang']) || !in_array($arr['lang'], $lang_array))
            {
                $arr['lang'] = 'zh_cn'; // 默认语言为简体中文
            }
    
            if (empty($arr['integrate_code']))
            {
                $arr['integrate_code'] = 'ecshop'; // 默认的会员整合插件为 ecshop
            }
            write_static_cache('shop_config', $arr);
        }
        else
        {
            $arr = $data;
        }
    
        return $arr;
    }
    
  • 相关阅读:
    设计模式天天练。
    系统资料库msdb置疑或者不可用的解决方法
    依赖注入IOC
    重载、重写、隐藏的区别
    ASP.NET中的HttpWorkerRequest对像及其应用
    ASP.NET的错误处理机制
    Web.Config
    asp.net 2.0页面生命周期
    FileUpLoad控件上传大容量文件
    大文件上传
  • 原文地址:https://www.cnblogs.com/kafeijiu/p/2817768.html
Copyright © 2020-2023  润新知