/** * Статичный метод обработки сгенерированного события: * - событие может просто записаться в базу для дальнейшего выполнения * - а может сразу выполниться * @param string $event - событие * @param array $params - массив с параметрами события * @param bool $needRealExecute - нужно ли сразу выполнять событие */ public function executeEvent($event, $params, $needRealExecute = false) { // проверяем, есть ли для данного проекта обработчик этого события if (file_exists($this->rootPath . 'workflow/projects/' . $this->project['projectID'] . '/Event/' . $event . '.php')) { if (file_exists($this->rootPath . 'workflow/projects/' . $this->project['projectID'] . '/settings.php')) { include_once $this->rootPath . 'workflow/projects/' . $this->project['projectID'] . '/settings.php'; } $eventData = array('dt' => date('d-m-Y H:i:s'), 'projectID' => $this->project['projectID'], 'event_type' => $event, 'params' => json_encode($params), 'done' => 0, 'locked' => 0); $eventID = $this->registry->getDbHelper('WorkflowHelper')->addEvent($eventData); $eventData['eventID'] = $eventID; if ($needRealExecute) { $this->registry->getModel('Tasks')->executeEvent($eventData); } } return true; }