Пример #1
0
 /**
  * Registers common function in Twig
  *
  * @param \Phalcon\Mvc\ViewInterface $view
  * @param \Phalcon\DiInterface       $di
  * @param array                      $userFunctions
  */
 protected function registryFunctions($view, DiInterface $di, $userFunctions = array())
 {
     $options = array('is_safe' => array('html'));
     $functions = array(new \Twig_SimpleFunction('content', function () use($view) {
         return $view->getContent();
     }, $options), new \Twig_SimpleFunction('partial', function ($partialPath) use($view) {
         return $view->partial($partialPath);
     }, $options), new \Twig_SimpleFunction('linkTo', function ($parameters, $text = null) {
         return \Phalcon\Tag::linkTo($parameters, $text);
     }, $options), new \Twig_SimpleFunction('textField', function ($parameters) {
         return \Phalcon\Tag::textField($parameters);
     }, $options), new \Twig_SimpleFunction('passwordField', function ($parameters) {
         return \Phalcon\Tag::passwordField($parameters);
     }, $options), new \Twig_SimpleFunction('hiddenField', function ($parameters) {
         return \Phalcon\Tag::hiddenField($parameters);
     }, $options), new \Twig_SimpleFunction('fileField', function ($parameters) {
         return \Phalcon\Tag::fileField($parameters);
     }, $options), new \Twig_SimpleFunction('checkField', function ($parameters) {
         return \Phalcon\Tag::checkField($parameters);
     }, $options), new \Twig_SimpleFunction('radioField', function ($parameters) {
         return \Phalcon\Tag::radioField($parameters);
     }, $options), new \Twig_SimpleFunction('submitButton', function ($parameters) {
         return \Phalcon\Tag::submitButton($parameters);
     }, $options), new \Twig_SimpleFunction('selectStatic', function ($parameters, $data = array()) {
         return \Phalcon\Tag::selectStatic($parameters, $data);
     }, $options), new \Twig_SimpleFunction('select', function ($parameters, $data = array()) {
         return \Phalcon\Tag::select($parameters, $data);
     }, $options), new \Twig_SimpleFunction('textArea', function ($parameters) {
         return \Phalcon\Tag::textArea($parameters);
     }, $options), new \Twig_SimpleFunction('form', function ($parameters = array()) {
         return \Phalcon\Tag::form($parameters);
     }, $options), new \Twig_SimpleFunction('endForm', function () {
         return \Phalcon\Tag::endForm();
     }, $options), new \Twig_SimpleFunction('getTitle', function () {
         return \Phalcon\Tag::getTitle();
     }, $options), new \Twig_SimpleFunction('stylesheetLink', function ($parameters = null, $local = true) {
         return \Phalcon\Tag::stylesheetLink($parameters, $local);
     }, $options), new \Twig_SimpleFunction('javascriptInclude', function ($parameters = null, $local = true) {
         return \Phalcon\Tag::javascriptInclude($parameters, $local);
     }, $options), new \Twig_SimpleFunction('image', function ($parameters) {
         return \Phalcon\Tag::image($parameters);
     }, $options), new \Twig_SimpleFunction('friendlyTitle', function ($text, $separator = null, $lowercase = true) {
         return \Phalcon\Tag::friendlyTitle($text, $separator, $lowercase);
     }, $options), new \Twig_SimpleFunction('getDocType', function () {
         return \Phalcon\Tag::getDocType();
     }, $options), new \Twig_SimpleFunction('getSecurityToken', function () use($di) {
         return $di->get("security")->getToken();
     }, $options), new \Twig_SimpleFunction('getSecurityTokenKey', function () use($di) {
         return $di->get("security")->getTokenKey();
     }, $options), new \Twig_SimpleFunction('url', function ($route) use($di) {
         return $di->get("url")->get($route);
     }, $options));
     if (!empty($userFunctions)) {
         $functions = array_merge($functions, $userFunctions);
     }
     foreach ($functions as $function) {
         $this->twig->addFunction($function);
     }
 }
