public function testNoTranslate()
 {
     $form = new Form();
     $form->setTranslator(new MockTranslator());
     $form->addSelect('translateFalse', 'label', ['a', 'b', 'c'])->setTranslate(FALSE)->setPrompt('Prompt');
     $form->addSelect('translateFalseEmptyPrompt', 'label', ['a', 'b', 'c'])->setTranslate(FALSE);
     $form->addSelect('translate', 'label', ['a', 'b', 'c'])->setTranslate(TRUE)->setPrompt('Prompt');
     $form->addSelect('translateEmptyPrompt', 'label', ['a', 'b', 'c'])->setTranslate(TRUE);
     // Translate false
     $form['translateFalse']->getLabel();
     $form['translateFalse']->getControl();
     $this->assertSame(['label', 'Prompt'], MockTranslator::$toTranslate);
     MockTranslator::$toTranslate = [];
     // Translate false, empty prompt
     $form['translateFalseEmptyPrompt']->getLabel();
     $form['translateFalseEmptyPrompt']->getControl();
     $this->assertSame(['label'], MockTranslator::$toTranslate);
     MockTranslator::$toTranslate = [];
     // Translate
     $form['translate']->getLabel();
     $form['translate']->getControl();
     $this->assertSame(['label', 'Prompt', 'a', 'b', 'c'], MockTranslator::$toTranslate);
     MockTranslator::$toTranslate = [];
     // Translate, empty prompt
     $form['translateEmptyPrompt']->getLabel();
     $form['translateEmptyPrompt']->getControl();
     $this->assertSame(['label', 'a', 'b', 'c'], MockTranslator::$toTranslate);
     MockTranslator::$toTranslate = [];
 }
Example #2
0
 /**
  * @return Form
  */
 public function create()
 {
     $form = new Form();
     if ($this->translator) {
         $form->setTranslator($this->translator);
     }
     if ($this->renderer) {
         $form->setRenderer($this->renderer);
     }
     return $form;
 }
 public function testNoTranslate()
 {
     $form = new Form();
     $form->setTranslator(new MultiSelectMockTranslator());
     $form->addMultiSelect('translateFalse', 'label', ['a', 'b', 'c'])->setTranslate(FALSE);
     $form->addMultiSelect('translate', 'label', ['a', 'b', 'c'])->setTranslate(TRUE);
     // Translate false
     $form['translateFalse']->getLabel();
     $form['translateFalse']->getControl();
     $this->assertSame(['label'], MultiSelectMockTranslator::$toTranslate);
     MultiSelectMockTranslator::$toTranslate = [];
     // Translate
     $form['translate']->getLabel();
     $form['translate']->getControl();
     $this->assertSame(['label', 'a', 'b', 'c'], MultiSelectMockTranslator::$toTranslate);
     MultiSelectMockTranslator::$toTranslate = [];
 }
Example #4
0
     * @param  int      plural count
     * @return string
     */
    public function translate($message, $count = NULL)
    {
        return parent::translate($message);
    }
}
$countries = array('Select your country', 'Europe' => array('CZ' => 'Czech Republic', 'SK' => 'Slovakia'), 'US' => 'USA', '?' => 'other');
$sex = array('m' => 'male', 'f' => 'female');
// Step 1: Define form with validation rules
$form = new Form();
// enable translator
$translator = new MyTranslator('gettext', dirname(__FILE__) . '/messages.mo', 'cs');
$translator->setLocale('cs');
$form->setTranslator($translator);
// group Personal data
$form->addGroup('Personal data');
$form->addText('name', 'Your name:', 35)->addRule(Form::FILLED, 'Enter your name');
$form->addText('age', 'Your age:', 5)->addRule(Form::FILLED, 'Enter your age')->addRule(Form::INTEGER, 'Age must be numeric value')->addRule(Form::RANGE, 'Age must be in range from %d to %d', array(10, 100));
$form->addRadioList('gender', 'Your gender:', $sex);
$form->addText('email', 'E-mail:', 35)->setEmptyValue('@')->addCondition(Form::FILLED)->addRule(Form::EMAIL, 'Incorrect E-mail Address');
// ... then check email
// group Shipping address
$form->addGroup('Shipping address')->setOption('embedNext', TRUE);
$form->addCheckbox('send', 'Ship to address')->addCondition(Form::EQUAL, TRUE)->toggle('sendBox');
// toggle div #sendBox
// subgroup
$form->addGroup()->setOption('container', Html::el('div')->id('sendBox'));
$form->addText('street', 'Street:', 35);
$form->addText('city', 'City:', 35)->addConditionOn($form['send'], Form::EQUAL, TRUE)->addRule(Form::FILLED, 'Enter your shipping address');
Example #5
0
 public function testTranslator()
 {
     Form::setTranslator(function ($str) {
         return $str . 'xxx';
     });
     $actual = Form::open()->text('first_name', '', array('label' => 'First Name', 'description' => 'Something'))->close();
     $expected = '<form action="" method="post" class="" id="" ><label for="first_name" class="textlabel">First Namexxx</label>
         <div class="error">xxx</div>
         <input type="text" name="first_name" id="first_name" value="" class="text" />
         <p class="">Somethingxxx</p></form>';
     $this->assertEquals(trim_html($expected), trim_html($actual));
     // Reset
     Form::setTranslator('\\Formbuilder\\Form::defaultTranslator');
 }