';
$pages_arr = array(
'wpbc' => array(
'type' => 'menu',
'title' => __( 'Bookings', 'booking' ),
'font_icon' => 'wpbc-bi-collection',
),
'wpbc-divider-1' => array(
'type' => 'divider',
),
'wpbc-availability' => array(
'type' => 'menu',
'title' => __( 'Availability', 'booking' ),
'font_icon' => 'wpbc-bi-calendar-week',
),
);
if ( class_exists('wpdev_bk_biz_m') ) {
$pages_arr['wpbc-prices'] = array(
'type' => 'menu',
'title' => __( 'Prices', 'booking' ),
'font_icon' => 'wpbc-bi-cash-stack',
);
}
if ( class_exists('wpdev_bk_personal') ) {
$pages_arr['wpbc-resources'] = array(
'type' => 'menu',
'title' => __( 'Resources', 'booking' ) . ' / ' . __( 'unique calendars', 'booking' ),
'font_icon' => 'wpbc-bi-list',
);
} else {
$pages_arr['wpbc-resources'] = array(
'type' => 'menu',
'title' => __( 'Resource', 'booking' ) . ' / ' . __( 'Publish', 'booking' ),
'font_icon' => 'wpbc-bi-list',
);
}
$pages_arr['wpbc-divider-2'] = array(
'type' => 'divider',
);
$pages_arr['wpbc-settings'] = array(
'type' => 'menu',
'title' => __( 'Settings', 'booking' ),
'font_icon' => 'wpbc_icn_settings',
);
return $pages_arr;
}
/**
* Show Left Vaertical Navigation Bar
*
* @param array $args - parameters.
*
* @return void
*/
function wpbc_ui__left_vertical_nav( $args =array() ) {
$defaults = array(
'attr' => array(),
);
$params = wp_parse_args( $args, $defaults );
// Ability to click on panel, only if there 'min' class - panel minimized!
echo '
';
// FixIn: 10.12.1.7.
wpbc_ui__vert_left_bar__side_button__do_compact();
wpbc_ui__vert_left_bar__side_button__do_max();
$active_page_arr = array(
'active_page' => $args['active_page'], // wpbc-settings.
'active_tab' => $args ['active_tab'], // calendar_appearance.
'active_subtab' => $args['active_subtab'], // calendar_appearance_skin.
);
// Available Main Menu - slug => titles.
$root_menu_arr = wpbc_ui__get_root_menu_arr();
echo '
';
$is_show_all_menus = true;
if ( ! $is_show_all_menus ) {
wpbc_ui__vert_left_bar__section__root_menu( $root_menu_arr );
} else {
// wpbc_ui_el__divider_horizontal();
echo '
';
wpbc_ui__vert_left_bar__do_compact();
wpbc_ui__vert_left_bar__do_max();
echo '
';
echo '
';
}
// Loop to show all main sections in vertical menu.
foreach ( $root_menu_arr as $main_page_slug => $root_menu_options_arr ) {
if ( 'menu' !== $root_menu_options_arr['type'] ) {
continue;
}
$page_title = $root_menu_options_arr['title'];
$is_expanded = ( $main_page_slug === $active_page_arr['active_page'] );
if ( $is_show_all_menus ) {
echo '
';
wpbc_ui__vert_menu__show_root_section_header( $main_page_slug, $page_title );
}
echo '
';
// Show only active page settings list.
if ( $main_page_slug !== $active_page_arr['active_page'] ) {
//continue;
}
$page_item_arr = $args['page_nav_tabs'][ $main_page_slug ];
if ( ! $is_show_all_menus ) {
// Section Header.
echo '
';
wpbc_ui__vert_menu__show_section_header_go_back( $page_title );
wpbc_ui__vert_left_bar__do_compact();
wpbc_ui__vert_left_bar__do_max();
echo '
';
wpbc_ui_el__divider_horizontal();
}
foreach ( $page_item_arr as $main_menu_slug => $menu_item_arr ) {
$folder_style = ( ! empty( $menu_item_arr['folder_style'] ) ) ? esc_attr( $menu_item_arr['folder_style'] ) : '';
$folder_css = '';
if ( ( ! empty( $menu_item_arr['subtabs'] ) ) && ( ! empty( $menu_item_arr['is_active'] ) ) ) {
$folder_css .= ' expanded';
}
echo '
';
if ( empty( $menu_item_arr['type'] ) ) {
$menu_item_arr['type'] = 'main';
}
switch ( $menu_item_arr['type'] ) {
case 'separator':
wpbc_ui_el__divider_horizontal();
break;
case 'html':
wpbc_ui__vert_menu__item_html( $main_menu_slug, $menu_item_arr );
break;
default:
wpbc_ui__vert_menu__item_main( $main_menu_slug, $menu_item_arr );
}
foreach ( $menu_item_arr['subtabs'] as $main_submenu_slug => $submenu_item_arr ) {
if ( empty( $submenu_item_arr['type'] ) ) {
$submenu_item_arr['type'] = 'subtab';
}
switch ( $submenu_item_arr['type'] ) {
case 'subtab':
wpbc_ui__vert_menu__item_sub( $main_submenu_slug, $submenu_item_arr );
break;
case 'separator':
wpbc_ui__vert_menu__item_separtor( $main_submenu_slug, $submenu_item_arr );
break;
case 'html':
wpbc_ui__vert_menu__item_html( $main_submenu_slug, $submenu_item_arr );
break;
default:
}
}
echo '
';
}
if ( $is_show_all_menus ) {
echo '
';
}
echo '
';
} // Loop to show all main sections in vertical menu.
if ( $is_show_all_menus ) {
echo '
';
}
$is_show_up = wpbc_is_show_up();
// Show upgrade icon only for the Free version here.
$is_show_up = ( $is_show_up && ( ! class_exists( 'wpdev_bk_personal' ) ) );
if ( $is_show_up ) {
?>';
if ( $is_show_up ) {
$url = wpbc_up_link();
?>
';
wpbc_start_element_scrollable__with_simplebar( '.wpbc_ui_el__vert_left_bar__content' );
}
/**
* Set Scrolable Element with Simplebar js library.
*
* @param string $jq_element - e.g. '.wpbc_ui_el__vert_left_bar__content'
* @param string $options - e.g. 'autoHide: false, scrollbarMinSize: 10' - options for the Simplebar. See more: https://www.npmjs.com/package/simplebar#1-documentation
*
* @return void
*/
function wpbc_start_element_scrollable__with_simplebar( $jq_element, $options = 'autoHide: false' ) {
// FixIn: 10.12.2.3.
// Initial example: new SimpleBar( jQuery( '.wpbc_ui_el__vert_left_bar__content' )[0], { autoHide: false } );.
?>
__( 'Toggle side menu', 'booking' ),
'position' => 'right',
);
wpbc_ui_el__a( $el_arr );
}
/**
* Show element - "Max - Vertical Navigation" panel
*
* @return void
*/
function wpbc_ui__vert_left_bar__do_max() {
$el_arr = array();
$el_arr['container_style'] = '';
$el_arr['container_class'] = 'wpbc_ui__top_nav__btn_open_left_vertical_nav wpbc_ui__hide hide_in_compact_mode0';
$el_arr['onclick'] = ' wpbc_admin_ui__sidebar_left__do_max( true ); ';
$el_arr['font_icon'] = 'wpbc-bi-box-arrow-right';
$el_arr['hint'] = array(
'title' => __( 'Open side menu', 'booking' ),
'position' => 'top',
);
wpbc_ui_el__a( $el_arr );
}
/**
* Show element - "Compact - Vertical Navigation" panel
*
* @return void
*/
function wpbc_ui__vert_left_bar__do_compact() {
$el_arr = array();
$el_arr['container_style'] = '';
$el_arr['container_class'] = 'wpbc_ui__top_nav__btn_hide_left_vertical_nav';
$el_arr['onclick'] = ' wpbc_admin_ui__sidebar_left__do_compact( true ); ';
$el_arr['font_icon'] = 'wpbc-bi-box-arrow-left';
$el_arr['hint'] = array(
'title' => __( 'Set side menu compact', 'booking' ),
'position' => 'top',
);
wpbc_ui_el__a( $el_arr );
}
/**
* Show element - "X - Close (none)" panel
*
* @return void
*/
function wpbc_ui__vert_left_bar__do_none() {
$el_arr = array();
$el_arr['container_style'] = '';
$el_arr['container_class'] = 'wpbc_ui__top_nav__btn_hide_left_vertical_nav';
$el_arr['onclick'] = ' wpbc_admin_ui__sidebar_left__do_hide(); ';
$el_arr['font_icon'] = 'wpbc_icn_close';
$el_arr['hint'] = array(
'title' => __( 'Close side menu', 'booking' ),
'position' => 'bottom',
);
wpbc_ui_el__a( $el_arr );
}
/**
* Show element - "_ - Min" panel
*
* @return void
*/
function wpbc_ui__vert_left_bar__do_min() {
$el_arr = array();
$el_arr['container_style'] = '';
$el_arr['container_class'] = 'wpbc_ui__top_nav__btn_hide_left_vertical_nav';
$el_arr['onclick'] = ' wpbc_admin_ui__sidebar_left__do_min( true ); ';
$el_arr['font_icon'] = 'wpbc_icn_minimize';
$el_arr['hint'] = array(
'title' => __( 'Minimize side menu', 'booking' ),
'position' => 'bottom',
);
wpbc_ui_el__a( $el_arr );
}
/* == Elements in Left menu ========================================================================================= */
/**
* Show Section Header - e.g. ' SETTINGS '
*
* @param string $page_title - title to show.
*
* @return void
*/
function wpbc_ui__vert_menu__show_section_header_go_back( $page_title ) {
// FixIn: 10.12.1.7.
?>
';
// wpbc_ui__vert_menu__show_section_header( __( 'Main menu', 'booking' ) );
wpbc_ui__vert_left_bar__do_compact();
wpbc_ui__vert_left_bar__do_max();
echo '
';
wpbc_ui_el__divider_horizontal();
foreach ( $pages_arr as $page_slug => $main_page_options_arr ) {
switch ( $main_page_options_arr['type'] ) {
case 'divider':
wpbc_ui_el__divider_horizontal();
break;
case 'menu':
default:
$page_title = $main_page_options_arr['title'];
echo '
';
}
}
?>
' . wp_kses_post( $page_title ) . '';
}
/**
* Show main menu item.
*
* @param string $menu_slug - 'calendar_appearance'.
* @param array $menu_item_arr - [ [title] => Skin
* [page_title] => Calendar General Settings 3
* [hint] => Calendar General Settings 2
* [link] =>
* [position] =>
* [css_classes] =>
* [icon] =>
* [font_icon] => wpbc-bi-calendar2-range
* [default] =>
* [disabled] =>
* [hided] =>
* [is_active] => 1
* [url] => http://beta/wp-admin/admin.php?page=wpbc-settings&tab=calendar_appearance
* [subtabs] => [....]
* ]
*
* @return void
*/
function wpbc_ui__vert_menu__item_main( $menu_slug, $menu_item_arr ) {
$defaults = array(
'title' => '',
'page_title' => '',
'hint' => '',
'link' => '',
'position' => '',
'css_classes' => '',
'icon' => '',
'font_icon' => '',
'default' => false,
'disabled' => false,
'hided' => false,
'is_active' => 0,
'url' => '',
'subtabs' => array(),
);
$menu_item_arr = wp_parse_args( $menu_item_arr, $defaults );
// CSS Classes.
$menu_css_arr = array();
$menu_css_arr[] = 'wpbc_ui_el__vert_nav_item';
$menu_css_arr[] = 'wpbc_ui_el__vert_nav_item__' . esc_attr( $menu_slug );
if ( ( empty( $menu_item_arr['subtabs'] ) ) && ( ! empty( $menu_item_arr['is_active'] ) ) ) {
$menu_css_arr[] = 'active';
}
if ( isset( $menu_item_arr['css_classes'] ) ) {
$menu_css_arr[] = $menu_item_arr['css_classes'];
}
$menu_css_str = implode( ' ', $menu_css_arr );
// Styles.
$menu_style_str = ( isset( $menu_item_arr['style'] ) ) ? $menu_item_arr['style'] : '';
?>
"subtab",
* title = "Skin Search Form Layout 1"
* page_title = "Skin Search Settings 2"
* hint = "Skin Search Settings 3"
* position = ""
* css_classes = ""
* default = true
* disabled = false
* checkbox = false
* content = "content"
* show_checked_icon = false
* is_use_new_settings_skin = true
* is_active = true
* url = "http://beta/wp-admin/admin.php?page=wpbc-settings&tab=calendar_appearance&subtab=calendar_appearance_skin"
* ].
*
* @return void
*/
function wpbc_ui__vert_menu__item_sub( $menu_slug, $menu_item_arr ) {
// CSS Classes.
$menu_css_arr = array();
$menu_css_arr[] = 'wpbc_ui_el__vert_nav_item';
$menu_css_arr[] = 'wpbc_ui_el__vert_nav_item_sub';
// $menu_css_arr[] = 'hide_in_compact_mode';
$menu_css_arr[] = 'wpbc_ui_el__vert_nav_item__' . esc_attr( $menu_slug );
if ( ! empty( $menu_item_arr['is_active'] ) ) {
$menu_css_arr[] = 'active';
}
if ( isset( $menu_item_arr['css_classes'] ) ) {
$menu_css_arr[] = $menu_item_arr['css_classes'];
}
$menu_css_str = implode( ' ', $menu_css_arr );
// Styles.
$menu_style_str = ( isset( $menu_item_arr['style'] ) ) ? $menu_item_arr['style'] : '';
?>
"separator",
* 'is_active' => false,
* 'url' => "http://beta/wp-admin/admin.php?page=wpbc-settings&tab=calendar_appearance&subtab=calendar_appearance_skin_sep"
* ].
*
* @return void
*/
function wpbc_ui__vert_menu__item_separtor( $menu_slug, $menu_item_arr ) {
$args = array( 'container_class' => 'wpbc_ui_el__vert_nav_item_sub' );
wpbc_ui_el__divider_horizontal( $args );
}
/**
* HTML
*
* @param string $menu_slug - 'calendar_appearance'.
* @param array $menu_item_arr - [
* 'type' = "htnl"
* 'html' = "Form Fields"
* ].
*
* @return void
*/
function wpbc_ui__vert_menu__item_html( $menu_slug, $menu_item_arr ) {
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo $menu_item_arr['html'];
}
// FixIn: 10.12.1.7.
/**
* Show element - "Compact - Vertical Navigation" panel
*
* @return void
*/
function wpbc_ui__vert_left_bar__side_button__do_compact() {
?>
array(),
);
$params = wp_parse_args( $args, $defaults );
$active_page_arr = array(
'active_page' => $args['active_page'], // wpbc-settings.
'active_tab' => $args ['active_tab'], // calendar_appearance.
'active_subtab' => $args['active_subtab'], // calendar_appearance_skin.
);
// Ability to click on panel, only if there 'min' class - panel minimized!
echo '
';
echo '
';
echo '
';
do_action( 'wpbc_ui__right_vertical_sidebar_compact_content', $active_page_arr );
echo '
';
echo '
';
echo '
';
wpbc_start_element_scrollable__with_simplebar( '.wpbc_ui_el__vert_right_bar_compact__wrapper .wpbc_ui_el__vert_right_bar__content' );
}
/**
* Show Right Vertical SideBar
*
* @param array $args - parameters.
*
* @return void
*/
function wpbc_ui__right_vertical_sidebar( $args =array() ) {
$defaults = array(
'attr' => array(),
);
$params = wp_parse_args( $args, $defaults );
// Ability to click on panel, only if there 'min' class - panel minimized!
echo '
';
// FixIn: 10.12.1.7.
wpbc_ui__vert_right_bar__side_button__do_compact();
wpbc_ui__vert_right_bar__side_button__do_max();
$active_page_arr = array(
'active_page' => $args['active_page'], // wpbc-settings.
'active_tab' => $args ['active_tab'], // calendar_appearance.
'active_subtab' => $args['active_subtab'], // calendar_appearance_skin.
);
echo '
';
// wpbc_ui_el__divider_horizontal();
echo '
';
wpbc_ui__vert_right_bar__do_compact();
wpbc_ui__vert_right_bar__do_max();
echo '
';
echo '
';
do_action( 'wpbc_ui__right_vertical_sidebar_content', $active_page_arr );
echo '
';
echo '
';
echo '
';
wpbc_start_element_scrollable__with_simplebar( '.wpbc_ui_el__vert_right_bar__wrapper .wpbc_ui_el__vert_right_bar__content' );
}
/**
* Show element - "Compact - Vertical Navigation" panel
*
* @return void
*/
function wpbc_ui__vert_right_bar__side_button__do_compact() {
?>
__( 'Toggle side menu', 'booking' ),
'position' => 'left',
);
wpbc_ui_el__a( $el_arr );
}
/**
* Show element - "Max - Vertical Navigation" panel
*
* @return void
*/
function wpbc_ui__vert_right_bar__do_max() {
$el_arr = array();
$el_arr['container_style'] = '';
$el_arr['container_class'] = 'wpbc_ui__top_nav__btn_open_right_vertical_nav wpbc_ui__hide hide_in_compact_mode0';
$el_arr['onclick'] = ' wpbc_admin_ui__sidebar_right__do_max(); ';
$el_arr['font_icon'] = 'wpbc-bi-box-arrow-left';
$el_arr['hint'] = array(
'title' => __( 'Open side menu', 'booking' ),
'position' => 'top',
);
wpbc_ui_el__a( $el_arr );
}
/**
* Show element - "Compact - Vertical Navigation" panel
*
* @return void
*/
function wpbc_ui__vert_right_bar__do_compact() {
$el_arr = array();
$el_arr['container_style'] = '';
$el_arr['container_class'] = 'wpbc_ui__top_nav__btn_hide_right_vertical_nav';
$el_arr['onclick'] = ' wpbc_admin_ui__sidebar_right__do_compact(); ';
$el_arr['font_icon'] = 'wpbc-bi-box-arrow-right';
$el_arr['hint'] = array(
'title' => __( 'Set side menu compact', 'booking' ),
'position' => 'top',
);
wpbc_ui_el__a( $el_arr );
}
/**
* Show element - "X - Close (none)" panel
*
* @return void
*/
function wpbc_ui__vert_right_bar__do_none() {
$el_arr = array();
$el_arr['container_style'] = '';
$el_arr['container_class'] = 'wpbc_ui__top_nav__btn_hide_right_vertical_nav';
$el_arr['onclick'] = ' wpbc_admin_ui__sidebar_right__do_hide(); ';
$el_arr['font_icon'] = 'wpbc_icn_close';
$el_arr['hint'] = array(
'title' => __( 'Close side menu', 'booking' ),
'position' => 'bottom',
);
wpbc_ui_el__a( $el_arr );
}
/**
* Show element - "_ - Min" panel
*
* @return void
*/
function wpbc_ui__vert_right_bar__do_min() {
$el_arr = array();
$el_arr['container_style'] = '';
$el_arr['container_class'] = 'wpbc_ui__top_nav__btn_hide_right_vertical_nav';
$el_arr['onclick'] = ' wpbc_admin_ui__sidebar_right__do_min(); ';
$el_arr['font_icon'] = 'wpbc_icn_minimize';
$el_arr['hint'] = array(
'title' => __( 'Minimize side menu', 'booking' ),
'position' => 'bottom',
);
wpbc_ui_el__a( $el_arr );
}