function testFieldIdAttrValue() { $group = new CMB_Group_Field('group', 'Group Title', array()); $field1 = new CMB_Text_Field('foo', 'Title', array(1, 2)); $group->add_field($field1); // Standard use of ID attribute $id_attr = $field1->get_the_id_attr(); $this->assertEquals($id_attr, 'group-cmb-group-0-foo-cmb-field-0'); // Using append $id_attr = $field1->get_the_id_attr('bar'); $this->assertEquals($id_attr, 'group-cmb-group-0-foo-cmb-field-0-bar'); // Test repeatable group. $group->field_index = 1; $id_attr = $field1->get_the_id_attr(); $this->assertEquals($id_attr, 'group-cmb-group-1-foo-cmb-field-0'); $group->field_index = 0; // Unset // Test repeatable field within group. $field1->field_index = 1; $id_attr = $field1->get_the_id_attr(); $this->assertEquals($id_attr, 'group-cmb-group-0-foo-cmb-field-1'); $field1->field_index = 0; // Unset // Test more than 10 fields // See https://github.com/humanmade/Custom-Meta-Boxes/pull/164 $group->field_index = 12; $id_attr = $field1->get_the_id_attr(); $this->assertEquals($id_attr, 'group-cmb-group-12-foo-cmb-field-0'); $group->field_index = 0; // Unset }
function testParseSaveValues() { $group = new CMB_Group_Field('group', 'Group Title', array()); $field = new CMB_Text_Field('foo', 'Title', array()); $group->add_field($field); $group->values = $values = array('foo' => array(1, 2)); $group->parse_save_values(); error_log(print_r($group->get_values(), true)); $this->assertEquals($group->get_values(), $values); }
function testFieldIdAttrValue() { $group = new CMB_Group_Field('group', 'Group Title', array()); $field1 = new CMB_Text_Field('foo', 'Title', array(1, 2)); $group->add_field($field1); // Standard use of ID attribute $id_attr = $field1->get_the_id_attr(); $this->assertEquals($id_attr, 'group-cmb-group-0-foo-cmb-field-0'); // Using append $id_attr = $field1->get_the_id_attr('bar'); $this->assertEquals($id_attr, 'group-cmb-group-0-foo-cmb-field-0-bar'); // Test repeatable group. $group->field_index = 1; $id_attr = $field1->get_the_id_attr(); $this->assertEquals($id_attr, 'group-cmb-group-1-foo-cmb-field-0'); $group->field_index = 0; // Unset // Test repeatable field within group. $field1->field_index = 1; $id_attr = $field1->get_the_id_attr(); $this->assertEquals($id_attr, 'group-cmb-group-0-foo-cmb-field-1'); $field1->field_index = 0; // Unset }
public function display() { global $post; $meta = $this->values; if (!$meta && !$this->args['repeatable']) { $meta = array(''); } $field = $this->args; foreach ($meta as $value) { $this->value = $value; echo '<div class="field-item">'; $this->html(); echo '</div>'; ?> <?php } if ($this->args['repeatable']) { $this->value = ''; echo '<div class="field-item hidden">'; $this->html(); echo '</div>'; ?> <p> <a href="#" class="button repeat-field">Add New</a> </p> <?php } if (!self::$added_js) { ?> <script type="text/javascript"> </script> <?php self::$added_js = true; } }