/** * Constructor. * * Available options: * * * label_separator: The separator to use between the input checkbox and the label * * class: The class to use for the main <ul> tag * * separator: The separator to use between each input checkbox * * formatter: A callable to call to format the checkbox choices * The formatter callable receives the widget and the array of inputs as arguments * * template: The template to use when grouping option in groups (%group% %options%) * * @param array $options An array of options * @param array $attributes An array of default HTML attributes * * @see sfWidgetFormChoiceBase */ protected function configure($options = array(), $attributes = array()) { parent::configure($options, $attributes); $this->addOption('choices', self::getStatesForWidget()); $this->addOption('class', ''); $this->addOption('all_checkbox', self::getAllCheckBox()); $this->addOption('label_separator', ' '); $this->addOption('separator', "\n"); $this->addOption('formatter', array($this, 'formatter')); $this->addOption('template', '%group% %options%'); }
public function getStylesheets() { $styleSheets = parent::getStylesheets(); $styleSheets[plugin_web_path('orangehrmCorePlugin', 'css/ohrmWidgetCheckboxGroup.css')] = 'all'; return $styleSheets; }
function choice_callable() { return array(1, 2, 3); } $w = new sfWidgetFormSelectCheckbox(array('choices' => new sfCallable('choice_callable'))); $dom->loadHTML($w->render('foo')); $css = new sfDomCssSelector($dom); $t->is(count($css->matchAll('input[type="checkbox"]')->getNodes()), 3, '->render() accepts a sfCallable as a choices option'); // choices are translated $t->diag('choices are translated'); $ws = new sfWidgetFormSchema(); $ws->addFormFormatter('stub', new FormFormatterStub()); $ws->setFormFormatterName('stub'); $w = new sfWidgetFormSelectCheckbox(array('choices' => array('foo' => 'bar', 'foobar' => 'foo'), 'separator' => '')); $w->setParent($ws); $output = '<ul class="checkbox_list">' . '<li><input name="foo[]" type="checkbox" value="foo" id="foo_foo" /> <label for="foo_foo">translation[bar]</label></li>' . '<li><input name="foo[]" type="checkbox" value="foobar" id="foo_foobar" /> <label for="foo_foobar">translation[foo]</label></li>' . '</ul>'; $t->is($w->render('foo'), $output, '->render() translates the options'); // choices are escaped $t->diag('choices are escaped'); $w = new sfWidgetFormSelectCheckbox(array('choices' => array('<b>Hello world</b>'))); $t->is($w->render('foo'), '<ul class="checkbox_list"><li><input name="foo[]" type="checkbox" value="0" id="foo_0" /> <label for="foo_0"><b>Hello world</b></label></li></ul>', '->render() escapes the choices'); // __clone() $t->diag('__clone()'); $w = new sfWidgetFormSelectCheckbox(array('choices' => new sfCallable(array($w, 'foo')))); $w1 = clone $w; $callable = $w1->getOption('choices')->getCallable(); $t->is(spl_object_hash($callable[0]), spl_object_hash($w1), '__clone() changes the choices is a callable and the object is an instance of the current object'); $w = new sfWidgetFormSelectCheckbox(array('choices' => new sfCallable(array($a = new stdClass(), 'foo')))); $w1 = clone $w; $callable = $w1->getOption('choices')->getCallable(); $t->is(spl_object_hash($callable[0]), spl_object_hash($a), '__clone() changes nothing if the choices is a callable and the object is not an instance of the current object');
protected function configure($options = array(), $attributes = array()) { parent::configure($options, $attributes); }
$t->is($w->render('foo', array('foo', 'foobar')), $output, '->render() has support for groups'); $w->setOption('choices', array('foo' => array('foo' => 'bar', 'bar' => 'foo'))); $output = 'foo <ul class="checkbox_list"><li><input name="foo[]" type="checkbox" value="foo" id="foo_foo" /> <label for="foo_foo">bar</label></li> <li><input name="foo[]" type="checkbox" value="bar" id="foo_bar" checked="checked" /> <label for="foo_bar">foo</label></li></ul>'; $t->is($w->render('foo', array('bar')), $output, '->render() accepts a single group'); try { $w = new sfWidgetFormSelectCheckbox(); $t->fail('__construct() throws an RuntimeException if you don\'t pass a choices option'); } catch (RuntimeException $e) { $t->pass('__construct() throws an RuntimeException if you don\'t pass a choices option'); } // choices as a callable $t->diag('choices as a callable'); function choice_callable() { return array(1, 2, 3); } $w = new sfWidgetFormSelectCheckbox(array('choices' => new sfCallable('choice_callable'))); $dom->loadHTML($w->render('foo')); $css = new sfDomCssSelector($dom); $t->is(count($css->matchAll('input[type="checkbox"]')->getNodes()), 3, '->render() accepts a sfCallable as a choices option'); // __clone() $t->diag('__clone()'); $w = new sfWidgetFormSelectCheckbox(array('choices' => new sfCallable(array($w, 'foo')))); $w1 = clone $w; $callable = $w1->getOption('choices')->getCallable(); $t->is(spl_object_hash($callable[0]), spl_object_hash($w1), '__clone() changes the choices is a callable and the object is an instance of the current object'); $w = new sfWidgetFormSelectCheckbox(array('choices' => new sfCallable(array($a = new stdClass(), 'foo')))); $w1 = clone $w; $callable = $w1->getOption('choices')->getCallable(); $t->is(spl_object_hash($callable[0]), spl_object_hash($a), '__clone() changes nothing if the choices is a callable and the object is not an instance of the current object');
public function getStylesheets() { $styleSheets = parent::getStylesheets(); $styleSheets['/orangehrmCorePlugin/css/ohrmWidgetCheckboxGroup.css'] = 'all'; return $styleSheets; }
$t->pass('__construct() throws an RuntimeException if you don\'t pass a choices option'); } // choices as a callable $t->diag('choices as a callable'); function choice_callable() { return array(1, 2, 3); } $w = new sfWidgetFormSelectCheckbox(array('choices' => new sfCallable('choice_callable'))); $dom->loadHTML($w->render('foo')); $css = new sfDomCssSelector($dom); $t->is(count($css->matchAll('input[type="checkbox"]')->getNodes()), 3, '->render() accepts a sfCallable as a choices option'); // choices are translated $t->diag('choices are translated'); $ws = new sfWidgetFormSchema(); $ws->addFormFormatter('stub', new FormFormatterStub()); $ws->setFormFormatterName('stub'); $w = new sfWidgetFormSelectCheckbox(array('choices' => array('foo' => 'bar', 'foobar' => 'foo'), 'separator' => '')); $w->setParent($ws); $output = '<ul class="checkbox_list">' . '<li><input name="foo[]" type="checkbox" value="foo" id="foo_foo" /> <label for="foo_foo">translation[bar]</label></li>' . '<li><input name="foo[]" type="checkbox" value="foobar" id="foo_foobar" /> <label for="foo_foobar">translation[foo]</label></li>' . '</ul>'; $t->is($w->render('foo'), $output, '->render() translates the options'); // __clone() $t->diag('__clone()'); $w = new sfWidgetFormSelectCheckbox(array('choices' => new sfCallable(array($w, 'foo')))); $w1 = clone $w; $callable = $w1->getOption('choices')->getCallable(); $t->is(spl_object_hash($callable[0]), spl_object_hash($w1), '__clone() changes the choices is a callable and the object is an instance of the current object'); $w = new sfWidgetFormSelectCheckbox(array('choices' => new sfCallable(array($a = new stdClass(), 'foo')))); $w1 = clone $w; $callable = $w1->getOption('choices')->getCallable(); $t->is(spl_object_hash($callable[0]), spl_object_hash($a), '__clone() changes nothing if the choices is a callable and the object is not an instance of the current object');
/** * Constructor. * * Available options: * * * dynamic_attributes: Attributs HTML à rajouter à partir du modèle. C'est un array(attribute_name => method) * * @see sfWidgetFormSelectCheckbox */ protected function configure($options = array(), $attributes = array()) { $this->addOption('dynamic_attributes', array()); parent::configure($options, $attributes); }