static function add_actions() { // Do same actions as file field parent::add_actions(); add_action('wp_ajax_lpr_quiz_question_add', array(__CLASS__, 'quiz_question_add')); add_action('wp_ajax_lpr_quiz_question_remove', array(__CLASS__, 'quiz_question_remove')); }
/** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize($field) { $field = parent::normalize($field); $field = wp_parse_args($field, array('prefix' => '', 'suffix' => '', 'std' => '', 'js_options' => array())); $field['js_options'] = wp_parse_args($field['js_options'], array('range' => 'min', 'value' => $field['std'])); return $field; }
/** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize($field) { $field = parent::normalize($field); $field = wp_parse_args($field, array('flatten' => true, 'query_args' => array(), 'field_type' => 'select')); if ('checkbox_tree' === $field['field_type']) { $field['field_type'] = 'checkbox_list'; $field['flatten'] = false; } switch ($field['field_type']) { case 'checkbox_list': case 'radio_list': $field = wp_parse_args($field, array('collapse' => true)); $field['flatten'] = 'radio_list' === $field['field_type'] ? true : $field['flatten']; $field['multiple'] = 'radio_list' === $field['field_type'] ? false : true; $field = RWMB_Input_Field::normalize($field); break; case 'select_advanced': $field = RWMB_Select_Advanced_Field::normalize($field); $field['flatten'] = true; break; case 'select_tree': $field = RWMB_Select_Field::normalize($field); $field['multiple'] = true; break; case 'select': default: $field = RWMB_Select_Field::normalize($field); break; } return $field; }
/** * Get the attributes for a field * * @param array $field * @param mixed $value * * @return array */ static function get_attributes($field, $value = null) { $attributes = parent::get_attributes($field, $value); $attributes = wp_parse_args($attributes, array('cols' => $field['cols'], 'rows' => $field['rows'], 'maxlength' => $field['maxlength'], 'wrap' => $field['wrap'], 'readonly' => $field['readonly'], 'placeholder' => $field['placeholder'])); $attributes['class'] .= ' large-text'; return $attributes; }
/** * @see Walker::start_el() * * @param string $output Passed by reference. Used to append additional content. * @param object $object Item data object. * @param int $depth Depth of item. * @param int $current_object_id Item ID. * @param array $args */ public function start_el(&$output, $object, $depth = 0, $args = array(), $current_object_id = 0) { $label = $this->db_fields['label']; $id = $this->db_fields['id']; $attributes = RWMB_Field::call('get_attributes', $this->field, $object->{$id}); $output .= sprintf('<li><label><input %s %s>%s</label>', RWMB_Field::render_attributes($attributes), checked(in_array($object->{$id}, $this->meta), 1, false), $object->{$label}); }
/** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize_field($field) { $field = parent::normalize_field($field); $field = wp_parse_args($field, array('cols' => 60, 'rows' => 3, 'maxlength' => false, 'wrap' => false, 'readonly' => false, 'placeholder' => '')); $field['attributes'] = wp_parse_args($field['attributes'], array('cols' => $field['cols'], 'rows' => $field['rows'], 'maxlength' => $field['maxlength'], 'wrap' => $field['wrap'], 'readonly' => $field['readonly'], 'placeholder' => $field['placeholder'])); $field['attributes']['class'] .= ' large-text'; return $field; }
/** * @see Walker::start_el() * * @param string $output Passed by reference. Used to append additional content. * @param object $object Item * @param int $depth Depth of Item. * @param int $current_object_id Item id. * @param array $args */ public function start_el(&$output, $object, $depth = 0, $args = array(), $current_object_id = 0) { $label = $this->db_fields['label']; $id = $this->db_fields['id']; $meta = $this->meta; $indent = str_repeat(' ', $depth * 4); $output .= sprintf('<option value="%s" %s>%s%s</option>', $object->{$id}, selected(in_array($object->{$id}, $meta), 1, false), $indent, RWMB_Field::filter('choice_label', $object->{$label}, $this->field, $object)); }
/** * Normalize parameters for field * * @param array $field * @return array */ static function normalize($field) { $field = parent::normalize($field); $field = wp_parse_args($field, array('raw' => false, 'options' => array())); $field['options'] = wp_parse_args($field['options'], array('editor_class' => 'rwmb-wysiwyg', 'dfw' => true)); // Keep the filter to be compatible with previous versions $field['options'] = apply_filters('rwmb_wysiwyg_settings', $field['options']); return $field; }
/** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize_field($field) { $field = parent::normalize_field($field); $field = wp_parse_args($field, array('datalist' => false, 'readonly' => false)); if ($field['datalist']) { $field['datalist'] = wp_parse_args($field['datalist'], array('id' => $field['id'] . '_list', 'options' => array())); } $field['attributes'] = wp_parse_args($field['attributes'], array('list' => $field['datalist'] ? $field['datalist']['id'] : false, 'readonly' => $field['readonly'])); return $field; }
/** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize_field($field) { if (!$field['clone'] && $field['multiple']) { $field['field_name'] .= '[]'; } $field = parent::normalize_field($field); $field = wp_parse_args($field, array('size' => $field['multiple'] ? 5 : 0)); $field['attributes'] = wp_parse_args($field['attributes'], array('multiple' => $field['multiple'], 'size' => $field['size'])); return $field; }
/** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize_field($field) { $field = parent::normalize_field($field); $field = wp_parse_args($field, array('datalist' => false, 'disabled' => false, 'required' => false, 'readonly' => false)); if ($field['datalist']) { $field['datalist'] = wp_parse_args($field['datalist'], array('id' => $field['id'] . '_list', 'options' => array())); } $field['attributes'] = wp_parse_args($field['attributes'], array('disabled' => $field['disabled'], 'list' => $field['datalist'] ? $field['datalist']['id'] : false, 'readonly' => $field['readonly'], 'required' => $field['required'], 'name' => $field['field_name'], 'class' => "rwmb-{$field['type']}", 'id' => $field['clone'] ? false : $field['id'])); return $field; }
/** * @see Walker::start_el() * * @param string $output Passed by reference. Used to append additional content. * @param object $object Item data object. * @param int $depth Depth of item. * @param int $current_object_id Item ID. * @param array $args */ public function start_el(&$output, $object, $depth = 0, $args = array(), $current_object_id = 0) { $label = $this->db_fields['label']; $id = $this->db_fields['id']; $meta = $this->meta; $field = $this->field; $field_class = RW_Meta_Box::get_class_name($field); $attributes = call_user_func(array($field_class, 'get_attributes'), $field, $object->{$id}); $output .= sprintf('<li><label><input %s %s>%s</label>', RWMB_Field::render_attributes($attributes), checked(in_array($object->{$id}, $meta), 1, false), $object->{$label}); }
/** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize($field) { $field = parent::normalize($field); $field['multiple'] = true; $field['field_name'] = $field['id']; if (!$field['clone']) { $field['field_name'] .= '[]'; } return $field; }
/** * Enqueue scripts for validation. * * @param RW_Meta_Box $object Meta Box object */ public function enqueue($object) { if (empty($object->meta_box['validation'])) { return; } wp_enqueue_script('jquery-validation', RWMB_JS_URL . 'jquery-validation/jquery.validate.min.js', array('jquery'), '1.15.0', true); wp_enqueue_script('jquery-validation-additional-methods', RWMB_JS_URL . 'jquery-validation/additional-methods.min.js', array('jquery-validation'), '1.15.0', true); wp_enqueue_script('rwmb-validate', RWMB_JS_URL . 'validate.js', array('jquery-validation', 'jquery-validation-additional-methods'), RWMB_VER, true); RWMB_Field::localize_script('rwmb-validate', 'rwmbValidate', array('summaryMessage' => esc_html__('Please correct the errors highlighted below and try again.', 'meta-box'))); }
/** * Save meta value * If field is cloneable, value is saved as a single entry in DB * Otherwise value is saved as multiple entries (for backward compatibility) * * TODO: A good way to ALWAYS save values in single entry in DB, while maintaining backward compatibility * * @param $new * @param $old * @param $post_id * @param $field */ static function save($new, $old, $post_id, $field) { if (!$field['clone']) { parent::save($new, $old, $post_id, $field); return; } if (empty($new)) { delete_post_meta($post_id, $field['id']); } else { update_post_meta($post_id, $field['id'], $new); } }
function display_level($options, $parent_id = 0, $active = false) { $id = $this->db_fields['id']; $field = $this->field; $walker = new RWMB_Walker_Select($this->db_fields, $field, $this->meta); $attributes = RWMB_Field::call('get_attributes', $field, $this->meta); $children = $options[$parent_id]; $output = sprintf('<div class="rwmb-select-tree %s" data-parent-id="%s"><select %s>', $active ? '' : 'hidden', $parent_id, RWMB_Field::render_attributes($attributes)); $output .= isset($field['placeholder']) ? "<option value=''>{$field['placeholder']}</option>" : '<option></option>'; $output .= $walker->walk($children, -1); $output .= '</select>'; foreach ($children as $c) { if (isset($options[$c->{$id}])) { $output .= $this->display_level($options, $c->{$id}, in_array($c->{$id}, $this->meta) && $active); } } $output .= '</div>'; return $output; }
/** * Display the value of a field * * @param string $field_id Field ID. Required. * @param array $args Additional arguments. Rarely used. See specific fields for details * @param int|null $post_id Post ID. null for current post. Optional. * @param bool $echo Display field meta value? Default `true` which works in almost all cases. We use `false` for the [rwmb_meta] shortcode * * @return string */ function rwmb_the_value($field_id, $args = array(), $post_id = null, $echo = true) { $args = wp_parse_args($args); $field = RWMB_Helper::find_field($field_id, $post_id); if (!$field) { return ''; } $output = RWMB_Field::call('the_value', $field, $args, $post_id); /** * Allow developers to change the returned value of field * For version < 4.8.2, the filter name was 'rwmb_get_field' * * @param mixed $value Field HTML output * @param array $field Field parameter * @param array $args Additional arguments. Rarely used. See specific fields for details * @param int|null $post_id Post ID. null for current post. Optional. */ $output = apply_filters('rwmb_the_value', $output, $field, $args, $post_id); if ($echo) { echo $output; } return $output; }
/** * Normalize parameters for field * * @param array $field * @return array */ public static function normalize($field) { $field = parent::normalize($field); $field = wp_parse_args($field, array('flatten' => true, 'options' => array())); return $field; }
/** * Standard meta retrieval * * @param int $post_id * @param array $field * @param bool $saved * * @return mixed */ static function meta($post_id, $saved, $field) { $meta = parent::meta($post_id, $saved, $field); return empty($meta) ? array() : (array) $meta; }
/** * Normalize an array of fields * @param array $fields Array of fields * @return array $fields Normalized fields */ public static function normalize_fields($fields) { foreach ($fields as $k => $field) { $field = RWMB_Field::call('normalize', $field); // Allow to add default values for fields $field = apply_filters('rwmb_normalize_field', $field); $field = apply_filters("rwmb_normalize_{$field['type']}_field", $field); $field = apply_filters("rwmb_normalize_{$field['id']}_field", $field); $fields[$k] = $field; } return $fields; }
/** * Get meta value * * @param int $post_id * @param bool $saved * @param array $field * * @return mixed */ static function meta($post_id, $saved, $field) { $field['multiple'] = true; return parent::meta($post_id, $saved, $field); }
/** * Get the field value * The difference between this function and 'meta' function is 'meta' function always returns the escaped value * of the field saved in the database, while this function returns more meaningful value of the field * * @param array $field Field parameters * @param array $args Not used for this field * @param int|null $post_id Post ID. null for current post. Optional. * * @return mixed Array(latitude, longitude, zoom) */ static function get_value($field, $args = array(), $post_id = null) { $value = parent::get_value($field, $args, $post_id); list($latitude, $longitude, $zoom) = explode(',', $value . ',,'); return compact('latitude', 'longitude', 'zoom'); }
/** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize($field) { $field = parent::normalize($field); $field['std'] = $field['std'] ? $field['std'] : __('Click me', 'meta-box'); return $field; }
static function add_actions() { // Do same actions as file field parent::add_actions(); add_action('wp_ajax_lpr_load_question_settings', array(__CLASS__, 'load_question_settings')); }
static function add_actions() { // Do same actions as file field parent::add_actions(); add_action('wp_ajax_lpr_quick_add', array(__CLASS__, 'quick_add')); add_action('wp_ajax_lpr_update_course_curriculum', array(__CLASS__, 'update_course_curriculum')); add_action('wp_ajax_lpr_quick_edit_lesson_quiz_name', array(__CLASS__, 'quick_edit_lesson_quiz_name')); add_action('wp_ajax_lpr_update_section_state', array(__CLASS__, 'update_section_state')); add_action('wp_ajax_lpr_remove_lesson_quiz', array(__CLASS__, 'remove_lesson_quiz')); add_action('save_post', array(__CLASS__, 'update_course_curriculum')); }
/** * Remove clone button * * @param array $field Field parameter * @return string $html */ public static function remove_clone_button($field) { $text = RWMB_Field::filter('remove_clone_button_text', '<i class="dashicons dashicons-minus"></i>', $field); return '<a href="#" class="rwmb-button remove-clone">' . $text . '</a>'; }
/** * Get the attributes for a field * * @param array $field * @param mixed value * * @return array */ static function get_attributes($field, $value = null) { $attributes = parent::get_attributes($field, $value); $attributes = wp_parse_args($attributes, array('list' => $field['datalist'] ? $field['datalist']['id'] : false, 'readonly' => $field['readonly'], 'value' => $value, 'placeholder' => $field['placeholder'])); return $attributes; }
/** * Enqueue scripts and styles * * @return void */ static function admin_enqueue_scripts() { parent::admin_enqueue_scripts(); wp_enqueue_style('rwmb-color', RWMB_CSS_URL . 'color.css', array('wp-color-picker'), RWMB_VER); wp_enqueue_script('rwmb-color', RWMB_JS_URL . 'color.js', array('wp-color-picker'), RWMB_VER, true); // Make sure scripts for new media uploader in WordPress 3.5 is enqueued wp_enqueue_media(); wp_enqueue_script('cruxstore_image', CRUXSTORE_FW_JS . 'cruxstore_image.js', array('jquery', 'underscore'), RWMB_VER, true); wp_localize_script('rwmb-file-background', 'cruxstore_image_lange', array('frameTitle' => esc_html__('Select Image', 'cruxstore'))); }
/** * Get the field value. Return meaningful info of the files. * * @param array $field Field parameters * @param array $args Not used for this field * @param int|null $post_id Post ID. null for current post. Optional. * * @return mixed Full info of uploaded files */ public static function get_value($field, $args = array(), $post_id = null) { $value = parent::get_value($field, $args, $post_id); if (!$field['clone']) { $value = self::call('files_info', $field, $value, $args); } else { $return = array(); foreach ($value as $subvalue) { $return[] = self::call('files_info', $field, $subvalue, $args); } $value = $return; } if (isset($args['limit'])) { $value = array_slice($value, 0, intval($args['limit'])); } return $value; }
static function add_actions() { // Do same actions as file field parent::add_actions(); add_action('wp_ajax_lpr_quick_add', array(__CLASS__, 'quick_add')); add_action('wp_ajax_lpr_update_course_curriculum', array(__CLASS__, 'update_course_curriculum')); add_action('wp_ajax_lpr_quick_edit_lesson_quiz_name', array(__CLASS__, 'quick_edit_lesson_quiz_name')); add_action('wp_ajax_lpr_update_section_state', array(__CLASS__, 'update_section_state')); add_action('wp_ajax_lpr_remove_lesson_quiz', array(__CLASS__, 'remove_lesson_quiz')); add_action('save_post', array(__CLASS__, 'update_course_curriculum')); add_filter('learn_press_loop_section_buttons', array(__CLASS__, 'add_section_buttons')); //add_filter( 'learn_press_after_section_content', array( __CLASS__, 'section_options' ) ); }