Version Description
- New! - Visual tool to identify menus and other elements to hide
Download this release
Release Info
Developer | takanakui |
Plugin | WP Mobile Menu |
Version | 2.8.1.7 |
Comparing to | |
See all releases |
Code changes from version 2.8.1.6 to 2.8.1.7
- includes/class-wp-mobile-menu-core.php +16 -1
- includes/class-wp-mobile-menu-options.php +8 -6
- includes/css/mobmenu-admin.css +18 -0
- includes/css/mobmenu.css +68 -0
- includes/js/mobmenu-admin.js +23 -2
- includes/js/mobmenu.js +213 -1
- mobmenu.php +4 -5
- readme.txt +12 -1
includes/class-wp-mobile-menu-core.php
CHANGED
@@ -334,8 +334,8 @@ class WP_Mobile_Menu_Core
|
|
334 |
$right_menu_content = apply_filters( 'mm_right_menu_filter', $right_menu_content );
|
335 |
}
|
336 |
|
337 |
-
$header_elements_order = array( 'left-menu', 'logo', 'right-menu' );
|
338 |
$language_selector = '';
|
|
|
339 |
$header_output = '';
|
340 |
if ( $titan->getOption( 'enable_left_menu' ) ) {
|
341 |
$header_output = '<div class="mobmenul-container">';
|
@@ -666,6 +666,21 @@ class WP_Mobile_Menu_Core
|
|
666 |
return $output;
|
667 |
}
|
668 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
669 |
/**
|
670 |
* Register the Mobile Menus.
|
671 |
*/
|
334 |
$right_menu_content = apply_filters( 'mm_right_menu_filter', $right_menu_content );
|
335 |
}
|
336 |
|
|
|
337 |
$language_selector = '';
|
338 |
+
$header_elements_order = array( 'left-menu', 'logo', 'right-menu' );
|
339 |
$header_output = '';
|
340 |
if ( $titan->getOption( 'enable_left_menu' ) ) {
|
341 |
$header_output = '<div class="mobmenul-container">';
|
666 |
return $output;
|
667 |
}
|
668 |
|
669 |
+
/**
|
670 |
+
* Load the Find elements tool.
|
671 |
+
*/
|
672 |
+
public function find_elements_mobmenu()
|
673 |
+
{
|
674 |
+
|
675 |
+
if ( isset( $_GET['mobmenu-action'] ) ) {
|
676 |
+
$mobmenu_action = $_GET['mobmenu-action'];
|
677 |
+
if ( $mobmenu_action == 'find-element' ) {
|
678 |
+
add_filter( 'show_admin_bar', '__return_false' );
|
679 |
+
}
|
680 |
+
}
|
681 |
+
|
682 |
+
}
|
683 |
+
|
684 |
/**
|
685 |
* Register the Mobile Menus.
|
686 |
*/
|
includes/class-wp-mobile-menu-options.php
CHANGED
@@ -267,17 +267,17 @@ class WP_Mobile_Menu_Options
|
|
267 |
'name' => __( 'Hide Original Theme Menu', 'mobile-menu' ),
|
268 |
'type' => 'heading',
|
269 |
) );
|
270 |
-
$general_tab->createOption( array(
|
271 |
-
'type' => 'note',
|
272 |
-
'desc' => __( 'If you need help identifying the correct elements just create a new ticket in our <a href="https://www.wpmobilemenu.com/support-contact/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=hide_original_menu_help" target="_blank">support page</a> with your site url and a screenshot of the element you want to hide. We reply fast.', 'mobile-menu' ),
|
273 |
-
) );
|
274 |
// Hide Html Elements.
|
275 |
$general_tab->createOption( array(
|
276 |
'name' => __( 'Hide Elements', 'mobile-menu' ),
|
277 |
'id' => 'hide_elements',
|
278 |
'type' => 'text',
|
279 |
'default' => '',
|
280 |
-
'desc' => __( '<p>
|
|
|
|
|
|
|
|
|
281 |
) );
|
282 |
$general_tab->createOption( array(
|
283 |
'name' => __( 'Hide elements by default', 'mobile-menu' ),
|
@@ -301,6 +301,7 @@ class WP_Mobile_Menu_Options
|
|
301 |
'14' => '.fusion-header',
|
302 |
'15' => '#site-header',
|
303 |
'16' => '.elementor-widget-nav-menu',
|
|
|
304 |
),
|
305 |
'default' => array(
|
306 |
'1',
|
@@ -318,7 +319,8 @@ class WP_Mobile_Menu_Options
|
|
318 |
'13',
|
319 |
'14',
|
320 |
'15',
|
321 |
-
'16'
|
|
|
322 |
),
|
323 |
) );
|
324 |
$general_tab->createOption( array(
|
267 |
'name' => __( 'Hide Original Theme Menu', 'mobile-menu' ),
|
268 |
'type' => 'heading',
|
269 |
) );
|
|
|
|
|
|
|
|
|
270 |
// Hide Html Elements.
|
271 |
$general_tab->createOption( array(
|
272 |
'name' => __( 'Hide Elements', 'mobile-menu' ),
|
273 |
'id' => 'hide_elements',
|
274 |
'type' => 'text',
|
275 |
'default' => '',
|
276 |
+
'desc' => __( '<p>Use the Find element button and click in the elements you want to hide. When you are done hit the Save Changes button.<p> Example: .menu , #nav</p>', 'mobile-menu' ),
|
277 |
+
) );
|
278 |
+
$general_tab->createOption( array(
|
279 |
+
'type' => 'note',
|
280 |
+
'desc' => __( 'If you somehow couldn\'t find the necessary elements using the visual tool to pick elements just create a new ticket in our <a href="https://www.wpmobilemenu.com/support-contact/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=hide_original_menu_help" target="_blank">support page</a> with your site url and a screenshot of the element you want to hide. We reply fast.', 'mobile-menu' ),
|
281 |
) );
|
282 |
$general_tab->createOption( array(
|
283 |
'name' => __( 'Hide elements by default', 'mobile-menu' ),
|
301 |
'14' => '.fusion-header',
|
302 |
'15' => '#site-header',
|
303 |
'16' => '.elementor-widget-nav-menu',
|
304 |
+
'17' => '.fl-nav',
|
305 |
),
|
306 |
'default' => array(
|
307 |
'1',
|
319 |
'13',
|
320 |
'14',
|
321 |
'15',
|
322 |
+
'16',
|
323 |
+
'17'
|
324 |
),
|
325 |
) );
|
326 |
$general_tab->createOption( array(
|
includes/css/mobmenu-admin.css
CHANGED
@@ -619,4 +619,22 @@ td.second.tf-multicheck-pages fieldset {
|
|
619 |
line-height: 30px;
|
620 |
font-size: 30px;
|
621 |
color: #ddd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
622 |
}
|
619 |
line-height: 30px;
|
620 |
font-size: 30px;
|
621 |
color: #ddd;
|
622 |
+
}
|
623 |
+
.mobmenu-find-element {
|
624 |
+
border: 1px solid #2d7ab0;
|
625 |
+
padding: 5px;
|
626 |
+
margin-left: 10px;
|
627 |
+
color: #fff;
|
628 |
+
background: #168b1f;
|
629 |
+
text-decoration: none;
|
630 |
+
cursor: pointer;
|
631 |
+
}
|
632 |
+
.mobmenu-preview-iframe {
|
633 |
+
position: fixed;
|
634 |
+
top: 100px;
|
635 |
+
right: 30px;
|
636 |
+
display: none;
|
637 |
+
background: #fefdfd;
|
638 |
+
border: 15px solid #222020;
|
639 |
+
border-radius: 25px;
|
640 |
}
|
includes/css/mobmenu.css
CHANGED
@@ -288,3 +288,71 @@ h4.no-mobile-menu a {
|
|
288 |
.mobmenu-content .widget_media_image {
|
289 |
text-align: center;
|
290 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
.mobmenu-content .widget_media_image {
|
289 |
text-align: center;
|
290 |
}
|
291 |
+
|
292 |
+
#_pick_tips_content {
|
293 |
+
border: 0;
|
294 |
+
position: fixed;
|
295 |
+
right: 5px;
|
296 |
+
top: 5px;
|
297 |
+
z-index: 99999999;
|
298 |
+
width: 300px;
|
299 |
+
box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2),
|
300 |
+
0 2px 2px 0 rgba(0, 0, 0, .14),
|
301 |
+
0 1px 5px 0 rgba(0, 0, 0, .12);
|
302 |
+
border-radius: 4px;
|
303 |
+
background-color: rgba(255, 255, 255, 0.8);
|
304 |
+
font-size: 0;
|
305 |
+
margin: 0;
|
306 |
+
padding: 0;
|
307 |
+
transition: all 0.3s;
|
308 |
+
min-height: 540px;
|
309 |
+
height: auto;
|
310 |
+
display: none;
|
311 |
+
}
|
312 |
+
|
313 |
+
#_pick_tips_content.on {
|
314 |
+
display: inline-block;
|
315 |
+
}
|
316 |
+
|
317 |
+
/* cover mode */
|
318 |
+
#_picker_cover_wrap_box svg {
|
319 |
+
position: fixed;
|
320 |
+
top: 0;
|
321 |
+
left: 0;
|
322 |
+
cursor: crosshair;
|
323 |
+
width: 100%;
|
324 |
+
height: 100%;
|
325 |
+
z-index: 99999998;
|
326 |
+
}
|
327 |
+
|
328 |
+
#_picker_cover_wrap_box svg>path:first-child {
|
329 |
+
fill: rgba(0, 0, 0, 0);
|
330 |
+
fill-rule: evenodd;
|
331 |
+
}
|
332 |
+
|
333 |
+
#_picker_cover_wrap_box svg>path+path {
|
334 |
+
stroke: #29c66d;
|
335 |
+
stroke-width: 3.5px;
|
336 |
+
fill: rgb(226 239 232 / 20%);
|
337 |
+
}
|
338 |
+
|
339 |
+
#_picker_cover_wrap_box {
|
340 |
+
transition: all 0.3s;
|
341 |
+
pointer-events: none;
|
342 |
+
}
|
343 |
+
|
344 |
+
@keyframes ellipsis {
|
345 |
+
from {
|
346 |
+
width: 2px;
|
347 |
+
}
|
348 |
+
|
349 |
+
to {
|
350 |
+
width: 15px;
|
351 |
+
}
|
352 |
+
}
|
353 |
+
/* target mode */
|
354 |
+
._picker_target_elm {
|
355 |
+
background: transparent;
|
356 |
+
outline: #1dcd1d solid 3px;
|
357 |
+
color: #000;
|
358 |
+
}
|
includes/js/mobmenu-admin.js
CHANGED
@@ -19,6 +19,11 @@
|
|
19 |
jQuery( document ).ready( function(){
|
20 |
var editorSettings = null;
|
21 |
|
|
|
|
|
|
|
|
|
|
|
22 |
// Initilialize the CodeMirror on the custom CSS option.
|
23 |
if ( $('#mobmenu_custom_css').length > 0 ) {
|
24 |
editorSettings = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};
|
@@ -447,7 +452,23 @@
|
|
447 |
security: $( this ).parent().attr( 'data-ajax-nonce' )
|
448 |
}
|
449 |
});
|
450 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
});
|
452 |
-
|
453 |
}(jQuery));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
jQuery( document ).ready( function(){
|
20 |
var editorSettings = null;
|
21 |
|
22 |
+
$( '#mobmenu_hide_elements' ).after( '<a href="#" class="mobmenu-find-element">Find element</a>' );
|
23 |
+
$('body').append('<iframe class="mobmenu-preview-iframe" scrolling="no" id="mobmenu-preview-iframe" width="380" height="650" >');
|
24 |
+
setTimeout(function(){ $( '#mobmenu-preview-iframe' ).attr( 'src', document.location.protocol + '//' + document.location.hostname + '/?mobmenu-action=find-element' ); }, 3000);
|
25 |
+
|
26 |
+
|
27 |
// Initilialize the CodeMirror on the custom CSS option.
|
28 |
if ( $('#mobmenu_custom_css').length > 0 ) {
|
29 |
editorSettings = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};
|
452 |
security: $( this ).parent().attr( 'data-ajax-nonce' )
|
453 |
}
|
454 |
});
|
455 |
+
});
|
456 |
+
|
457 |
+
$( document ).on( 'click', ' .mobmenu-find-element' , function( e ) {
|
458 |
+
|
459 |
+
e.preventDefault();
|
460 |
+
$( '#mobmenu-preview-iframe' ).show();
|
461 |
+
});
|
462 |
+
|
463 |
});
|
464 |
+
|
465 |
}(jQuery));
|
466 |
+
// In Parent
|
467 |
+
function receivePickedElement (el) {
|
468 |
+
var hideElements = jQuery( '#mobmenu_hide_elements').val().trim();
|
469 |
+
if ( hideElements == '' ) {
|
470 |
+
jQuery( '#mobmenu_hide_elements').val( el );
|
471 |
+
} else {
|
472 |
+
jQuery( '#mobmenu_hide_elements').val( hideElements + ' , ' + el );
|
473 |
+
}
|
474 |
+
}
|
includes/js/mobmenu.js
CHANGED
@@ -9,9 +9,85 @@
|
|
9 |
*/
|
10 |
|
11 |
"use strict";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
jQuery( document ).ready( function($) {
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
function mobmenuOpenSubmenus( menu ) {
|
16 |
var submenu = $(menu).parent().next();
|
17 |
if ( $(menu).parent().next().hasClass( 'show-sub-menu' ) ) {
|
@@ -213,7 +289,7 @@
|
|
213 |
$( 'body' ).removeClass( 'show-nav-left' );
|
214 |
$( 'html' ).removeClass( 'mob-menu-no-scroll' );
|
215 |
|
216 |
-
setTimeout(
|
217 |
$('.mob-menu-sliding-menus [data-menu-level]').scrollTop( '0' );
|
218 |
$('.mobmenu-content .show-sub-menu').removeClass( 'show-sub-menu' );
|
219 |
}, 400);
|
@@ -235,5 +311,141 @@
|
|
235 |
|
236 |
}
|
237 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
|
239 |
|
9 |
*/
|
10 |
|
11 |
"use strict";
|
12 |
+
function getSelector(el){
|
13 |
+
var $el = jQuery(el);
|
14 |
+
|
15 |
+
var id = $el.attr("id");
|
16 |
+
if (id) { //"should" only be one of these if theres an ID
|
17 |
+
return "#"+ id;
|
18 |
+
}
|
19 |
+
|
20 |
+
var selector = $el.parents()
|
21 |
+
.map(function() { return this.tagName; })
|
22 |
+
.get().reverse().join(" ");
|
23 |
+
|
24 |
+
if (selector) {
|
25 |
+
selector += " "+ $el[0].nodeName;
|
26 |
+
}
|
27 |
+
|
28 |
+
var classNames = $el.attr("class");
|
29 |
+
if (classNames) {
|
30 |
+
selector += "." + jQuery.trim(classNames).replace(/\s/gi, ".");
|
31 |
+
}
|
32 |
+
|
33 |
+
var name = $el.attr('name');
|
34 |
+
if (name) {
|
35 |
+
selector += "[name='" + name + "']";
|
36 |
+
}
|
37 |
+
if (!name){
|
38 |
+
var index = $el.index();
|
39 |
+
if (index) {
|
40 |
+
index = index + 1;
|
41 |
+
selector += ":nth-child(" + index + ")";
|
42 |
+
}
|
43 |
+
}
|
44 |
+
return selector;
|
45 |
+
}
|
46 |
|
47 |
+
function enableMobileMenuElementPicker(){
|
48 |
+
const p = new Picker({
|
49 |
+
elm: document.getElementById('elm1'),
|
50 |
+
mode: 'cover',
|
51 |
+
excludeElmName: ['body'],
|
52 |
+
events: [{
|
53 |
+
key: 'contextmenu',
|
54 |
+
fn(event) {
|
55 |
+
event.preventDefault();
|
56 |
+
},
|
57 |
+
}],
|
58 |
+
onInit() {
|
59 |
+
|
60 |
+
},
|
61 |
+
onClick(event) {
|
62 |
+
var selector = getSelector(event.target).toLowerCase();
|
63 |
+
window.parent.receivePickedElement(selector);
|
64 |
+
jQuery(selector).hide();
|
65 |
+
},
|
66 |
+
onHover(event) {
|
67 |
+
|
68 |
+
},
|
69 |
+
});
|
70 |
+
document.getElementById('m_on').addEventListener('click', () => {
|
71 |
+
p.on();
|
72 |
+
});
|
73 |
+
document.getElementById('m_off').addEventListener('click', () => {
|
74 |
+
p.off();
|
75 |
+
});
|
76 |
+
document.getElementById('m_cover').addEventListener('click', () => {
|
77 |
+
p.changeMode('cover');
|
78 |
+
});
|
79 |
+
document.getElementById('m_target').addEventListener('click', () => {
|
80 |
+
p.changeMode('target');
|
81 |
+
});
|
82 |
+
}
|
83 |
jQuery( document ).ready( function($) {
|
84 |
|
85 |
+
const urlParams = new URLSearchParams( window.location.search );
|
86 |
+
|
87 |
+
if ( urlParams.get( 'mobmenu-action' ) == 'find-element' ) {
|
88 |
+
enableMobileMenuElementPicker();
|
89 |
+
}
|
90 |
+
|
91 |
function mobmenuOpenSubmenus( menu ) {
|
92 |
var submenu = $(menu).parent().next();
|
93 |
if ( $(menu).parent().next().hasClass( 'show-sub-menu' ) ) {
|
289 |
$( 'body' ).removeClass( 'show-nav-left' );
|
290 |
$( 'html' ).removeClass( 'mob-menu-no-scroll' );
|
291 |
|
292 |
+
setTimeout(function(){
|
293 |
$('.mob-menu-sliding-menus [data-menu-level]').scrollTop( '0' );
|
294 |
$('.mobmenu-content .show-sub-menu').removeClass( 'show-sub-menu' );
|
295 |
}, 400);
|
311 |
|
312 |
}
|
313 |
});
|
314 |
+
|
315 |
+
window.Picker = class Picker {
|
316 |
+
constructor(options = {}) {
|
317 |
+
this.elm = options.elm || document.querySelector('body');
|
318 |
+
this.mode = options.mode || 'target';
|
319 |
+
this.excludeElmName = options.excludeElmName || [];
|
320 |
+
this.switch = typeof options.switch === 'boolean' ? options.switch : true;
|
321 |
+
|
322 |
+
this.events = options.events || [];
|
323 |
+
this.onInit = options.onInit;
|
324 |
+
this.onClick = options.onClick ? options.onClick.bind(this) : null;
|
325 |
+
this.onHover = options.onHover ? options.onHover.bind(this) : null;
|
326 |
+
|
327 |
+
|
328 |
+
// Internal handler
|
329 |
+
this.fn_bind_clickHandle = null;
|
330 |
+
this.fn_bind_hoverHandle = null;
|
331 |
+
this.fn_bind_contextmenuHandle = null;
|
332 |
+
this._init();
|
333 |
+
}
|
334 |
+
on() {
|
335 |
+
this.switch = true;
|
336 |
+
}
|
337 |
+
off() {
|
338 |
+
this.switch = false;
|
339 |
+
this._removeTargetShowPos();
|
340 |
+
this._removeCoverShowPos();
|
341 |
+
}
|
342 |
+
changeMode(mode) {
|
343 |
+
let modeArr = ['cover', 'target'];
|
344 |
+
if (modeArr.includes(mode)) {
|
345 |
+
this.mode = mode;
|
346 |
+
this._removeTargetShowPos();
|
347 |
+
this._removeCoverShowPos();
|
348 |
+
} else {
|
349 |
+
console.error(`Mode error, only includes [ ${modeArr.join(" | ")} ]`);
|
350 |
+
}
|
351 |
+
}
|
352 |
+
destroy() {
|
353 |
+
this.events.forEach((eo) => {
|
354 |
+
eo.fn_bind = eo.fn.bind(this);
|
355 |
+
this.elm.removeEventListener(eo.key, this[`_${eo.key}_Handle`], false);
|
356 |
+
});
|
357 |
+
|
358 |
+
this.elm.removeEventListener('mouseover', this.fn_bind_hoverHandle, false);
|
359 |
+
this.elm.removeEventListener('click', this.fn_bind_clickHandle, false);
|
360 |
+
|
361 |
+
this._removeTargetShowPos();
|
362 |
+
document.querySelector("#_picker_cover_wrap_box").remove();
|
363 |
+
}
|
364 |
+
_init() {
|
365 |
+
let wrapDom = document.createElement('div');
|
366 |
+
wrapDom.setAttribute("id", "_picker_cover_wrap_box");
|
367 |
+
wrapDom.innerHTML = '<svg></svg>';
|
368 |
+
document.body.appendChild(wrapDom);
|
369 |
+
this._initEvent();
|
370 |
+
this.onInit && this.onInit();
|
371 |
+
}
|
372 |
+
_initEvent() {
|
373 |
+
this.events.forEach((eo) => {
|
374 |
+
this[`_${eo.key}_Handle`] = (event) => {
|
375 |
+
if (this._triggerEvent(event) === false) return;
|
376 |
+
eo.fn && eo.fn(event);
|
377 |
+
};
|
378 |
+
eo.fn_bind = this[`_${eo.key}_Handle`].bind(this);
|
379 |
+
this.elm.addEventListener(eo.key, this[`_${eo.key}_Handle`], false);
|
380 |
+
});
|
381 |
+
|
382 |
+
this.fn_bind_hoverHandle = this._hoverHandle.bind(this);
|
383 |
+
this.fn_bind_clickHandle = this._clickHandle.bind(this);
|
384 |
+
|
385 |
+
this.elm.addEventListener('mouseover', this.fn_bind_hoverHandle, false);
|
386 |
+
this.elm.addEventListener('click', this.fn_bind_clickHandle, false);
|
387 |
+
|
388 |
+
}
|
389 |
+
_triggerEvent(event) {
|
390 |
+
let tipsDom = document.querySelector("#_pick_tips_content");
|
391 |
+
if (
|
392 |
+
this.switch &&
|
393 |
+
!this.excludeElmName.includes(event.target.localName.toLocaleLowerCase()) &&
|
394 |
+
!(tipsDom ? tipsDom.contains(event.target) : 0)
|
395 |
+
) {
|
396 |
+
event.stopPropagation();
|
397 |
+
event.preventDefault();
|
398 |
+
return true;
|
399 |
+
} else {
|
400 |
+
return false;
|
401 |
+
}
|
402 |
+
}
|
403 |
+
_hoverHandle(event) {
|
404 |
+
if (this._triggerEvent(event) === false) return;
|
405 |
+
switch (this.mode) {
|
406 |
+
case 'cover':
|
407 |
+
this._coverShowPos(event);
|
408 |
+
break;
|
409 |
+
case 'target':
|
410 |
+
this._targetShowPos(event);
|
411 |
+
break;
|
412 |
+
}
|
413 |
+
this.onHover && this.onHover(event);
|
414 |
+
}
|
415 |
+
_clickHandle(event) {
|
416 |
+
if (this._triggerEvent(event) === false) return;
|
417 |
+
this.onClick && this.onClick(event);
|
418 |
+
}
|
419 |
+
_targetShowPos(event) {
|
420 |
+
this._removeTargetShowPos();
|
421 |
+
if (event.target.localName === 'body') return;
|
422 |
+
event.target.classList.add("_picker_target_elm");
|
423 |
+
}
|
424 |
+
_removeTargetShowPos() {
|
425 |
+
document.querySelectorAll("._picker_target_elm").forEach((elm) => {
|
426 |
+
elm.classList.remove("_picker_target_elm");
|
427 |
+
});
|
428 |
+
}
|
429 |
+
_coverShowPos(event) {
|
430 |
+
let elm = event.target;
|
431 |
+
let W_W = window.screen.availWidth;
|
432 |
+
let W_H = window.screen.availHeight;
|
433 |
+
let pos = elm.getBoundingClientRect();
|
434 |
+
let p = {
|
435 |
+
tX: pos.left > 0 ? pos.left : 0,
|
436 |
+
tY: pos.top > 0 ? pos.top : 0,
|
437 |
+
w: pos.right - pos.left,
|
438 |
+
h: pos.bottom - pos.top,
|
439 |
+
};
|
440 |
+
let path_W = `M 0 0 h ${W_W} v ${W_H} h -${W_W} Z`;
|
441 |
+
let path_box = `M ${p.tX} ${p.tY} h ${p.w} v ${p.h} h -${p.w} Z`;
|
442 |
+
let elm_path1 = `<path d="${path_W} ${path_box}"></path>`;
|
443 |
+
let elm_path2 = `<path d="${path_box}"></path>`;
|
444 |
+
document.querySelector("#_picker_cover_wrap_box svg").innerHTML = elm_path1 + elm_path2;
|
445 |
+
}
|
446 |
+
_removeCoverShowPos() {
|
447 |
+
document.querySelector("#_picker_cover_wrap_box svg").innerHTML = '';
|
448 |
+
}
|
449 |
+
};
|
450 |
|
451 |
|
mobmenu.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Plugin Name: Mobile Menu
|
5 |
* Description: An easy to use WordPress responsive mobile menu. Keep your mobile visitors engaged.
|
6 |
-
* Version: 2.8.1.
|
7 |
* Plugin URI: https://www.wpmobilemenu.com/
|
8 |
* Author: Rui Guerreiro
|
9 |
* Author URI: https://www.jedipress.com/
|
@@ -16,7 +16,7 @@
|
|
16 |
if ( !defined( 'ABSPATH' ) ) {
|
17 |
die;
|
18 |
}
|
19 |
-
define( 'WP_MOBILE_MENU_VERSION', '2.8.1.
|
20 |
define( 'WP_MOBILE_MENU_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
|
21 |
define( 'WP_MOBILE_MENU_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
22 |
if ( !class_exists( 'WP_Mobile_Menu' ) ) {
|
@@ -82,6 +82,8 @@ if ( !class_exists( 'WP_Mobile_Menu' ) ) {
|
|
82 |
add_action( 'wp_loaded', array( $this->mobmenu_core, 'register_sidebar' ) );
|
83 |
// Register Menus.
|
84 |
add_action( 'init', array( $this->mobmenu_core, 'register_menus' ) );
|
|
|
|
|
85 |
// Load frontend assets.
|
86 |
if ( !is_admin() ) {
|
87 |
add_action( 'init', array( $this, 'load_frontend_assets' ) );
|
@@ -223,9 +225,6 @@ if ( !class_exists( 'WP_Mobile_Menu' ) ) {
|
|
223 |
wp_enqueue_style( 'cssmobmenu-admin', plugins_url( 'includes/css/mobmenu-admin.css', __FILE__ ) );
|
224 |
}
|
225 |
|
226 |
-
if ( !get_option( 'wp_mobile_menu_upgrade_banner_dismissed' ) ) {
|
227 |
-
add_action( 'admin_notices', array( $this, 'wp_mobile_menu_upgrade_admin_notice' ) );
|
228 |
-
}
|
229 |
|
230 |
if ( 'nav-menus.php' === $hook || 'toplevel_page_mobile-menu-options' === $hook ) {
|
231 |
wp_enqueue_style( 'cssmobmenu-icons', plugins_url( 'includes/css/mobmenu-icons.css', __FILE__ ) );
|
3 |
/**
|
4 |
* Plugin Name: Mobile Menu
|
5 |
* Description: An easy to use WordPress responsive mobile menu. Keep your mobile visitors engaged.
|
6 |
+
* Version: 2.8.1.7
|
7 |
* Plugin URI: https://www.wpmobilemenu.com/
|
8 |
* Author: Rui Guerreiro
|
9 |
* Author URI: https://www.jedipress.com/
|
16 |
if ( !defined( 'ABSPATH' ) ) {
|
17 |
die;
|
18 |
}
|
19 |
+
define( 'WP_MOBILE_MENU_VERSION', '2.8.1.7' );
|
20 |
define( 'WP_MOBILE_MENU_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
|
21 |
define( 'WP_MOBILE_MENU_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
22 |
if ( !class_exists( 'WP_Mobile_Menu' ) ) {
|
82 |
add_action( 'wp_loaded', array( $this->mobmenu_core, 'register_sidebar' ) );
|
83 |
// Register Menus.
|
84 |
add_action( 'init', array( $this->mobmenu_core, 'register_menus' ) );
|
85 |
+
// Find Elements to Hide.
|
86 |
+
add_action( 'init', array( $this->mobmenu_core, 'find_elements_mobmenu' ) );
|
87 |
// Load frontend assets.
|
88 |
if ( !is_admin() ) {
|
89 |
add_action( 'init', array( $this, 'load_frontend_assets' ) );
|
225 |
wp_enqueue_style( 'cssmobmenu-admin', plugins_url( 'includes/css/mobmenu-admin.css', __FILE__ ) );
|
226 |
}
|
227 |
|
|
|
|
|
|
|
228 |
|
229 |
if ( 'nav-menus.php' === $hook || 'toplevel_page_mobile-menu-options' === $hook ) {
|
230 |
wp_enqueue_style( 'cssmobmenu-icons', plugins_url( 'includes/css/mobmenu-icons.css', __FILE__ ) );
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ link: http://profiles.wordpress.org/takanakui
|
|
4 |
Tags: mobile, navigation, responsive, menu, responsive menu, mobile menu, tablet menu, hamburger menu, hamburger, wordpress responsive menu, wordpress mobile menu, canvas menu
|
5 |
Requires at least: 4.4
|
6 |
Tested up to: 5.6
|
7 |
-
Stable tag: 2.8.1.
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
@@ -132,8 +132,19 @@ Not available at the moment
|
|
132 |
|
133 |
== Changelog ==
|
134 |
|
|
|
|
|
135 |
|
136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
= 2.8.1.5 =
|
138 |
* Improvment! - Update Freemius SDK
|
139 |
* Improvment! - Center images inside the menu panels
|
4 |
Tags: mobile, navigation, responsive, menu, responsive menu, mobile menu, tablet menu, hamburger menu, hamburger, wordpress responsive menu, wordpress mobile menu, canvas menu
|
5 |
Requires at least: 4.4
|
6 |
Tested up to: 5.6
|
7 |
+
Stable tag: 2.8.1.7
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
132 |
|
133 |
== Changelog ==
|
134 |
|
135 |
+
= 2.8.1.7 =
|
136 |
+
* New! - Visual tool to identify menus and other elements to hide
|
137 |
|
138 |
|
139 |
+
= 2.8.1.6.1 =
|
140 |
+
* Fix! - Fix error on function that doesn't exist
|
141 |
+
|
142 |
+
= 2.8.1.6 =
|
143 |
+
* Improvment! - Update Freemius SDK
|
144 |
+
* Improvment! - Add CSS to prevent issues with PageOptimize
|
145 |
+
* Improvment! - Fix z-index of menu panel
|
146 |
+
* Improvment! - Fix Parent link issue
|
147 |
+
|
148 |
= 2.8.1.5 =
|
149 |
* Improvment! - Update Freemius SDK
|
150 |
* Improvment! - Center images inside the menu panels
|