/** * @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'); }
/** * @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); }