Exemplo n.º 1
0
 /**
  * @brief display item detail info
  */
 function dispNproductItemDetail()
 {
     if ($_COOKIE['mobile'] == "true") {
         Context::set('is_mobile', 'true');
     }
     $oDocumentModel =& getModel('document');
     $oFileModel =& getModel('file');
     $oNproductModel =& getModel('nproduct');
     $oStoreReviewModel =& getModel('store_review');
     $item_srl = Context::get('item_srl');
     $document_srl = Context::get('document_srl');
     Context::set('list_config', $oNproductModel->getDetailListConfig($this->module_info->module_srl));
     // get config
     $config = $oNproductModel->getModuleConfig();
     Context::set('config', $config);
     // item info
     if ($item_srl) {
         $args->item_srl = $item_srl;
     } else {
         if ($document_srl) {
             $args->document_srl = $document_srl;
         } else {
             return new Object(-1, 'Item Not Found.');
         }
     }
     $output = executeQuery('nproduct.getItemInfo', $args);
     if (!$output->toBool()) {
         return $output;
     }
     $item_info = $output->data;
     // thumbnail
     if ($item_info->thumb_file_srl) {
         $file = $oFileModel->getFile($item_info->thumb_file_srl);
         if ($file) {
             $item_info->thumbnail_url = getFullUrl() . $file->download_url;
         }
     }
     $item_info = new nproductItem($item_info, $config->currency, $config->as_sign, $config->decimals);
     // category
     $this->getCategoryTree($this->module_info->module_srl);
     // document
     $oDocument = $oDocumentModel->getDocument($item_info->document_srl);
     Context::set('oDocument', $oDocument);
     if ($item_info->item_srl) {
         $review_list = $oNproductModel->getReviews($item_info);
         Context::set('review_list', $review_list);
     }
     $output = $oNproductModel->discountItem($item_info);
     $item_info->discounted_price = $output->discounted_price;
     $item_info->discount_amount = $output->discount_amount;
     $item_info->discount_info = $output->discount_info;
     Context::set('discounted_price', $output->discounted_price);
     Context::set('discount_amount', $output->discount_amount);
     Context::set('discount_info', $output->discount_info);
     // get options
     $args->item_srl = $item_info->item_srl;
     $output = executeQueryArray('nproduct.getOptions', $args);
     Context::set('options', $output->data);
     // set browser title
     Context::setBrowserTitle(strip_tags($item_info->item_name) . ' - ' . Context::getBrowserTitle());
     // get related items information
     if ($item_info->related_items) {
         if (!$this->isJson($item_info->related_items)) {
             $item_info->related_items = $this->convertCsvToJson($item_info->related_items);
         }
         $relatedItems = json_decode($item_info->related_items);
         $relatedItemSrls = array();
         foreach ($relatedItems as $key => $val) {
             $relatedItemSrls[] = $val->item_srl;
         }
         if (count($relatedItemSrls)) {
             $item_info->related_items = $oNproductModel->getItemList(implode(',', $relatedItemSrls), 999);
         }
     }
     $trigger_output = ModuleHandler::triggerCall('nproduct.dispNproductItemDetail', 'before', $item_info);
     if (!$trigger_output->toBool()) {
         return $trigger_output;
     }
     // pass variables to html template
     Context::set('category', $item_info->category_id);
     Context::set('item_srl', $item_info->item_srl);
     Context::set('item_info', $item_info);
     $extra_vars = NExtraItemList::getList($item_info);
     Context::set('extra_vars', $extra_vars);
     $this->setTemplateFile('itemdetail');
 }
