/**
  * Article form factory.
  *
  * @return \Nette\Application\UI\Form
  */
 protected function createComponentArticleForm()
 {
     $form = BaseFormRenderer::factory();
     $form->addText('title', 'Title:')->setRequired('Please enter title.');
     $form->addTextArea('content', 'Content:')->setHtmlId('code')->setRequired('Please enter content.');
     $languages = array('cs' => 'česky', 'en' => 'english');
     $form->addSelect('language', 'Language:', $languages);
     $types = $this->articleManager->getArticleTypes();
     if (!empty($types)) {
         $form->addSelect('type', 'Type', $types);
     } else {
         $form->addHidden('type', 'default');
     }
     // TODO : use class name?
     $form->addText('tags', 'Tags:')->setAttribute('data-tags-default', $this->articleManager->getTagsAsString())->setAttribute("style", 'width:100%')->setHtmlId('tags');
     if (!empty($this->article)) {
         $tags = $this->articleManager->getTagsAsStringForArticle($this->article->id);
         $defaults = ['title' => $this->article->title, 'content' => $this->article->content, 'tags' => $tags, 'language' => $this->article->language];
         $form->setDefaults($defaults);
         if (!empty($types)) {
             $type = $this->articleManager->getArticleType($this->article->id);
             if ($type) {
                 $form->setDefaults(['type' => $type->name]);
             }
         }
         $form->addSubmit('send', 'Save article');
     } else {
         $form->addSubmit('send', 'Add article');
     }
     $form->onSuccess[] = $this->articleFormSucceeded;
     return $form;
 }
Exemplo n.º 2
0
 /**
  * Article form factory.
  *
  * @return \Nette\Application\UI\Form
  */
 protected function createComponentArticleForm()
 {
     $form = new Form();
     $form->addText('title', 'Title:')->setRequired('Please enter title.');
     $form->addTextArea('content', 'Content:')->setRequired('Please enter content.');
     $form->addCheckbox('draft', 'Draft');
     $languages = array('cs' => 'česky', 'en' => 'english');
     $form->addSelect('language', 'Language:', $languages);
     $versions = $this->versionManager->getVersions();
     $form->addSelect('version', 'Version:', $versions);
     $types = $this->articleManager->getArticleTypes();
     if (!empty($types)) {
         $form->addSelect('type', 'Type', $types);
     } else {
         $form->addHidden('type', 'default');
     }
     $form->addText('tags', 'Tags:');
     if (!empty($this->article)) {
         $tags = $this->articleManager->getTagsAsStringForArticle($this->article->id);
         if ($this->article->document_state == 'draft') {
             $draft = TRUE;
         } else {
             $draft = FALSE;
         }
         $defaults = ['title' => $this->article->title, 'content' => $this->article->content, 'tags' => $tags, 'language' => $this->article->language, 'draft' => $draft];
         $form->setDefaults($defaults);
         if (!empty($types)) {
             $type = $this->articleManager->getArticleType($this->article->id);
             if ($type) {
                 $form->setDefaults(['type' => $type->name]);
             }
         }
         $image = $form->addUpload('file', 'File');
         $image->addCondition(Form::FILLED)->addRule(Form::IMAGE, 'Please select image file');
         $form->addText('fileNote', 'File description');
         $form->addSubmit('send', 'Save');
         $form->addSubmit('sendAndView', 'Save and view article');
     } else {
         $defaults = ['draft' => TRUE];
         $form->setDefaults($defaults);
         $form->addSubmit('send', 'Save article');
     }
     $form->onSuccess[] = $this->articleFormSucceeded;
     return $form;
 }