GcContent\Form\Translation::prepareForm PHP Méthode

prepareForm() public méthode

Initialize Form
public prepareForm ( array $config ) : void
$config array Configuration
Résultat void
    public function prepareForm($config)
    {
        $this->setAttribute('class', 'relative');
        $inputFilterFactory = new InputFilterFactory();
        $inputFilter = $inputFilterFactory->createInputFilter(array('source' => array('name' => 'source', 'required' => true, 'validators' => array(array('name' => 'not_empty')))));
        $this->setInputFilter($inputFilter);
        $source = new Element\Text('source');
        $source->setLabel('Source')->setAttribute('class', 'form-control');
        $locale = new Element\Select('locale');
        $locale->setLabel('Locale')->setValueOptions($config['locales']);
        $this->add($source);
        $this->add($locale);
    }

Usage Example

 /**
  * List and edit translation
  *
  * @return \Zend\View\Model\ViewModel|array
  */
 public function indexAction()
 {
     $translationForm = new Form\Translation();
     $translationForm->prepareForm($this->getServiceLocator()->get('Config'));
     $translationForm->setAttribute('action', $this->url()->fromRoute('content/translation'));
     if ($this->getRequest()->isPost()) {
         $post = $this->getRequest()->getPost();
         if (empty($post['source']) or empty($post['destination'])) {
             return $this->redirect()->toRoute('content/translation');
         }
         $translator = new Translator();
         foreach ($post['source'] as $sourceId => $source) {
             $translator->update(array('source' => $source), sprintf('id = %d', $sourceId));
             if (!empty($post['destination'][$sourceId])) {
                 $translator->setValue($sourceId, $post['destination'][$sourceId]);
             }
         }
         $translator->generateCache();
         $this->flashMessenger()->addSuccessMessage('Translation saved !');
         return $this->redirect()->toRoute('content/translation');
     }
     $translator = new Translator();
     return array('form' => $translationForm, 'values' => $translator->getValues());
 }
Translation