Пример #1
0
 /**
  * @depends testFactory
  */
 public function testEscapedQuotes()
 {
     // correct
     $field = Carbon_Field::factory('text', 'fancy_name');
     // set_value must not alter the data
     $field->set_value('Lorem \\\' ipsum');
     $this->assertEquals($field->get_value(), 'Lorem \\\' ipsum');
     // set_value must strip slashes
     $field->set_value_from_input(array($field->get_name() => 'Lorem \\\' ipsum'));
     $this->assertEquals($field->get_value(), 'Lorem \' ipsum');
 }
 /**
  * @group slow
  */
 public function testSaveGroupAndCheckLoad()
 {
     global $wpdb;
     // prepare container
     $container = new Carbon_Container_ThemeOptions('Test Container');
     $container->setup();
     $container->add_fields(array(Carbon_Field::factory('complex', 'group')->add_fields(array(Carbon_Field::factory('text', 'field1'), Carbon_Field::factory('text', 'field2')), 'group1')->add_fields(array(Carbon_Field::factory('text', 'field3'), Carbon_Field::factory('text', 'field4')), 'group2')));
     // Prepare POST
     $_POST = array('_group' => array('0' => array('group' => '_group1', '_field1' => 'lorem', '_field2' => 'ipsum', '_field3' => 'dolor', '_field4' => 'sit'), '1' => array('group' => '_group2', '_field1' => 'lorem', '_field2' => 'ipsum', '_field3' => 'dolor', '_field4' => 'sit')));
     // execute
     $container->save(123);
     $container->load();
     // check field
     $fields = $container->get_fields();
     $group_fields = $fields[0]->get_values();
     $expected_values = array('_group1' => array(array('_field1', 'lorem'), array('_field2', 'ipsum')), '_group2' => array(array('_field3', 'dolor'), array('_field4', 'sit')));
     $index = 0;
     $this->assertCount(2, $group_fields);
     foreach ($expected_values as $exp_group => $exp_group_values) {
         $group_values = $group_fields[$index];
         $this->assertEquals($group_values['type'], $exp_group);
         unset($group_values['type']);
         foreach ($exp_group_values as $subindex => $expected) {
             $this->assertEquals($group_values[$subindex]->get_name(), $expected[0]);
             $this->assertEquals($group_values[$subindex]->get_value(), $expected[1]);
         }
         $index++;
     }
     // cleanup
     $container->detach();
 }
function rb_register_resume_meta_boxes()
{
    Carbon_Container::factory('custom_fields', __('Resume Builder'))->show_on_post_type('rb_resume')->add_fields(array(Carbon_Field::factory('separator', 'rb_resume_shortcode_title', __('Resume Shortcodes', 'resume-builder')), Carbon_Field::factory('html', 'rb_resume_shortcode')->set_html(rb_get_resume_shortcode_help_text()), Carbon_Field::factory('separator', 'rb_resume_sections_title', __('The Resume Builder', 'resume-builder')), Carbon_Field::factory('complex', 'rb_resume_sections', __('Resume Sections', 'resume-builder'))->setup_labels(array('singular_name' => __('Resume Section', 'resume-builder'), 'plural_name' => __('Resume Sections', 'resume-builder')))->add_fields('introduction_block', array(Carbon_Field::factory('text', 'sectiontitle', __('Introduction Title', 'resume-builder')), Carbon_Field::factory('text', 'sectionsubtitle', __('Introduction Subtitle', 'resume-builder')), Carbon_Field::factory('attachment', 'sectionimage', __('Introduction Image', 'resume-builder'))->help_text(__('The image should be sized to 237 x 303 pixels.', 'resume-builder')), Carbon_Field::factory('rich_text', 'sectiontext', __('Introduction Text', 'resume-builder')), Carbon_Field::factory('complex', 'sectionbuttons', __('Introduction Buttons', 'resume-builder'))->setup_labels(array('singular_name' => __('Button', 'resume-builder'), 'plural_name' => __('Buttons', 'resume-builder')))->add_fields(array(Carbon_Field::factory('text', 'label', __('Button Label', 'resume-builder'))->set_required(true), Carbon_Field::factory('text', 'link', __('Button Link', 'resume-builder'))->set_required(true), Carbon_Field::factory('select', 'type', __('Button Style', 'resume-builder'))->set_required(true)->add_options(array('filled' => __('Filled', 'resume-builder'), 'open' => __('Open', 'resume-builder')))))))->add_fields('default_block', array(Carbon_Field::factory('text', 'sectiontitle', __('Section Title', 'resume-builder')), Carbon_Field::factory('complex', 'sectioncontent', __('Section Content', 'resume-builder'))->setup_labels(array('singular_name' => __('Subsection', 'resume-builder'), 'plural_name' => __('Subsections', 'resume-builder')))->add_fields('text_block', array(Carbon_Field::factory('rich_text', 'text', __('Text', 'resume-builder'))->set_required(true)))->add_fields('detailed_row', array(Carbon_Field::factory('text', 'rowtitle', __('Row Title', 'resume-builder')), Carbon_Field::factory('text', 'rowsubtitle', __('Row Subtitle', 'resume-builder')), Carbon_Field::factory('text', 'rowsidetext', __('Row Side Text', 'resume-builder')), Carbon_Field::factory('rich_text', 'rowtext', __('Row Text', 'resume-builder')))))), Carbon_Field::factory('separator', 'rb_resume_widget', __('Resume Widgets', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_title', __('Contact Info Title', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_email', __('Email', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_phone', __('Phone', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_website', __('Website', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_address', __('Address', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_skills_title', __('Skills Title', 'resume-builder')), Carbon_Field::factory('complex', 'rb_resume_widget_skills', __('Skills', 'resume-builder'))->setup_labels(array('singular_name' => __('Skill', 'resume-builder'), 'plural_name' => __('Skills', 'resume-builder')))->add_fields(array(Carbon_Field::factory('text', 'title', __('Title', 'resume-builder')), Carbon_Field::factory('select', 'rating', __('Star Rating', 'resume-builder'))->add_options(rb_generate_rating()), Carbon_Field::factory('textarea', 'text', __('Description', 'resume-builder'))))));
}