/** * Init events * * @param \Zend\ModuleManager\ModuleEvent $e */ public function initEvents(ModuleEvent $e) { $model = $this->serviceLocator->get('Application\\Model\\ModelManager')->getInstance('ActionTracker\\Model\\ActionTrackerBase'); $actions = $model->getActivatedActions(); // bind all activated events if (count($actions)) { $eventManager = ActionTrackerEvent::getEventManager(); foreach ($actions as $action) { $eventManager->attach($action->name, function ($e) use($model, $action) { if ($model->getModuleInfo('ActionTracker')) { $model->logAction($action->action_id, $e->getParam('description'), $e->getParam('description_params')); } }); } } }
/** * Delete action log * * @param integer $actionId * @return boolean|string */ public function deleteActionLog($actionId) { try { $this->adapter->getDriver()->getConnection()->beginTransaction(); $delete = $this->delete()->from('action_tracker_log')->where(['id' => $actionId]); $statement = $this->prepareStatementForSqlObject($delete); $result = $statement->execute(); $this->adapter->getDriver()->getConnection()->commit(); } catch (Exception $e) { $this->adapter->getDriver()->getConnection()->rollback(); ApplicationErrorLogger::log($e); return $e->getMessage(); } // fire the delete action log event ActionTrackerEvent::fireDeleteActionEvent($actionId); return $result->count() ? true : false; }