示例#1
0
 function _get_share($goods)
 {
     $m_share =& af('share');
     $shares = $m_share->getAll();
     $shares = array_msort($shares, array('sort_order' => SORT_ASC));
     $goods_name = ecm_iconv(CHARSET, 'utf-8', $goods['goods_name']);
     $goods_url = urlencode(SITE_URL . '/' . str_replace('&', '&', url('app=goods&id=' . $goods['goods_id'])));
     $site_title = ecm_iconv(CHARSET, 'utf-8', Conf::get('site_title'));
     $share_title = urlencode($goods_name . '-' . $site_title);
     foreach ($shares as $share_id => $share) {
         $shares[$share_id]['link'] = str_replace(array('{$link}', '{$title}'), array($goods_url, $share_title), $share['link']);
     }
     return $shares;
 }
示例#2
0
 function export()
 {
     $coupon_id = isset($_GET['id']) ? trim($_GET['id']) : '';
     if (empty($coupon_id)) {
         echo Lang::get('no_coupon');
         exit;
     }
     if (!IS_POST) {
         header("Content-Type:text/html;charset=" . CHARSET);
         $this->assign('id', $coupon_id);
         $this->display('coupon_export.html');
     } else {
         $amount = intval(trim($_POST['amount']));
         if (empty($amount)) {
             $this->pop_warning('involid_data');
             exit;
         }
         $info = $this->_coupon_mod->get_info($coupon_id);
         $coupon_name = ecm_iconv(CHARSET, 'gbk', $info['coupon_name']);
         header('Content-type: application/txt');
         header('Content-Disposition: attachment; filename="coupon_' . date('Ymd') . '_' . $coupon_name . '.txt"');
         $sn_array = $this->generate($amount, $coupon_id);
         $crlf = get_crlf();
         foreach ($sn_array as $val) {
             echo $val['coupon_sn'] . $crlf;
         }
     }
 }
示例#3
0
 function doc_output()
 {
     header("Content-type:text/html;charset=" . $this->charset, true);
     $tmp_str = ecm_iconv(CHARSET, $this->charset, $this->_doc_contents);
     $output = $this->charset == 'utf-8' ? stripslashes($tmp_str) : $tmp_str;
     echo $output;
 }
