$p_data["img_small"] = $images_data["small"]; $p_data["img_medium"] = $images_data["medium"]; $p_data["img_large"] = $images_data["large"]; $brand = G::$pageData->getBrand($product->brand_id); if ($brand) { $p_data["brand_name"] = $brand->name; $p_data["brand_data"] = "{$brand->name} ({$brand->country})"; $p_data["brand_img_url"] = $brand->getLogoUrl("small"); } } // unset($p_data["current_categories"]); unset($p_data["catalogue"]); unset($p_data["products"]); unset($p_data["current_product"]); $parents = CatalogueUtils::findParentsOf($p_data["id"]); $p_data["parent_id"] = $parents[0]["id"]; } $data = $p_data; $data["result"] = $result; $data["errors"] = G::$pageData->getErrors(); //$pages = PageUtils::getItemsList("catalogue"); //$data["itemList"] = $pages; } else { $data["result"] = false; $data["errors"] = array("access denied"); } break; } break; case PAGE_DELETE:
/** CREATE or UPDATE catalogue node * @param $data - product\category data * @return bool */ public function updateCatalogue($data) { // rename item_type (client vars conflict) $data["type"] = $data["item_type"]; unset($data["item_type"]); // // parent_id $validation = PageUtils::validatePageParam($data["parent_id"], "parent_id"); if (!$validation["result"]) { G::fatalError("PARENT_ID is not valid"); } unset($data["parent_id"]); $parent_id = $validation["value"]; // // images //G::logMessage("IMAGES: " . "small=" . $data["img_small"] . "&medium=" . $data["img_medium"] . "&large=" . $data["img_large"]); $data["image"] = "small=" . $data["img_small"] . "&medium=" . $data["img_medium"] . "&large=" . $data["img_large"]; unset($data["img_small"], $data["img_medium"], $data["img_large"]); // $data = $this->validatePageData($data, P_TYPE_CATALOGUE); //check if label already exists if (!$this->checkNewLabel($data["id"], $data["label"])) { $this->errors[] = "Label already exists in another product"; } $result = false; if (count($this->errors) == 0) { if (isset($data["id"])) { // UPDATE PAGE $result = CatalogueUtils::updateCatalogueNode($data["id"], $data); $parents = CatalogueUtils::findParentsOf($data["id"]); $parentAlreadyHasIt = false; foreach ($parents as $parent) { if ($parent["id"] != $parent_id) { CatalogueUtils::deleteChildFromParent($data["id"], $parent["id"]); } else { $parentAlreadyHasIt = true; } } if (!$parentAlreadyHasIt && $parent_id) { CatalogueUtils::addChildToParent($data["id"], $parent_id); } } else { // CREATE NEW NODE $result = CatalogueUtils::createCatalogueNode($data, $parent_id); } // check db errors if (intval(G::$db->errorCode()) != 0) { $error_info = G::$db->errorInfo(); $text_error = " DB >> " . $error_info[1] . " > " . $error_info[2]; $this->errors[] = RenderUtils::renderError($text_error); } if (count($this->errors) == 0 && $result) { //reinit $this->init("catalogue/" . $data["label"]); $this->load(); } } return $result; }