private function parseFields() { if (!empty($this->fields)) { foreach ($this->fields as $key => $value) { switch ($value['type']) { case 'text': $obj = Form::text($key); break; case 'long_text': $obj = Form::textarea($key); break; case 'multiple_choice': $obj = Form::checkboxes($key . "[]"); // create a collection of checkboxeseaa foreach ($value['options'] as $o => $v) { $obj->add($o, $v); } break; default: $obj = Form::text($key); } $obj->setLabel($value['label']); $this->add($obj); } } $this->init(); }
function test_generate_checkboxes() { // Having $tags = ['php' => 'PHP', 'python' => 'Python', 'js' => 'JS', 'ruby' => 'Ruby on Rails']; $checked = ['php', 'js']; // Expect $this->assertTemplate('forms/checkboxes', Form::checkboxes('tags', $tags, $checked)); }
/** * test method */ public function testComplexFields() { global $post; query_posts('post_type=post'); the_post(); $creator = new WD_MetaBox_Creator('My meta box title'); update_post_meta($post->ID, 'iname', 'option2'); update_post_meta($post->ID, 'checks', array('check1', 'check3')); $this->assertEquals($this->output('<div class="wd-meta-box"> <input type="hidden" value="" name="iname" /> <div> <input type="radio" value="option1" id="iname1" name="iname" /> </div> <div> <input type="radio" value="option2" id="iname2" name="iname" checked="checked" /> </div> <div> <input type="checkbox" value="check1" id="checks_1" name="checks[]" checked="checked" /> </div> <div> <input type="checkbox" value="check2" id="checks_2" name="checks[]" /> </div> <div> <input type="checkbox" value="check3" id="checks_3" name="checks[]" checked="checked" /> </div> </div> '), $creator->add(Form::radios('iname')->add('option1', false)->add('option2', false))->add(Form::checkboxes('checks[]')->add('check1', false)->add('check2', false)->add('check3', false))->init()->render()); }