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; }
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); }