/** * save() * @param integer $intElementId * @param string $strType * @param string $strElementId * @param integet $intVersion * @author Florian Mathis <*****@*****.**> * @version 1.0 */ public function save($intElementId, $strType, $strElementId = null, $intVersion = null) { try { $this->getModelWidgets(); $objWidgetData = $this->objModelWidgets->loadWidgetInstance($strElementId); if (count($objWidgetData) > 0) { $objWidget = $objWidgetData->current(); $objUrlData = $this->objModelWidgets->loadWidgetUrl($strElementId, $objWidget->version); if (count($objUrlData) > 0) { $objUrl = $objUrlData->current(); $this->objElement->setValue('/' . strtolower($objUrl->languageCode) . '/' . $objUrl->url); } else { $this->strUrl = ''; $objParentFoldersData = $this->objModelWidgets->loadParentFolders($strElementId); if (count($objParentFoldersData) > 0) { foreach ($objParentFoldersData as $objParentFolder) { if ($objParentFolder->isUrlFolder == 1) { $this->strUrl = $this->makeUrlConform($objParentFolder->title) . '/' . $this->strUrl; } } } $objFieldData = $this->objElement->Setup()->getModelGenericForm()->loadFieldsAndRegionsByFormId($this->objElement->Setup()->getGenFormId()); //->loadFieldsWithPropery($this->core->sysConfig->fields->properties->url_field, $this->objElement->Setup()->getGenFormId()); if (count($objFieldData) > 0) { foreach ($objFieldData as $objField) { if ($this->objElement->Setup()->getRegion($objField->regionId)->getField($objField->name)->getValue() != '') { $this->strUrl .= $this->makeUrlConform($this->objElement->Setup()->getRegion($objField->regionId)->getField($objField->name)->getValue()); break; } } } $this->strUrl .= '/'; $this->strUrl = $this->checkUrlUniqueness($this->strUrl); $this->objModelWidgets->insertWidgetUrl($this->strUrl, $strElementId, $objWidget->version); $objUrlData = $this->objModelWidgets->loadWidgetUrl($strElementId, $objWidget->version); if (count($objUrlData) > 0) { $objUrl = $objUrlData->current(); $this->objElement->setValue('/' . strtolower($objUrl->languageCode) . '/' . $objUrl->url); } } } } catch (Exception $exc) { $this->core->logger->err($exc); } }