Пример #2
0
 /**
  * Registers common function in Twig
  *
  * @param \Phalcon\Mvc\ViewInterface $view
  */
 private function registryFunctions($view)
 {
     $options = array('is_safe' => array('html'));
     $functions = array(new \Twig_SimpleFunction('content', function () use($view) {
         return $view->getContent();
     }, $options), new \Twig_SimpleFunction('partial', function ($partialPath) use($view) {
         return $view->partial($partialPath);
     }, $options), new \Twig_SimpleFunction('linkTo', function ($parameters, $text = null) {
         return \Phalcon\Tag::linkTo($parameters, $text);
     }, $options), new \Twig_SimpleFunction('textField', function ($parameters) {
         return \Phalcon\Tag::textField($parameters);
     }, $options), new \Twig_SimpleFunction('passwordField', function ($parameters) {
         return \Phalcon\Tag::passwordField($parameters);
     }, $options), new \Twig_SimpleFunction('hiddenField', function ($parameters) {
         return \Phalcon\Tag::hiddenField($parameters);
     }, $options), new \Twig_SimpleFunction('fileField', function ($parameters) {
         return \Phalcon\Tag::fileField($parameters);
     }, $options), new \Twig_SimpleFunction('checkField', function ($parameters) {
         return \Phalcon\Tag::checkField($parameters);
     }, $options), new \Twig_SimpleFunction('radioField', function ($parameters) {
         return \Phalcon\Tag::radioField($parameters);
     }, $options), new \Twig_SimpleFunction('submitButton', function ($parameters) {
         return \Phalcon\Tag::submitButton($parameters);
     }, $options), new \Twig_SimpleFunction('selectStatic', function ($parameters, $data = []) {
         return \Phalcon\Tag::selectStatic($parameters, $data);
     }, $options), new \Twig_SimpleFunction('select', function ($parameters, $data = []) {
         return \Phalcon\Tag::select($parameters, $data);
     }, $options), new \Twig_SimpleFunction('textArea', function ($parameters) {
         return \Phalcon\Tag::textArea($parameters);
     }, $options), new \Twig_SimpleFunction('form', function ($parameters = []) {
         return \Phalcon\Tag::form($parameters);
     }, $options), new \Twig_SimpleFunction('endForm', function () {
         return \Phalcon\Tag::endForm();
     }, $options), new \Twig_SimpleFunction('getTitle', function () {
         return \Phalcon\Tag::getTitle();
     }, $options), new \Twig_SimpleFunction('getTitle', function () {
         return \Phalcon\Tag::getTitle();
     }, $options), new \Twig_SimpleFunction('stylesheetLink', function ($parameters = null, $local = true) {
         return \Phalcon\Tag::stylesheetLink($parameters, $local);
     }, $options), new \Twig_SimpleFunction('javascriptInclude', function ($parameters = null, $local = true) {
         return \Phalcon\Tag::javascriptInclude($parameters, $local);
     }, $options), new \Twig_SimpleFunction('image', function ($parameters) {
         return \Phalcon\Tag::image($parameters);
     }, $options), new \Twig_SimpleFunction('friendlyTitle', function ($text, $separator = null, $lowercase = true) {
         return \Phalcon\Tag::friendlyTitle($text, $separator, $lowercase);
     }, $options), new \Twig_SimpleFunction('getDocType', function () {
         return \Phalcon\Tag::getDocType();
     }, $options));
     foreach ($functions as $function) {
         $this->_twig->addFunction($function);
     }
 }
