Example #1
0
 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());
    }