protected function deleteItem($intId)
 {
     if (($objItem = General::getModelInstance($this->formHybridDataContainer, $intId)) !== null) {
         $objDc = new DC_Hybrid($this->formHybridDataContainer, $objItem, $objItem->id);
         $this->runBeforeDelete($objItem, $objDc);
         // remove previously created locks
         if (in_array('entity_lock', \ModuleLoader::getActive()) && $this->addEntityLock) {
             \HeimrichHannot\EntityLock\EntityLockModel::deleteLocks($this->formHybridDataContainer, $intId);
         }
         // call ondelete callbacks
         if (is_array($GLOBALS['TL_DCA'][$this->formHybridDataContainer]['config']['ondelete_callback'])) {
             foreach ($GLOBALS['TL_DCA'][$this->formHybridDataContainer]['config']['ondelete_callback'] as $callback) {
                 $this->import($callback[0]);
                 $this->{$callback}[0]->{$callback}[1]($objDc);
             }
         }
         $blnDeleted = $objItem->delete() > 0;
         if ($blnDeleted && $this->deleteNotification) {
             if (($objMessage = MessageModel::findPublishedById($this->formHybridSubmissionNotification)) !== null) {
                 $arrSubmissionData = SubmissionModel::prepareData($objItem, $this->formHybridDataContainer, $GLOBALS['TL_DCA'][$this->formHybridDataContainer], $objDc, $this->formHybridEditable);
                 $arrTokens = SubmissionModel::tokenizeData($arrSubmissionData);
                 if ($this->sendDeleteNotification($objMessage, $objItem, $arrSubmissionData, $arrTokens)) {
                     $objMessage->send($arrTokens, $GLOBALS['TL_LANGUAGE']);
                 }
             }
         }
         $this->runAfterDelete($blnDeleted, $objItem, $objDc);
         if ($this->jumpToAfterDelete && ($strUrl = Url::getJumpToPageUrl($this->jumpToAfterDelete))) {
             \Controller::redirect($strUrl);
         }
         return $blnDeleted;
     }
     return false;
 }
Exemplo n.º 2
0
 protected function processForm()
 {
     $this->onSubmitCallback($this);
     if (!$this->isSkipValidation()) {
         if (is_array($this->dca['config']['onsubmit_callback'])) {
             foreach ($this->dca['config']['onsubmit_callback'] as $callback) {
                 $this->import($callback[0]);
                 $this->{$callback}[0]->{$callback}[1]($this);
                 // reload model from database, maybe something has changed in callback
                 if (!$this->saveToBlob) {
                     $this->objActiveRecord->refresh();
                 }
             }
         }
     }
     // reload model from database, maybe something has changed in callback
     if (!$this->saveToBlob) {
         $this->objActiveRecord->refresh();
     }
     // just created?
     $blnJustCreated = false;
     if (!$this->objActiveRecord->tstamp) {
         $blnJustCreated = true;
         $this->objActiveRecord->tstamp = time();
         $this->onFirstSubmitCallback($this->objActiveRecord, $this);
     }
     $blnIsModified = false;
     foreach ($this->objActiveRecord->row() as $strField => $varValue) {
         if ($this->arrOriginalRow[$strField] != $varValue) {
             $blnIsModified = true;
             break;
         }
     }
     // run callback after update after submit_callbacks since these could do important updates
     if ($blnIsModified) {
         // update tstamp
         $this->objActiveRecord->tstamp = time();
         if ($this->saveToBlob) {
             $this->saveToBlob();
         } else {
             $this->objActiveRecord->save();
             // create new version - only if modified
             $this->createVersion();
         }
         $this->onUpdateCallback($this->objActiveRecord, $this, $blnJustCreated, $this->arrOriginalRow);
     }
     $arrSubmissionData = $this->prepareSubmissionData();
     if ($this->sendSubmissionAsNotification || $this->submissionNotification) {
         if (($objMessage = \HeimrichHannot\NotificationCenterPlus\MessageModel::findPublishedById($this->submissionNotification)) !== null) {
             $arrToken = FormSubmission::tokenizeData($arrSubmissionData);
             if ($this->sendSubmissionNotification($objMessage, $arrSubmissionData, $arrToken)) {
                 $objMessage->send($arrToken, $GLOBALS['TL_LANGUAGE']);
             }
         }
     }
     if ($this->sendSubmissionViaEmail) {
         if ($this->submissionAvisotaMessage) {
             $this->createSubmissionAvisotaEmail($this->submissionAvisotaMessage, $this->submissionAvisotaSalutationGroup, $arrSubmissionData);
         } else {
             $this->createSubmissionEmail($arrSubmissionData);
         }
     }
     if ($this->confirmationAsNotification || $this->confirmationNotification) {
         if (($objMessage = \HeimrichHannot\NotificationCenterPlus\MessageModel::findPublishedById($this->confirmationNotification)) !== null) {
             $arrToken = FormSubmission::tokenizeData($arrSubmissionData);
             if ($this->sendConfirmationNotification($objMessage, $arrSubmissionData, $arrToken)) {
                 $objMessage->send($arrToken, $GLOBALS['TL_LANGUAGE']);
             }
         }
     }
     if ($this->sendConfirmationViaEmail) {
         if ($this->confirmationAvisotaMessage) {
             $this->createConfirmationAvisotaEmail($this->confirmationAvisotaMessage, $this->confirmationAvisotaSalutationGroup, $arrSubmissionData);
         } else {
             $this->createConfirmationEmail($arrSubmissionData);
         }
     }
     if (!$this->isSilentMode()) {
         $this->createSuccessMessage($arrSubmissionData);
     }
     $this->afterSubmitCallback($this);
 }