updated plugin GP Premium version 2.3.0

This commit is contained in:
2023-03-29 18:20:22 +00:00
committed by Gitium
parent e42ba0e05a
commit 16a556be53
40 changed files with 539 additions and 172 deletions

View File

@ -9,26 +9,25 @@
/* Off-canvas element CSS */
.main-navigation.offside {
position: fixed; /* Does not play well with some old browsers (see: README) */
width: 265px;
width: var(--gp-slideout-width);
height: 100%;
height: 100vh;
top: 0;
z-index: 9999;
overflow: auto;
-webkit-overflow-scrolling: touch; /* enables momentum scrolling in iOS overflow elements */
visibility: hidden;
}
/* Left off-canvas elements default status: out of the page */
.offside,
.offside--left {
left: -265px;
left: calc(var(--gp-slideout-width) * -1);
}
/* Right off-canvas elements default status: out of the page */
.offside--right {
left: auto;
right: -265px;
right: calc(var(--gp-slideout-width) * -1);
}
/*
@ -36,9 +35,9 @@
* - off-canvas element slides in
* - container elements slides out
*/
.offside--left.is-open,
.offside--left.is-open:not(.slideout-transition),
.offside-js--is-left .offside-sliding-element {
transform: translate3d(265px, 0, 0);
transform: translate3d(var(--gp-slideout-width), 0, 0);
}
/*
@ -46,9 +45,9 @@
* - off-canvas element slides in
* - container elements slides out
*/
.offside--right.is-open,
.offside--right.is-open:not(.slideout-transition),
.offside-js--is-right .offside-sliding-element {
transform: translate3d(-265px, 0, 0);
transform: translate3d(calc(var(--gp-slideout-width) * -1), 0, 0);
}
/* Elements Transitions */
@ -90,14 +89,26 @@
/* Element is open: container elements slide out */
.no-csstransforms3d > .offside-js--is-left .offside-sliding-element {
right: -265px;
right: calc(var(--gp-slideout-width) * -1);
}
.no-csstransforms3d > .offside-js--is-right .offside-sliding-element {
left: -265px;
left: calc(var(--gp-slideout-width) * -1);
}
/* GP */
.slideout-navigation.main-navigation:not(.is-open):not(.slideout-transition) {
display: none;
}
.slideout-navigation.main-navigation:not(.slideout-transition).do-overlay {
opacity: 1;
}
.slideout-navigation.main-navigation.slideout-transition.do-overlay {
opacity: 0;
}
.slideout-overlay {
z-index: 100000;
position: fixed;
@ -110,7 +121,7 @@
bottom: 0;
left: 0;
background-color: rgba(0,0,0,0.8);
visibility: hidden;
visibility: hidden;
opacity: 0;
cursor: pointer;
transition: visibility .2s ease, opacity .2s ease;
@ -154,11 +165,11 @@ button.slideout-exit:hover {
}
.offside-js--is-left.slide-opened .slideout-overlay button.slideout-exit {
left: 260px;
left: calc(var(--gp-slideout-width) - 5px);
}
.offside-js--is-right.slide-opened .slideout-overlay button.slideout-exit {
right: 260px;
right: calc(var(--gp-slideout-width) - 5px);
}
.slideout-widget {
@ -269,21 +280,12 @@ button.slideout-exit:hover {
/* Overlay */
.slideout-navigation.do-overlay {
transform: none;
transform: none !important;
transition: opacity 0.2s, visibility 0.2s;
width: 100%;
visibility: hidden;
opacity: 0;
text-align: center;
left: 0;
right: 0;
pointer-events: none;
}
.slideout-navigation.do-overlay.is-open {
opacity: 1;
visibility: visible;
pointer-events: auto;
}
.slideout-navigation.do-overlay .inside-navigation {

File diff suppressed because one or more lines are too long

View File

@ -103,6 +103,10 @@ if ( ! function_exists( 'generate_menu_plus_customize_register' ) ) {
* @param object $wp_customize The Customizer object.
*/
function generate_menu_plus_customize_register( $wp_customize ) {
if ( version_compare( PHP_VERSION, '5.6', '<' ) ) {
return;
}
$defaults = generate_menu_plus_get_defaults();
$settings = wp_parse_args(
@ -302,7 +306,13 @@ if ( ! function_exists( 'generate_menu_plus_customize_register' ) ) {
array(
'default' => $defaults['sticky_navigation_logo'],
'type' => 'option',
'sanitize_callback' => 'esc_url_raw',
'sanitize_callback' => function( $input ) {
if ( is_numeric( $input ) ) {
return absint( $input );
}
return esc_url_raw( $input );
},
)
);
@ -315,7 +325,54 @@ if ( ! function_exists( 'generate_menu_plus_customize_register' ) ) {
'section' => 'menu_plus_sticky_menu',
'settings' => 'generate_menu_plus_settings[sticky_navigation_logo]',
'priority' => 125,
'active_callback' => 'generate_sticky_navigation_activated',
'active_callback' => function() {
if ( ! function_exists( 'generate_menu_plus_get_defaults' ) ) {
return false;
}
$settings = wp_parse_args(
get_option( 'generate_menu_plus_settings', array() ),
generate_menu_plus_get_defaults()
);
return (
'' !== $settings['sticky_navigation_logo'] &&
! is_numeric( $settings['sticky_navigation_logo'] ) &&
'false' !== $settings['sticky_menu']
);
},
)
)
);
$wp_customize->add_control(
new WP_Customize_Media_Control(
$wp_customize,
'sticky_navigation_logo',
array(
'mime_type' => 'image',
'label' => esc_html__( 'Sticky Navigation Logo', 'gp-premium' ),
'section' => 'menu_plus_sticky_menu',
'settings' => 'generate_menu_plus_settings[sticky_navigation_logo]',
'priority' => 125,
'active_callback' => function() {
if ( ! function_exists( 'generate_menu_plus_get_defaults' ) ) {
return false;
}
$settings = wp_parse_args(
get_option( 'generate_menu_plus_settings', array() ),
generate_menu_plus_get_defaults()
);
return (
'false' !== $settings['sticky_menu'] &&
(
'' === $settings['sticky_navigation_logo'] ||
is_numeric( $settings['sticky_navigation_logo'] )
)
);
},
)
)
);
@ -483,7 +540,13 @@ if ( ! function_exists( 'generate_menu_plus_customize_register' ) ) {
array(
'default' => $defaults['mobile_header_logo'],
'type' => 'option',
'sanitize_callback' => 'esc_url_raw',
'sanitize_callback' => function( $input ) {
if ( is_numeric( $input ) ) {
return absint( $input );
}
return esc_url_raw( $input );
},
)
);
@ -495,7 +558,55 @@ if ( ! function_exists( 'generate_menu_plus_customize_register' ) ) {
'label' => esc_html__( 'Logo', 'gp-premium' ),
'section' => $header_section,
'settings' => 'generate_menu_plus_settings[mobile_header_logo]',
'active_callback' => 'generate_mobile_header_logo_active_callback',
'active_callback' => function() {
if ( ! function_exists( 'generate_menu_plus_get_defaults' ) ) {
return false;
}
$settings = wp_parse_args(
get_option( 'generate_menu_plus_settings', array() ),
generate_menu_plus_get_defaults()
);
return (
'' !== $settings['mobile_header_logo'] &&
! is_numeric( $settings['mobile_header_logo'] ) &&
'enable' === $settings['mobile_header'] &&
'logo' === $settings['mobile_header_branding']
);
},
)
)
);
$wp_customize->add_control(
new WP_Customize_Media_Control(
$wp_customize,
'mobile_header_logo',
array(
'mime_type' => 'image',
'label' => esc_html__( 'Logo', 'gp-premium' ),
'section' => $header_section,
'settings' => 'generate_menu_plus_settings[mobile_header_logo]',
'active_callback' => function() {
if ( ! function_exists( 'generate_menu_plus_get_defaults' ) ) {
return false;
}
$settings = wp_parse_args(
get_option( 'generate_menu_plus_settings', array() ),
generate_menu_plus_get_defaults()
);
return (
'enable' === $settings['mobile_header'] &&
'logo' === $settings['mobile_header_branding'] &&
(
'' === $settings['mobile_header_logo'] ||
is_numeric( $settings['mobile_header_logo'] )
)
);
},
)
)
);
@ -1145,7 +1256,7 @@ if ( ! function_exists( 'generate_slideout_navigation' ) ) {
}
?>
<nav id="generate-slideout-menu" class="main-navigation slideout-navigation<?php echo esc_attr( $overlay ); ?>" <?php echo $microdata; // phpcs:ignore -- No escaping needed. ?> style="display: none;" aria-hidden="true">
<nav id="generate-slideout-menu" class="main-navigation slideout-navigation<?php echo esc_attr( $overlay ); ?>" <?php echo $microdata; // phpcs:ignore -- No escaping needed. ?>>
<div class="inside-navigation grid-container grid-parent">
<?php
do_action( 'generate_inside_slideout_navigation' );
@ -1338,7 +1449,7 @@ if ( ! function_exists( 'generate_menu_plus_slidebar_icon' ) ) {
$icon = apply_filters(
'generate_off_canvas_toggle_output',
sprintf(
'<li class="slideout-toggle menu-item-align-right %2$s"><a href="#">%1$s%3$s</a></li>',
'<li class="slideout-toggle menu-item-align-right %2$s"><a href="#" role="button">%1$s%3$s</a></li>',
$svg_icon,
$svg_icon ? 'has-svg-icon' : '',
'' !== $settings['off_canvas_desktop_toggle_label'] ? '<span class="off-canvas-toggle-label">' . wp_kses_post( $settings['off_canvas_desktop_toggle_label'] ) . '</span>' : ''
@ -1398,10 +1509,15 @@ function generate_do_off_canvas_toggle_button() {
$icon = apply_filters(
'generate_off_canvas_toggle_output',
sprintf(
'<span class="menu-bar-item slideout-toggle hide-on-mobile %2$s"><a href="#">%1$s%3$s</a></span>',
'<span class="menu-bar-item slideout-toggle hide-on-mobile %2$s"><a href="#" role="button"%4$s>%1$s%3$s</a></span>',
$svg_icon,
$svg_icon ? 'has-svg-icon' : '',
'' !== $settings['off_canvas_desktop_toggle_label'] ? '<span class="off-canvas-toggle-label">' . wp_kses_post( $settings['off_canvas_desktop_toggle_label'] ) . '</span>' : ''
'' !== $settings['off_canvas_desktop_toggle_label'] ? '<span class="off-canvas-toggle-label">' . wp_kses_post( $settings['off_canvas_desktop_toggle_label'] ) . '</span>' : '',
'' === $settings['off_canvas_desktop_toggle_label']
? sprintf(
' aria-label="%s"',
apply_filters( 'generate_off_canvas_button_aria_label', __( 'Open Off-Canvas Panel', 'gp-premium' ) )
) : ''
)
);
@ -1509,7 +1625,14 @@ if ( ! function_exists( 'generate_menu_plus_mobile_header_logo' ) ) {
);
if ( 'logo' === $settings['mobile_header_branding'] && '' !== $settings['mobile_header_logo'] ) {
$image = attachment_url_to_postid( $settings['mobile_header_logo'] );
if ( is_numeric( $settings['mobile_header_logo'] ) ) {
$image = $settings['mobile_header_logo'];
$image_url = wp_get_attachment_image_url( $image, 'full' );
} else {
$image_url = $settings['mobile_header_logo'];
$image = attachment_url_to_postid( $image_url );
}
$image_width = '';
$image_height = '';
@ -1536,12 +1659,12 @@ if ( ! function_exists( 'generate_menu_plus_mobile_header_logo' ) ) {
</div>',
esc_url( apply_filters( 'generate_logo_href', home_url( '/' ) ) ),
esc_attr( apply_filters( 'generate_logo_title', get_bloginfo( 'name', 'display' ) ) ),
esc_url( apply_filters( 'generate_mobile_header_logo', $settings['mobile_header_logo'] ) ),
esc_url( apply_filters( 'generate_mobile_header_logo', $image_url ) ),
esc_attr( apply_filters( 'generate_logo_title', get_bloginfo( 'name', 'display' ) ) ),
! empty( $image_width ) ? absint( $image_width ) : '',
! empty( $image_height ) ? absint( $image_height ) : ''
),
$settings['mobile_header_logo'],
$image_url,
$image
);
}
@ -1599,6 +1722,9 @@ function generate_do_off_canvas_css() {
require_once GP_LIBRARY_DIRECTORY . 'class-make-css.php';
$css = new GeneratePress_Pro_CSS();
$css->set_selector( ':root' );
$css->add_property( '--gp-slideout-width', apply_filters( 'generate_slideout_width', '265px' ) );
$css->set_selector( '.slideout-navigation.main-navigation' );
$css->add_property( 'background-color', esc_attr( $settings['slideout_background_color'] ) );
@ -2103,7 +2229,14 @@ function generate_do_navigation_branding() {
}
if ( 'false' !== $settings['sticky_menu'] && '' !== $settings['sticky_navigation_logo'] ) {
$image = attachment_url_to_postid( $settings['sticky_navigation_logo'] );
if ( is_numeric( $settings['sticky_navigation_logo'] ) ) {
$image = $settings['sticky_navigation_logo'];
$image_url = wp_get_attachment_image_url( $image, 'full' );
} else {
$image_url = $settings['sticky_navigation_logo'];
$image = attachment_url_to_postid( $image_url );
}
$image_width = '';
$image_height = '';
@ -2129,11 +2262,11 @@ function generate_do_navigation_branding() {
</div>',
esc_url( apply_filters( 'generate_logo_href', home_url( '/' ) ) ),
esc_attr( apply_filters( 'generate_logo_title', get_bloginfo( 'name', 'display' ) ) ),
esc_url( $settings['sticky_navigation_logo'] ),
esc_url( $image_url ),
! empty( $image_width ) ? absint( $image_width ) : '',
! empty( $image_height ) ? absint( $image_height ) : ''
),
$settings['sticky_navigation_logo'],
$image_url,
$image
);
}

View File

@ -497,19 +497,18 @@
/**
* Start GP.
*/
document.addEventListener( 'DOMContentLoaded', function() {
document.querySelector( '.slideout-navigation' ).style.display = '';
} );
var generateOffside = offside( '.slideout-navigation', {
slidingElementsSelector:'#slideout-container',
buttonsSelector: '.slideout-mobile .main-navigation .menu-toggle, .slideout-both .main-navigation .menu-toggle, .slideout-both .slideout-toggle, .slideout-desktop .slideout-toggle',
slidingSide: offSide.side,
beforeOpen: function() {
// Turn on visibility so we can transition nicely.
document.querySelector( '.slideout-navigation' ).style.visibility = 'visible';
document.querySelector( '.slideout-navigation' ).classList.add( 'slideout-transition' );
},
afterOpen: function() {
setTimeout( function() {
document.querySelector( '.slideout-navigation' ).classList.remove( 'slideout-transition' );
}, 10 );
document.documentElement.classList.add( 'slide-opened' );
document.body.classList.add( 'slide-opened' );
@ -526,8 +525,6 @@ var generateOffside = offside( '.slideout-navigation', {
}
}
document.querySelector( '.slideout-navigation' ).removeAttribute( 'aria-hidden' );
// Focus the first focusable element.
var focusable = document.querySelector( '.slideout-navigation' ).querySelectorAll( 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])' );
@ -537,7 +534,14 @@ var generateOffside = offside( '.slideout-navigation', {
}, 200 );
}
},
beforeClose: function() {
document.querySelector( '.slideout-navigation' ).classList.add( 'slideout-transition' );
},
afterClose: function() {
setTimeout( function() {
document.querySelector( '.slideout-navigation' ).classList.remove( 'slideout-transition' );
}, 500 );
var body = document.body,
nav = document.querySelectorAll( '.main-navigation' );
@ -566,12 +570,6 @@ var generateOffside = offside( '.slideout-navigation', {
}
}
}
// Turn off visibility.
setTimeout( function() {
document.querySelector( '.slideout-navigation:not(.is-open)' ).style.visibility = '';
document.querySelector( '.slideout-navigation:not(.is-open)' ).setAttribute( 'aria-hidden', 'true' );
}, 500 );
}
} );
@ -636,3 +634,13 @@ document.addEventListener( 'keyup', function( e ) {
}
}
} );
var toggles = document.querySelectorAll( '.slideout-toggle a' );
for ( var i = 0; i < toggles.length; i++ ) {
toggles[ i ].addEventListener( 'keypress', function( e ) {
if ( ' ' === e.key ) {
e.preventDefault();
generateOffside.open();
}
} );
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long