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; }
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; } } }
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; }
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'); } } }
/** * 对数组转码 * * @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; } } }