Example #1
0
 /**
  * Run task
  *
  * @return void
  */
 protected function doActionRun()
 {
     $event = \XLite\Core\Request::getInstance()->event;
     $result = false;
     $errors = array();
     $task = \XLite\Core\Database::getRepo('XLite\\Model\\EventTask')->findOneBy(array('name' => $event));
     if ($task) {
         if (\XLite\Core\EventListener::getInstance()->handle($task->getName(), $task->getArguments())) {
             \XLite\Core\Database::getEM()->remove($task);
             $result = true;
         }
         $errors = \XLite\Core\EventListener::getInstance()->getErrors();
     } else {
         \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->removeEventState($event);
     }
     \XLite\Core\Database::getEM()->flush();
     $state = \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->getEventState($event);
     $this->setPureAction(true);
     if ($result && $state) {
         \XLite\Core\Event::eventTaskRun(array('percent' => \XLite\Core\Database::getRepo('XLite\\Model\\TmpVar')->getEventStatePercent($event), 'error' => !empty($errors)));
     } else {
         $result = false;
     }
     if ($errors) {
         foreach ($errors as $message) {
             \XLite\Core\TopMessage::addError($message);
         }
         $result = false;
     }
     $this->valid = $result;
 }