/**
  * Displays form markup
  * @since  0.1.3
  * @param  int  $term_id Term ID
  */
 public function display_form($term_id)
 {
     if (!class_exists('CMB2')) {
         return;
     }
     $this->do_override_filters($term_id);
     $object_id = $this->id($term_id);
     $cmb = cmb2_get_metabox($this->metabox, $object_id);
     // if passing a metabox ID, and that ID was not found
     if (!$cmb) {
         return;
     }
     // Hard-code object type
     $cmb->object_type('options-page');
     // Enqueue JS/CSS
     if ($cmb->prop('cmb_styles')) {
         CMB2_hookup::enqueue_cmb_css();
     }
     CMB2_hookup::enqueue_cmb_js();
     // Add object id to the form for easy access
     printf('<input type="hidden" name="term_opt_name" value="%s">', $object_id);
     printf('<input type="hidden" name="object_id" value="%s">', $object_id);
     // Show cmb form
     $cmb->show_form();
 }
Ejemplo n.º 2
0
/**
 * Display a metabox form & save it on submission
 * @since  1.0.0
 * @param  mixed   $meta_box  Metabox config array or Metabox ID
 * @param  int     $object_id Object ID
 * @param  array   $args      Optional arguments array
 */
function cmb2_print_metabox_form($meta_box, $object_id = 0, $args = array())
{
    $object_id = $object_id ? $object_id : get_the_ID();
    $cmb = cmb2_get_metabox($meta_box, $object_id);
    // if passing a metabox ID, and that ID was not found
    if (!$cmb) {
        return;
    }
    $args = wp_parse_args($args, array('form_format' => '<form class="cmb-form" method="post" id="%1$s" enctype="multipart/form-data" encoding="multipart/form-data"><input type="hidden" name="object_id" value="%2$s">%3$s<input type="submit" name="submit-cmb" value="%4$s" class="button-primary"></form>', 'save_button' => __('Save', 'cmb2'), 'object_type' => $cmb->mb_object_type(), 'cmb_styles' => $cmb->prop('cmb_styles'), 'enqueue_js' => $cmb->prop('enqueue_js')));
    // Set object type explicitly (rather than trying to guess from context)
    $cmb->object_type($args['object_type']);
    // Save the metabox if it's been submitted
    // check permissions
    // @todo more hardening?
    if ($cmb->prop('save_fields') && isset($_POST['submit-cmb'], $_POST['object_id'], $_POST[$cmb->nonce()]) && wp_verify_nonce($_POST[$cmb->nonce()], $cmb->nonce()) && $object_id && $_POST['object_id'] == $object_id) {
        $cmb->save_fields($object_id, $cmb->object_type(), $_POST);
    }
    // Enqueue JS/CSS
    if ($args['cmb_styles']) {
        CMB2_hookup::enqueue_cmb_css();
    }
    if ($args['enqueue_js']) {
        CMB2_hookup::enqueue_cmb_js();
    }
    $form_format = apply_filters('cmb2_get_metabox_form_format', $args['form_format'], $object_id, $cmb);
    $format_parts = explode('%3$s', $form_format);
    // Show cmb form
    printf($format_parts[0], $cmb->cmb_id, $object_id);
    $cmb->show_form();
    if (isset($format_parts[1]) && $format_parts[1]) {
        printf(str_ireplace('%4$s', '%1$s', $format_parts[1]), $args['save_button']);
    }
}
Ejemplo n.º 3
0
 /**
  * Registers scripts for CMB2
  * @since  2.0.7
  */
 protected static function register_js()
 {
     if (self::$js_registration_done) {
         return;
     }
     $hook = is_admin() ? 'admin_footer' : 'wp_footer';
     add_action($hook, array('CMB2_JS', 'enqueue'), 8);
     self::$js_registration_done = true;
 }
Ejemplo n.º 4
0
 /**
  * Includes CMB JS
  * @since  2.0.0
  */
 public static function enqueue_cmb_js()
 {
     CMB2_hookup::register_scripts();
     wp_enqueue_media();
     return wp_enqueue_script('cmb2-scripts');
 }
