Пример #1
0
 /**
  * Adds a new News to the db or opens up the form for adding, if it isn't opened yet.
  *
  * @return array|\Zend\Http\Response
  * @throws \Exception
  */
 public function addAction()
 {
     $session = $session = new \Zend\Session\Container('user');
     if (!PermissionChecker::check(Role::ELDER)) {
         return $this->redirect()->toRoute('account', ['action' => 'noright']);
     }
     $form = new NewsForm();
     $form->get('category_id')->setValueOptions($this->createCategorySelect());
     $request = $this->getRequest();
     if ($request->isPost()) {
         $news = new News();
         $form->setInputFilter($news->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $news->exchangeArray($form->getData());
             if ($this->checkWordLengths($news->getContent())) {
                 $this->getNewsTable()->saveNews($news);
                 return $this->redirect()->toRoute('news');
             } else {
                 return ['form' => $form, 'accountId' => $session->id, 'error' => 'tooLong'];
             }
         } else {
             return ['form' => $form, 'accountId' => $session->id, 'error' => 'tooLong'];
         }
     }
     return ['form' => $form, 'accountId' => $session->id];
 }
Пример #2
0
 public function deleteAction()
 {
     $id = $this->params()->fromRoute('id', 0);
     if (!$id) {
         return $this->redirect()->toRoute('news');
     }
     if (!PermissionChecker::check(Role::CO)) {
         return $this->redirect()->toRoute('account', ['action' => 'noright']);
     }
     try {
         $account = $this->getAccountTable()->getAccount($id);
     } catch (\Exception $e) {
         return $this->redirect()->toRoute('news');
     }
     $request = $this->getRequest();
     if ($request->isPost()) {
         $del = $request->getPost('del', 'No');
         if ($del == 'Yes') {
             $id = (int) $request->getPost('id');
             $this->removeDependencies($id);
             $this->getAccountTable()->deleteAccount($id);
         }
         return $this->redirect()->toRoute('admin', ['action' => 'setroles']);
     }
     return ['account' => $account];
 }
 public function editAction()
 {
     if (!PermissionChecker::check(Role::MEMBER)) {
         return $this->redirect()->toRoute('account', ['action' => 'noright']);
     }
     $session = new \Zend\Session\Container('user');
     $account = $this->getAccountTable()->getAccount($session->id);
     $warstatus = null;
     try {
         $warstatus = $this->getWarstatusTable()->getWarstatus((int) $account->getId());
     } catch (\Exception $e) {
         return $this->redirect()->toRoute('news');
     }
     if (!$warstatus) {
         $warstatus = new Warstatus($session->id);
         $warstatus->setOptedOutDate((new \DateTime())->format('Y-m-d'));
         $warstatus->setOptedOutDateMini((new \DateTime())->format('Y-m-d'));
     }
     $form = new WarstatusForm();
     //Prepare date for HTML 5 input
     $date = new \DateTime($warstatus->getOptedInDate());
     $date_mini = new \DateTime($warstatus->getOptedInDateMini());
     $warstatus->setOptedInDate($date->format('Y-m-d'));
     $warstatus->setOptedInDateMini($date_mini->format('Y-m-d'));
     $form->bind($warstatus);
     $has_mini = $account->getMini() ? true : false;
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter($warstatus->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $this->getWarstatusTable()->saveWarstatus($form->getData());
             return $this->redirect()->toRoute('account', ['action' => 'profile']);
         } else {
             $errors = $form->getMessages();
             return ['form' => $form, 'errors' => $errors, 'has_mini' => $has_mini];
         }
     }
     return ['form' => $form, 'has_mini' => $has_mini];
 }
Пример #4
0
 /**
  * Adds a new News to the db or opens up the form for adding, if it isn't opened yet.
  *
  * @return array|\Zend\Http\Response
  * @throws \Exception
  */
 public function addAction()
 {
     if (!PermissionChecker::check(Role::MEMBER)) {
         return $this->redirect()->toRoute('account', ['action' => 'noright']);
     }
     $form = new MediaForm();
     $session = new Container('user');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $media = new Media();
         $form->setInputFilter($media->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $media->exchangeArray($form->getData());
             $media->setUrl($this->embedVideo($media->getUrl()));
             $this->getMediaTable()->saveMedia($media);
             return $this->redirect()->toRoute('media');
         } else {
             $errors = $form->getMessages();
             return ['form' => $form, 'accountId' => $session->id, 'errors' => $errors];
         }
     }
     return ['form' => $form, 'accountId' => $session->id];
 }
