Авторизация

Функции API UMI CMS для добавления, редактирования, удаления объектов каталога

Функции API UMI CMS для добавления, редактирования, удаления объектов каталога.

/**
	 * Является ли страница категорией и преобладают ли в ней товары, а не категории
	 * @param mixed $pageId
	 * @return mixed|string
	 */
	public function isCategory($pageId = 0) {
		$result = 0;
		
		$oElement = umiHierarchy::getInstance()->getElement($pageId);
		if ($oElement) {
			$sModule = $oElement->getModule();
			$sMethod = $oElement->getMethod();
			if ($sModule == 'catalog' && $sMethod == 'category') {
				$iDominantObjectType = umiHierarchy::getInstance()->getDominantTypeId($pageId);
				$iCategoryTypeId = umiObjectTypesCollection::getInstance()->getBaseType('catalog', 'category');
				if($iDominantObjectType != $iCategoryTypeId) {
					$result = 1;
				}
			}
		}
		
		return def_module::parseTemplate(array(), array('iscategory' => $result));
	}
	
	/*********** Some event handlers (thank you, edit-in-place)   *************/
	public function unsetCache($iCategoryId) {
		$sCacheFile = CURRENT_WORKING_DIR . '/sys-temp/runtime-cache/customCache';
		
		if (file_exists($sCacheFile)) {
			$arCache = file_get_contents($sCacheFile);
			$arCache = unserialize($arCache);
			if (is_array($arCache)) {
				if (isset($arCache['smartCatalogFilter'][$iCategoryId])) {
					unset($arCache['smartCatalogFilter'][$iCategoryId]);
					
					if(file_put_contents($sCacheFile, serialize($arCache))) {
						clearstatcache();
						@chmod($sCacheFile, 0777);
					}
				}
			}
		}
	}
	
	public function onDeleteCatalogObject(iUmiEventPoint $event) {
		if ($event->getMode() === "after") {
			if($oElement = $event->getRef('element')) {
				if ($oElement->getModule() == 'catalog') {
					$iParentId = $oElement->getParentId();
					
					$this->unsetCache($iParentId);

					if(method_exists('regedit', 'onController') && regedit::onController()) {
						umiHierarchy::getInstance()->removeDeletedElement($oElement->getId());
					}
				}
			}
		}
		
		return true;
	}
	
	public function onSaveCatalogObject(iUmiEventPoint $event) {
		if ($event->getMode() === "after") {

			$oElement = $event->getParam('obj');
			if($oElement instanceof umiHierarchyElement) {
				$iParentId = $oElement->getParentId();
				$this->unsetCache($iParentId);
			}
		}

		return true;
	}
	
	public function onSwitchActivityCatalogObjectUmi(iUmiEventPoint $event) {
		if ($event->getMode() === "after") {
			if($oElement = $event->getRef('element')) {
				$iParentId = $oElement->getParentId();
				
				$this->unsetCache($iParentId);
			}
		}
		
		return true;
	}
	
	public function onSwitchActivityCatalogObject(iUmiEventPoint $event) {
		if ($event->getMode() === "after") {
			if($oElement = $event->getRef('element')) {
				$iParentId = $oElement->getParentId();
				
				$this->unsetCache($iParentId);
			}
		}
		
		return true;
	}

	public function onAddCatalogObject(iUmiEventPoint $event) {
		if ($event->getMode() === "after") {
			if($oElement = $event->getRef('element')) {
				$iParentId = $oElement->getParentId();
				
				$this->unsetCache($iParentId);
			}
		}

		return true;
	}

	public function onAddCatalogObjectQuick(iUmiEventPoint $event) {
		if ($event->getMode() === "after") {
			$iElementId = $event->getParam('elementId');
			if($oElement = umiHierarchy::getInstance()->getElement($iElementId)) {
				$iParentId = $oElement->getParentId();
				
				$this->unsetCache($iParentId);
			}
		}

		return true;
	}

	public function onMoveCatalogObject(iUmiEventPoint $event) {
		if ($event->getMode() === "before") {
			$iElementId = $event->getParam('elementId');
			if($oElement = umiHierarchy::getInstance()->getElement($iElementId)) {
				$iParentId = $oElement->getParentId();
				
				$this->unsetCache($iParentId);
			}
		} elseif ($event->getMode() === "after") {
			$iElementId = $event->getParam('elementId');
			if($oElement = umiHierarchy::getInstance()->getElement($iElementId)) {
				$iParentId = $oElement->getParentId();
				
				$this->unsetCache($iParentId);
			}
		}

		return true;
	}

	public function onModifyCatalogObject(iUmiEventPoint $event) {
		if($oElement = $event->getRef('element')) {
			$iParentId = $oElement->getParentId();
			
			$this->unsetCache($iParentId);
		}
		
		return true;
	}

[ Saitadmin.ru || с 2006 по текущий год || Санкт-Петербург || Антон Панченко ]