Ejemplo n.º 5
0
 /**
  * Registers scripts and styles for CMB2
  * @since  1.0.0
  */
 public static function register_scripts()
 {
     if (self::$registration_done) {
         return;
     }
     // Only use minified files if SCRIPT_DEBUG is off
     $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     if (!is_admin()) {
         // we need to register colorpicker on the front-end
         wp_register_script('iris', admin_url('js/iris.min.js'), array('jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch'), CMB2_VERSION);
         wp_register_script('wp-color-picker', admin_url('js/color-picker.min.js'), array('iris'), CMB2_VERSION);
         wp_localize_script('wp-color-picker', 'wpColorPickerL10n', array('clear' => __('Clear', 'cmb2'), 'defaultString' => __('Default', 'cmb2'), 'pick' => __('Select Color', 'cmb2'), 'current' => __('Current Color', 'cmb2')));
     }
     wp_register_script('jquery-ui-datetimepicker', cmb2_utils()->url('js/jquery-ui-timepicker-addon.min.js'), array('jquery-ui-slider'), CMB2_VERSION);
     // scripts required for cmb
     $scripts = array('jquery', 'jquery-ui-core', 'jquery-ui-datepicker', 'jquery-ui-datetimepicker', 'wp-color-picker');
     // styles required for cmb
     $styles = array('wp-color-picker');
     wp_register_script('cmb2-scripts', cmb2_utils()->url("js/cmb2{$min}.js"), $scripts, CMB2_VERSION);
     wp_localize_script('cmb2-scripts', 'cmb2_l10', apply_filters('cmb2_localized_data', array('ajax_nonce' => wp_create_nonce('ajax_nonce'), 'ajaxurl' => admin_url('/admin-ajax.php'), 'script_debug' => defined('SCRIPT_DEBUG') && SCRIPT_DEBUG, 'up_arrow_class' => 'dashicons dashicons-arrow-up-alt2', 'down_arrow_class' => 'dashicons dashicons-arrow-down-alt2', 'defaults' => array('color_picker' => false, 'date_picker' => array('changeMonth' => true, 'changeYear' => true, 'dateFormat' => _x('mm/dd/yy', 'Valid formatDate string for jquery-ui datepicker', 'cmb2'), 'dayNames' => explode(',', __('Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday', 'cmb2')), 'dayNamesMin' => explode(',', __('Su, Mo, Tu, We, Th, Fr, Sa', 'cmb2')), 'dayNamesShort' => explode(',', __('Sun, Mon, Tue, Wed, Thu, Fri, Sat', 'cmb2')), 'monthNames' => explode(',', __('January, February, March, April, May, June, July, August, September, October, November, December', 'cmb2')), 'monthNamesShort' => explode(',', __('Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec', 'cmb2')), 'nextText' => __('Next', 'cmb2'), 'prevText' => __('Prev', 'cmb2'), 'currentText' => __('Today', 'cmb2'), 'closeText' => __('Done', 'cmb2'), 'clearText' => __('Clear', 'cmb2')), 'time_picker' => array('timeOnlyTitle' => __('Choose Time', 'cmb2'), 'timeText' => __('Time', 'cmb2'), 'hourText' => __('Hour', 'cmb2'), 'minuteText' => __('Minute', 'cmb2'), 'secondText' => __('Second', 'cmb2'), 'currentText' => __('Now', 'cmb2'), 'closeText' => __('Done', 'cmb2'), 'timeFormat' => _x('hh:mm TT', 'Valid formatting string, as per http://trentrichardson.com/examples/timepicker/', 'cmb2'), 'controlType' => 'select', 'stepMinute' => 5)), 'strings' => array('upload_file' => __('Use this file', 'cmb2'), 'remove_image' => __('Remove Image', 'cmb2'), 'remove_file' => __('Remove', 'cmb2'), 'file' => __('File:', 'cmb2'), 'download' => __('Download', 'cmb2'), 'check_toggle' => __('Select / Deselect All', 'cmb2')))));
     wp_register_style('cmb2-styles', cmb2_utils()->url("css/cmb2{$min}.css"), $styles);
     self::$registration_done = true;
 }
Ejemplo n.º 6
0
 /**
  * Render the form of a meta box.
  * @param  string  $metabox     ID of the meta box
  * @param  int $term_id         ID of the term metadata is for
  * @return string               Markup of the form
  */
 function render_form($metabox, $term_id = 0)
 {
     if (!class_exists('CMB2')) {
         return;
     }
     $cmb = cmb2_get_metabox($metabox, $term_id);
     // if passing a metabox ID, and that ID was not found
     if (!$cmb) {
         return;
     }
     // Hard-code object type
     $cmb->object_type('term');
     // Enqueue JS/CSS
     if ($cmb->prop('cmb_styles')) {
         CMB2_hookup::enqueue_cmb_css();
     }
     CMB2_hookup::enqueue_cmb_js();
     // Show cmb form
     $cmb->show_form();
 }
Ejemplo n.º 7
0
 /**
  * Includes CMB JS
  * @since  2.0.0
  */
 public static function enqueue_cmb_js()
 {
     if (!apply_filters('cmb2_enqueue_js', true)) {
         return false;
     }
     CMB2_hookup::register_scripts();
     wp_enqueue_media();
     return wp_enqueue_script('cmb2-scripts');
 }
 /**
  * Render the settings page for this plugin.
  *
  * @since    1.0.0
  */
 public function display_plugin_admin_page()
 {
     if (class_exists('CMB2_hookup')) {
         CMB2_hookup::enqueue_cmb_css();
         CMB2_hookup::enqueue_cmb_js();
     }
     include_once 'views/admin.php';
 }
 /**
  * Displays form markup
  * @since  0.1.3
  * @param  int  $term_id Term ID
  */
 public function display_form($term_id)
 {
     if (!class_exists('CMB2')) {
         return;
     }
     $this->do_override_filters($term_id);
     $object_id = $this->id($term_id);
     // Hard-code object ID
     $this->cmb->object_id($object_id);
     // Hard-code object type
     $this->cmb->object_type('options-page');
     // Enqueue JS/CSS
     if ($this->cmb->prop('cmb_styles')) {
         CMB2_hookup::enqueue_cmb_css();
     }
     if ($this->cmb->prop('enqueue_js')) {
         CMB2_hookup::enqueue_cmb_js();
     }
     // Add object id to the form for easy access
     printf('<input type="hidden" name="term_opt_name" value="%s">', $object_id);
     printf('<input type="hidden" name="object_id" value="%s">', $object_id);
     // Show cmb form
     $this->cmb->show_form();
 }