/**
  * getModelWidgets
  * @return Model_Widgets
  * @author Florian Mathis <*****@*****.**>
  * @version 1.0
  */
 protected function getModelWidgets()
 {
     if (null === $this->objModelWidgets) {
         /**
          * autoload only handles "library" compoennts.
          * Since this is an application model, we need to require it
          * from its modules path location.
          */
         require_once GLOBAL_ROOT_PATH . $this->core->sysConfig->path->zoolu_modules . 'cms/models/Widgets.php';
         $this->objModelWidgets = new Model_Widgets();
         $this->objModelWidgets->setLanguageId($this->intLanguageId);
     }
     return $this->objModelWidgets;
 }
 /**
  * deleteAction
  * @author Daniel Rotter <*****@*****.**>
  * @version 1.0
  */
 public function deleteAction()
 {
     $this->core->logger->debug('cms->controllers->WidgetController->deleteAction()');
     try {
         $this->getModelWidget();
         if ($this->objRequest->isPost() && $this->objRequest->isXmlHttpRequest()) {
             $this->objModelWidgets->deleteWidgetInstance($this->objRequest->getParam("id"));
             $this->view->blnShowFormAlert = true;
         }
         $this->renderScript('page/form.phtml');
     } catch (Exception $exc) {
         $this->core->logger->err($exc);
     }
 }
 /**
  * save
  * @author Daniel Rotter <*****@*****.**>
  * @version 1.0
  */
 public function save()
 {
     $this->core->logger->debug('massiveart->generic->data->GenericDataTypeWidget->save()');
     try {
         $this->getModelWidgets()->setLanguageId($this->setup->getLanguageId());
         $intUserId = Zend_Auth::getInstance()->getIdentity()->id;
         $strWidgetInstanceId = 0;
         $intWidgetVersion = 0;
         switch ($this->setup->getActionType()) {
             case $this->core->sysConfig->generic->actions->add:
                 /**
                  * WidgetInstanceId is empty, add Widget itself
                  */
                 $strWidgetInstanceId = $this->setup->getWidgetInstanceId();
                 $intWidgetVersion = 1;
                 $intSortPosition = GenericSetup::DEFAULT_SORT_POSITION;
                 /**
                  * check if parent element is rootlevel or folder
                  */
                 if ($this->setup->getParentId() != '' && $this->setup->getParentId() > 0) {
                     if ($this->setup->getParentTypeId() == '') {
                         $this->setup->setParentTypeId($this->core->sysConfig->parent_types->folder);
                     }
                     $objNaviData = $this->getModelFolders()->loadChildNavigation($this->setup->getParentId());
                 } else {
                     if ($this->setup->getRootLevelId() != '' && $this->setup->getRootLevelId() > 0) {
                         $this->setup->setParentId($this->setup->getRootLevelId());
                     } else {
                         $this->core->logger->err('massiveart->generic->data->GenericDataTypeWidget->save(): intRootLevelId is empty!');
                     }
                     $this->setup->setParentTypeId($this->core->sysConfig->parent_types->rootlevel);
                     $objNaviData = $this->getModelFolders()->loadRootNavigation($this->setup->getRootLevelId());
                 }
                 $intSortPosition = count($objNaviData);
                 $this->core->logger->debug('$this->setup->getParentId(): ' . $this->setup->getShowInNavigation());
                 $arrMainData = array('idGenericForms' => $this->setup->getGenFormId(), 'sortPosition' => $intSortPosition, 'idParent' => $this->setup->getParentId(), 'idParentTypes' => $this->setup->getParentTypeId(), 'created' => date('Y-m-d H:i:s'), 'idStatus' => $this->setup->getStatusId(), 'sortTimestamp' => date('Y-m-d H:i:s'), 'creator' => $this->setup->getCreatorId(), 'idWidgets' => $this->setup->getElementTypeId(), 'widgetInstanceId' => $strWidgetInstanceId, 'version' => $intWidgetVersion, 'showInNavigation' => $this->setup->getShowInNavigation(), 'idUsers' => $intUserId);
                 $this->setup->setElementId($this->objModelWidgets->getWidgetInstancesTable()->insert($arrMainData));
                 $this->insertCoreData('widgetInstance', $strWidgetInstanceId, $intWidgetVersion);
                 break;
             case $this->core->sysConfig->generic->actions->edit:
                 $objSelect = $this->objModelWidgets->getWidgetInstancesTable()->select();
                 $objSelect->from('widgetInstances', array('widgetInstanceId', 'version'));
                 $objSelect->where('id = ?', $this->setup->getElementId());
                 $objRowSet = $this->objModelWidgets->getWidgetInstancesTable()->fetchAll($objSelect);
                 if (count($objRowSet) > 0) {
                     $objWidgetInstances = $objRowSet->current();
                     $strWidgetInstanceId = $objWidgetInstances->widgetInstanceId;
                     $intWidgetInstanceVersion = $objWidgetInstances->version;
                     $strWhere = $this->objModelWidgets->getWidgetInstancesTable()->getAdapter()->quoteInto('widgetInstanceId = ?', $objWidgetInstances->widgetInstanceId);
                     $strWhere .= $this->objModelWidgets->getWidgetInstancesTable()->getAdapter()->quoteInto(' AND version = ?', $objWidgetInstances->version);
                     $this->objModelWidgets->getWidgetInstancesTable()->update(array('idGenericForms' => $this->setup->getGenFormId(), 'idUsers' => $intUserId, 'creator' => $this->setup->getCreatorId(), 'idStatus' => $this->setup->getStatusId(), 'published' => $this->setup->getPublishDate(), 'changed' => date('Y-m-d H:i:s'), 'showInNavigation' => $this->setup->getShowInNavigation()), $strWhere);
                     $this->updateCoreData('widgetInstance', $objWidgetInstances->widgetInstanceId, $objWidgetInstances->version);
                 }
         }
         /**
          * now save all the special fields
          */
         if (count($this->setup->SpecialFields()) > 0) {
             foreach ($this->setup->SpecialFields() as $objField) {
                 $objField->setGenericSetup($this->setup);
                 $objField->save($this->setup->getElementId(), 'widget', $strWidgetInstanceId, $intWidgetVersion);
             }
         }
         return $this->setup->getElementId();
     } catch (Exception $exc) {
         $this->core->logger->err($exc);
     }
 }