/** * to_json() * * You can use this method to modify the field properties that are added to the JSON object. * The JSON object is used by the Backbone Model and the Underscore template. * * @param bool $load Should the value be loaded from the database or use the value from the current instance. * @return array */ function to_json($load) { $field_data = parent::to_json($load); // do not delete $field_data = array_merge($field_data, array('example_property' => $this->example_property)); return $field_data; }
function init() { $this->labels = array('singular_name' => __('Entry', 'crb'), 'plural_name' => __('Entries', 'crb')); if (defined('WP_ADMIN') && WP_ADMIN) { wp_enqueue_script('jquery-ui-sortable'); } Carbon_Field::init(); }
/** * @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'); }
function delete_values(Carbon_Field $field) { $field_name = $field->get_name(); foreach ($this->store_data as $key => $value) { if (strpos($key, $field_name) === 0) { unset($this->store_data[$key]); } } }
/** * @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 delete_values(Carbon_Field $field) { global $wpdb; $group_names = $field->get_group_names(); $field_name = $field->get_name(); $meta_key_constraint = '`meta_key` LIKE "' . $field_name . implode('-%" OR `meta_key` LIKE "' . $field_name, $group_names) . '-%"'; return $wpdb->query(' DELETE FROM ' . $wpdb->usermeta . ' WHERE (' . $meta_key_constraint . ') AND `user_id`="' . intval($this->user_id) . '" '); }
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')))))); }
function get_label() { $label = parent::get_label(); return '<h3 class="title carbon-separator">' . $label . '</h3>'; }
function to_json($load) { $field_data = parent::to_json($load); $field_data = array_merge($field_data, array('html' => $this->field_html)); return $field_data; }