Example #1
0
 /**
  * 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);
     }
 }