PATH:
home
/
lab2454c
/
adenbic.com
/
wp-content
/
plugins
/
TemplatemelaMetaBox
/
inc
/
fields
<?php // Prevent loading this file directly defined( 'ABSPATH' ) || exit; if ( !class_exists( 'RWMB_Select_Field' ) ) { class RWMB_Select_Field extends RWMB_Field { /** * Enqueue scripts and styles * * @return void */ static function admin_enqueue_scripts() { wp_enqueue_style( 'rwmb-select', RWMB_CSS_URL . 'select.css', array(), RWMB_VER ); } /** * Get field HTML * * @param mixed $meta * @param array $field * * @return string */ static function html( $meta, $field ) { $html = sprintf( '<select class="rwmb-select" name="%s" id="%s" size="%s"%s>', $field['field_name'], $field['id'], $field['size'], $field['multiple'] ? ' multiple="multiple"' : '' ); $html .= self::options_html( $field, $meta ); $html .= '</select>'; return $html; } /** * Get 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) * * @see "save" method for better understanding * * TODO: A good way to ALWAYS save values in single entry in DB, while maintaining backward compatibility * * @param $post_id * @param $saved * @param $field * * @return array */ static function meta( $post_id, $saved, $field ) { $single = $field['clone'] || !$field['multiple']; $meta = get_post_meta( $post_id, $field['id'], $single ); $meta = ( !$saved && '' === $meta || array() === $meta ) ? $field['std'] : $meta; $meta = array_map( 'esc_attr', (array) $meta ); return $meta; } /** * 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 ); } /** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize_field( $field ) { $field = wp_parse_args( $field, array( 'desc' => '', 'name' => $field['id'], 'size' => $field['multiple'] ? 5 : 0, 'placeholder' => '', ) ); if ( !$field['clone'] && $field['multiple'] ) $field['field_name'] .= '[]'; return $field; } /** * Creates html for options * * @param array $field * @param mixed $meta * * @return array */ static function options_html( $field, $meta ) { $html = ''; if ( $field['placeholder'] ) $html = 'select' == $field['type'] ? "<option value=''>{$field['placeholder']}</option>" : '<option></option>'; $option = '<option value="%s"%s>%s</option>'; foreach ( $field['options'] as $value => $label ) { $html .= sprintf( $option, $value, selected( in_array( $value, (array)$meta ), true, false ), $label ); } return $html; } } }
[-] image-select.php
[edit]
[-] select-advanced.php
[edit]
[-] image-advanced.php
[edit]
[-] checkbox-list.php
[edit]
[-] slider.php
[edit]
[-] hidden.php
[edit]
[-] range.php
[edit]
[+]
..
[-] email.php
[edit]
[-] file-input.php
[edit]
[-] button.php
[edit]
[-] password.php
[edit]
[-] taxonomy-advanced.php
[edit]
[-] post.php
[edit]
[-] number.php
[edit]
[-] datetime.php
[edit]
[-] checkbox.php
[edit]
[-] thickbox-image.php
[edit]
[-] color.php
[edit]
[-] select.php
[edit]
[-] plupload-image.php
[edit]
[-] url.php
[edit]
[-] file.php
[edit]
[-] file-advanced.php
[edit]
[-] textarea.php
[edit]
[-] taxonomy.php
[edit]
[-] oembed.php
[edit]
[-] radio.php
[edit]
[-] time.php
[edit]
[-] fieldset-text.php
[edit]
[-] divider.php
[edit]
[-] date.php
[edit]
[-] map.php
[edit]
[-] text-list.php
[edit]
[-] wysiwyg.php
[edit]
[-] text.php
[edit]
[-] heading.php
[edit]
[-] image.php
[edit]