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'));
 }
Exemplo n.º 2
0
 /**
  * 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;
 }
Exemplo n.º 3
0
 /**
  * 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;
 }
Exemplo n.º 4
0
 /**
  * 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;
 }
Exemplo n.º 5
0
 /**
  * @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});
 }
Exemplo n.º 6
0
 /**
  * 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;
 }
Exemplo n.º 7
0
 /**
  * @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('&nbsp;', $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));
 }
Exemplo n.º 8
0
 /**
  * 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;
 }
Exemplo n.º 9
0
 /**
  * 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;
 }
Exemplo n.º 10
0
 /**
  * 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;
 }
Exemplo n.º 11
0
 /**
  * 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});
 }
Exemplo n.º 13
0
 /**
  * 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;
 }
Exemplo n.º 14
0
 /**
  * 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')));
 }
Exemplo n.º 15
0
 /**
  * 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);
     }
 }
Exemplo n.º 16
0
 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;
 }
Exemplo n.º 17
0
 /**
  * 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;
 }
Exemplo n.º 18
0
 /**
  * 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;
 }
Exemplo n.º 19
0
 /**
  * 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;
 }
Exemplo n.º 20
0
 /**
  * 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;
 }
Exemplo n.º 21
0
 /**
  * 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);
 }
Exemplo n.º 22
0
 /**
  * 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');
 }
Exemplo n.º 23
0
 /**
  * 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;
 }
Exemplo n.º 24
0
 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'));
 }
Exemplo n.º 26
0
 /**
  * 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>';
 }
Exemplo n.º 27
0
 /**
  * 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;
 }
Exemplo n.º 28
0
 /**
  * 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')));
 }
Exemplo n.º 29
0
 /**
  * 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' ) );
 }