Guest User

Untitled

a guest
Nov 14th, 2013
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.96 KB | None | 0 0
  1. <?php
  2.  
  3. namespace AdminModule;
  4.  
  5. use Nette\Application\UI\Form as Form;
  6.  
  7. class NewsPresenter extends BasePresenter {
  8.  
  9.  
  10.     /** @var \Main\NewsRepository */
  11.     public $newsRepository;
  12.  
  13.     /** @var \Main\ListRepository */
  14.     public $usersRepository;
  15.  
  16.     /**
  17.      * Inject Repositories
  18.      *
  19.      */
  20.     public function inject(\Main\NewsRepository $newsRepository, \Main\UsersRepository $usersRepository) {
  21.         $this->newsRepository = $newsRepository;
  22.         $this->usersRepository = $usersRepository;
  23.     }
  24.  
  25.     /**
  26.      * Ešte pred vykreslením stránky
  27.      */
  28.     public function beforeRender() {
  29.         $this->template->allNews = $this->newsRepository->getAllNews();
  30.         if ($this->isAjax()) {
  31.             $this->invalidateControl('flashMessages');
  32.         }
  33.     }
  34.  
  35.     /**
  36.      * Formulár pre pridávanie noviniek
  37.      * @return Nette\Application\UI\Form
  38.      */
  39.     protected function createComponentAddNewsForm() {
  40.        
  41.         $form = new Form;
  42.         $form->elementPrototype->addAttributes(array('class' => 'form-horizontal col-lg-5'));
  43.         $renderer = $form->getRenderer();
  44.  
  45.         $renderer->wrappers['controls']['container'] = 'div';
  46.         $renderer->wrappers['pair']['container'] = 'div class="form-group"';
  47.         $renderer->wrappers['control']['.submit'] = 'btn';
  48.  
  49.  
  50.         $form->addText('title', 'Title: *')
  51.             ->setAttribute('class', 'form-control')
  52.             ->addRule(Form::FILLED, 'Please enter title.');
  53.         $form->addTextArea('body', 'Body: *', 100, 15)
  54.             ->addRule(Form::FILLED, 'Body field must be filled.');                 
  55.         $form->addSubmit('addnews', 'Add News')
  56.             ->setAttribute('class', 'btn-success pull-left');
  57.         $form->onSuccess[] = $this->addNewsFormSubmitted;
  58.         return $form;
  59.     }
  60.  
  61.  
  62.     /**
  63.      * Po úspešnom odoslaní formulára AddNewsForm
  64.      */
  65.     public function addNewsFormSubmitted(Form $form) {
  66.         $values = $form->getValues();
  67.         $news = $this->newsRepository->addNews($values, $this->getUser()->getId());
  68.         if ($news) {
  69.             $this->flashMessage('You have successfully added a news.', 'success');
  70.             $this->redirect('News:default');
  71.         }
  72.     }
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment