Beispiel #1
0
    /**
     * dijit.form.RadioButton
     *
     * @param  string $id
     * @param  string $value
     * @param  array $params  Parameters to use for dijit creation
     * @param  array $attribs HTML attributes
     * @param  array $options Array of radio options
     * @param  string $listsep String with which to separate options
     * @return string
     */
    public function __invoke(
        $id = null,
        $value = null,
        array $params = array(),
        array $attribs = array(),
        array $options = null,
        $listsep = "<br />\n"
    ) {
        $attribs['name'] = $id;
        if (!array_key_exists('id', $attribs)) {
            $attribs['id'] = $id;
        }
        $attribs = $this->_prepareDijit($attribs, $params, 'element');

        if (is_array($options) && $this->_useProgrammatic() && !$this->_useProgrammaticNoScript()) {
            $baseId = $id;
            if (array_key_exists('id', $attribs)) {
                $baseId = $attribs['id'];
            }
            $filter = new AlnumFilter();
            foreach (array_keys($options) as $key) {
                $optId = $baseId . '-' . $filter->filter($key);
                $this->_createDijit($this->_dijit, $optId, array());
            }
        }

        return $this->view->formRadio($id, $value, $attribs, $options, $listsep);
    }
Beispiel #2
0
    /**
     * Returns true if and only if $value contains only alphabetic and digit characters
     *
     * @param  string $value
     * @return boolean
     */
    public function isValid($value)
    {
        if (!is_string($value) && !is_int($value) && !is_float($value)) {
            $this->_error(self::INVALID);
            return false;
        }

        $this->_setValue($value);

        if ('' === $value) {
            $this->_error(self::STRING_EMPTY);
            return false;
        }

        if (null === self::$_filter) {
            self::$_filter = new \Zend\Filter\Alnum();
        }

        self::$_filter->allowWhiteSpace = $this->allowWhiteSpace;

        if ($value != self::$_filter->filter($value)) {
            $this->_error(self::NOT_ALNUM);
            return false;
        }

        return true;
    }
Beispiel #3
0
 /**
  * Ensures that the allowWhiteSpace option works as expected
  *
  * @return void
  */
 public function testAllowWhiteSpace()
 {
     $this->_filter->setAllowWhiteSpace(true);
     if (!self::$_unicodeEnabled) {
         // POSIX named classes are not supported, use alternative a-zA-Z match
         $valuesExpected = array('abc123' => 'abc123', 'abc 123' => 'abc 123', 'abcxyz' => 'abcxyz', 'AZ@#4.3' => 'AZ43', '' => '', "\n" => "\n", " \t " => " \t ");
     }
     if (self::$_meansEnglishAlphabet) {
         //The Alphabet means english alphabet.
         $valuesExpected = array('a B 45' => 'a B 5', 'z3 x' => 'z3x');
     } else {
         //The Alphabet means each language's alphabet.
         $valuesExpected = array('abc123' => 'abc123', 'abc 123' => 'abc 123', 'abcxyz' => 'abcxyz', 'če2 t3ně' => 'če2 t3ně', 'gr z5e4gżółka' => 'gr z5e4gżółka', 'Be3l5 gië' => 'Be3l5 gië', '' => '');
     }
     $filter = $this->_filter;
     foreach ($valuesExpected as $input => $output) {
         $this->assertEquals($output, $result = $filter($input), "Expected '{$input}' to filter to '{$output}', but received '{$result}' instead");
     }
 }
 public function testRadioLabelContainsForAttributeTag()
 {
     $options = array('foo bar' => 'Foo', 'bar baz' => 'Bar', 'baz' => 'Baz');
     $html = $this->helper->__invoke(array('name' => 'foo[bar]', 'value' => 'bar', 'options' => $options));
     $filter = new Filter\Alnum();
     foreach ($options as $key => $value) {
         $id = 'foo-bar-' . $filter->filter($key);
         $this->assertRegexp('/<label([^>]*)(for="' . $id . '")/', $html);
     }
 }
Beispiel #5
0
 /**
  * @group ZF-11631
  */
 public function testRegistryLocale()
 {
     $locale = new Locale('ja');
     \Zend\Registry::set('Zend_Locale', $locale);
     if (!self::$_unicodeEnabled) {
         $this->markTestSkipped('Unicode not enabled');
     }
     $valuesExpected = array('aABb3456' => 'aB35', 'z7 Y8 x9' => 'z8x', ',s1.2r3#:q,' => 's12rq');
     $filter = new AlnumFilter();
     $this->assertEquals('ja', (string) $filter->getLocale());
     foreach ($valuesExpected as $input => $output) {
         $this->assertEquals($output, $result = $filter($input), "Expected '{$input}' to filter to '{$output}', but received '{$result}' instead");
     }
 }