Пример #5
0
 public function sendConfirmationMailAction()
 {
     $id = (int) $this->params()->fromRoute('id', 0);
     if (!PermissionChecker::check(Role::ELDER) || $id === 0) {
         return $this->redirect()->toRoute('account', ['action' => 'noright']);
     }
     $application = $this->getApplicationTable()->getApplication($id);
     $mailText = 'Hello ' . $application->getName() . ' we have processed your application.';
     if ($application->getProcessed() == \ApplyNow\Model\Status::ACCEPTED) {
         $mailText .= 'We have decided for you. Please apply ingame under the clan-id: #28PU922.';
         $application->setProcessed(\ApplyNow\Model\Status::ACCEPTED_MAILED);
     } else {
         $mailText .= 'We have decided against you. We are sorry and wish you best of luck in the future.';
         $application->setProcessed(\ApplyNow\Model\Status::DECLINED_MAILED);
     }
     $this->getApplicationTable()->saveApplication($application);
     $this->appMailService->sendMail($application->getEmail(), 'Your application at Eternal Deztiny', $mailText);
     return $this->redirect()->toRoute('applynow', ['action' => 'overview']);
 }
Пример #6
0
 public function currentAction()
 {
     $warclaim = $this->getWarclaimTable()->getCurrentWar();
     if (!$warclaim || !PermissionChecker::check(Role::MEMBER)) {
         return $this->redirect()->toRoute('warclaim', ['action' => 'nowar']);
     }
     $members = $this->getAccountTable()->getMembers();
     $session = new \Zend\Session\Container('user');
     $form = new CurrentForm($warclaim->getSize(), $session->role);
     $form->setData($warclaim->getArrayCopy());
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter($warclaim->getCurrentInputFilter($warclaim->getSize()));
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $form_warclaim = new Warclaim();
             $form_warclaim->exchangeArray($form->getData());
             $service = new WarclaimService();
             $warclaim = $service->mergeWarclaims($warclaim, $form_warclaim);
             //Validate if info is filled out if a cleanup was set
             $errors = [];
             for ($i = 0; $i < $warclaim->getSize(); $i++) {
                 if ($warclaim->getCleanup()[$i] !== '' && $warclaim->getInfo()[$i] === '') {
                     $errors[$i . 'i'] = ['no_info' => 'You have to give an info, when you attack.'];
                     $form->get($i . 'i')->setMessages($errors);
                 } elseif ($warclaim->getCleanup()[$i] === '' && $warclaim->getInfo()[$i] !== '') {
                     $errors[$i . 'c'] = ['no_info' => 'You have to give a cleanup, when you give an info.'];
                     $form->get($i . 'c')->setMessages($errors);
                 }
             }
             if ($errors) {
                 return ['form' => $form, 'warclaim' => $warclaim, 'errors' => $errors, 'members' => $members, 'user' => $session];
             }
             $this->getWarclaimTable()->saveWarclaim($warclaim);
             return $this->redirect()->toRoute('warclaim');
         } else {
             $errors = $form->getMessages();
             return ['form' => $form, 'warclaim' => $warclaim, 'errors' => $errors, 'members' => $members, 'user' => $session];
         }
     }
     return ['form' => $form, 'warclaim' => $warclaim, 'user' => $session, 'members' => $members];
 }
Пример #7
0
 public function drawAction()
 {
     if (!PermissionChecker::check(Role::CO)) {
         return $this->redirect()->toRoute('account', ['action' => 'noright']);
     }
     $warlog = $this->getWarlogTable()->getWarlog();
     if (!$warlog) {
         return $this->redirect()->toRoute('account', ['action' => 'profile']);
     }
     $warlog->setDraws($warlog->getDraws() + 1);
     $this->getWarlogTable()->saveWarlog($warlog);
     return $this->redirect()->toRoute('warlog');
 }
 public function indexAction()
 {
     if (!PermissionChecker::check(Role::CO)) {
         return $this->redirect()->toRoute('account', ['action' => 'noright']);
     }
     $categories = $this->getNewsCategoryTable()->fetchAll();
     return ['categories' => $categories];
 }