/** * setTag * 设置标签 * * @access public * @return void */ function setTag() { $tag = space_split(stripslashes($_POST['_SET_TAGS_'])); unset($_POST['_SET_TAGS_']); if ($this->model->setTag($_POST, $tag)) { echo '标签已设置'; } }
function uploader() { $storager =& $this->system->loadModel('system/storager'); set_error_handler(array(&$this, '_eH')); //如果上传图片时遇到trigger_error或者意外错误,执行_eH header('Content-Type: text/html; charset=utf-8'); if ($s = $storager->save_upload($_FILES['file'], '', '', $msg)) { restore_error_handler(); $pubFile =& $this->system->loadModel('system/pubfile'); $pubFile->insert(array('file_name' => $_FILES['file']['name'], 'file_ident' => $s, 'cdate' => time(), 'memo' => $_POST['memo'], 'tags' => space_split(stripslashes($_POST['tags'])), 'file_type' => $_POST['file_type'])); $info = array('url' => $storager->getUrl($s), 'ident' => $s); echo '<script>window.top.uploadCallback(' . json_encode($info) . ')</script>'; } else { restore_error_handler(); echo '<script>window.top.uploadCallback("' . ($msg ? $msg : '上传失败') . '")</script>'; } }
function toAdd() { $data = $_POST['goods']; $data['spec_desc'] = urldecode($data['spec_desc']); switch ($_GET['but']) { case 3: if ($data['goods_id']) { $but_type = 'edit'; $url_href = 'index.php?ctl=goods/product&act=edit&p[0]=' . $data['goods_id']; } else { $but_type = 'new'; $url_href = 'index.php?ctl=goods/product&act=index'; } break; case 1: //$url_href = 'index.php?ctl=goods/product&act=addNew&p[0]='.$data['cat_id'].'&p[1]='.$data['type_id'].'&p[2]='.$data['brand_id']; $url_href = 'index.php?ctl=goods/product&act=addNew&p[0]=&p[1]='; break; default: $url_href = 'index.php?ctl=goods/product&act=index'; break; } $this->begin($url_href); $image_file = $data['image_file']; unset($data['image_file']); $udfimg = $data['udfimg']; unset($data['udfimg']); $data['adjunct'] = $_POST['adjunct']; if (count($_POST['price']) > 0) { //开启规格 多货品 foreach ($_POST['vars'] as $vark => $varv) { $data['spec'][$vark] = $varv; } $data['spec'] = serialize($data['spec']); $sameProFlag = array(); foreach ($_POST['price'] as $k => $price) { //设置销售多货品销售价等价格 $data['price'] = $data['price'] ? min($price, $data['price']) : $price; //取最小商品价格 $data['cost'] = $data['cost'] ? min($_POST['cost'][$k], $data['cost']) : $_POST['cost'][$k]; $data['weight'] = $data['weight'] ? min($_POST['weight'][$k], $data['weight']) : $_POST['weight'][$k]; $products[$k]['price'] = $price; $products[$k]['bn'] = $_POST['bn'][$k]; $products[$k]['store'] = trim($_POST['store'][$k]) === '' ? '' : intval($_POST['store'][$k]); $products[$k]['alert'] = $_POST['alert'][$k]; $products[$k]['cost'] = $_POST['cost'][$k]; $products[$k]['weight'] = $_POST['weight'][$k]; $newSpecI = 0; $proSpecFlag = ''; foreach ($_POST['vars'] as $i => $v) { $products[$k]['props']['spec'][$i] = urldecode(trim($_POST['val'][$i][$k])); //array('规格(颜色)序号'=>'规格值(红色)') $products[$k]['props']['spec_private_value_id'][$i] = trim($_POST['pSpecId'][$i][$k]); $products[$k]['props']['spec_value_id'][$i] = trim($_POST['specVId'][$i][$k]); if (trim($products[$k]['props']['spec'][$i]) === '') { trigger_error('请为所有货品定义规格值', E_USER_ERROR); $this->end(false, __('请为所有货品定义规格值')); exit; } $proSpecFlag .= $products[$k]['props']['spec_private_value_id'][$i] . '_'; } if (in_array($proSpecFlag, $sameProFlag)) { trigger_error('不能添加相同规格货品', E_USER_ERROR); $this->end(false, __('不能添加相同规格货品')); exit; } $sameProFlag[$k] = $proSpecFlag; reset($proSpecFlag); reset($_POST['vars'], $_POST['pSpecId']); $products[$k]['pdt_desc'] = implode('、', $products[$k]['props']['spec']); //物品描述 foreach ($_POST['idata'] as $i => $v) { $products[$k]['props']['idata'][$i] = $v[$k]; } //设置会员价格 if (is_array($_POST['mprice'])) { foreach ($_POST['mprice'] as $levelid => $rows) { $products[$k]['mprice'][$levelid] = floatval($rows[$k]); } } } unset($sameProFlag); $data['products'] =& $products; } else { $data['props']['idata'] = $_POST['idata']; } $objGoods = $this->system->loadModel('trading/goods'); foreach ($products as $k => $p) { if (empty($p['bn'])) { continue; } if ($objGoods->checkProductBn($p['bn'], $data['goods_id'])) { trigger_error('货号重复,请检查!', E_USER_ERROR); $this->end(false, __('货号重复,请检查!')); exit; } $aBn[] = $p['bn']; } if (!empty($data['product_bn'])) { if ($objGoods->checkProductBn($data['product_bn'], $data['goods_id'])) { trigger_error('货号重复,请检查!', E_USER_ERROR); $this->end(false, __('货号重复,请检查!')); exit; } } if (count($aBn) > count(array_unique($aBn))) { trigger_error('货号重复,请检查!', E_USER_ERROR); $this->end(false, __('货号重复,请检查!')); exit; } if (!$data['type_id']) { $objCat = $this->system->loadModel('goods/productCat'); $aCat = $objCat->getFieldById($data['cat_id'], array('type_id')); $data['type_id'] = $aCat['type_id']; } if (!($gid = $objGoods->save($data))) { $this->end(false, __('保存失败,请重试!')); exit; } $keywords = array(); foreach ($objGoods->getKeywords($gid) as $keywordvalue) { $keywords[] = $keywordvalue['keyword']; } $keyword = implode('|', $keywords); if ($keyword != $_POST['keywords']['keyword']) { $objGoods->deleteKeywords($gid); if ($_POST['keywords']['keyword']) { $objGoods->addKeywords($gid, explode('|', $_POST['keywords']['keyword'])); } } //处理商品图片 $gimage =& $this->system->loadModel('goods/gimage'); $gimage->saveImage($data['goods_id'], $data['db_thumbnail_pic'], $_POST['image_default'], $image_file, $udfimg, $_FILES); //相关商品 foreach ($_POST['linkid'] as $k => $id) { $aLink[] = array('goods_1' => $data['goods_id'], 'goods_2' => $id, 'manual' => $_POST['linktype'][$id], 'rate' => 100); } $objProduct = $this->system->loadModel('goods/products'); $objProduct->toInsertLink($data['goods_id'], $aLink); //处理TAG $objTag = $this->system->loadModel('system/tag'); $objTag->removeObjTag($data['goods_id']); foreach (space_split(stripslashes($_POST['tags'])) as $tagName) { $tagName = trim($tagName); if ($tagName) { if (!($tagid = $objTag->getTagByName('goods', $tagName))) { $tagid = $objTag->newTag($tagName, 'goods'); } $objTag->addTag($tagid, $data['goods_id']); } } //### if ($but_type == 'new') { $this->end(true, __('保存成功<input type=hidden value=' . $gid . '>'), 'index.php?ctl=goods/product&act=edit&p[0]=' . $gid); } else { if ($_GET['but'] == 1) { $this->end(true, __('保存成功<input type=hidden value=' . $gid . '>'), $url_href . $gid); } else { $this->end(true, __('保存成功<input type=hidden value=' . $gid . '>')); } } }
function update() { unSafeVar($_POST); $goods = $_POST['goods']; $goods['name'] = trim($_POST['goods']['name']); $goods['image_default'] = $_POST['image_default']; $this->goods_id = $goods['goods_id']; $gd =& $this->system->loadModel('utility/magickwand'); if ($gd->magickwand_loaded) { $loaded = true; } else { $gd =& $this->system->loadModel('utility/gdimage'); $loaded = $gd->gd_loaded; } $this->pagedata['gd_loaded'] = $loaded; $this->pagedata['pic_bar'] = $_POST['pic_bar']; /* if($_POST['vars']){ $goods['products'] = array(1); $spec['bn'] = $_POST['bn']; $spec['price'] = $_POST['price']; $spec['store'] = $_POST['store']; $spec['mprice'] = $_POST['mprice']; $spec['vars'] = $_POST['vars']; $spec['val'] = $_POST['val']; $spec['idata'] = $_POST['idata']; $spec['idataInfo'] = $_POST['idataInfo']; $this->pagedata['spec'] = &$spec; //商品规格 } */ if ($_POST['bn'] && is_array($_POST['bn'])) { foreach ($_POST['bn'] as $gk => $gbn) { $goods['products'][$gk] = array('bn' => $gbn, 'cost' => $_POST['cost'][$gk], 'weight' => $_POST['weight'][$gk], 'store' => $_POST['store'][$gk], 'price' => $_POST['price'][$gk]); foreach ($_POST['mprice'] as $memlvid => $mprice) { $goods['products'][$gk]['mprice'][$memlvid] = $mprice[$gk]; } $goodsProps = array(); foreach ($_POST['val'] as $valSpecId => $valSpec) { $goodsProps['spec'][$valSpecId] = urldecode($valSpec[$gk]); $goodsProps['spec_private_value_id'][$valSpecId] = $_POST['pSpecId'][$valSpecId][$gk]; $goodsProps['spec_value_id'][$valSpecId] = $_POST['specVId'][$valSpecId][$gk]; } $goods['products'][$gk]['props'] = $goodsProps; } } foreach ($_POST['adjunct']['name'] as $key => $name) { $aItem['name'] = $name; $aItem['type'] = $_POST['adjunct']['type'][$key]; $aItem['min_num'] = $_POST['adjunct']['min_num'][$key]; $aItem['max_num'] = $_POST['adjunct']['max_num'][$key]; $aItem['set_price'] = $_POST['adjunct']['set_price'][$key]; $aItem['price'] = $_POST['adjunct']['price'][$key]; if ($aItem['type'] == 'goods') { $aItem['items']['product_id'] = $_POST['adjunct']['items'][$key]; } else { $aItem['items'] = $_POST['adjunct']['items'][$key]; } //.'&dis_goods[]='.$aData['goods_id'] $goods['adjunct'][] = $aItem; } if ($goods['spec_desc']) { $goods['spec_desc'] = unserialize(urldecode($goods['spec_desc'])); } //做类型转换 $oGType = $this->system->loadModel('goods/gtype'); if (!$oGType->typeTransform($_POST['oldTypeId'], $_POST['goods']['type_id'], $goods, $_POST)) { echo 'false'; exit; } if (!empty($_POST['vars'])) { if ($oGType->specTransformState == 'different' || $oGType->specTransformState == 'same') { foreach ($_POST['vars'] as $dk => $dv) { $_POST['specname'][$dk]['spec_name'] = $dv; } } else { foreach ($_POST['vars'] as $dk => $dv) { $_POST['specname'][$oGType->specTransformHash[$dk]['spec_id']]['spec_name'] = $dv; } } } $this->pagedata['goods'] =& $goods; foreach ($_POST['linkid'] as $k => $id) { $aLinkType[$id] = array('manual' => $_POST['linktype'][$k]); } $this->pagedata['goods']['glink']['items'] = $_POST['linkid']; $this->pagedata['goods']['glink']['moreinfo'] = $aLinkType; $this->pagedata['goods']['keywords'] = $_POST['keywords']['keyword']; foreach ($goods as $gk => $gv) { if (substr($gk, 0, 2) == 'p_') { $this->pagedata['goods'][$gk] = $gv; } } if ($goods['spec_desc']) { $objSpec = $this->system->loadModel('goods/specification'); $specDescKeys = array_keys($goods['spec_desc']); if (!empty($specDescKeys) && $specDesckeys[0]) { $aSpec = $objSpec->getListByIdArray($specDescKeys); } $this->pagedata['specname'] = $aSpec; $aSpecImg = array(); $gimage = $this->system->loadModel('goods/gimage'); foreach ($aSpec as $asv) { if ($asv['spec_type'] == 'image') { foreach ($objSpec->getValueList($asv['spec_id']) as $svk => $svv) { $aSpecImg[$svk] = $gimage->getUrl($svv['spec_image']); } } } $this->pagedata['goods']['spec_value_image'] = $aSpecImg; $tmpGoods = array(); $specDefaultPic = $this->system->getConf('spec.default.pic'); if (is_array($goods['spec_desc'])) { foreach ($goods['spec_desc'] as $key => $val) { $tmpRow = $objSpec->getFieldById($key, array('spec_name', 'spec_type', 'spec_show_type')); $tmpGoods['spec_desc'][$key]['name'] = $tmpRow['spec_name']; foreach ($val as $k => $v) { if (empty($val[$k]['spec_image']) || is_null($val[$k]['spec_image'])) { $tValue = $objSpec->getValueById($val[$k]['spec_value_id'], array('spec_image')); $val[$k]['spec_image'] = $tValue['spec_image']; } if (empty($val[$k]['spec_image']) || is_null($val[$k]['spec_image'])) { $val[$k]['spec_image'] = $specDefaultPic; } $goods['spec_desc'][$key][$k]['spec_type'] = $tmpRow['spec_type']; $val[$k]['spec_type'] = $tmpRow['spec_type']; $val[$k]['spec_goods_images'] = $key . "@" . $v['spec_goods_images'] . "|" . $k; $spec_type = $tmpRow['spec_type']; } $tmpGoods['spec_desc'][$key]['value'] = $val; } $this->pagedata['goods']['specVdesc'] = $tmpGoods['spec_desc']; } } $this->pagedata['specname'] = $_POST['specname']; $this->pagedata['goods']['spec_desc_str'] = urlencode(serialize($goods['spec_desc'])); $this->_editor($_POST['goods']['type_id']); $this->pagedata['goods']['taged'] = space_split($_POST['tags']); $this->pagedata['goodsbn_display_switch'] = $this->system->getConf('goodsbn.display.switch'); if ($_POST['supplier_id']) { $this->pagedata['command_id'] = $_POST['command_id']; $this->pagedata['object_id'] = $_POST['object_id']; $this->pagedata['supplier_id'] = $_POST['supplier_id']; } if ($_POST['commandType']) { $this->pagedata['commandtype'] = $_POST['commandType']; } $this->display('product/detail/page.html'); }
/** * setTag * 设置标签 * * @access public * @return void */ function setTag() { $tag = space_split($_POST['_SET_TAGS_']); unset($_POST['_SET_TAGS_']); if ($this->model->setTag($_POST, $tag)) { echo __('标签已设置'); } }