Exemplo n.º 2
0
 /**
  * @breif supports item modification form.
  */
 function dispNproductAdminUpdateItem()
 {
     // get the references of modules.
     $oFileModel = getModel('file');
     $oEditorModel = getModel('editor');
     $oDocumentModel = getModel('document');
     $oNproductModel = getModel('nproduct');
     // get form parameters
     $item_srl = Context::get('item_srl');
     // query item record
     $item_info = $oNproductModel->getItemInfo($item_srl);
     if (!$item_info) {
         return new Object(-1, 'msg_item_not_found');
     }
     // category infos.
     $node_route_arr = preg_split('/\\./', $item_info->node_route);
     $avoid_last = array_pop($node_route_arr);
     $node_route_arr[] = $item_info->category_id;
     $category_data = new stdClass();
     $category_data->list = array();
     $count = 0;
     $node_route = '';
     foreach ($node_route_arr as $node_id) {
         if (!$node_id) {
             continue;
         }
         if (Context::get('module_srl')) {
             $node_route = $node_route . $node_id . '.';
             $args = new stdClass();
             $args->node_route = $node_route;
             $args->module_srl = Context::get('module_srl');
             $output = executeQueryArray('nproduct.getCategoryList', $args);
             if (!$output->toBool()) {
                 return $output;
             }
             unset($args);
             $category_data->list[] = $output->data;
         }
         $category_data->{'depth' . $count} = $node_id;
         $count += 1;
     }
     Context::set('category_data', $category_data);
     $item_info->group_srl_list = unserialize($item_info->group_srl_list);
     if (!is_array($item_info->group_srl_list)) {
         $item_info->group_srl_list = array();
     }
     // 콘텐츠 파일 (앞으로 사용하지 않을 필드)
     if ($item_info->file_srl) {
         $file = $oFileModel->getFile($item_info->file_srl);
         if ($file) {
             $item_info->download_file = $file;
         }
     }
     // get thumbnail URL
     if ($item_info->thumb_file_srl) {
         $file = $oFileModel->getFile($item_info->thumb_file_srl);
         if ($file) {
             $item_info->thumbnail_url = getFullUrl() . $file->download_url;
         }
     }
     // check if related_items data is json formatted or not
     // 기존 related_items에 값이 CSV(comma seperated values) 형식으로 되어 있어서 csv를 json으로 변환해 준다.
     if (!$this->isJson($item_info->related_items)) {
         $item_info->related_items = $this->convertCsvToJson($item_info->related_items);
     }
     // pass variables to html
     Context::set('oDocument', $oDocumentModel->getDocument($item_info->document_srl));
     Context::set('editor', $oEditorModel->getModuleEditor('document', $this->module_info->module_srl, $item_info->document_srl, 'document_srl', 'description'));
     Context::set('item_info', $item_info);
     Context::set('extra_vars', NExtraItemList::getList($item_info));
     // get groups
     $oMemberModel = getModel('member');
     $group_list = $oMemberModel->getGroups();
     Context::set('group_list', $group_list);
     // group discount
     $args = new stdClass();
     $args->item_srl = $item_srl;
     $output = executeQueryArray('nproduct.getGroupDiscount', $args);
     if (!$output->toBool()) {
         return $output;
     }
     $output_data = $output->data;
     $group_discount = array();
     if ($output_data) {
         foreach ($output_data as $key => $val) {
             $group_discount[$val->group_srl] = $val;
         }
     }
     Context::set('group_discount', $group_discount);
     // get options
     $args->item_srl = $item_srl;
     $output = executeQueryArray('nproduct.getOptions', $args);
     if (!$output->toBool()) {
         return $output;
     }
     Context::set('options', $output->data);
     // dynamic ruleset 재생성
     $oNproductAdminController = getAdminController('nproduct');
     $oNproductModel = getModel('nproduct');
     $extra_vars = $oNproductModel->getItemExtraFormList($this->module_info->module_srl);
     $oNproductAdminController->_createInsertItemRuleset($extra_vars);
     // get module instance list
     $args->list_count = 1000;
     $output = executeQueryArray('nproduct.getModInstList', $args);
     $list = $output->data;
     Context::set('modinst', $list);
     // get proc_modules
     $module_list = array();
     $output = ModuleHandler::triggerCall('nproduct.getProcModules', 'before', $module_list);
     if (!$output->toBool()) {
         return $output;
     }
     Context::set('module_list', $module_list);
 }