protected function afterSubmitCallback(\DataContainer $dc) { // remove previously created locks if (in_array('entity_lock', \ModuleLoader::getActive()) && $this->addEntityLock) { \HeimrichHannot\EntityLock\EntityLockModel::deleteLocks($this->formHybridDataContainer, $this->intId); } }
public static function deleteLocks($strTable, $intEntity) { if (($objLock = EntityLockModel::findLock($strTable, $intEntity)) !== null) { while ($objLock->next()) { $objLock->delete(); } } }
public function setParentEntityTitleField() { $objLock = \HeimrichHannot\EntityLock\EntityLockModel::findByPk(\Input::get('id')); $arrDca =& $GLOBALS['TL_DCA']['tl_entity_lock']; if ($objLock->parentTable) { $arrEntityLockEntityTitleFields = \Config::get('entityLockEntityTitleFields'); if (!isset($arrEntityLockEntityTitleFields[$objLock->parentTable])) { $arrEntityLockEntityTitleFields[$objLock->parentTable] = array('fields' => array('id'), 'format' => 'ID:%s', 'queryField' => 'id'); } $arrDca['fields']['pid']['eval']['remote'] = array_merge($arrDca['fields']['pid']['eval']['remote'], $arrEntityLockEntityTitleFields[$objLock->parentTable]); } }
public static function generateUnlockForm($strTable, $objEntity, $objLock, $objModule, $arrTokens = array()) { $objTemplate = new \FrontendTemplate('entity_lock_unlock_form'); $objTemplate->action = Url::addQueryString('act=unlock', \Environment::get('uri')); $objTemplate->formId = 'entity_lock_unlock_' . $objModule->id; $objTemplate->lock = $objLock->id; // delete if preconditions are given - allow only for the current lock $blnIsSubmitted = \Input::post('FORM_SUBMIT') == $objTemplate->formId; if ($blnIsSubmitted && \Input::get('act') == EntityLock::ACT_UNLOCK && $objLock->id == \Input::post('lock')) { $objFormerEditor = EntityLockModel::getEditor($objLock->id); if ($objLock->delete() && $objModule->lockDeletionNotification) { static::sendLockDeletionNotification($objModule->lockDeletionNotification, $strTable, $objEntity, $objFormerEditor, $arrTokens); } \Controller::redirect(Url::removeQueryString(array('act')), $objTemplate->action); } return $objTemplate->parse(); }
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; }