public function handleSave(Form $form) { $values = $form->values; if ($values['file']->isOk()) { if ($values['cleanout']) { foreach ($this->userRepository->findAll() as $user) { $this->userRepository->delete($user); } } /** @var FileUpload $file */ $file = $values['file']; $data = file_get_contents($file->getTemporaryFile()); foreach (explode("\n", $data) as $row) { if (!$row) { continue; } $items = explode(',', $row); if (!count($items)) { continue; } try { $user = new UserEntity(trim($items[0])); } catch (InvalidArgumentException $e) { $form->addError($e->getMessage()); } $this->userRepository->save($user); } } }
public function handleExport() { $ret = array(); foreach ($this->repository->findAll() as $user) { $ret[] = array($user->email, $user->userKey); } $out = ""; foreach ($ret as $arr) { $out .= implode(',', $arr) . "\n"; } header('Content-Type: application/csv, utf-8'); header('Content-Disposition: attachment;filename="users.csv"'); header('Cache-Control: max-age=0'); $this->presenter->sendResponse(new TextResponse($out)); }
/** * @param MessageEntity $messageEntity * @return int */ public function sendNewsletter(MessageEntity $messageEntity) { $newsletter = $messageEntity->newsletter; /** @var NewsletterPresenter $presenter */ $presenter = $this->application->getPresenterFactory()->createPresenter('Vranovsko:Pages:Newsletter:Newsletter'); $presenter->autoCanonicalize = FALSE; /** @var Message $message */ $message = $this->mailFactory->invoke(); $message->setSubject($newsletter->getSubject()); $x = 0; foreach ($messageEntity->getAllUsers() ? $this->userRepository->findAll() : $messageEntity->users as $user) { $presenter->setMessageUser($user); $request = new \Nette\Application\Request('Vranovsko:Pages:Newsletter:Newsletter', 'GET', array('routeId' => $newsletter->route->id)); $response = $presenter->run($request); $html = (string) $response->getSource(); $userMessage = clone $message; $userMessage->addTo($user->email); $userMessage->setHtmlBody($html, FALSE); $userMessage->send(); $x++; } return $x; }
/** * @return array */ public function getUsers() { return $this->repository->findAll(); }