示例#4
0
 function export()
 {
     $coupon_id = isset($_GET['id']) ? trim($_GET['id']) : '';
     if (empty($coupon_id)) {
         echo Lang::get('no_coupon');
         exit;
     }
     if (!IS_POST) {
         $this->import_resource(array('script' => array(array('path' => 'jquery.plugins/jquery.validate.js', 'attr' => ''))));
         header("Content-Type:text/html;charset=" . CHARSET);
         $this->assign('id', $coupon_id);
         $this->display('coupon_export.html');
     } else {
         $amount = intval(trim($_POST['amount']));
         if (empty($amount)) {
             $this->show_warning('involid_data');
             exit;
         }
         $info = $this->_coupon_mod->get_info($coupon_id);
         $coupon_name = ecm_iconv(CHARSET, 'gbk', $info['coupon_name']);
         //header('Content-type: application/txt');
         //header('Content-Disposition: attachment; filename="coupon_' .date('Ymd'). '_' .$coupon_name.'.txt"');
         $sn_array = $this->generate($amount, $coupon_id);
         /*
                     $crlf = get_crlf();
                     foreach ($sn_array as $val)
                     {
                         echo $val['coupon_sn'] . $crlf;
                     }
         */
         $this->show_message('成功生成优惠券号码', 'back_list', 'index.php?app=coupon');
     }
 }
 function import_taobao()
 {
     /* 检测支付方式、配送方式、商品数量等 */
     if (!$this->_addible()) {
         return;
     }
     if (!IS_POST) {
         $this->assign('page_title', Lang::get('member_center') . ' - ' . Lang::get('import_taobao'));
         $this->_curlocal(LANG::get('member_center'), 'index.php?app=member', LANG::get('my_goods'), 'index.php?app=my_goods', LANG::get('import_taobao'));
         $this->_curitem('my_goods');
         $this->_curmenu('import_taobao');
         $this->assign('build_upload', $this->_build_upload(array('itme_id' => 0, 'belong' => BELONG_GOODS, 'image_file_type' => 'gif|jpg|jpeg|png|tbi', 'upload_url' => 'index.php?app=swfupload&act=taobao_image')));
         // 构建swfupload上传组件
         $this->import_resource(array('script' => array(array('path' => 'mlselection.js', 'attr' => 'charset="utf-8"'), array('path' => 'my_goods.js', 'attr' => 'charset="utf-8"'))));
         /* 取得商品分类 */
         $this->assign('mgcategories', $this->_get_mgcategory_options(0));
         // 商城分类第一级
         $this->assign('sgcategories', $this->_get_sgcategory_options());
         // 店铺分类
         $this->assign('step', isset($_GET['step']) && $_GET['step'] == 2 ? 2 : 1);
         $this->display('import.taobao.html');
     } else {
         $file = $_FILES['csv'];
         if ($file['error'] != UPLOAD_ERR_OK) {
             $this->show_warning('select_file');
             return;
         }
         import('uploader.lib');
         // 导入上传类
         $uploader = new Uploader();
         $uploader->allowed_type('csv');
         // 限制文件类型
         $uploader->allowed_size(SIZE_CSV_TAOBAO);
         // 限制单个文件大小2M
         $uploader->addFile($file);
         if (!$uploader->file_info()) {
             $this->show_warning($uploader->get_error());
             return;
         }
         /* 取得还能上传的商品数,false表示不限制 */
         $store_mod =& m('store');
         $settings = $store_mod->get_settings($this->_store_id);
         $remain = $settings['goods_limit'] > 0 ? $settings['goods_limit'] - $this->_goods_mod->get_count() : false;
         /* 初始化统计 */
         $num_image = 0;
         // 需要导入的图片数量
         $num_record = 0;
         // 成功导入的记录条数
         $csv_string = $this->unicodeToUtf8(file_get_contents($file['tmp_name']));
         if (CHARSET == 'big5') {
             $csv_string = ecm_iconv('utf-8', 'gbk', $csv_string);
             //dump($chs);
             $csv_string = ecm_iconv('gbk', 'big5', $csv_string);
         } else {
             $csv_string = ecm_iconv('utf-8', CHARSET, $csv_string);
         }
         $csv_string = addslashes($csv_string);
         // 必须在转码后进行引号转义
         $records = $this->_parse_taobao_csv($csv_string);
         foreach ($records as $record) {
             // 如果商品名称为空则跳过
             if (!trim($record[FIELD_GOODS_NAME]) || $find_goods) {
                 continue;
             }
             if ($remain !== false) {
                 if ($remain <= 0) {
                     if ($num_record == 0) {
                         $this->show_warning('goods_limit_arrived');
                         return;
                     } else {
                         if ($num_image > 0) {
                             $this->show_message(sprintf(Lang::get('import_part_ok_need_image'), $num_record, $num_image), 'upload_taobao_image', 'index.php?app=my_goods&act=import_taobao&step=2');
                         } else {
                             $this->show_message(sprintf(Lang::get('import_part_ok'), $num_record), 'back_list', 'index.php?app=my_goods');
                         }
                     }
                     exit;
                 } else {
                     if ($record[FIELD_GOODS_IMAGE]) {
                         $num_image++;
                     }
                     $remain--;
                 }
             } else {
                 if ($record[FIELD_GOODS_IMAGE]) {
                     $num_image++;
                 }
             }
             $goods = array('type' => 'material', 'brand' => '', 'cate_id' => $_POST['cate_id'], 'cate_name' => $_POST['cate_name'], 'spec_qty' => 0, 'goods_name' => $record[FIELD_GOODS_NAME], 'store_id' => $this->_store_id, 'description' => $record[FIELD_DESCRIPTION], 'if_show' => $record[FIELD_IF_SHOW], 'add_time' => $record[FIELD_ADD_TIME], 'last_update' => $record[FIELD_LAST_UPDATE], 'recommended' => $record[FIELD_RECOMMENDED], 'default_image' => $record[FIELD_GOODS_IMAGE], 'closed' => 0);
             $goods_id = $this->_goods_mod->add($goods);
             if ($this->_goods_mod->has_error()) {
                 $this->show_warning($this->_goods_mod->get_error());
                 return;
             }
             /* 商品分类 */
             if ($_POST['sgcate_id']) {
                 $this->_goods_mod->createRelation('belongs_to_gcategory', $goods_id, $_POST['sgcate_id']);
             }
             /* 规格 */
             $spec_qty = 0;
             if ($record[FIELD_SALE_ATTR]) {
                 $spec_info = $this->_parse_tabao_prop($record[FIELD_CID], $record[FIELD_SALE_ATTR], $goods_id);
                 //dump($spec_info);
                 //dump($spec_info);
                 if (isset($spec_info['msg'])) {
                     $this->show_warning($prop['msg']);
                     return;
                 }
                 if ($spec_info) {
                     $spec_data = $spec_info['item'];
                     $spec_qty = $spec_info['spec_kind'];
                     $spec_name = $spec_info['spec_name'];
                 }
                 if ($spec_qty > 2 || !$spec_info) {
                     // 有两个以上规格或淘宝接口没有获取到属性,视无规格处理
                     $spec_qty = 0;
                     $spec_data = array();
                     $spec_data[0] = array('goods_id' => $goods_id, 'price' => floatval($record[FIELD_PRICE]), 'stock' => intval($record[FIELD_STOCK]));
                     $spec_name = array();
                 }
             } else {
                 $spec_data[0] = array('goods_id' => $goods_id, 'price' => floatval($record[FIELD_PRICE]), 'stock' => intval($record[FIELD_STOCK]));
                 $spec_name = array();
             }
             $default_spec = 0;
             // 初始化默认规格
             foreach ($spec_data as $spec) {
                 $spec['goods_id'] = $goods_id;
                 $spec_id = $this->_spec_mod->add($spec);
                 if (!$spec_id) {
                     $this->_error($this->_spec_mod->get_error());
                     return false;
                 }
                 !$default_spec && ($default_spec = $spec_id);
                 // 取第一个规格为默认规格
             }
             if (!$this->_goods_mod->edit($goods_id, array_merge($spec_name, array('default_spec' => $default_spec, 'spec_qty' => $spec_qty)))) {
                 $this->_error($this->_goods_mod->get_error());
                 return false;
             }
             $num_record++;
         }
         if ($num_image > 0) {
             $this->show_message(sprintf(Lang::get('import_ok_need_image'), $num_record, $num_image), 'upload_taobao_image', 'index.php?app=my_goods&act=import_taobao&step=2');
         } else {
             $this->show_message(sprintf(Lang::get('import_ok'), $num_record), 'back_list', 'index.php?app=my_goods');
         }
     }
 }
示例#6
0
/**
 * 对数组转码
 *
 * @param   string  $func
 * @param   array   $params
 *
 * @return  mixed
 */
function ecm_iconv_deep($source_lang, $target_lang, $value)
{
    if (empty($value)) {
        return $value;
    } else {
        if (is_array($value)) {
            foreach ($value as $k => $v) {
                $value[$k] = ecm_iconv_deep($source_lang, $target_lang, $v);
            }
            return $value;
        } elseif (is_string($value)) {
            return ecm_iconv($source_lang, $target_lang, $value);
        } else {
            return $value;
        }
    }
}