private function SaveUpdatedCategory()
 {
     $catData = $this->_GetCatData(ISC_SOURCE_FORM);
     $existingData = $this->_GetCatData(0, $catData['oldCatId']);
     //Added by Simha to check for duplication
     $query = "select COUNT(categoryid) from [|PREFIX|]categories where catname = '" . $catData['catname'] . "' and catparentid='" . $catData['category'] . "' and categoryid != '" . (int) $catData['oldCatId'] . "'";
     $result = $GLOBALS["ISC_CLASS_DB"]->Query($query);
     $cnt = $GLOBALS["ISC_CLASS_DB"]->FetchOne($result);
     //Loop for checking the duplication starts right here
     if ($cnt != 0) {
         FlashMessage(sprintf(GetLang('NameAlreadyExists'), $catData['catname']), MSG_ERROR, 'index.php?ToDo=editCategory&catId=' . (int) $catData['oldCatId']);
     } else {
         if (!$this->BrandSeriesDuplicationExists($catData['catname'])) {
             $this->UpdateAssociations($catData['oldCatId']);
             /* Baskaran added. To combine the category and subcategory if the combine name is not entered*/
             $catid = $catData['category'];
             $name_query = "SELECT * FROM [|PREFIX|]categories where categoryid = {$catid}";
             $name_result = $GLOBALS['ISC_CLASS_DB']->Query($name_query);
             $catname = '';
             while ($name_row = $GLOBALS['ISC_CLASS_DB']->Fetch($name_result)) {
                 $catname = $name_row['catname'];
                 $FolderName = $catname;
             }
             $subcat = strtolower($catData['catname']);
             $cat = strtolower($catname);
             $catcombine = '';
             if ($catData['category'] != 0 and empty($catData['catcombine'])) {
                 $sc = explode(" ", $subcat);
                 //process 1
                 foreach ($sc as $value) {
                     $cat = str_ireplace($value, " ", $cat);
                 }
                 $c = str_word_count($cat, 1);
                 foreach ($c as $value) {
                     $subcat = str_ireplace($value . "s", " ", $subcat);
                     $subcat = str_ireplace($value . "es", " ", $subcat);
                 }
                 if (trim($cat) == "s" || trim($cat) == "S") {
                     $cat = "";
                 }
                 $catcombine = ucwords(trim($subcat . " " . $cat));
             } else {
                 $catcombine = $catData['catcombine'];
             }
             /* Baskaran code ends */
             // Log this action
             $GLOBALS['ISC_CLASS_LOG']->LogAdminAction($catData['oldCatId'], $catData['category']);
             /* To update the combine name in the Product table for select category */
             $oldname = '';
             $combinedname = '';
             $catsubid = $catData['oldCatId'];
             $cat_query = "SELECT * FROM [|PREFIX|]categories where categoryid = {$catsubid}";
             $cat_result = $GLOBALS['ISC_CLASS_DB']->Query($cat_query);
             while ($cat_row = $GLOBALS['ISC_CLASS_DB']->Fetch($cat_result)) {
                 $oldname = $cat_row['catcombine'];
             }
             # If the combined name is empty
             if ($catData['catcombine'] == '' || empty($catData['catcombine'])) {
                 $combinedname = $catcombine;
             } else {
                 # Checking whether the combined name is changed or not
                 if ($oldname == '' || $oldname == $catData['catcombine']) {
                     $combinedname = $oldname;
                 } else {
                     # When the combined name is changed with the old one means new combined name is updated in category and related category in products table
                     $combinedname = $catData['catcombine'];
                     $updateprodname = "UPDATE [|PREFIX|]products SET prodname = REPLACE(prodname, '{$oldname}','{$combinedname}') WHERE prodcatids = {$catsubid}";
                     $GLOBALS['ISC_CLASS_DB']->Query($updateprodname);
                 }
             }
             $thriblespace = str_replace("   ", " ", $combinedname);
             $doublespace = str_replace("  ", " ", $thriblespace);
             /* Code ends */
             /* To update all the deptid of sub category when the root category deptid changed -- Baskaran */
             $catdeptid = '';
             $deptid = $catData['catdeptid'];
             $catdeptquery = $GLOBALS['ISC_CLASS_DB']->Query("SELECT catdeptid FROM [|PREFIX|]categories where categoryid = {$catsubid} and catparentid = 0");
             $catdeptrow = $GLOBALS['ISC_CLASS_DB']->Fetch($catdeptquery);
             $dbdeptid = $catdeptrow['catdeptid'];
             if ($GLOBALS["ISC_CLASS_DB"]->CountResult($catdeptquery) == 1) {
                 if ($deptid != $dbdeptid) {
                     $updatedept = array("catdeptid" => $deptid);
                     $GLOBALS['ISC_CLASS_DB']->UpdateQuery("categories", $updatedept, "catparentid={$catsubid}");
                     $catdeptid = $deptid;
                 } else {
                     $catdeptid = $catData['catdeptid'];
                 }
             } else {
                 $catdeptid = $catData['catdeptid'];
             }
             /* Code Ends */
             $updatedCategory = array("catparentid" => $catData['category'], "catname" => $catData['catname'], "catdesc" => $catData['catdesc'], "catsort" => (int) $catData['catsort'], "catpagetitle" => $catData['catpagetitle'], "catmetakeywords" => $catData['catmetakeywords'], "catmetadesc" => $catData['catmetadesc'], "catlayoutfile" => $catData['catlayoutfile'], "catdeptid" => $catdeptid, "cataltkeyword" => $catData['cataltkeyword'], "catcombine" => $doublespace, "StartPrice" => $catData['StartPrice'], "EndPrice" => $catData['EndPrice'], "Productname" => $catData['Productname'], "categoryfooter" => $catData['categoryfooter'], "controlscript" => $catData['controlscript'], "trackingscript" => $catData['trackingscript'], "catimagealt" => $catData['catimagealt'], "featurepoints" => $catData['featurepoints'], "divdesc" => $catData['divdesc'], "displayproducts" => $catData['displayproducts'], "pagecontenttype" => $catData['catpagecontent'], "customcontentid" => $catData['customContentId']);
             if ($FolderName == '') {
                 $FolderName = $catData['catname'];
             }
             $GLOBALS['ISC_CLASS_DB']->UpdateQuery("categories", $updatedCategory, "categoryid='" . $GLOBALS['ISC_CLASS_DB']->Quote((int) $catData['oldCatId']) . "'");
         } else {
             FlashMessage(sprintf(GetLang('NameAlreadyExists'), $catData['catname']), MSG_ERROR, 'index.php?ToDo=editCategory&catId=' . (int) $catData['oldCatId']);
         }
     }
     //Loop for checking the duplication ends right here
     if ($GLOBALS['ISC_CLASS_DB']->GetErrorMsg() == '') {
         $FolderName = preg_replace("#[^\\w.]#i", "", $FolderName);
         $FolderName = strtolower($FolderName);
         if (array_key_exists('delcatimagefile', $_POST) && $_POST['delcatimagefile']) {
             $this->DelCategoryImage($catData['oldCatId']);
             $GLOBALS['ISC_CLASS_DB']->UpdateQuery('categories', array('catimagefile' => ''), "categoryid='" . (int) $catData['oldCatId'] . "'");
         } else {
             if (array_key_exists('catimagefile', $_FILES) && ($catimagefile = $this->SaveCategoryImage($FolderName))) {
                 $GLOBALS['ISC_CLASS_DB']->UpdateQuery('categories', array('catimagefile' => $catimagefile), "categoryid='" . (int) $catData['oldCatId'] . "'");
             }
         }
         if (array_key_exists('delcathoverimagefile', $_POST) && $_POST['delcathoverimagefile']) {
             $this->DelCategoryHoverImage($catData['oldCatId']);
             $GLOBALS['ISC_CLASS_DB']->UpdateQuery('categories', array('cathoverimagefile' => ''), "categoryid='" . (int) $catData['oldCatId'] . "'");
         } else {
             if (array_key_exists('cathoverimagefile', $_FILES) && ($cathoverimagefile = $this->SaveCategoryHoverImage($FolderName))) {
                 $GLOBALS['ISC_CLASS_DB']->UpdateQuery('categories', array('cathoverimagefile' => $cathoverimagefile), "categoryid='" . (int) $catData['oldCatId'] . "'");
             }
         }
         /*
         				// Also forcefully delete the image if it is not a root category
         				if ($catData['category'] == "0") {
         					$this->DelCategoryImage($catData['oldCatId']);
         					$GLOBALS['ISC_CLASS_DB']->UpdateQuery('categories', array('catimagefile' => ''), "categoryid='" . (int)$catData['oldCatId'] . "'");
         				}
         */
         // If the category doesn't have a parent, rebuild the root categories cache
         $GLOBALS['ISC_CLASS_DATA_STORE']->UpdateRootCategories();
         # Below line is left in interspire old version, from new version it has been placed -- Baskaran
         //				if($existingData['category'] != $catData['category']) {
         if ($existingData['catparentid'] != $catData['category']) {
             include_once ISC_BASE_PATH . '/lib/api/category.api.php';
             $category = new API_CATEGORY();
             // Rebuild the parent list
             $parentList = $category->BuildParentList($catData['oldCatId']);
             $updatedCategory = array("catparentlist" => $parentList);
             $GLOBALS['ISC_CLASS_DB']->UpdateQuery("categories", $updatedCategory, "categoryid='" . $GLOBALS['ISC_CLASS_DB']->Quote((int) $catData['oldCatId']) . "'");
             // Now we also need to update the parent list of all child pages for this category
             $query = sprintf("SELECT categoryid FROM [|PREFIX|]categories WHERE CONCAT(',', catparentlist, ',') LIKE '%%,%s,%%'", $GLOBALS['ISC_CLASS_DB']->Quote($catData['oldCatId']));
             $result = $GLOBALS['ISC_CLASS_DB']->Query($query);
             while ($child = $GLOBALS['ISC_CLASS_DB']->Fetch($result)) {
                 $parentList = $category->BuildParentList($child['categoryid']);
                 // Update the parent list for this child
                 $updatedCategory = array("catparentlist" => $parentList);
                 $GLOBALS['ISC_CLASS_DB']->UpdateQuery("categories", $updatedCategory, "categoryid='" . $GLOBALS['ISC_CLASS_DB']->Quote($child['categoryid']) . "'");
             }
             // Rebuild the group pricing caches
             $GLOBALS['ISC_CLASS_DATA_STORE']->UpdateCustomerGroupsCategoryDiscounts();
         }
         if (isset($_POST['AddAnother'])) {
             $location = 'index.php?ToDo=editCategory&catId=' . (int) $catData['oldCatId'];
         } else {
             $location = 'index.php?ToDo=viewCategories&deptid=' . $catdeptid;
         }
         FlashMessage(GetLang('CatUpdateSuccessfully'), MSG_SUCCESS, $location);
     } else {
         FlashMessage($GLOBALS['ISC_CLASS_DB']->GetErrorMsg(), MSG_ERROR, 'index.php?ToDo=editCategory&catId=' . (int) $catData['oldCatId']);
     }
 }
 private function EditCustomPage()
 {
     if (isset($_GET["itemId"])) {
         $item = $this->GetCustomItemById($_GET["itemId"]);
         if ($item != NULL) {
             $GLOBALS["FormAction"] = "updatecateabtestingcustom";
             $GLOBALS["CustomItemId"] = $_GET["itemId"];
             $GLOBALS["ContentId"] = $_GET['contentId'];
             $GLOBALS["VisitURL"] = $item['visiturl'];
             $GLOBALS["Enabled"] = $item['enabled'];
             $GLOBALS["ItemTitle"] = $item['itemtitle'];
             $categoryid = $item['categoryid'];
             $catename = $item['catename'];
             $subcategoryid = $item['subcategoryid'];
             $subcatename = $item['subcatename'];
             $brandid = $item['brandid'];
             $brandname = $item['brandname'];
             $seriesid = $item['seriesid'];
             $seriesname = $item['seriesname'];
             $GLOBALS["CatId"] = $categoryid;
             $GLOBALS["SubCatId"] = $subcategoryid;
             $GLOBALS["BrandId"] = $brandid;
             $GLOBALS["SeriesId"] = $seriesid;
             $GLOBALS["PageId"] = isset($_GET["pid"]) ? (int) $_GET["pid"] : 0;
             //wirror_20100728: add a html editor for the item products on edit category
             $wysiwygOptions = array('id' => 'wysiwyg', 'width' => '750px', 'height' => '500px', 'value' => $item['description']);
             $GLOBALS['WYSIWYG'] = GetClass('ISC_ADMIN_EDITOR')->GetWysiwygEditor($wysiwygOptions);
             $GLOBALS['ISC_CLASS_ADMIN_CATEGORIES'] = GetClass('ISC_ADMIN_CATEGORY');
             include_once ISC_BASE_PATH . '/lib/api/category.api.php';
             $category = new API_CATEGORY();
             $category->load($categoryid);
             $GLOBALS['RootCategoryOptions'] = sprintf("<option %s value='%d'>%s</option>", 'readonly', $category->categoryid, $category->catname);
             //$GLOBALS['ISC_CLASS_ADMIN_CATEGORIES']->GetFlatCategories($categoryid, "<option %s value='%d'>%s</option>", "selected=\"selected\"", 0);
             $GLOBALS['SubCategoryOptions'] = $GLOBALS['ISC_CLASS_ADMIN_CATEGORIES']->GetFlatCategories(0, "<option %s value='%d'>%s</option>", "selected=\"selected\"", $category->categoryid);
             $GLOBALS['ISC_CLASS_ADMIN_BRANDS'] = GetClass('ISC_ADMIN_BRANDS');
             $GLOBALS['BrandNameOptions'] = $GLOBALS["ISC_CLASS_ADMIN_BRANDS"]->GetBrandOptions(array($brandid), "<option %s value='%d'>%s</option>", 'selected="selected"', " ", false);
             //$GLOBALS['SubCategoryOptions'] = $subcatename == NULL ? "" : "<option value=\"$subcategoryid\" selected=\"selected\">$subcatename</option>";
             //$GLOBALS['SeriesNameOptions'] = $seriesname == NULL ? "" : "<option value=\"$seriesid\" selected=\"selected\">$seriesname</option>";
             $_GET['category'] = $categoryid;
             $_GET['subscategory'] = $subcategoryid;
             $_GET['brand'] = $brandid;
             $_GET['series'] = $seriesid;
             $GLOBALS['ProductResults'] = $GLOBALS['ISC_CLASS_ADMIN_CATEGORIES']->GetProductOptions(explode(',', $item['productids']), "<option %s value='%d'>%s</option>", 'selected="selected"', " ", false);
             $GLOBALS['SnippetCustomPageItem'] = $GLOBALS['ISC_CLASS_TEMPLATE']->GetSnippet('CategoryCustomPageItem');
             $GLOBALS["ISC_CLASS_TEMPLATE"]->SetTemplate("abtesting.category.custompage");
             $GLOBALS["ISC_CLASS_TEMPLATE"]->ParseTemplate();
         }
     }
 }
 /**
  * Allow the quick creation of a new category from the create product page
  *
  * @return void
  **/
 private function SaveNewQuickCategory()
 {
     include_once APP_ROOT . "/../lib/api/category.api.php";
     $_POST['catpagetitle'] = '';
     $_POST['catmetakeywords'] = '';
     $_POST['catmetadesc'] = '';
     $_POST['catlayoutfile'] = '';
     $_POST['catsort'] = 0;
     $_POST['catimagefile'] = '';
     $category = new API_CATEGORY();
     $CatID = $category->create();
     if ($category->error) {
         $tags[] = $this->MakeXMLTag('status', 0);
         $tags[] = $this->MakeXMLTag('message', $category->error, true);
     } else {
         $tags[] = $this->MakeXMLTag('status', 1);
         // Log this action
         $GLOBALS['ISC_CLASS_LOG']->LogAdminAction($CatID, $_POST['catname']);
         if (isset($_POST['selectedcats']) && is_array($_POST['selectedcats'])) {
             array_walk($_POST['selectedcats'], 'intval');
         } else {
             $_POST['selectedcats'] = array();
         }
         $_POST['selectedcats'][] = $CatID;
         $selectedCategories = $_POST['selectedcats'];
         require_once dirname(__FILE__) . "/class.category.php";
         $GLOBALS['ISC_CLASS_ADMIN_CATEGORY'] = GetClass('ISC_ADMIN_CATEGORY');
         $categories = sprintf("<select size=\"5\" id=\"category\" name=\"category[]\" class=\"Field400 ISSelectReplacement\" style=\"height:140px;\" multiple>%s</select>", $GLOBALS['ISC_CLASS_ADMIN_CATEGORY']->GetCategoryOptions($selectedCategories, "<option %s value='%d'>%s</option>", 'selected="selected"', "", false));
         $tags[] = $this->MakeXMLTag('catid', $CatID, true);
         $tags[] = $this->MakeXMLTag('categories', $categories, true);
     }
     $this->SendXMLHeader();
     $this->SendXMLResponse($tags);
     exit;
 }
	public function deleteCategoryMappings($categories)
	{
		$db = $GLOBALS['ISC_CLASS_DB'];

		$taxonomyId = $db->Quote($this->getId());
		$ids = API_CATEGORY::getSubCategories($categories);

		foreach($ids as $categoryId) {
			$query = '
				DELETE FROM [|PREFIX|]]shopping_comparison_category_associations
				WHERE
					category_id='.$categoryId.' AND shopping_comparison_id="'.$taxonomyId.'";';

			$db->Query($query);

			$query = '
				SELECT cataltcategoriescache
				FROM [|PREFIX|]categories
				WHERE categoryid='.$categoryId.';';

			$cataltcategoriescache = (array)json_decode($db->FetchOne($query));
			unset($cataltcategoriescache[$taxonomyId]);

			$query = '
				UPDATE [|PREFIX|]categories
				SET
					cataltcategoriescache = "'.$db->Quote(isc_json_encode($cataltcategoriescache)).'"
				WHERE
					categoryid='.$categoryId.';';

			$db->Query($query);
		}
	}