/** * 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); } }
/** * 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); } }
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); }
public static function radioField($parameters) { return parent::radioField($parameters); }
/** * 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')); }
/** * 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); }