Exemplo n.º 1
0
 /**
  * Determines if a file has a valid image extension
  * @since  1.0.0
  * @param  string $file File url
  * @return bool         Whether file has a valid image extension
  */
 public static function is_valid_img_ext($file)
 {
     $file_ext = self::get_file_ext($file);
     self::$valid = empty(self::$valid) ? (array) apply_filters('cpmb_valid_img_types', array('jpg', 'jpeg', 'png', 'gif', 'ico', 'icon')) : self::$valid;
     return $file_ext && in_array($file_ext, self::$valid);
 }
Exemplo n.º 2
0
 /**
  * Loops through and displays fields
  * @since  1.0.0
  * @param  array  $meta_box    Metabox config array
  * @param  int    $object_id   Object ID
  * @param  string $object_type Type of object being saved. (e.g., post, user, or comment)
  */
 public static function show_form($meta_box, $object_id = 0, $object_type = '')
 {
     // Set/get type
     $object_type = self::set_object_type($object_type ? $object_type : self::set_mb_type($meta_box));
     // Set/get ID
     $object_id = self::set_object_id($object_id ? $object_id : self::get_object_id());
     // get box types
     $types = cpmb_Meta_Box_types::get();
     // Use nonce for verification
     echo "\n<!-- Begin CPMB Fields -->\n";
     wp_nonce_field(self::nonce(), 'wp_meta_box_nonce', false, true);
     do_action('cpmb_before_table', $meta_box, $object_id, $object_type);
     echo '<div class="cpmb_metabox cpmb-table cpmb-clearfix">';
     foreach ($meta_box['fields'] as $field) {
         if (isset($field['on_front']) && $field['on_front'] == false) {
             continue;
         }
         self::$field =& $field;
         // Set up blank or default values for empty ones
         if (!isset($field['name'])) {
             $field['name'] = '';
         }
         if (!isset($field['desc'])) {
             $field['desc'] = '';
         }
         if (!isset($field['std'])) {
             $field['std'] = '';
         }
         // filter default value
         $field['std'] = apply_filters('cpmb_std_filter', $field['std'], $field, $object_id, $object_type);
         if ('file' == $field['type'] && !isset($field['allow'])) {
             $field['allow'] = array('url', 'attachment');
         }
         if ('file' == $field['type'] && !isset($field['save_id'])) {
             $field['save_id'] = false;
         }
         if ('multicheck' == $field['type']) {
             $field['multiple'] = true;
         }
         // Allow an override for the field's value
         // (assuming no one would want to save 'cpmb_override_val' as a value)
         $meta = apply_filters('cpmb_override_meta_value', 'cpmb_override_val', $object_id, $field, $object_type);
         // If no override, get our meta
         if ($meta === 'cpmb_override_val') {
             $meta = get_metadata($object_type, $object_id, $field['id'], 'multicheck' != $field['type']);
         }
         $repeat = isset($field['repeatable']) && $field['repeatable'];
         $repeatclass = $repeat ? ' cpmb-repeat' : '';
         $repeatmethod = $repeat ? '_repeat' : '';
         $class = '';
         if (isset($more_field)) {
             $class = ' cpmb-hide-field';
         }
         if ($field['type'] == "more_fields") {
             $more_field = '';
         }
         echo '<div class="cpmb-type-' . sanitize_html_class($field['type']) . ' cpmb_id_' . sanitize_html_class($field['id']) . $repeatclass . ' cpmb-row cpmb-clearfix' . $class . ' ">';
         if ($field['type'] == "title" || $field['type'] == "more_fields") {
             echo '<div class="cpmb-col">';
         } else {
             if (isset($meta_box['show_names']) && $meta_box['show_names'] == true) {
                 echo '<div class="cpmb-col cpmb-field-label"><label for="', $field['id'], '">', $field['name'], '</label></div>';
             } else {
                 echo '<label style="display:none;" for="', $field['id'], '">', $field['name'], '</label>';
             }
             echo '<div class="cpmb-col">';
         }
         echo empty($field['before']) ? '' : $field['before'];
         call_user_func(array($types, $field['type'] . $repeatmethod), $field, $meta, $object_id, $object_type);
         echo empty($field['after']) ? '' : $field['after'];
         echo '</div></div>';
     }
     echo '</div>';
     do_action('cpmb_after_table', $meta_box, $object_id, $object_type);
     echo "\n<!-- End CPMB Fields -->\n";
 }