Пример #1
0
 /**
  * Build our meta boxes
  */
 public function do_meta_boxes($meta_boxes)
 {
     $prefix = '_wds_builder_';
     $object_types = wds_page_builder_get_option('post_types') ? wds_page_builder_get_option('post_types') : array('page');
     $cmb = new_cmb2_box(array('id' => 'wds_simple_page_builder', 'title' => __('Page Builder', 'wds-simple-page-builder'), 'object_types' => $object_types, 'context' => 'normal', 'priority' => 'high', 'show_names' => true));
     $group_field_id = $cmb->add_field(array('id' => $prefix . 'template', 'type' => 'group', 'options' => array('group_title' => __('Template Part {#}', 'wds-simple-page-builder'), 'add_button' => __('Add another template part', 'wds-simple-page-builder'), 'remove_button' => __('Remove template part', 'wds-simple-page-builder'), 'sortable' => true)));
     $cmb->add_group_field($group_field_id, array('name' => __('Template', 'wds-simple-page-builder'), 'id' => 'template_group', 'type' => 'select', 'options' => wds_page_builder_get_parts()));
 }
Пример #2
0
 /**
  * Add the options metabox to the array of metaboxes
  * @since  0.1.0
  */
 function add_options_page_metabox()
 {
     $cmb = new_cmb2_box(array('id' => $this->metabox_id, 'hookup' => false, 'show_on' => array('key' => 'options-page', 'value' => array($this->key))));
     // Set our CMB2 fields
     $cmb->add_field(array('name' => __('Template Parts Directory', 'wds-simple-page-builder'), 'desc' => __('Where the template parts are located in the theme. Default is /parts', 'wds-simple-page-builder'), 'id' => 'parts_dir', 'type' => 'text_small', 'default' => 'parts'));
     $cmb->add_field(array('name' => __('Template Parts Prefix', 'wds-simple-page-builder'), 'desc' => __('File prefix that identifies template parts. Default is part-', 'wds-simple-page-builder'), 'id' => 'parts_prefix', 'type' => 'text_small', 'default' => 'part'));
     $cmb->add_field(array('name' => __('Allowed Post Types', 'wds-simple-page-builder'), 'desc' => __('Post types that can use the page builder. Default is Page.', 'wds-simple-page-builder'), 'id' => 'post_types', 'type' => 'multicheck', 'default' => 'page', 'options' => $this->get_post_types()));
     $group_field_id = $cmb->add_field(array('name' => __('Global Template Parts', 'wds-simple-page-builder'), 'desc' => __('These can be used on pages that don\'t have template parts added to them.', 'wds-simple-page-builder'), 'id' => 'parts_global_templates', 'type' => 'group', 'options' => array('group_title' => __('Template Part {#}', 'wds-simple-page-builder'), 'add_button' => __('Add another template part', 'wds-simple-page-builder'), 'remove_button' => __('Remove template part', 'wds-simple-page-builder'), 'sortable' => true)));
     $cmb->add_group_field($group_field_id, array('name' => __('Template', 'wds-simple-page-builder'), 'id' => 'template_group', 'type' => 'select', 'options' => wds_page_builder_get_parts(), 'default' => 'none'));
     $layouts_group_id = $cmb->add_field(array('name' => __('Saved Layouts', 'wds-simple-page-builder'), 'desc' => __('Use saved layouts to enable multiple custom page layouts that can be used on different types of pages or post types. Useful to create default layouts for different post types or for having multiple "global" layouts.', 'wds-simple-page-builder'), 'id' => 'parts_saved_layouts', 'type' => 'group', 'options' => array('group_title' => __('Layout {#}', 'wds-simple-page-builder'), 'add_button' => __('Add another layout', 'wds-simple-page-builder'), 'remove_button' => __('Remove layout', 'wds-simple-page-builder'), 'sortable' => true)));
     $cmb->add_group_field($layouts_group_id, array('name' => __('Layout Name', 'wds-simple-page-builder'), 'desc' => __('This should be a unique name used to identify this layout.', 'wds-simple-page-builder'), 'id' => 'layouts_name', 'type' => 'text_medium', 'attributes' => array('required' => 'required')));
     $cmb->add_group_field($layouts_group_id, array('name' => __('Use as Default Layout', 'wds-simple-page-builder'), 'desc' => __('If you\'d like to use this layout as the default layout for all posts of a type, check the post type to make this layout the default for. If you do not want to set this as the default layout for any post type, leave all types unchecked. The layout can still be called manually in the <code>do_action</code>.', 'wds-simple-page-builder'), 'id' => 'default_layout', 'type' => 'multicheck', 'options' => $this->get_post_types()));
     $cmb->add_group_field($layouts_group_id, array('name' => __('Template', 'wds-simple-page-builder'), 'id' => 'template_group', 'type' => 'select', 'options' => array_merge(wds_page_builder_get_parts(), array('add_row_text' => __('Add another template part', 'wds-simple-page-builder'))), 'default' => 'none', 'repeatable' => true));
 }