Origin commit
This commit is contained in:
207
inc/vendors/cmb2-plugins/cmb2-tabs/assets/css/cmb2-tabs.css
vendored
Executable file
207
inc/vendors/cmb2-plugins/cmb2-tabs/assets/css/cmb2-tabs.css
vendored
Executable file
@@ -0,0 +1,207 @@
|
||||
.ui-tabs .inside:after, .ui-tabs .ui-tabs-nav:after, .ui-tabs:after {
|
||||
clear: both
|
||||
}
|
||||
|
||||
.ui-tabs .inside:after, .ui-tabs .ui-tabs-nav:after, .ui-tabs-vertical .cmb2-wrap .cmb-row:after, .ui-tabs:after {
|
||||
content: ' ';
|
||||
display: block
|
||||
}
|
||||
|
||||
div.cmb-type-tabs {
|
||||
padding: 0 !important;
|
||||
margin: -6px -12px -12px !important
|
||||
}
|
||||
|
||||
.ui-tabs {
|
||||
position: relative;
|
||||
background-color: #FFF;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.cmb2-options-page div.cmb-type-tabs {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important
|
||||
}
|
||||
|
||||
.cmb2-options-page .ui-tabs {
|
||||
margin: 0 -10px;
|
||||
border: 1px solid #e5e5e5;
|
||||
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
|
||||
box-shadow: 0 1px 1px rgba(0, 0, 0, .04)
|
||||
}
|
||||
|
||||
.ui-tabs h2.hndle {
|
||||
background: #fff
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav {
|
||||
margin: 6px 0 0 10px
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li {
|
||||
list-style: none;
|
||||
float: left;
|
||||
position: relative;
|
||||
top: 0;
|
||||
margin: 1px .2em 0 0;
|
||||
border-bottom-width: 0;
|
||||
padding: 0;
|
||||
white-space: nowrap
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li a {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
line-height: 18px;
|
||||
padding: 10px 20px !important;
|
||||
margin: 0 0 -1px;
|
||||
border: 1px solid transparent;
|
||||
border-top: 2px solid #f7f7f7;
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li a:focus {
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none
|
||||
}
|
||||
|
||||
.ui-tabs.ui-tabs-vertical .ui-tabs-nav .ui-tabs-anchor {
|
||||
float: left;
|
||||
/*padding: .5em 1em;*/
|
||||
text-decoration: none;
|
||||
width: 153px;
|
||||
padding: 10px 0 10px 10px !important;
|
||||
}
|
||||
|
||||
.ui-tabs.ui-tabs-horizontal .ui-tabs-nav .ui-tabs-anchor {
|
||||
float: left;
|
||||
padding: .5em 1em;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
|
||||
margin-bottom: -1px;
|
||||
padding-bottom: 1px;
|
||||
border-bottom-width: 1px
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active a {
|
||||
z-index: 50 !important;
|
||||
background-color: #FFF;
|
||||
border: 1px solid #E1E1E1;
|
||||
border-bottom-color: #FFF;
|
||||
border-top: 2px solid #2EA2CC;
|
||||
margin: 0 0 -1px
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
display: block;
|
||||
border: none;
|
||||
border-top: 1px solid #E1E1E1;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
background: #fff
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-panel h3 {
|
||||
border-bottom: 1px solid #e9e9e9;
|
||||
/*padding-bottom: 20px;*/
|
||||
/*margin-bottom: 20px*/
|
||||
}
|
||||
|
||||
.ui-tabs .inside {
|
||||
margin: 0 !important;
|
||||
padding: 0
|
||||
}
|
||||
|
||||
.ui-tabs-vertical {
|
||||
padding-top: 0
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .ui-tabs-nav {
|
||||
float: left;
|
||||
width: 165px;
|
||||
margin: 10px 0 0;
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
border-right: 1px solid #E1E1E1
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .ui-tabs-nav li {
|
||||
clear: left;
|
||||
width: 100%;
|
||||
border-bottom-width: 1px !important;
|
||||
border-right-width: 0 !important;
|
||||
margin: 0 -1px .2em 0
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active {
|
||||
padding-bottom: 0;
|
||||
padding-right: .1em;
|
||||
border-right-width: 1px
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .ui-tabs-nav li a {
|
||||
padding: 10px 0 10px 10px !important;
|
||||
border-top: none;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
font-size: 93%
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active a {
|
||||
z-index: 50 !important;
|
||||
background-color: #FFF;
|
||||
border: 1px solid #E1E1E1;
|
||||
border-right-color: #FFF;
|
||||
border-left: 2px solid #2EA2CC;
|
||||
margin: 0 -1px 0 0;
|
||||
width: 153px;
|
||||
padding: 10px 0 10px 10px !important
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .ui-tabs-panel {
|
||||
min-height: 200px;
|
||||
border: none;
|
||||
float: left;
|
||||
width: calc(100% - 207px)
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .cmb2-wrap .cmb-row {
|
||||
margin: 6px 0
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .cmb2-wrap .cmb-row:after {
|
||||
clear: both
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .cmb2-wrap .cmb-th {
|
||||
float: left;
|
||||
width: 14%;
|
||||
min-height: 32px;
|
||||
line-height: 32px;
|
||||
margin-right: 1%
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .cmb2-wrap .cmb-td {
|
||||
float: left;
|
||||
width: 85%
|
||||
}
|
||||
|
||||
.ui-tabs-vertical .cmb2-wrap .cmb-td span.after_field {
|
||||
display: inline-block;
|
||||
width: 90px;
|
||||
font-size: 13px;
|
||||
padding: 0 5px
|
||||
}
|
||||
10
inc/vendors/cmb2-plugins/cmb2-tabs/assets/js/cmb2-tabs.js
vendored
Executable file
10
inc/vendors/cmb2-plugins/cmb2-tabs/assets/js/cmb2-tabs.js
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
(function ($) {
|
||||
$(document).ready(function () {
|
||||
// init jQuery UI Tabs
|
||||
setTimeout(function () {
|
||||
$( ".dtheme-cmb2-tabs" ).tabs();
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
jQuery.noConflict();
|
||||
11
inc/vendors/cmb2-plugins/cmb2-tabs/autoloader.php
vendored
Executable file
11
inc/vendors/cmb2-plugins/cmb2-tabs/autoloader.php
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
// Load project files
|
||||
spl_autoload_register( function( $class ) {
|
||||
$file = strtolower( str_replace( '_', '-', $class ) );
|
||||
$file = dirname( __DIR__ ) . '/' . str_replace( '\\', '/', $file ) . '.class.php';
|
||||
|
||||
if ( file_exists( $file ) ) {
|
||||
include $file;
|
||||
}
|
||||
} );
|
||||
21
inc/vendors/cmb2-plugins/cmb2-tabs/inc/assets.class.php
vendored
Executable file
21
inc/vendors/cmb2-plugins/cmb2-tabs/inc/assets.class.php
vendored
Executable file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace cmb2_tabs\inc;
|
||||
|
||||
class Assets {
|
||||
|
||||
public function __construct() {
|
||||
add_action( 'admin_enqueue_scripts', array( $this, 'admin_assets' ) );
|
||||
}
|
||||
|
||||
|
||||
public function admin_assets() {
|
||||
// Css
|
||||
wp_enqueue_style( 'dtheme-cmb2-tabs', plugin_dir_url( __DIR__ ) . '/assets/css/cmb2-tabs.css', array(), '1.0.1' );
|
||||
|
||||
// Js
|
||||
wp_enqueue_script( 'jquery-ui' );
|
||||
wp_enqueue_script( 'dtheme-cmb2-tabs', plugin_dir_url( __DIR__ ) . '/assets/js/cmb2-tabs.js', array( 'jquery-ui-tabs' ) );
|
||||
}
|
||||
|
||||
}
|
||||
141
inc/vendors/cmb2-plugins/cmb2-tabs/inc/cmb2-tabs.class.php
vendored
Executable file
141
inc/vendors/cmb2-plugins/cmb2-tabs/inc/cmb2-tabs.class.php
vendored
Executable file
@@ -0,0 +1,141 @@
|
||||
<?php
|
||||
|
||||
namespace cmb2_tabs\inc;
|
||||
|
||||
/**
|
||||
* Class CMB2_Tabs
|
||||
* @package cmb2_tabs\inc
|
||||
* @since 1.2.2
|
||||
*/
|
||||
class CMB2_Tabs {
|
||||
|
||||
private $setting = array();
|
||||
private $object_id = 0;
|
||||
|
||||
|
||||
/**
|
||||
* CMB2_Tabs constructor.
|
||||
*/
|
||||
public function __construct() {
|
||||
add_action( 'cmb2_render_tabs', array( $this, 'render' ), 10, 5 );
|
||||
add_filter( 'cmb2_sanitize_tabs', array( $this, 'save' ), 10, 4 );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Hook: Render field
|
||||
*
|
||||
* @param $field_object
|
||||
* @param $escaped_value
|
||||
* @param $object_id
|
||||
* @param $object_type
|
||||
* @param $field_type_object
|
||||
*/
|
||||
public function render( \CMB2_Field $field_object, $escaped_value, $object_id, $object_type, \CMB2_Types $field_type_object ) {
|
||||
$this->setting = $field_object->args( 'tabs' );
|
||||
$this->object_id = $object_id;
|
||||
|
||||
// Set layout
|
||||
$layout = empty( $this->setting['layout'] ) ? 'ui-tabs-horizontal' : "ui-tabs-{$this->setting['layout']}";
|
||||
$default_data = version_compare( CMB2_VERSION, '2.2.2', '>=' ) ? array(
|
||||
'class' => "dtheme-cmb2-tabs $layout",
|
||||
) : $field_type_object->parse_args( $field_object->data_args(), 'tabs', array(
|
||||
'class' => "dtheme-cmb2-tabs $layout",
|
||||
) );
|
||||
|
||||
// Render field
|
||||
echo sprintf( '<div %s>%s</div>', $field_type_object->concat_attrs( $default_data, array(
|
||||
'value',
|
||||
'name',
|
||||
'type'
|
||||
) ), $this->get_tabs() );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Render tabs
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_tabs() {
|
||||
ob_start();
|
||||
?>
|
||||
|
||||
<ul>
|
||||
<?php foreach ( $this->setting['tabs'] as $key => $tab ): ?>
|
||||
<li><a href="#<?php echo $tab['id']; ?>">
|
||||
<?php
|
||||
$icon = isset($tab['icon'])? $tab['icon']: "dashicons-admin-home";
|
||||
?>
|
||||
<i class="dashicons <?php echo $icon; ?>"></i>
|
||||
<?php echo $tab['title']; ?></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
||||
<?php foreach ( $this->setting['tabs'] as $key => $tab ): ?>
|
||||
<div id="<?php echo $tab['id']; ?>">
|
||||
<?php
|
||||
// Render fields from tab
|
||||
$this->render_fields( $this->setting['config'], $tab['fields'], $this->object_id );
|
||||
?>
|
||||
</div>
|
||||
<?php endforeach;
|
||||
|
||||
return ob_get_clean();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Render fields from tab
|
||||
*
|
||||
* @param $args
|
||||
* @param $fields
|
||||
* @param $object_id
|
||||
*/
|
||||
public function render_fields( $args, $fields, $object_id ) {
|
||||
// Set options to cmb2
|
||||
$setting_fields = array_merge( $args, array( 'fields' => $fields ) );
|
||||
$CMB2 = new \CMB2( $setting_fields, $object_id );
|
||||
|
||||
foreach ( $fields as $key_field => $field ) {
|
||||
if ( $CMB2->is_options_page_mb() ) {
|
||||
$CMB2->object_type( $args['object_type'] );
|
||||
}
|
||||
// Cmb2 render field
|
||||
$CMB2->render_field( $field );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Hook: Save field values
|
||||
*
|
||||
* @param $override_value
|
||||
* @param $value
|
||||
* @param $post_id
|
||||
* @param $data
|
||||
*/
|
||||
public static function save( $override_value, $value, $post_id, $data ) {
|
||||
foreach ( $data['tabs']['tabs'] as $tab ) {
|
||||
$setting_fields = array_merge( $data['tabs']['config'], array( 'fields' => $tab['fields'] ) );
|
||||
$CMB2 = new \CMB2( $setting_fields, $post_id );
|
||||
|
||||
if ( $CMB2->is_options_page_mb() ) {
|
||||
$cmb2_options = cmb2_options( $post_id );
|
||||
$id_fields = array_map( function( $field ) {
|
||||
return $field['id'];
|
||||
}, $tab['fields'] );
|
||||
|
||||
foreach ( $_POST as $key => $value ) {
|
||||
if ( array_search( $key, $id_fields ) !== false ) {
|
||||
$cmb2_options->update( $key, $value );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$CMB2->save_fields();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
22
inc/vendors/cmb2-plugins/cmb2-tabs/plugin.php
vendored
Executable file
22
inc/vendors/cmb2-plugins/cmb2-tabs/plugin.php
vendored
Executable file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/*
|
||||
Plugin Name: Tabs for CMB2
|
||||
Plugin URI: https://github.com/LeadSoftInc/cmb2-tabs
|
||||
Description: Extensions the tabs to the library CMB2
|
||||
Version: 1.2.3
|
||||
Author: LeadSoft Inc.
|
||||
Author URI: http://leadsoft.org/
|
||||
*/
|
||||
|
||||
namespace cmb2_tabs;
|
||||
|
||||
if ( is_admin() ) {
|
||||
// Run autoloader
|
||||
include __DIR__ . '/autoloader.php';
|
||||
|
||||
// Connection css and js
|
||||
new inc\Assets();
|
||||
|
||||
// Run global class
|
||||
new inc\CMB2_Tabs();
|
||||
}
|
||||
Reference in New Issue
Block a user