Пример #3
0
 public function testIssue947()
 {
     $di = new Phalcon\DI\FactoryDefault();
     \Phalcon\Tag::setDI($di);
     $html = \Phalcon\Tag::radioField(array('test', 'value' => 1, 'checked' => 'checked'));
     $pos = strpos($html, 'checked="checked"');
     $this->assertTrue($pos !== FALSE);
     $html = \Phalcon\Tag::radioField(array('test', 'value' => 0));
     $pos = strpos($html, 'checked="checked"');
     $this->assertTrue($pos === FALSE);
     \Phalcon\Tag::setDefault("test", "0");
     $html = \Phalcon\Tag::radioField(array('test', 'value' => 0));
     $pos = strpos($html, 'checked="checked"');
     $this->assertTrue($pos !== FALSE);
 }
Пример #4
0
 public static function radioField($parameters)
 {
     return parent::radioField($parameters);
 }
Пример #5
0
 /**
  * Tests radioField with displayTo
  *
  * @author Nikos Dimopoulos <*****@*****.**>
  * @since  2012-09-15
  */
 public function testRadioFieldDisplayToElementNotPresentXHTML()
 {
     \Phalcon\Tag::setDoctype(\Phalcon\Tag::XHTML10_STRICT);
     $options = array('some_field_name', 'class' => 'some_class', 'size' => '10');
     \Phalcon\Tag::displayTo('some_field', 'some_default_value');
     $expected = '<input type="radio" id="some_field_name" name="some_field_name" value="" class="some_class" size="10" />';
     $actual = \Phalcon\Tag::radioField($options);
     \Phalcon\Tag::displayTo('some_field', '');
     \Phalcon\Tag::setDoctype('');
     $this->assertEquals($expected, $actual, sprintf($this->message, 'XHTML radioField with displayTo'));
 }
Пример #6
0
 /**
  * Make a single select widget, if options < 5 it will be expanded into radios by default
  *
  * Required parameters:
  * 'id', 'options' (in array)
  * Optional parameters:
  * 'name', 'class', 'value' (selected value) or other html attributes
  * 'expand' (true or false, by default 'auto')
  * 'useEmpty', 'emptyText' (used in select mode)
  * 'prefix', 'suffix' (used to wrap radios in expanded mode)
  * 'labelOn' ('left' or 'right', by default 'right', used to identify radios in expanded mode)
  *
  * @param array $parameters
  * @return string
  */
 protected static function builtInSingleChoose(array $parameters)
 {
     static::checkRequiredParameters($parameters, ['id', 'options']);
     $options = (array) $parameters['options'];
     $parameters[0] = $id = $parameters['id'];
     $expand = isset($parameters['expand']) ? $parameters['expand'] : 'auto';
     unset($parameters['options'], $parameters['expand']);
     // Expand select into radio buttons
     if ($expand === true || $expand == 'auto' && count($options) < 5) {
         $html = [];
         $i = 0;
         $radioParams = $parameters;
         $labelOn = isset($radioParams['labelOn']) ? $radioParams['labelOn'] : 'right';
         $prefix = isset($radioParams['prefix']) ? $radioParams['prefix'] : '';
         $suffix = isset($radioParams['suffix']) ? $radioParams['suffix'] : '';
         unset($radioParams['expand'], $radioParams['labelOn'], $radioParams['prefix'], $radioParams['suffix']);
         unset($radioParams['options'], $radioParams['useEmpty'], $radioParams['emptyText']);
         $selected = isset($parameters['value']) ? (string) $parameters['value'] : '';
         foreach ($options as $value => $label) {
             $radioParams['id'] = $radioId = $id . '_' . $i;
             $radioParams['value'] = $value;
             if ((string) $value === $selected) {
                 $radioParams['checked'] = 'checked';
             } else {
                 $radioParams['checked'] = null;
             }
             $radio = Tag::radioField($radioParams);
             $labelElement = static::label(['for' => $radioId], $label);
             if ($labelOn == 'right') {
                 $radio .= PHP_EOL . $labelElement;
             } else {
                 $radio = $labelElement . PHP_EOL . $radio;
             }
             ++$i;
             $html[] = $prefix . $radio . $suffix;
         }
         return implode(PHP_EOL, $html);
     }
     return Tag::select($parameters, $options);
 }