/** * 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]; }
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]; }
/** * 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]; }
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']); }
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]; }
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]; }