Version Description
- Fix! - Remove metabox upgrade
- New! - New Settings Design/UX
- Improvment! - Remove metabox upgrade
- Improvment! - Initial process of removing TitanFramework
- Improvment! - Update Freemius SDK
Download this release
Release Info
Developer | takanakui |
Plugin | WP Mobile Menu |
Version | 2.8.2 |
Comparing to | |
See all releases |
Code changes from version 2.8.1.8.1 to 2.8.2
- freemius/assets/css/admin/common.css +1 -1
- freemius/assets/css/admin/connect.css +1 -1
- freemius/includes/class-freemius.php +79 -41
- freemius/includes/class-fs-logger.php +2 -2
- freemius/includes/entities/class-fs-site.php +17 -0
- freemius/includes/entities/class-fs-user.php +0 -17
- freemius/languages/freemius-cs_CZ.mo +0 -0
- freemius/languages/freemius-da_DK.mo +0 -0
- freemius/languages/freemius-en.mo +0 -0
- freemius/languages/freemius-es_ES.mo +0 -0
- freemius/languages/freemius-fr_FR.mo +0 -0
- freemius/languages/freemius-he_IL.mo +0 -0
- freemius/languages/freemius-hu_HU.mo +0 -0
- freemius/languages/freemius-it_IT.mo +0 -0
- freemius/languages/freemius-ja.mo +0 -0
- freemius/languages/freemius-nl_NL.mo +0 -0
- freemius/languages/freemius-ru_RU.mo +0 -0
- freemius/languages/freemius-ta.mo +0 -0
- freemius/languages/freemius-zh_CN.mo +0 -0
- freemius/languages/freemius.pot +345 -313
- freemius/start.php +3 -3
- freemius/templates/account.php +5 -3
- freemius/templates/connect.php +49 -37
- freemius/templates/forms/license-activation.php +3 -1
- includes/class-wp-mobile-menu-core.php +2 -2
- includes/class-wp-mobile-menu-options.php +269 -302
- includes/class-wp-mobile-menu-walker-nav-menu.php +1 -1
- includes/css/font/mobmenu.eot +0 -0
- includes/css/font/mobmenu.svg +0 -148
- includes/css/font/mobmenu.ttf +0 -0
- includes/css/mobmenu-admin.css +181 -51
- includes/css/mobmenu-codes.css +0 -40
- includes/css/mobmenu-codes_remove.css +0 -40
- includes/css/mobmenu-embedded.css +0 -93
- includes/css/mobmenu-embedded_remove.css +0 -98
- includes/css/mobmenu-fontello.css +0 -94
- includes/css/mobmenu-fontello_remove.css +0 -94
- includes/css/mobmenu-icons.css +2 -6
- includes/css/mobmenu-ie7-codes.css +0 -40
- includes/css/mobmenu-ie7-codes_remove.css +0 -40
- includes/css/mobmenu-ie7.css +0 -51
- includes/css/mobmenu-ie7_remove.css +0 -51
- includes/css/mobmenu.css +6 -3
- includes/js/mobmenu-admin.js +77 -24
- includes/js/mobmenu.js +74 -60
- mobmenu.php +17 -14
- options-framework/{titan-framework/css → css}/admin-styles.css +1 -7
- options-framework/{titan-framework/css → css}/admin-theme-customizer-styles.css +0 -0
- options-framework/{titan-framework/css → css}/class-option-date.css +0 -0
- options-framework/{titan-framework/css → css}/class-option-font.css +0 -0
- options-framework/{titan-framework/css → css}/class-option-select.css +0 -0
- options-framework/{titan-framework/css → css}/select2/select2.min.css +0 -0
- options-framework/{titan-framework/inc → inc}/scssphp/LICENSE.md +0 -0
- options-framework/{titan-framework/inc → inc}/scssphp/README.md +0 -0
- options-framework/{titan-framework/inc → inc}/scssphp/composer.json +0 -0
- options-framework/{titan-framework/inc → inc}/scssphp/scss.inc.php +0 -0
- options-framework/{titan-framework/js → js}/admin-styling.js +0 -0
- options-framework/{titan-framework/js → js}/dev/admin-styling.js +0 -0
- options-framework/{titan-framework/js → js}/dev/jquery-ui-timepicker-addon.js +0 -0
- options-framework/{titan-framework/js → js}/dev/serialize.js +0 -0
- options-framework/{titan-framework/js → js}/dev/wp-color-picker-alpha.js +0 -0
- options-framework/{titan-framework/js → js}/jquery-ui-timepicker-addon.js +0 -0
- options-framework/{titan-framework/js → js}/min/admin-styling-min.js +0 -0
- options-framework/{titan-framework/js → js}/min/jquery-ui-timepicker-addon-min.js +0 -0
- options-framework/{titan-framework/js → js}/min/serialize-min.js +0 -0
- options-framework/{titan-framework/js → js}/min/wp-color-picker-alpha-min.js +0 -0
- options-framework/{titan-framework/js → js}/multicheck-select-all.js +0 -0
- options-framework/{titan-framework/js → js}/select2/select2.min.js +0 -0
- options-framework/{titan-framework/js → js}/serialize.js +0 -0
- options-framework/{titan-framework/js → js}/wp-color-picker-alpha.js +0 -0
- options-framework/{titan-framework/lib → lib}/class-admin-notification.php +0 -0
- options-framework/lib/class-admin-page.php +535 -0
- options-framework/{titan-framework/lib → lib}/class-admin-tab.php +42 -15
- options-framework/{titan-framework/lib → lib}/class-meta-box.php +0 -0
- options-framework/{titan-framework/lib → lib}/class-option-ajax-button.php +0 -54
- options-framework/{titan-framework/lib → lib}/class-option-checkbox.php +0 -13
- options-framework/{titan-framework/lib → lib}/class-option-code.php +0 -0
- options-framework/lib/class-option-color.php +96 -0
- options-framework/lib/class-option-custom.php +45 -0
- options-framework/{titan-framework/lib → lib}/class-option-date.php +0 -77
- options-framework/{titan-framework/lib → lib}/class-option-editor.php +0 -14
- options-framework/{titan-framework/lib → lib}/class-option-enable.php +0 -70
- options-framework/{titan-framework/lib → lib}/class-option-file.php +0 -86
- options-framework/{titan-framework/lib → lib}/class-option-font.php +0 -419
- options-framework/{titan-framework/lib → lib}/class-option-gallery.php +0 -0
- options-framework/{titan-framework/lib → lib}/class-option-group.php +0 -0
- options-framework/lib/class-option-heading.php +49 -0
- options-framework/lib/class-option-iframe.php +42 -0
- options-framework/lib/class-option-multicheck-categories.php +38 -0
- options-framework/lib/class-option-multicheck-pages.php +36 -0
- options-framework/lib/class-option-multicheck-post-types.php +41 -0
- options-framework/lib/class-option-multicheck-posts.php +43 -0
- options-framework/lib/class-option-multicheck.php +108 -0
- options-framework/{titan-framework/lib → lib}/class-option-note.php +9 -27
- options-framework/{titan-framework/lib → lib}/class-option-number.php +0 -72
- options-framework/{titan-framework/lib → lib}/class-option-radio-image.php +0 -58
- options-framework/{titan-framework/lib → lib}/class-option-radio-palette.php +0 -61
- options-framework/{titan-framework/lib → lib}/class-option-radio.php +0 -15
- options-framework/lib/class-option-save.php +35 -0
- options-framework/{titan-framework/lib → lib}/class-option-select-categories.php +0 -10
- options-framework/{titan-framework/lib → lib}/class-option-select-pages.php +0 -9
- options-framework/{titan-framework/lib → lib}/class-option-select-post-types.php +0 -10
- options-framework/{titan-framework/lib → lib}/class-option-select-posts.php +0 -9
- options-framework/{titan-framework/lib → lib}/class-option-select.php +2 -48
- options-framework/{titan-framework/lib → lib}/class-option-separator.php +0 -0
- options-framework/{titan-framework/lib → lib}/class-option-sortable.php +0 -108
- options-framework/{titan-framework/lib → lib}/class-option-text.php +0 -16
- options-framework/lib/class-option-textarea.php +38 -0
- options-framework/{titan-framework/lib → lib}/class-option-upload.php +8 -91
- options-framework/{titan-framework/lib → lib}/class-option.php +11 -29
- options-framework/{titan-framework/lib → lib}/class-titan-css.php +2 -5
- options-framework/{titan-framework/lib → lib}/class-titan-framework.php +4 -55
- options-framework/{titan-framework/lib → lib}/functions-googlefonts.php +0 -0
- options-framework/{titan-framework/lib → lib}/functions-utils.php +0 -0
- options-framework/{titan-framework/lib → lib}/iframe-font-preview.php +0 -0
- options-framework/{titan-framework/titan-framework.php → option-framework.php} +3 -36
- options-framework/titan-framework/.jshintrc +0 -29
- options-framework/titan-framework/.scrutinizer.yml +0 -10
- options-framework/titan-framework/.tm_properties +0 -19
- options-framework/titan-framework/.travis.yml +0 -36
- options-framework/titan-framework/lib/class-admin-page.php +0 -484
- options-framework/titan-framework/lib/class-customizer.php +0 -403
- options-framework/titan-framework/lib/class-option-color.php +0 -177
- options-framework/titan-framework/lib/class-option-custom.php +0 -94
- options-framework/titan-framework/lib/class-option-edd-license.php +0 -489
- options-framework/titan-framework/lib/class-option-heading.php +0 -108
- options-framework/titan-framework/lib/class-option-iframe.php +0 -105
- options-framework/titan-framework/lib/class-option-multicheck-categories.php +0 -66
- options-framework/titan-framework/lib/class-option-multicheck-pages.php +0 -64
- options-framework/titan-framework/lib/class-option-multicheck-post-types.php +0 -77
- options-framework/titan-framework/lib/class-option-multicheck-posts.php +0 -76
- options-framework/titan-framework/lib/class-option-multicheck.php +0 -213
- options-framework/titan-framework/lib/class-option-save.php +0 -55
- options-framework/titan-framework/lib/class-option-textarea.php +0 -72
- options-framework/titan-framework/lib/class-wp-customize-control.php +0 -18
- options-framework/titan-framework/readme.txt +0 -383
- options-framework/titan-framework/titan-framework-checker.php +0 -146
- options-framework/titan-framework/titan-framework-embedder.php +0 -68
- readme.txt +10 -3
freemius/assets/css/admin/common.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
.fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);background:#ececec;box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
|
2 |
-
.fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width:
|
1 |
.fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);background:#ececec;box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
|
2 |
+
.fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 1250px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
|
freemius/assets/css/admin/connect.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions
|
1 |
+
#fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions>.fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li>i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li .fs-switch{float:right}#fs_connect .fs-permissions ul li .fs-permission-description{margin-left:55px}#fs_connect .fs-permissions ul li .fs-permission-description span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{overflow:initial;height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff !important;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:-17px;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left;text-transform:none !important}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right;left:auto;right:-17px}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li .fs-permission-description{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li .fs-switch{float:left}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}#license_issues_link{display:block;text-align:center;font-size:0.9em;margin-top:10px}
|
freemius/includes/class-freemius.php
CHANGED
@@ -384,6 +384,13 @@
|
|
384 |
* @var boolean|null
|
385 |
*/
|
386 |
private $_use_external_pricing = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
387 |
|
388 |
#endregion
|
389 |
|
@@ -5484,7 +5491,7 @@
|
|
5484 |
function is_extensions_tracking_allowed() {
|
5485 |
return ( true === $this->apply_filters(
|
5486 |
'is_extensions_tracking_allowed',
|
5487 |
-
$this->_storage->get( 'is_extensions_tracking_allowed',
|
5488 |
) );
|
5489 |
}
|
5490 |
|
@@ -5528,10 +5535,12 @@
|
|
5528 |
* @author Leo Fajardo (@leorw)
|
5529 |
* @since 2.3.2
|
5530 |
*
|
5531 |
-
* @param bool $is_enabled
|
5532 |
*/
|
5533 |
-
|
5534 |
-
|
|
|
|
|
5535 |
}
|
5536 |
|
5537 |
/**
|
@@ -6860,8 +6869,6 @@
|
|
6860 |
*/
|
6861 |
function _sync_cron_method( array $blog_ids, $current_blog_id = null ) {
|
6862 |
if ( $this->is_registered() ) {
|
6863 |
-
$this->sync_user_beta_mode();
|
6864 |
-
|
6865 |
if ( $this->has_paid_plan() ) {
|
6866 |
// Initiate background plan sync.
|
6867 |
$this->_sync_license( true, false, $current_blog_id );
|
@@ -7234,7 +7241,8 @@
|
|
7234 |
}
|
7235 |
|
7236 |
if ( $this->is_plugin_new_install() || $this->is_only_premium() ) {
|
7237 |
-
if ( ! $this->_anonymous_mode
|
|
|
7238 |
// Show notice for new plugin installations.
|
7239 |
$this->_admin_notices->add(
|
7240 |
sprintf(
|
@@ -7285,6 +7293,10 @@
|
|
7285 |
* @return bool
|
7286 |
*/
|
7287 |
private function should_add_sticky_optin_notice() {
|
|
|
|
|
|
|
|
|
7288 |
if ( fs_is_network_admin() ) {
|
7289 |
if ( ! $this->_is_network_active ) {
|
7290 |
return false;
|
@@ -13238,26 +13250,25 @@
|
|
13238 |
self::shoot_ajax_failure();
|
13239 |
}
|
13240 |
|
13241 |
-
$
|
13242 |
'',
|
13243 |
'put',
|
13244 |
array(
|
13245 |
-
'plugin_id' => $this->get_id(),
|
13246 |
'is_beta' => ( 'true' == $is_beta ),
|
13247 |
'fields' => 'is_beta'
|
13248 |
)
|
13249 |
);
|
13250 |
|
13251 |
-
if ( ! $this->is_api_result_entity( $
|
13252 |
self::shoot_ajax_failure(
|
13253 |
-
FS_Api::is_api_error_object( $
|
13254 |
-
$
|
13255 |
fs_text_inline( "An unknown error has occurred while trying to set the user's beta mode.", 'unknown-error-occurred', $this->get_slug() )
|
13256 |
);
|
13257 |
}
|
13258 |
|
13259 |
-
$this->
|
13260 |
-
$this->
|
13261 |
|
13262 |
self::shoot_ajax_response( array( 'success' => true ) );
|
13263 |
}
|
@@ -13292,7 +13303,7 @@
|
|
13292 |
fs_request_get( 'blog_id', null ),
|
13293 |
fs_request_get( 'module_id', null, 'post' ),
|
13294 |
fs_request_get( 'user_id', null ),
|
13295 |
-
fs_request_get_bool( 'is_extensions_tracking_allowed',
|
13296 |
);
|
13297 |
|
13298 |
if (
|
@@ -13482,7 +13493,31 @@
|
|
13482 |
* @return string
|
13483 |
*/
|
13484 |
function get_pricing_js_path() {
|
13485 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13486 |
}
|
13487 |
|
13488 |
/**
|
@@ -13527,7 +13562,7 @@
|
|
13527 |
$blog_id = null,
|
13528 |
$plugin_id = null,
|
13529 |
$license_owner_id = null,
|
13530 |
-
$is_extensions_tracking_allowed =
|
13531 |
) {
|
13532 |
$this->_logger->entrance();
|
13533 |
|
@@ -16448,19 +16483,6 @@
|
|
16448 |
);
|
16449 |
}
|
16450 |
|
16451 |
-
/**
|
16452 |
-
* @author Leo Fajardo (@leorw)
|
16453 |
-
* @since 2.3.0
|
16454 |
-
*/
|
16455 |
-
private function sync_user_beta_mode() {
|
16456 |
-
$user = $this->get_api_user_scope()->get( '/?plugin_id=' . $this->get_id() . '&fields=is_beta' );
|
16457 |
-
|
16458 |
-
if ( $this->is_api_result_entity( $user ) ) {
|
16459 |
-
$this->_user->is_beta = $user->is_beta;
|
16460 |
-
$this->_store_user();
|
16461 |
-
}
|
16462 |
-
}
|
16463 |
-
|
16464 |
/**
|
16465 |
* @author Vova Feldman (@svovaf)
|
16466 |
* @since 1.1.7.4
|
@@ -17148,9 +17170,7 @@
|
|
17148 |
$this->disable_opt_in_notice_and_lock_user();
|
17149 |
}
|
17150 |
|
17151 |
-
|
17152 |
-
$this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
|
17153 |
-
}
|
17154 |
|
17155 |
return $this->setup_account(
|
17156 |
$this->_user,
|
@@ -17195,9 +17215,7 @@
|
|
17195 |
$this->disable_opt_in_notice_and_lock_user();
|
17196 |
}
|
17197 |
|
17198 |
-
|
17199 |
-
$this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
|
17200 |
-
}
|
17201 |
|
17202 |
$sites = array();
|
17203 |
foreach ( $site_ids as $site_id ) {
|
@@ -17240,9 +17258,7 @@
|
|
17240 |
$this->disable_opt_in_notice_and_lock_user();
|
17241 |
}
|
17242 |
|
17243 |
-
|
17244 |
-
$this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
|
17245 |
-
}
|
17246 |
|
17247 |
$install_ids = array();
|
17248 |
|
@@ -17353,7 +17369,7 @@
|
|
17353 |
*/
|
17354 |
$license_key = fs_request_get( 'license_secret_key' );
|
17355 |
|
17356 |
-
$this->update_extensions_tracking_flag( fs_request_get_bool( 'is_extensions_tracking_allowed',
|
17357 |
|
17358 |
$this->install_with_current_user( $license_key );
|
17359 |
}
|
@@ -20605,6 +20621,20 @@
|
|
20605 |
}
|
20606 |
}
|
20607 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20608 |
if ( $this->is_addon() || $this->has_addons() ) {
|
20609 |
/**
|
20610 |
* Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
|
@@ -21298,7 +21328,7 @@
|
|
21298 |
|
21299 |
if ( $this->has_secret_key() ) {
|
21300 |
$endpoint = add_query_arg( 'type', 'all', $endpoint );
|
21301 |
-
} else if ( $this->
|
21302 |
$endpoint = add_query_arg( 'type', 'beta', $endpoint );
|
21303 |
}
|
21304 |
|
@@ -23396,6 +23426,14 @@
|
|
23396 |
return;
|
23397 |
}
|
23398 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23399 |
if ( fs_is_network_admin() ) {
|
23400 |
if ( ! $this->_is_network_active ) {
|
23401 |
// Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
|
384 |
* @var boolean|null
|
385 |
*/
|
386 |
private $_use_external_pricing = null;
|
387 |
+
/**
|
388 |
+
* @author Leo Fajardo (@leorw)
|
389 |
+
* @since 2.4.2
|
390 |
+
*
|
391 |
+
* @var string|null
|
392 |
+
*/
|
393 |
+
private $_pricing_js_path = null;
|
394 |
|
395 |
#endregion
|
396 |
|
5491 |
function is_extensions_tracking_allowed() {
|
5492 |
return ( true === $this->apply_filters(
|
5493 |
'is_extensions_tracking_allowed',
|
5494 |
+
$this->_storage->get( 'is_extensions_tracking_allowed', null )
|
5495 |
) );
|
5496 |
}
|
5497 |
|
5535 |
* @author Leo Fajardo (@leorw)
|
5536 |
* @since 2.3.2
|
5537 |
*
|
5538 |
+
* @param bool|null $is_enabled
|
5539 |
*/
|
5540 |
+
function update_extensions_tracking_flag( $is_enabled ) {
|
5541 |
+
if ( is_bool( $is_enabled ) ) {
|
5542 |
+
$this->_storage->store( 'is_extensions_tracking_allowed', $is_enabled );
|
5543 |
+
}
|
5544 |
}
|
5545 |
|
5546 |
/**
|
6869 |
*/
|
6870 |
function _sync_cron_method( array $blog_ids, $current_blog_id = null ) {
|
6871 |
if ( $this->is_registered() ) {
|
|
|
|
|
6872 |
if ( $this->has_paid_plan() ) {
|
6873 |
// Initiate background plan sync.
|
6874 |
$this->_sync_license( true, false, $current_blog_id );
|
7241 |
}
|
7242 |
|
7243 |
if ( $this->is_plugin_new_install() || $this->is_only_premium() ) {
|
7244 |
+
if ( ! $this->_anonymous_mode &&
|
7245 |
+
( ! $this->is_addon() || ! $this->_parent->is_anonymous() ) ) {
|
7246 |
// Show notice for new plugin installations.
|
7247 |
$this->_admin_notices->add(
|
7248 |
sprintf(
|
7293 |
* @return bool
|
7294 |
*/
|
7295 |
private function should_add_sticky_optin_notice() {
|
7296 |
+
if ( $this->is_addon() && $this->_parent->is_anonymous() ) {
|
7297 |
+
return false;
|
7298 |
+
}
|
7299 |
+
|
7300 |
if ( fs_is_network_admin() ) {
|
7301 |
if ( ! $this->_is_network_active ) {
|
7302 |
return false;
|
13250 |
self::shoot_ajax_failure();
|
13251 |
}
|
13252 |
|
13253 |
+
$site = $this->get_api_site_scope()->call(
|
13254 |
'',
|
13255 |
'put',
|
13256 |
array(
|
|
|
13257 |
'is_beta' => ( 'true' == $is_beta ),
|
13258 |
'fields' => 'is_beta'
|
13259 |
)
|
13260 |
);
|
13261 |
|
13262 |
+
if ( ! $this->is_api_result_entity( $site ) ) {
|
13263 |
self::shoot_ajax_failure(
|
13264 |
+
FS_Api::is_api_error_object( $site ) ?
|
13265 |
+
$site->error->message :
|
13266 |
fs_text_inline( "An unknown error has occurred while trying to set the user's beta mode.", 'unknown-error-occurred', $this->get_slug() )
|
13267 |
);
|
13268 |
}
|
13269 |
|
13270 |
+
$this->_site->is_beta = $site->is_beta;
|
13271 |
+
$this->_store_site();
|
13272 |
|
13273 |
self::shoot_ajax_response( array( 'success' => true ) );
|
13274 |
}
|
13303 |
fs_request_get( 'blog_id', null ),
|
13304 |
fs_request_get( 'module_id', null, 'post' ),
|
13305 |
fs_request_get( 'user_id', null ),
|
13306 |
+
fs_request_get_bool( 'is_extensions_tracking_allowed', null )
|
13307 |
);
|
13308 |
|
13309 |
if (
|
13493 |
* @return string
|
13494 |
*/
|
13495 |
function get_pricing_js_path() {
|
13496 |
+
if ( ! isset( $this->_pricing_js_path ) ) {
|
13497 |
+
$pricing_js_path = $this->apply_filters( 'freemius_pricing_js_path', '' );
|
13498 |
+
|
13499 |
+
if ( empty( $pricing_js_path ) ) {
|
13500 |
+
global $fs_active_plugins;
|
13501 |
+
|
13502 |
+
foreach ( $fs_active_plugins->plugins as $sdk_path => $data ) {
|
13503 |
+
if ( $data->plugin_path == $this->get_plugin_basename() ) {
|
13504 |
+
$plugin_or_theme_root_dir = ( $this->is_plugin() ? WP_PLUGIN_DIR : get_theme_root( get_stylesheet() ) );
|
13505 |
+
|
13506 |
+
$pricing_js_path = $plugin_or_theme_root_dir
|
13507 |
+
. '/'
|
13508 |
+
// The basename will be `plugins`, `themes`, or the basename of a custom plugins or themes directory.
|
13509 |
+
. str_replace( '../' . basename( $plugin_or_theme_root_dir ) . '/', '', $sdk_path )
|
13510 |
+
. '/includes/freemius-pricing/freemius-pricing.js';
|
13511 |
+
|
13512 |
+
break;
|
13513 |
+
}
|
13514 |
+
}
|
13515 |
+
}
|
13516 |
+
|
13517 |
+
$this->_pricing_js_path = $pricing_js_path;
|
13518 |
+
}
|
13519 |
+
|
13520 |
+
return $this->_pricing_js_path;
|
13521 |
}
|
13522 |
|
13523 |
/**
|
13562 |
$blog_id = null,
|
13563 |
$plugin_id = null,
|
13564 |
$license_owner_id = null,
|
13565 |
+
$is_extensions_tracking_allowed = null
|
13566 |
) {
|
13567 |
$this->_logger->entrance();
|
13568 |
|
16483 |
);
|
16484 |
}
|
16485 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16486 |
/**
|
16487 |
* @author Vova Feldman (@svovaf)
|
16488 |
* @since 1.1.7.4
|
17170 |
$this->disable_opt_in_notice_and_lock_user();
|
17171 |
}
|
17172 |
|
17173 |
+
$this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
|
|
|
|
|
17174 |
|
17175 |
return $this->setup_account(
|
17176 |
$this->_user,
|
17215 |
$this->disable_opt_in_notice_and_lock_user();
|
17216 |
}
|
17217 |
|
17218 |
+
$this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
|
|
|
|
|
17219 |
|
17220 |
$sites = array();
|
17221 |
foreach ( $site_ids as $site_id ) {
|
17258 |
$this->disable_opt_in_notice_and_lock_user();
|
17259 |
}
|
17260 |
|
17261 |
+
$this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
|
|
|
|
|
17262 |
|
17263 |
$install_ids = array();
|
17264 |
|
17369 |
*/
|
17370 |
$license_key = fs_request_get( 'license_secret_key' );
|
17371 |
|
17372 |
+
$this->update_extensions_tracking_flag( fs_request_get_bool( 'is_extensions_tracking_allowed', null ) );
|
17373 |
|
17374 |
$this->install_with_current_user( $license_key );
|
17375 |
}
|
20621 |
}
|
20622 |
}
|
20623 |
|
20624 |
+
if ( ! $this->is_addon() &&
|
20625 |
+
$this->_site->is_beta() !== $site->is_beta
|
20626 |
+
) {
|
20627 |
+
// Beta flag updated.
|
20628 |
+
$this->_site = $site;
|
20629 |
+
|
20630 |
+
$this->_store_site(
|
20631 |
+
true,
|
20632 |
+
$is_site_level_sync ?
|
20633 |
+
null :
|
20634 |
+
$this->get_network_install_blog_id()
|
20635 |
+
);
|
20636 |
+
}
|
20637 |
+
|
20638 |
if ( $this->is_addon() || $this->has_addons() ) {
|
20639 |
/**
|
20640 |
* Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
|
21328 |
|
21329 |
if ( $this->has_secret_key() ) {
|
21330 |
$endpoint = add_query_arg( 'type', 'all', $endpoint );
|
21331 |
+
} else if ( is_object( $this->_site ) && $this->_site->is_beta() ) {
|
21332 |
$endpoint = add_query_arg( 'type', 'beta', $endpoint );
|
21333 |
}
|
21334 |
|
23426 |
return;
|
23427 |
}
|
23428 |
|
23429 |
+
if (
|
23430 |
+
$this->is_addon() &&
|
23431 |
+
! $this->is_only_premium() &&
|
23432 |
+
$this->_parent->is_anonymous()
|
23433 |
+
) {
|
23434 |
+
return;
|
23435 |
+
}
|
23436 |
+
|
23437 |
if ( fs_is_network_admin() ) {
|
23438 |
if ( ! $this->_is_network_active ) {
|
23439 |
// Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
|
freemius/includes/class-fs-logger.php
CHANGED
@@ -142,7 +142,7 @@
|
|
142 |
return $this->_file_start;
|
143 |
}
|
144 |
|
145 |
-
private function _log( &$message, $type
|
146 |
if ( ! $this->is_on() ) {
|
147 |
return;
|
148 |
}
|
@@ -688,4 +688,4 @@ KEY `type` (`type` ASC))" );
|
|
688 |
}
|
689 |
|
690 |
#endregion
|
691 |
-
}
|
142 |
return $this->_file_start;
|
143 |
}
|
144 |
|
145 |
+
private function _log( &$message, $type, $wrapper = false ) {
|
146 |
if ( ! $this->is_on() ) {
|
147 |
return;
|
148 |
}
|
688 |
}
|
689 |
|
690 |
#endregion
|
691 |
+
}
|
freemius/includes/entities/class-fs-site.php
CHANGED
@@ -102,6 +102,14 @@
|
|
102 |
* @var bool
|
103 |
*/
|
104 |
public $is_uninstalled = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
|
106 |
/**
|
107 |
* @param stdClass|bool $site
|
@@ -233,4 +241,13 @@
|
|
233 |
function is_tracking_prohibited() {
|
234 |
return ! $this->is_tracking_allowed();
|
235 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
}
|
102 |
* @var bool
|
103 |
*/
|
104 |
public $is_uninstalled = false;
|
105 |
+
/**
|
106 |
+
* @author Edgar Melkonyan
|
107 |
+
*
|
108 |
+
* @since 2.4.2
|
109 |
+
*
|
110 |
+
* @var bool
|
111 |
+
*/
|
112 |
+
public $is_beta;
|
113 |
|
114 |
/**
|
115 |
* @param stdClass|bool $site
|
241 |
function is_tracking_prohibited() {
|
242 |
return ! $this->is_tracking_allowed();
|
243 |
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* @author Edgar Melkonyan
|
247 |
+
*
|
248 |
+
* @return bool
|
249 |
+
*/
|
250 |
+
function is_beta() {
|
251 |
+
return ( isset( $this->is_beta ) && true === $this->is_beta );
|
252 |
+
}
|
253 |
}
|
freemius/includes/entities/class-fs-user.php
CHANGED
@@ -31,13 +31,6 @@
|
|
31 |
*/
|
32 |
public $is_verified;
|
33 |
/**
|
34 |
-
* @author Leo Fajardo (@leorw)
|
35 |
-
* @since 2.3.0
|
36 |
-
*
|
37 |
-
* @var bool
|
38 |
-
*/
|
39 |
-
public $is_beta;
|
40 |
-
/**
|
41 |
* @var string|null
|
42 |
*/
|
43 |
public $customer_id;
|
@@ -63,16 +56,6 @@
|
|
63 |
return ( isset( $this->is_verified ) && true === $this->is_verified );
|
64 |
}
|
65 |
|
66 |
-
/**
|
67 |
-
* @author Leo Fajardo (@leorw)
|
68 |
-
* @since 2.3.0
|
69 |
-
*
|
70 |
-
* @return bool
|
71 |
-
*/
|
72 |
-
function is_beta() {
|
73 |
-
return ( isset( $this->is_beta ) && true === $this->is_beta );
|
74 |
-
}
|
75 |
-
|
76 |
static function get_type() {
|
77 |
return 'user';
|
78 |
}
|
31 |
*/
|
32 |
public $is_verified;
|
33 |
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
* @var string|null
|
35 |
*/
|
36 |
public $customer_id;
|
56 |
return ( isset( $this->is_verified ) && true === $this->is_verified );
|
57 |
}
|
58 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
static function get_type() {
|
60 |
return 'user';
|
61 |
}
|
freemius/languages/freemius-cs_CZ.mo
CHANGED
Binary file
|
freemius/languages/freemius-da_DK.mo
CHANGED
Binary file
|
freemius/languages/freemius-en.mo
CHANGED
Binary file
|
freemius/languages/freemius-es_ES.mo
CHANGED
Binary file
|
freemius/languages/freemius-fr_FR.mo
CHANGED
Binary file
|
freemius/languages/freemius-he_IL.mo
CHANGED
Binary file
|
freemius/languages/freemius-hu_HU.mo
CHANGED
Binary file
|
freemius/languages/freemius-it_IT.mo
CHANGED
Binary file
|
freemius/languages/freemius-ja.mo
CHANGED
Binary file
|
freemius/languages/freemius-nl_NL.mo
CHANGED
Binary file
|
freemius/languages/freemius-ru_RU.mo
CHANGED
Binary file
|
freemius/languages/freemius-ta.mo
CHANGED
Binary file
|
freemius/languages/freemius-zh_CN.mo
CHANGED
Binary file
|
freemius/languages/freemius.pot
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the freemius package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
@@ -16,795 +16,795 @@ msgstr ""
|
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
|
19 |
-
#: includes/class-freemius.php:
|
20 |
msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
|
21 |
msgstr ""
|
22 |
|
23 |
-
#: includes/class-freemius.php:
|
24 |
msgid "Would you like to proceed with the update?"
|
25 |
msgstr ""
|
26 |
|
27 |
-
#: includes/class-freemius.php:
|
28 |
msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: includes/class-freemius.php:
|
32 |
msgid "Error"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: includes/class-freemius.php:
|
36 |
msgid "I found a better %s"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: includes/class-freemius.php:
|
40 |
msgid "What's the %s's name?"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: includes/class-freemius.php:
|
44 |
msgid "It's a temporary %s. I'm just debugging an issue."
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: includes/class-freemius.php:
|
48 |
msgid "Deactivation"
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: includes/class-freemius.php:
|
52 |
msgid "Theme Switch"
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: includes/class-freemius.php:
|
56 |
msgid "Other"
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: includes/class-freemius.php:
|
60 |
msgid "I no longer need the %s"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: includes/class-freemius.php:
|
64 |
msgid "I only needed the %s for a short period"
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: includes/class-freemius.php:
|
68 |
msgid "The %s broke my site"
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: includes/class-freemius.php:
|
72 |
msgid "The %s suddenly stopped working"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: includes/class-freemius.php:
|
76 |
msgid "I can't pay for it anymore"
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: includes/class-freemius.php:
|
80 |
msgid "What price would you feel comfortable paying?"
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: includes/class-freemius.php:
|
84 |
msgid "I don't like to share my information with you"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: includes/class-freemius.php:
|
88 |
msgid "The %s didn't work"
|
89 |
msgstr ""
|
90 |
|
91 |
-
#: includes/class-freemius.php:
|
92 |
msgid "I couldn't understand how to make it work"
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: includes/class-freemius.php:
|
96 |
msgid "The %s is great, but I need specific feature that you don't support"
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: includes/class-freemius.php:
|
100 |
msgid "What feature?"
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: includes/class-freemius.php:
|
104 |
msgid "The %s is not working"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: includes/class-freemius.php:
|
108 |
msgid "Kindly share what didn't work so we can fix it for future users..."
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: includes/class-freemius.php:
|
112 |
msgid "It's not what I was looking for"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: includes/class-freemius.php:
|
116 |
msgid "What you've been looking for?"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: includes/class-freemius.php:
|
120 |
msgid "The %s didn't work as expected"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: includes/class-freemius.php:
|
124 |
msgid "What did you expect?"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: includes/class-freemius.php:
|
128 |
msgid "Freemius Debug"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: includes/class-freemius.php:
|
132 |
msgid "I don't know what is cURL or how to install it, help me!"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: includes/class-freemius.php:
|
136 |
msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: includes/class-freemius.php:
|
140 |
msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: includes/class-freemius.php:
|
144 |
msgid "Yes - do your thing"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: includes/class-freemius.php:
|
148 |
msgid "No - just deactivate"
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: includes/class-freemius.php:
|
152 |
msgctxt "exclamation"
|
153 |
msgid "Oops"
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: includes/class-freemius.php:
|
157 |
msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: includes/class-freemius.php:
|
161 |
msgctxt "addonX cannot run without pluginY"
|
162 |
msgid "%s cannot run without %s."
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: includes/class-freemius.php:
|
166 |
msgctxt "addonX cannot run..."
|
167 |
msgid "%s cannot run without the plugin."
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: includes/class-freemius.php:
|
171 |
msgid "Unexpected API error. Please contact the %s's author with the following error."
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: includes/class-freemius.php:
|
175 |
msgid "Premium %s version was successfully activated."
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: includes/class-freemius.php:
|
179 |
msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
|
180 |
msgid "W00t"
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: includes/class-freemius.php:
|
184 |
msgid "You have a %s license."
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: includes/class-freemius.php:
|
188 |
msgctxt "interjection expressing joy or exuberance"
|
189 |
msgid "Yee-haw"
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: includes/class-freemius.php:
|
193 |
msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: includes/class-freemius.php:
|
197 |
msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
|
198 |
msgstr ""
|
199 |
|
200 |
-
#: includes/class-freemius.php:
|
201 |
msgid "More information about %s"
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: includes/class-freemius.php:
|
205 |
msgid "Purchase License"
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: includes/class-freemius.php:
|
209 |
msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
|
210 |
msgstr ""
|
211 |
|
212 |
-
#: includes/class-freemius.php:
|
213 |
msgid "start the trial"
|
214 |
msgstr ""
|
215 |
|
216 |
-
#: includes/class-freemius.php:
|
217 |
msgid "complete the install"
|
218 |
msgstr ""
|
219 |
|
220 |
-
#: includes/class-freemius.php:
|
221 |
msgid "You are just one step away - %s"
|
222 |
msgstr ""
|
223 |
|
224 |
-
#: includes/class-freemius.php:
|
225 |
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
226 |
msgid "Complete \"%s\" Activation Now"
|
227 |
msgstr ""
|
228 |
|
229 |
-
#: includes/class-freemius.php:
|
230 |
msgid "We made a few tweaks to the %s, %s"
|
231 |
msgstr ""
|
232 |
|
233 |
-
#: includes/class-freemius.php:
|
234 |
msgid "Opt in to make \"%s\" better!"
|
235 |
msgstr ""
|
236 |
|
237 |
-
#: includes/class-freemius.php:
|
238 |
msgid "The upgrade of %s was successfully completed."
|
239 |
msgstr ""
|
240 |
|
241 |
-
#: includes/class-freemius.php:
|
242 |
msgid "Add-On"
|
243 |
msgstr ""
|
244 |
|
245 |
-
#: includes/class-freemius.php:
|
246 |
msgid "Plugin"
|
247 |
msgstr ""
|
248 |
|
249 |
-
#: includes/class-freemius.php:
|
250 |
msgid "Theme"
|
251 |
msgstr ""
|
252 |
|
253 |
-
#: includes/class-freemius.php:
|
254 |
msgid "An unknown error has occurred while trying to toggle the license's white-label mode."
|
255 |
msgstr ""
|
256 |
|
257 |
-
#: includes/class-freemius.php:
|
258 |
msgid "Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your email, license key, prices, billing address & invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s."
|
259 |
msgstr ""
|
260 |
|
261 |
-
#: includes/class-freemius.php:
|
262 |
msgid "User Dashboard"
|
263 |
msgstr ""
|
264 |
|
265 |
-
#: includes/class-freemius.php:
|
266 |
msgid "revert it now"
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: includes/class-freemius.php:
|
270 |
msgid "An unknown error has occurred while trying to set the user's beta mode."
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: includes/class-freemius.php:
|
274 |
msgid "Invalid new user ID or email address."
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: includes/class-freemius.php:
|
278 |
msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: includes/class-freemius.php:
|
282 |
msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
|
283 |
msgstr ""
|
284 |
|
285 |
-
#: includes/class-freemius.php:
|
286 |
msgid "Change Ownership"
|
287 |
msgstr ""
|
288 |
|
289 |
-
#: includes/class-freemius.php:
|
290 |
msgid "Invalid site details collection."
|
291 |
msgstr ""
|
292 |
|
293 |
-
#: includes/class-freemius.php:
|
294 |
msgid "We couldn't find your email address in the system, are you sure it's the right address?"
|
295 |
msgstr ""
|
296 |
|
297 |
-
#: includes/class-freemius.php:
|
298 |
msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
|
299 |
msgstr ""
|
300 |
|
301 |
-
#: includes/class-freemius.php:
|
302 |
msgid "Account is pending activation."
|
303 |
msgstr ""
|
304 |
|
305 |
-
#: includes/class-freemius.php:
|
306 |
msgid "Buy a license now"
|
307 |
msgstr ""
|
308 |
|
309 |
-
#: includes/class-freemius.php:
|
310 |
msgid "Renew your license now"
|
311 |
msgstr ""
|
312 |
|
313 |
-
#: includes/class-freemius.php:
|
314 |
msgid "%s to access version %s security & feature updates, and support."
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: includes/class-freemius.php:
|
318 |
msgid "%s activation was successfully completed."
|
319 |
msgstr ""
|
320 |
|
321 |
-
#: includes/class-freemius.php:
|
322 |
msgid "Your account was successfully activated with the %s plan."
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: includes/class-freemius.php:
|
326 |
msgid "Your trial has been successfully started."
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: includes/class-freemius.php:
|
330 |
msgid "Couldn't activate %s."
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: includes/class-freemius.php:
|
334 |
msgid "Please contact us with the following message:"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: includes/class-freemius.php:
|
338 |
msgid "An unknown error has occurred."
|
339 |
msgstr ""
|
340 |
|
341 |
-
#: includes/class-freemius.php:
|
342 |
msgid "Upgrade"
|
343 |
msgstr ""
|
344 |
|
345 |
-
#: includes/class-freemius.php:
|
346 |
msgid "Start Trial"
|
347 |
msgstr ""
|
348 |
|
349 |
-
#: includes/class-freemius.php:
|
350 |
msgid "Pricing"
|
351 |
msgstr ""
|
352 |
|
353 |
-
#: includes/class-freemius.php:
|
354 |
msgid "Affiliation"
|
355 |
msgstr ""
|
356 |
|
357 |
-
#: includes/class-freemius.php:
|
358 |
msgid "Account"
|
359 |
msgstr ""
|
360 |
|
361 |
-
#: includes/class-freemius.php:
|
362 |
msgid "Contact Us"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: includes/class-freemius.php:
|
366 |
msgid "Add-Ons"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: includes/class-freemius.php:
|
370 |
msgctxt "ASCII arrow left icon"
|
371 |
msgid "←"
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: includes/class-freemius.php:
|
375 |
msgctxt "ASCII arrow right icon"
|
376 |
msgid "➤"
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: includes/class-freemius.php:
|
380 |
msgctxt "noun"
|
381 |
msgid "Pricing"
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: includes/class-freemius.php:
|
385 |
msgid "Support Forum"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: includes/class-freemius.php:
|
389 |
msgid "Your email has been successfully verified - you are AWESOME!"
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: includes/class-freemius.php:
|
393 |
msgctxt "a positive response"
|
394 |
msgid "Right on"
|
395 |
msgstr ""
|
396 |
|
397 |
-
#: includes/class-freemius.php:
|
398 |
msgid "seems like the key you entered doesn't match our records."
|
399 |
msgstr ""
|
400 |
|
401 |
-
#: includes/class-freemius.php:
|
402 |
msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
|
403 |
msgstr ""
|
404 |
|
405 |
-
#: includes/class-freemius.php:
|
406 |
msgid "Your %s Add-on plan was successfully upgraded."
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: includes/class-freemius.php:
|
410 |
msgid "%s Add-on was successfully purchased."
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: includes/class-freemius.php:
|
414 |
msgid "Download the latest version"
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: includes/class-freemius.php:
|
418 |
msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
|
419 |
msgstr ""
|
420 |
|
421 |
-
#: includes/class-freemius.php:
|
422 |
msgid "Error received from the server:"
|
423 |
msgstr ""
|
424 |
|
425 |
-
#: includes/class-freemius.php:
|
426 |
msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: includes/class-freemius.php:
|
430 |
msgctxt "something somebody says when they are thinking about what you have just said."
|
431 |
msgid "Hmm"
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: includes/class-freemius.php:
|
435 |
msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
|
436 |
msgstr ""
|
437 |
|
438 |
-
#: includes/class-freemius.php:
|
439 |
msgctxt "trial period"
|
440 |
msgid "Trial"
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: includes/class-freemius.php:
|
444 |
msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: includes/class-freemius.php:
|
448 |
msgid "Please contact us here"
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: includes/class-freemius.php:
|
452 |
msgid "Your plan was successfully activated."
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: includes/class-freemius.php:
|
456 |
msgid "Your plan was successfully upgraded."
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: includes/class-freemius.php:
|
460 |
msgid "Your plan was successfully changed to %s."
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: includes/class-freemius.php:
|
464 |
msgid "Your license has expired. You can still continue using the free %s forever."
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: includes/class-freemius.php:
|
468 |
msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: includes/class-freemius.php:
|
472 |
msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
|
473 |
msgstr ""
|
474 |
|
475 |
-
#: includes/class-freemius.php:
|
476 |
msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: includes/class-freemius.php:
|
480 |
msgid "Your free trial has expired. You can still continue using all our free features."
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: includes/class-freemius.php:
|
484 |
msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: includes/class-freemius.php:
|
488 |
msgid "It looks like the license could not be activated."
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: includes/class-freemius.php:
|
492 |
msgid "Your license was successfully activated."
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: includes/class-freemius.php:
|
496 |
msgid "It looks like your site currently doesn't have an active license."
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: includes/class-freemius.php:
|
500 |
msgid "It looks like the license deactivation failed."
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: includes/class-freemius.php:
|
504 |
msgid "Your %s license was successfully deactivated."
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: includes/class-freemius.php:
|
508 |
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: includes/class-freemius.php:
|
512 |
msgid "O.K"
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: includes/class-freemius.php:
|
516 |
msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: includes/class-freemius.php:
|
520 |
msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
|
521 |
msgstr ""
|
522 |
|
523 |
-
#: includes/class-freemius.php:
|
524 |
msgid "You are already running the %s in a trial mode."
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: includes/class-freemius.php:
|
528 |
msgid "You already utilized a trial before."
|
529 |
msgstr ""
|
530 |
|
531 |
-
#: includes/class-freemius.php:
|
532 |
msgid "Plan %s do not exist, therefore, can't start a trial."
|
533 |
msgstr ""
|
534 |
|
535 |
-
#: includes/class-freemius.php:
|
536 |
msgid "Plan %s does not support a trial period."
|
537 |
msgstr ""
|
538 |
|
539 |
-
#: includes/class-freemius.php:
|
540 |
msgid "None of the %s's plans supports a trial period."
|
541 |
msgstr ""
|
542 |
|
543 |
-
#: includes/class-freemius.php:
|
544 |
msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
|
545 |
msgstr ""
|
546 |
|
547 |
-
#: includes/class-freemius.php:
|
548 |
msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
|
549 |
msgstr ""
|
550 |
|
551 |
-
#: includes/class-freemius.php:
|
552 |
msgid "Your %s free trial was successfully cancelled."
|
553 |
msgstr ""
|
554 |
|
555 |
-
#: includes/class-freemius.php:
|
556 |
msgid "Version %s was released."
|
557 |
msgstr ""
|
558 |
|
559 |
-
#: includes/class-freemius.php:
|
560 |
msgid "Please download %s."
|
561 |
msgstr ""
|
562 |
|
563 |
-
#: includes/class-freemius.php:
|
564 |
msgid "the latest %s version here"
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: includes/class-freemius.php:
|
568 |
msgid "New"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: includes/class-freemius.php:
|
572 |
msgid "Seems like you got the latest release."
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: includes/class-freemius.php:
|
576 |
msgid "You are all good!"
|
577 |
msgstr ""
|
578 |
|
579 |
-
#: includes/class-freemius.php:
|
580 |
msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
|
581 |
msgstr ""
|
582 |
|
583 |
-
#: includes/class-freemius.php:
|
584 |
msgid "Site successfully opted in."
|
585 |
msgstr ""
|
586 |
|
587 |
-
#: includes/class-freemius.php:
|
588 |
msgid "Awesome"
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: includes/class-freemius.php:
|
592 |
msgid "We appreciate your help in making the %s better by letting us track some usage data."
|
593 |
msgstr ""
|
594 |
|
595 |
-
#: includes/class-freemius.php:
|
596 |
msgid "Thank you!"
|
597 |
msgstr ""
|
598 |
|
599 |
-
#: includes/class-freemius.php:
|
600 |
msgid "We will no longer be sending any usage data of %s on %s to %s."
|
601 |
msgstr ""
|
602 |
|
603 |
-
#: includes/class-freemius.php:
|
604 |
msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: includes/class-freemius.php:
|
608 |
msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: includes/class-freemius.php:
|
612 |
msgid "%s is the new owner of the account."
|
613 |
msgstr ""
|
614 |
|
615 |
-
#: includes/class-freemius.php:
|
616 |
msgctxt "as congratulations"
|
617 |
msgid "Congrats"
|
618 |
msgstr ""
|
619 |
|
620 |
-
#: includes/class-freemius.php:
|
621 |
msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
|
622 |
msgstr ""
|
623 |
|
624 |
-
#: includes/class-freemius.php:
|
625 |
msgid "Please provide your full name."
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: includes/class-freemius.php:
|
629 |
msgid "Your name was successfully updated."
|
630 |
msgstr ""
|
631 |
|
632 |
-
#: includes/class-freemius.php:
|
633 |
msgid "You have successfully updated your %s."
|
634 |
msgstr ""
|
635 |
|
636 |
-
#: includes/class-freemius.php:
|
637 |
msgid "Is this your client's site? %s if you wish to hide sensitive info like your email, license key, prices, billing address & invoices from the WP Admin."
|
638 |
msgstr ""
|
639 |
|
640 |
-
#: includes/class-freemius.php:
|
641 |
msgid "Click here"
|
642 |
msgstr ""
|
643 |
|
644 |
-
#: includes/class-freemius.php:
|
645 |
msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
|
646 |
msgstr ""
|
647 |
|
648 |
-
#: includes/class-freemius.php:
|
649 |
msgctxt "advance notice of something that will need attention."
|
650 |
msgid "Heads up"
|
651 |
msgstr ""
|
652 |
|
653 |
-
#: includes/class-freemius.php:
|
654 |
msgctxt "exclamation"
|
655 |
msgid "Hey"
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: includes/class-freemius.php:
|
659 |
msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: includes/class-freemius.php:
|
663 |
msgid "No commitment for %s days - cancel anytime!"
|
664 |
msgstr ""
|
665 |
|
666 |
-
#: includes/class-freemius.php:
|
667 |
msgid "No credit card required"
|
668 |
msgstr ""
|
669 |
|
670 |
-
#: includes/class-freemius.php:
|
671 |
msgctxt "call to action"
|
672 |
msgid "Start free trial"
|
673 |
msgstr ""
|
674 |
|
675 |
-
#: includes/class-freemius.php:
|
676 |
msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
|
677 |
msgstr ""
|
678 |
|
679 |
-
#: includes/class-freemius.php:
|
680 |
msgid "Learn more"
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: includes/class-freemius.php:
|
684 |
msgid "Activate License"
|
685 |
msgstr ""
|
686 |
|
687 |
-
#: includes/class-freemius.php:
|
688 |
msgid "Change License"
|
689 |
msgstr ""
|
690 |
|
691 |
-
#: includes/class-freemius.php:
|
692 |
msgid "Opt Out"
|
693 |
msgstr ""
|
694 |
|
695 |
-
#: includes/class-freemius.php:
|
696 |
msgid "Opt In"
|
697 |
msgstr ""
|
698 |
|
699 |
-
#: includes/class-freemius.php:
|
700 |
msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
|
701 |
msgstr ""
|
702 |
|
703 |
-
#: includes/class-freemius.php:
|
704 |
msgid "Activate %s features"
|
705 |
msgstr ""
|
706 |
|
707 |
-
#: includes/class-freemius.php:
|
708 |
msgid "Please follow these steps to complete the upgrade"
|
709 |
msgstr ""
|
710 |
|
711 |
-
#: includes/class-freemius.php:
|
712 |
msgid "Download the latest %s version"
|
713 |
msgstr ""
|
714 |
|
715 |
-
#: includes/class-freemius.php:
|
716 |
msgid "Upload and activate the downloaded version"
|
717 |
msgstr ""
|
718 |
|
719 |
-
#: includes/class-freemius.php:
|
720 |
msgid "How to upload and activate?"
|
721 |
msgstr ""
|
722 |
|
723 |
-
#: includes/class-freemius.php:
|
724 |
msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: includes/class-freemius.php:
|
728 |
msgid "Auto installation only works for opted-in users."
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: includes/class-freemius.php:
|
732 |
msgid "Invalid module ID."
|
733 |
msgstr ""
|
734 |
|
735 |
-
#: includes/class-freemius.php:
|
736 |
msgid "Premium version already active."
|
737 |
msgstr ""
|
738 |
|
739 |
-
#: includes/class-freemius.php:
|
740 |
msgid "You do not have a valid license to access the premium version."
|
741 |
msgstr ""
|
742 |
|
743 |
-
#: includes/class-freemius.php:
|
744 |
msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: includes/class-freemius.php:
|
748 |
msgid "Premium add-on version already installed."
|
749 |
msgstr ""
|
750 |
|
751 |
-
#: includes/class-freemius.php:
|
752 |
msgid "View paid features"
|
753 |
msgstr ""
|
754 |
|
755 |
-
#: includes/class-freemius.php:
|
756 |
msgid "Thank you so much for using %s and its add-ons!"
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: includes/class-freemius.php:
|
760 |
msgid "Thank you so much for using %s!"
|
761 |
msgstr ""
|
762 |
|
763 |
-
#: includes/class-freemius.php:
|
764 |
msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
|
765 |
msgstr ""
|
766 |
|
767 |
-
#: includes/class-freemius.php:
|
768 |
msgid "Thank you so much for using our products!"
|
769 |
msgstr ""
|
770 |
|
771 |
-
#: includes/class-freemius.php:
|
772 |
msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
|
773 |
msgstr ""
|
774 |
|
775 |
-
#: includes/class-freemius.php:
|
776 |
msgid "%s and its add-ons"
|
777 |
msgstr ""
|
778 |
|
779 |
-
#: includes/class-freemius.php:
|
780 |
msgid "Products"
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: includes/class-freemius.php:
|
784 |
msgid "Yes"
|
785 |
msgstr ""
|
786 |
|
787 |
-
#: includes/class-freemius.php:
|
788 |
msgid "send me security & feature updates, educational content and offers."
|
789 |
msgstr ""
|
790 |
|
791 |
-
#: includes/class-freemius.php:
|
792 |
msgid "No"
|
793 |
msgstr ""
|
794 |
|
795 |
-
#: includes/class-freemius.php:
|
796 |
msgid "do %sNOT%s send me security & feature updates, educational content and offers."
|
797 |
msgstr ""
|
798 |
|
799 |
-
#: includes/class-freemius.php:
|
800 |
msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
|
801 |
msgstr ""
|
802 |
|
803 |
-
#: includes/class-freemius.php:
|
804 |
msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
|
805 |
msgstr ""
|
806 |
|
807 |
-
#: includes/class-freemius.php:
|
808 |
msgid "License key is empty."
|
809 |
msgstr ""
|
810 |
|
@@ -832,15 +832,15 @@ msgstr ""
|
|
832 |
msgid "Important Upgrade Notice:"
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: includes/class-fs-plugin-updater.php:
|
836 |
msgid "Installing plugin: %s"
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: includes/class-fs-plugin-updater.php:
|
840 |
msgid "Unable to connect to the filesystem. Please confirm your credentials."
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: includes/class-fs-plugin-updater.php:
|
844 |
msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
845 |
msgstr ""
|
846 |
|
@@ -861,7 +861,7 @@ msgstr ""
|
|
861 |
msgid "Install Free Version Update Now"
|
862 |
msgstr ""
|
863 |
|
864 |
-
#: includes/fs-plugin-info-dialog.php:745, templates/account.php:
|
865 |
msgid "Install Update Now"
|
866 |
msgstr ""
|
867 |
|
@@ -878,7 +878,7 @@ msgctxt "as download latest version"
|
|
878 |
msgid "Download Latest Free Version"
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: includes/fs-plugin-info-dialog.php:772, templates/account.php:
|
882 |
msgctxt "as download latest version"
|
883 |
msgid "Download Latest"
|
884 |
msgstr ""
|
@@ -887,11 +887,11 @@ msgstr ""
|
|
887 |
msgid "Activate this add-on"
|
888 |
msgstr ""
|
889 |
|
890 |
-
#: includes/fs-plugin-info-dialog.php:789, templates/connect.php:
|
891 |
msgid "Activate Free Version"
|
892 |
msgstr ""
|
893 |
|
894 |
-
#: includes/fs-plugin-info-dialog.php:790, templates/account.php:
|
895 |
msgid "Activate"
|
896 |
msgstr ""
|
897 |
|
@@ -1020,7 +1020,7 @@ msgstr ""
|
|
1020 |
msgid "Details"
|
1021 |
msgstr ""
|
1022 |
|
1023 |
-
#: includes/fs-plugin-info-dialog.php:1318, templates/account.php:
|
1024 |
msgctxt "product version"
|
1025 |
msgid "Version"
|
1026 |
msgstr ""
|
@@ -1034,7 +1034,7 @@ msgstr ""
|
|
1034 |
msgid "Last Updated"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
-
#: includes/fs-plugin-info-dialog.php:1337, templates/account.php:
|
1038 |
msgctxt "x-ago"
|
1039 |
msgid "%s ago"
|
1040 |
msgstr ""
|
@@ -1143,293 +1143,293 @@ msgstr ""
|
|
1143 |
msgid "Latest Free Version Installed"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
-
#: templates/account.php:
|
1147 |
msgid "Downgrading your plan"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
-
#: templates/account.php:
|
1151 |
msgid "Cancelling the subscription"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
#. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
|
1155 |
-
#: templates/account.php:
|
1156 |
msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
|
1157 |
msgstr ""
|
1158 |
|
1159 |
-
#: templates/account.php:
|
1160 |
msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
|
1161 |
msgstr ""
|
1162 |
|
1163 |
-
#: templates/account.php:
|
1164 |
msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
-
#: templates/account.php:
|
1168 |
msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
|
1169 |
msgstr ""
|
1170 |
|
1171 |
-
#: templates/account.php:
|
1172 |
msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
|
1173 |
msgstr ""
|
1174 |
|
1175 |
#. translators: %s: Plan title (e.g. "Professional")
|
1176 |
-
#: templates/account.php:
|
1177 |
msgid "Activate %s Plan"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
#. translators: %s: Time period (e.g. Auto renews in "2 months")
|
1181 |
-
#: templates/account.php:
|
1182 |
msgid "Auto renews in %s"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
#. translators: %s: Time period (e.g. Expires in "2 months")
|
1186 |
-
#: templates/account.php:
|
1187 |
msgid "Expires in %s"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
-
#: templates/account.php:
|
1191 |
msgctxt "as synchronize license"
|
1192 |
msgid "Sync License"
|
1193 |
msgstr ""
|
1194 |
|
1195 |
-
#: templates/account.php:
|
1196 |
msgid "Cancel Trial"
|
1197 |
msgstr ""
|
1198 |
|
1199 |
-
#: templates/account.php:
|
1200 |
msgid "Change Plan"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
-
#: templates/account.php:
|
1204 |
msgctxt "verb"
|
1205 |
msgid "Upgrade"
|
1206 |
msgstr ""
|
1207 |
|
1208 |
-
#: templates/account.php:
|
1209 |
msgctxt "verb"
|
1210 |
msgid "Downgrade"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
-
#: templates/account.php:
|
1214 |
msgid "Free"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
-
#: templates/account.php:
|
1218 |
msgctxt "as product pricing plan"
|
1219 |
msgid "Plan"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
-
#: templates/account.php:
|
1223 |
msgid "Bundle Plan"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
-
#: templates/account.php:
|
1227 |
msgid "Free Trial"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
-
#: templates/account.php:
|
1231 |
msgid "Account Details"
|
1232 |
msgstr ""
|
1233 |
|
1234 |
-
#: templates/account.php:
|
1235 |
msgid "Start Debug"
|
1236 |
msgstr ""
|
1237 |
|
1238 |
-
#: templates/account.php:
|
1239 |
msgid "Stop Debug"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
-
#: templates/account.php:
|
1243 |
msgid "Billing & Invoices"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
-
#: templates/account.php:
|
1247 |
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
-
#: templates/account.php:
|
1251 |
msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
|
1252 |
msgstr ""
|
1253 |
|
1254 |
-
#: templates/account.php:
|
1255 |
msgid "Delete Account"
|
1256 |
msgstr ""
|
1257 |
|
1258 |
-
#: templates/account.php:
|
1259 |
msgid "Deactivate License"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
-
#: templates/account.php:
|
1263 |
msgid "Are you sure you want to proceed?"
|
1264 |
msgstr ""
|
1265 |
|
1266 |
-
#: templates/account.php:
|
1267 |
msgid "Cancel Subscription"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: templates/account.php:
|
1271 |
msgctxt "as synchronize"
|
1272 |
msgid "Sync"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
-
#: templates/account.php:
|
1276 |
msgid "Name"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
-
#: templates/account.php:
|
1280 |
msgid "Email"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#: templates/account.php:
|
1284 |
msgid "User ID"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
-
#: templates/account.php:
|
1288 |
msgid "ID"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: templates/account.php:
|
1292 |
msgid "Site ID"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
-
#: templates/account.php:
|
1296 |
msgid "No ID"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
-
#: templates/account.php:
|
1300 |
msgid "Public Key"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
-
#: templates/account.php:
|
1304 |
msgid "Secret Key"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: templates/account.php:
|
1308 |
msgctxt "as secret encryption key missing"
|
1309 |
msgid "No Secret"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
-
#: templates/account.php:
|
1313 |
msgid "Trial"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
-
#: templates/account.php:
|
1317 |
msgid "License Key"
|
1318 |
msgstr ""
|
1319 |
|
1320 |
-
#: templates/account.php:
|
1321 |
msgid "Join the Beta program"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
-
#: templates/account.php:
|
1325 |
msgid "not verified"
|
1326 |
msgstr ""
|
1327 |
|
1328 |
-
#: templates/account.php:
|
1329 |
msgid "Expired"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
-
#: templates/account.php:
|
1333 |
msgid "Premium version"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
-
#: templates/account.php:
|
1337 |
msgid "Free version"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
-
#: templates/account.php:
|
1341 |
msgid "Verify Email"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
-
#: templates/account.php:
|
1345 |
msgid "Download %s Version"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
-
#: templates/account.php:
|
1349 |
msgid "Download Paid Version"
|
1350 |
msgstr ""
|
1351 |
|
1352 |
-
#: templates/account.php:
|
1353 |
msgctxt "verb"
|
1354 |
msgid "Show"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: templates/account.php:
|
1358 |
msgid "What is your %s?"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
-
#: templates/account.php:
|
1362 |
msgctxt "verb"
|
1363 |
msgid "Edit"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
-
#: templates/account.php:
|
1367 |
msgid "Change User"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
-
#: templates/account.php:
|
1371 |
msgid "Sites"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
-
#: templates/account.php:
|
1375 |
msgid "Search by address"
|
1376 |
msgstr ""
|
1377 |
|
1378 |
-
#: templates/account.php:
|
1379 |
msgid "Address"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
-
#: templates/account.php:
|
1383 |
msgid "License"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
-
#: templates/account.php:
|
1387 |
msgid "Plan"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
-
#: templates/account.php:
|
1391 |
msgctxt "as software license"
|
1392 |
msgid "License"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
-
#: templates/account.php:
|
1396 |
msgctxt "verb"
|
1397 |
msgid "Hide"
|
1398 |
msgstr ""
|
1399 |
|
1400 |
-
#: templates/account.php:
|
1401 |
msgid "Processing"
|
1402 |
msgstr ""
|
1403 |
|
1404 |
-
#: templates/account.php:
|
1405 |
msgid "Get updates for bleeding edge Beta versions of %s."
|
1406 |
msgstr ""
|
1407 |
|
1408 |
-
#: templates/account.php:
|
1409 |
msgid "Cancelling %s"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
-
#: templates/account.php:
|
1413 |
msgid "trial"
|
1414 |
msgstr ""
|
1415 |
|
1416 |
-
#: templates/account.php:
|
1417 |
msgid "Cancelling %s..."
|
1418 |
msgstr ""
|
1419 |
|
1420 |
-
#: templates/account.php:
|
1421 |
msgid "subscription"
|
1422 |
msgstr ""
|
1423 |
|
1424 |
-
#: templates/account.php:
|
1425 |
msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
|
1426 |
msgstr ""
|
1427 |
|
1428 |
-
#: templates/account.php:
|
1429 |
msgid "Disabling white-label mode"
|
1430 |
msgstr ""
|
1431 |
|
1432 |
-
#: templates/account.php:
|
1433 |
msgid "Enabling white-label mode"
|
1434 |
msgstr ""
|
1435 |
|
@@ -1455,7 +1455,7 @@ msgctxt "installed add-on"
|
|
1455 |
msgid "Installed"
|
1456 |
msgstr ""
|
1457 |
|
1458 |
-
#: templates/admin-notice.php:13, templates/forms/license-activation.php:
|
1459 |
msgctxt "as close a window"
|
1460 |
msgid "Dismiss"
|
1461 |
msgstr ""
|
@@ -1510,84 +1510,92 @@ msgstr ""
|
|
1510 |
msgid "Agree & Activate License"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
-
#: templates/connect.php:
|
1514 |
-
msgid "
|
1515 |
msgstr ""
|
1516 |
|
1517 |
-
#: templates/connect.php:
|
1518 |
msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
|
1519 |
msgstr ""
|
1520 |
|
1521 |
-
#: templates/connect.php:
|
1522 |
msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
1523 |
msgstr ""
|
1524 |
|
1525 |
-
#: templates/connect.php:
|
1526 |
msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
1527 |
msgstr ""
|
1528 |
|
1529 |
-
#: templates/connect.php:
|
1530 |
msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
1531 |
msgstr ""
|
1532 |
|
1533 |
-
#: templates/connect.php:
|
1534 |
msgid "We're excited to introduce the Freemius network-level integration."
|
1535 |
msgstr ""
|
1536 |
|
1537 |
-
#: templates/connect.php:
|
1538 |
msgid "During the update process we detected %d site(s) that are still pending license activation."
|
1539 |
msgstr ""
|
1540 |
|
1541 |
-
#: templates/connect.php:
|
1542 |
msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
|
1543 |
msgstr ""
|
1544 |
|
1545 |
-
#: templates/connect.php:
|
1546 |
msgid "%s's paid features"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
-
#: templates/connect.php:
|
1550 |
msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
|
1551 |
msgstr ""
|
1552 |
|
1553 |
-
#: templates/connect.php:
|
1554 |
msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
|
1555 |
msgstr ""
|
1556 |
|
1557 |
-
#: templates/connect.php:
|
1558 |
msgid "License key"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
-
#: templates/connect.php:
|
1562 |
msgid "Can't find your license key?"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
-
#: templates/connect.php:
|
1566 |
msgctxt "verb"
|
1567 |
msgid "Skip"
|
1568 |
msgstr ""
|
1569 |
|
1570 |
-
#: templates/connect.php:
|
1571 |
msgid "Delegate to Site Admins"
|
1572 |
msgstr ""
|
1573 |
|
1574 |
-
#: templates/connect.php:
|
1575 |
msgid "If you click it, this decision will be delegated to the sites administrators."
|
1576 |
msgstr ""
|
1577 |
|
1578 |
-
#: templates/connect.php:
|
|
|
|
|
|
|
|
|
1579 |
msgid "Your Profile Overview"
|
1580 |
msgstr ""
|
1581 |
|
1582 |
-
#: templates/connect.php:
|
1583 |
msgid "Name and email address"
|
1584 |
msgstr ""
|
1585 |
|
1586 |
-
#: templates/connect.php:
|
|
|
|
|
|
|
|
|
1587 |
msgid "Your Site Overview"
|
1588 |
msgstr ""
|
1589 |
|
1590 |
-
#: templates/connect.php:
|
1591 |
msgid "Site URL, WP version, PHP info"
|
1592 |
msgstr ""
|
1593 |
|
@@ -1595,64 +1603,84 @@ msgstr ""
|
|
1595 |
msgid "Admin Notices"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
-
#: templates/connect.php:380, templates/connect.php:
|
1599 |
msgid "Updates, announcements, marketing, no spam"
|
1600 |
msgstr ""
|
1601 |
|
1602 |
-
#: templates/connect.php:
|
1603 |
-
msgid "
|
|
|
|
|
|
|
|
|
1604 |
msgstr ""
|
1605 |
|
1606 |
-
#: templates/connect.php:
|
1607 |
-
msgid "
|
1608 |
msgstr ""
|
1609 |
|
1610 |
-
#: templates/connect.php:
|
1611 |
msgid "Newsletter"
|
1612 |
msgstr ""
|
1613 |
|
1614 |
-
#: templates/connect.php:
|
1615 |
msgid "Plugins & Themes"
|
1616 |
msgstr ""
|
1617 |
|
1618 |
-
#: templates/connect.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1619 |
msgid "Title, slug, version, and is active"
|
1620 |
msgstr ""
|
1621 |
|
1622 |
-
#: templates/connect.php:
|
1623 |
-
msgid "The %1$s will
|
1624 |
msgstr ""
|
1625 |
|
1626 |
#: templates/connect.php:426
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1627 |
msgid "What permissions are being granted?"
|
1628 |
msgstr ""
|
1629 |
|
1630 |
-
#: templates/connect.php:
|
1631 |
msgid "Don't have a license key?"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
-
#: templates/connect.php:
|
1635 |
msgid "Have a license key?"
|
1636 |
msgstr ""
|
1637 |
|
1638 |
-
#: templates/connect.php:
|
1639 |
msgid "Privacy Policy"
|
1640 |
msgstr ""
|
1641 |
|
1642 |
-
#: templates/connect.php:
|
1643 |
msgid "License Agreement"
|
1644 |
msgstr ""
|
1645 |
|
1646 |
-
#: templates/connect.php:
|
1647 |
msgid "Terms of Service"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
-
#: templates/connect.php:
|
1651 |
msgctxt "as in the process of sending an email"
|
1652 |
msgid "Sending email"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: templates/connect.php:
|
1656 |
msgctxt "as activating plugin"
|
1657 |
msgid "Activating"
|
1658 |
msgstr ""
|
@@ -2241,7 +2269,11 @@ msgstr ""
|
|
2241 |
msgid "Update License"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
-
#: templates/forms/license-activation.php:
|
|
|
|
|
|
|
|
|
2245 |
msgid "Associate with the license owner's account."
|
2246 |
msgstr ""
|
2247 |
|
1 |
+
# Copyright (C) 2021 freemius
|
2 |
# This file is distributed under the same license as the freemius package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
|
19 |
+
#: includes/class-freemius.php:1919, templates/account.php:912
|
20 |
msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
|
21 |
msgstr ""
|
22 |
|
23 |
+
#: includes/class-freemius.php:1926
|
24 |
msgid "Would you like to proceed with the update?"
|
25 |
msgstr ""
|
26 |
|
27 |
+
#: includes/class-freemius.php:2138
|
28 |
msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: includes/class-freemius.php:2140
|
32 |
msgid "Error"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: includes/class-freemius.php:2540
|
36 |
msgid "I found a better %s"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: includes/class-freemius.php:2542
|
40 |
msgid "What's the %s's name?"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: includes/class-freemius.php:2548
|
44 |
msgid "It's a temporary %s. I'm just debugging an issue."
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: includes/class-freemius.php:2550
|
48 |
msgid "Deactivation"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: includes/class-freemius.php:2551
|
52 |
msgid "Theme Switch"
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: includes/class-freemius.php:2560, templates/forms/resend-key.php:24, templates/forms/user-change.php:29
|
56 |
msgid "Other"
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: includes/class-freemius.php:2568
|
60 |
msgid "I no longer need the %s"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: includes/class-freemius.php:2575
|
64 |
msgid "I only needed the %s for a short period"
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: includes/class-freemius.php:2581
|
68 |
msgid "The %s broke my site"
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: includes/class-freemius.php:2588
|
72 |
msgid "The %s suddenly stopped working"
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: includes/class-freemius.php:2598
|
76 |
msgid "I can't pay for it anymore"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: includes/class-freemius.php:2600
|
80 |
msgid "What price would you feel comfortable paying?"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: includes/class-freemius.php:2606
|
84 |
msgid "I don't like to share my information with you"
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: includes/class-freemius.php:2627
|
88 |
msgid "The %s didn't work"
|
89 |
msgstr ""
|
90 |
|
91 |
+
#: includes/class-freemius.php:2637
|
92 |
msgid "I couldn't understand how to make it work"
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: includes/class-freemius.php:2645
|
96 |
msgid "The %s is great, but I need specific feature that you don't support"
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: includes/class-freemius.php:2647
|
100 |
msgid "What feature?"
|
101 |
msgstr ""
|
102 |
|
103 |
+
#: includes/class-freemius.php:2651
|
104 |
msgid "The %s is not working"
|
105 |
msgstr ""
|
106 |
|
107 |
+
#: includes/class-freemius.php:2653
|
108 |
msgid "Kindly share what didn't work so we can fix it for future users..."
|
109 |
msgstr ""
|
110 |
|
111 |
+
#: includes/class-freemius.php:2657
|
112 |
msgid "It's not what I was looking for"
|
113 |
msgstr ""
|
114 |
|
115 |
+
#: includes/class-freemius.php:2659
|
116 |
msgid "What you've been looking for?"
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: includes/class-freemius.php:2663
|
120 |
msgid "The %s didn't work as expected"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: includes/class-freemius.php:2665
|
124 |
msgid "What did you expect?"
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: includes/class-freemius.php:3520, templates/debug.php:20
|
128 |
msgid "Freemius Debug"
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: includes/class-freemius.php:4272
|
132 |
msgid "I don't know what is cURL or how to install it, help me!"
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: includes/class-freemius.php:4274
|
136 |
msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: includes/class-freemius.php:4281
|
140 |
msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: includes/class-freemius.php:4386
|
144 |
msgid "Yes - do your thing"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: includes/class-freemius.php:4391
|
148 |
msgid "No - just deactivate"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: includes/class-freemius.php:4436, includes/class-freemius.php:4930, includes/class-freemius.php:6191, includes/class-freemius.php:13368, includes/class-freemius.php:14110, includes/class-freemius.php:17542, includes/class-freemius.php:17647, includes/class-freemius.php:17822, includes/class-freemius.php:20056, includes/class-freemius.php:20414, includes/class-freemius.php:20424, includes/class-freemius.php:21109, includes/class-freemius.php:22015, includes/class-freemius.php:22148, includes/class-freemius.php:22304, templates/add-ons.php:57
|
152 |
msgctxt "exclamation"
|
153 |
msgid "Oops"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: includes/class-freemius.php:4505
|
157 |
msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: includes/class-freemius.php:4927
|
161 |
msgctxt "addonX cannot run without pluginY"
|
162 |
msgid "%s cannot run without %s."
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: includes/class-freemius.php:4928
|
166 |
msgctxt "addonX cannot run..."
|
167 |
msgid "%s cannot run without the plugin."
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: includes/class-freemius.php:5127, includes/class-freemius.php:5152, includes/class-freemius.php:21180
|
171 |
msgid "Unexpected API error. Please contact the %s's author with the following error."
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: includes/class-freemius.php:5857
|
175 |
msgid "Premium %s version was successfully activated."
|
176 |
msgstr ""
|
177 |
|
178 |
+
#: includes/class-freemius.php:5869, includes/class-freemius.php:7774
|
179 |
msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
|
180 |
msgid "W00t"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: includes/class-freemius.php:5884
|
184 |
msgid "You have a %s license."
|
185 |
msgstr ""
|
186 |
|
187 |
+
#: includes/class-freemius.php:5888, includes/class-freemius.php:16947, includes/class-freemius.php:16958, includes/class-freemius.php:20325, includes/class-freemius.php:20689, includes/class-freemius.php:20758, includes/class-freemius.php:20930
|
188 |
msgctxt "interjection expressing joy or exuberance"
|
189 |
msgid "Yee-haw"
|
190 |
msgstr ""
|
191 |
|
192 |
+
#: includes/class-freemius.php:6174
|
193 |
msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: includes/class-freemius.php:6178
|
197 |
msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: includes/class-freemius.php:6187, templates/add-ons.php:186, templates/account/partials/addon.php:381
|
201 |
msgid "More information about %s"
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: includes/class-freemius.php:6188
|
205 |
msgid "Purchase License"
|
206 |
msgstr ""
|
207 |
|
208 |
+
#: includes/class-freemius.php:7125, templates/connect.php:171
|
209 |
msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
|
210 |
msgstr ""
|
211 |
|
212 |
+
#: includes/class-freemius.php:7129
|
213 |
msgid "start the trial"
|
214 |
msgstr ""
|
215 |
|
216 |
+
#: includes/class-freemius.php:7130, templates/connect.php:175
|
217 |
msgid "complete the install"
|
218 |
msgstr ""
|
219 |
|
220 |
+
#: includes/class-freemius.php:7249
|
221 |
msgid "You are just one step away - %s"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: includes/class-freemius.php:7252
|
225 |
msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
|
226 |
msgid "Complete \"%s\" Activation Now"
|
227 |
msgstr ""
|
228 |
|
229 |
+
#: includes/class-freemius.php:7334
|
230 |
msgid "We made a few tweaks to the %s, %s"
|
231 |
msgstr ""
|
232 |
|
233 |
+
#: includes/class-freemius.php:7338
|
234 |
msgid "Opt in to make \"%s\" better!"
|
235 |
msgstr ""
|
236 |
|
237 |
+
#: includes/class-freemius.php:7773
|
238 |
msgid "The upgrade of %s was successfully completed."
|
239 |
msgstr ""
|
240 |
|
241 |
+
#: includes/class-freemius.php:10255, includes/class-fs-plugin-updater.php:1087, includes/class-fs-plugin-updater.php:1282, includes/class-fs-plugin-updater.php:1289, templates/auto-installation.php:32
|
242 |
msgid "Add-On"
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: includes/class-freemius.php:10257, templates/account.php:394, templates/account.php:402, templates/debug.php:358, templates/debug.php:549
|
246 |
msgid "Plugin"
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: includes/class-freemius.php:10258, templates/account.php:395, templates/account.php:403, templates/debug.php:358, templates/debug.php:549, templates/forms/deactivation/form.php:71
|
250 |
msgid "Theme"
|
251 |
msgstr ""
|
252 |
|
253 |
+
#: includes/class-freemius.php:13188
|
254 |
msgid "An unknown error has occurred while trying to toggle the license's white-label mode."
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: includes/class-freemius.php:13202
|
258 |
msgid "Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your email, license key, prices, billing address & invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s."
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: includes/class-freemius.php:13207
|
262 |
msgid "User Dashboard"
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: includes/class-freemius.php:13208
|
266 |
msgid "revert it now"
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: includes/class-freemius.php:13266
|
270 |
msgid "An unknown error has occurred while trying to set the user's beta mode."
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: includes/class-freemius.php:13339
|
274 |
msgid "Invalid new user ID or email address."
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: includes/class-freemius.php:13369, includes/class-freemius.php:22259
|
278 |
msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: includes/class-freemius.php:13370, includes/class-freemius.php:22260
|
282 |
msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
|
283 |
msgstr ""
|
284 |
|
285 |
+
#: includes/class-freemius.php:13377, includes/class-freemius.php:22267
|
286 |
msgid "Change Ownership"
|
287 |
msgstr ""
|
288 |
|
289 |
+
#: includes/class-freemius.php:13977
|
290 |
msgid "Invalid site details collection."
|
291 |
msgstr ""
|
292 |
|
293 |
+
#: includes/class-freemius.php:14097
|
294 |
msgid "We couldn't find your email address in the system, are you sure it's the right address?"
|
295 |
msgstr ""
|
296 |
|
297 |
+
#: includes/class-freemius.php:14099
|
298 |
msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
|
299 |
msgstr ""
|
300 |
|
301 |
+
#: includes/class-freemius.php:14373
|
302 |
msgid "Account is pending activation."
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: includes/class-freemius.php:14485, templates/forms/premium-versions-upgrade-handler.php:47
|
306 |
msgid "Buy a license now"
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: includes/class-freemius.php:14497, templates/forms/premium-versions-upgrade-handler.php:46
|
310 |
msgid "Renew your license now"
|
311 |
msgstr ""
|
312 |
|
313 |
+
#: includes/class-freemius.php:14501
|
314 |
msgid "%s to access version %s security & feature updates, and support."
|
315 |
msgstr ""
|
316 |
|
317 |
+
#: includes/class-freemius.php:16929
|
318 |
msgid "%s activation was successfully completed."
|
319 |
msgstr ""
|
320 |
|
321 |
+
#: includes/class-freemius.php:16943
|
322 |
msgid "Your account was successfully activated with the %s plan."
|
323 |
msgstr ""
|
324 |
|
325 |
+
#: includes/class-freemius.php:16954, includes/class-freemius.php:20754
|
326 |
msgid "Your trial has been successfully started."
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: includes/class-freemius.php:17540, includes/class-freemius.php:17645, includes/class-freemius.php:17820
|
330 |
msgid "Couldn't activate %s."
|
331 |
msgstr ""
|
332 |
|
333 |
+
#: includes/class-freemius.php:17541, includes/class-freemius.php:17646, includes/class-freemius.php:17821
|
334 |
msgid "Please contact us with the following message:"
|
335 |
msgstr ""
|
336 |
|
337 |
+
#: includes/class-freemius.php:17642, templates/forms/data-debug-mode.php:162
|
338 |
msgid "An unknown error has occurred."
|
339 |
msgstr ""
|
340 |
|
341 |
+
#: includes/class-freemius.php:18178, includes/class-freemius.php:23340
|
342 |
msgid "Upgrade"
|
343 |
msgstr ""
|
344 |
|
345 |
+
#: includes/class-freemius.php:18184
|
346 |
msgid "Start Trial"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: includes/class-freemius.php:18186
|
350 |
msgid "Pricing"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: includes/class-freemius.php:18266, includes/class-freemius.php:18268
|
354 |
msgid "Affiliation"
|
355 |
msgstr ""
|
356 |
|
357 |
+
#: includes/class-freemius.php:18296, includes/class-freemius.php:18298, templates/account.php:242, templates/debug.php:324
|
358 |
msgid "Account"
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: includes/class-freemius.php:18312, includes/class-freemius.php:18314, includes/customizer/class-fs-customizer-support-section.php:60
|
362 |
msgid "Contact Us"
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: includes/class-freemius.php:18325, includes/class-freemius.php:18327, includes/class-freemius.php:23354, templates/account.php:121, templates/account/partials/addon.php:44
|
366 |
msgid "Add-Ons"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: includes/class-freemius.php:18361
|
370 |
msgctxt "ASCII arrow left icon"
|
371 |
msgid "←"
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: includes/class-freemius.php:18361
|
375 |
msgctxt "ASCII arrow right icon"
|
376 |
msgid "➤"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: includes/class-freemius.php:18363, templates/pricing.php:109
|
380 |
msgctxt "noun"
|
381 |
msgid "Pricing"
|
382 |
msgstr ""
|
383 |
|
384 |
+
#: includes/class-freemius.php:18576, includes/customizer/class-fs-customizer-support-section.php:67
|
385 |
msgid "Support Forum"
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: includes/class-freemius.php:19550
|
389 |
msgid "Your email has been successfully verified - you are AWESOME!"
|
390 |
msgstr ""
|
391 |
|
392 |
+
#: includes/class-freemius.php:19551
|
393 |
msgctxt "a positive response"
|
394 |
msgid "Right on"
|
395 |
msgstr ""
|
396 |
|
397 |
+
#: includes/class-freemius.php:20057
|
398 |
msgid "seems like the key you entered doesn't match our records."
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: includes/class-freemius.php:20081
|
402 |
msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
|
403 |
msgstr ""
|
404 |
|
405 |
+
#: includes/class-freemius.php:20316
|
406 |
msgid "Your %s Add-on plan was successfully upgraded."
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: includes/class-freemius.php:20318
|
410 |
msgid "%s Add-on was successfully purchased."
|
411 |
msgstr ""
|
412 |
|
413 |
+
#: includes/class-freemius.php:20321
|
414 |
msgid "Download the latest version"
|
415 |
msgstr ""
|
416 |
|
417 |
+
#: includes/class-freemius.php:20407
|
418 |
msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
|
419 |
msgstr ""
|
420 |
|
421 |
+
#: includes/class-freemius.php:20413, includes/class-freemius.php:20423, includes/class-freemius.php:20889, includes/class-freemius.php:20978
|
422 |
msgid "Error received from the server:"
|
423 |
msgstr ""
|
424 |
|
425 |
+
#: includes/class-freemius.php:20423
|
426 |
msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
|
427 |
msgstr ""
|
428 |
|
429 |
+
#: includes/class-freemius.php:20651, includes/class-freemius.php:20894, includes/class-freemius.php:20949, includes/class-freemius.php:21056
|
430 |
msgctxt "something somebody says when they are thinking about what you have just said."
|
431 |
msgid "Hmm"
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: includes/class-freemius.php:20664
|
435 |
msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: includes/class-freemius.php:20665, templates/account.php:123, templates/add-ons.php:250, templates/account/partials/addon.php:46
|
439 |
msgctxt "trial period"
|
440 |
msgid "Trial"
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: includes/class-freemius.php:20670
|
444 |
msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: includes/class-freemius.php:20674, includes/class-freemius.php:20733
|
448 |
msgid "Please contact us here"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: includes/class-freemius.php:20685
|
452 |
msgid "Your plan was successfully activated."
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: includes/class-freemius.php:20686
|
456 |
msgid "Your plan was successfully upgraded."
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: includes/class-freemius.php:20703
|
460 |
msgid "Your plan was successfully changed to %s."
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: includes/class-freemius.php:20719
|
464 |
msgid "Your license has expired. You can still continue using the free %s forever."
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: includes/class-freemius.php:20721
|
468 |
msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: includes/class-freemius.php:20729
|
472 |
msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: includes/class-freemius.php:20742
|
476 |
msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: includes/class-freemius.php:20768
|
480 |
msgid "Your free trial has expired. You can still continue using all our free features."
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: includes/class-freemius.php:20770
|
484 |
msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: includes/class-freemius.php:20885
|
488 |
msgid "It looks like the license could not be activated."
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: includes/class-freemius.php:20927
|
492 |
msgid "Your license was successfully activated."
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: includes/class-freemius.php:20953
|
496 |
msgid "It looks like your site currently doesn't have an active license."
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: includes/class-freemius.php:20977
|
500 |
msgid "It looks like the license deactivation failed."
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: includes/class-freemius.php:21006
|
504 |
msgid "Your %s license was successfully deactivated."
|
505 |
msgstr ""
|
506 |
|
507 |
+
#: includes/class-freemius.php:21007
|
508 |
msgid "Your license was successfully deactivated, you are back to the %s plan."
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: includes/class-freemius.php:21010
|
512 |
msgid "O.K"
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: includes/class-freemius.php:21063
|
516 |
msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: includes/class-freemius.php:21072
|
520 |
msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
|
521 |
msgstr ""
|
522 |
|
523 |
+
#: includes/class-freemius.php:21114
|
524 |
msgid "You are already running the %s in a trial mode."
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: includes/class-freemius.php:21125
|
528 |
msgid "You already utilized a trial before."
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: includes/class-freemius.php:21139
|
532 |
msgid "Plan %s do not exist, therefore, can't start a trial."
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: includes/class-freemius.php:21150
|
536 |
msgid "Plan %s does not support a trial period."
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: includes/class-freemius.php:21161
|
540 |
msgid "None of the %s's plans supports a trial period."
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: includes/class-freemius.php:21211
|
544 |
msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: includes/class-freemius.php:21247
|
548 |
msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
|
549 |
msgstr ""
|
550 |
|
551 |
+
#: includes/class-freemius.php:21266
|
552 |
msgid "Your %s free trial was successfully cancelled."
|
553 |
msgstr ""
|
554 |
|
555 |
+
#: includes/class-freemius.php:21582
|
556 |
msgid "Version %s was released."
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: includes/class-freemius.php:21582
|
560 |
msgid "Please download %s."
|
561 |
msgstr ""
|
562 |
|
563 |
+
#: includes/class-freemius.php:21589
|
564 |
msgid "the latest %s version here"
|
565 |
msgstr ""
|
566 |
|
567 |
+
#: includes/class-freemius.php:21594
|
568 |
msgid "New"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: includes/class-freemius.php:21599
|
572 |
msgid "Seems like you got the latest release."
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: includes/class-freemius.php:21600
|
576 |
msgid "You are all good!"
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: includes/class-freemius.php:21903
|
580 |
msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: includes/class-freemius.php:22043
|
584 |
msgid "Site successfully opted in."
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: includes/class-freemius.php:22044, includes/class-freemius.php:23050
|
588 |
msgid "Awesome"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: includes/class-freemius.php:22060, templates/forms/optout.php:41
|
592 |
msgid "We appreciate your help in making the %s better by letting us track some usage data."
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: includes/class-freemius.php:22061
|
596 |
msgid "Thank you!"
|
597 |
msgstr ""
|
598 |
|
599 |
+
#: includes/class-freemius.php:22068
|
600 |
msgid "We will no longer be sending any usage data of %s on %s to %s."
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: includes/class-freemius.php:22226
|
604 |
msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: includes/class-freemius.php:22232
|
608 |
msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: includes/class-freemius.php:22237
|
612 |
msgid "%s is the new owner of the account."
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: includes/class-freemius.php:22239
|
616 |
msgctxt "as congratulations"
|
617 |
msgid "Congrats"
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: includes/class-freemius.php:22275
|
621 |
msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
|
622 |
msgstr ""
|
623 |
|
624 |
+
#: includes/class-freemius.php:22287
|
625 |
msgid "Please provide your full name."
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: includes/class-freemius.php:22292
|
629 |
msgid "Your name was successfully updated."
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: includes/class-freemius.php:22353
|
633 |
msgid "You have successfully updated your %s."
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: includes/class-freemius.php:22412
|
637 |
msgid "Is this your client's site? %s if you wish to hide sensitive info like your email, license key, prices, billing address & invoices from the WP Admin."
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: includes/class-freemius.php:22415
|
641 |
msgid "Click here"
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: includes/class-freemius.php:22513
|
645 |
msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: includes/class-freemius.php:22514
|
649 |
msgctxt "advance notice of something that will need attention."
|
650 |
msgid "Heads up"
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: includes/class-freemius.php:23090
|
654 |
msgctxt "exclamation"
|
655 |
msgid "Hey"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: includes/class-freemius.php:23090
|
659 |
msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
|
660 |
msgstr ""
|
661 |
|
662 |
+
#: includes/class-freemius.php:23098
|
663 |
msgid "No commitment for %s days - cancel anytime!"
|
664 |
msgstr ""
|
665 |
|
666 |
+
#: includes/class-freemius.php:23099
|
667 |
msgid "No credit card required"
|
668 |
msgstr ""
|
669 |
|
670 |
+
#: includes/class-freemius.php:23106, templates/forms/trial-start.php:53
|
671 |
msgctxt "call to action"
|
672 |
msgid "Start free trial"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: includes/class-freemius.php:23183
|
676 |
msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: includes/class-freemius.php:23192
|
680 |
msgid "Learn more"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: includes/class-freemius.php:23378, templates/account.php:558, templates/account.php:708, templates/connect.php:179, templates/connect.php:461, templates/forms/license-activation.php:27, templates/account/partials/addon.php:321
|
684 |
msgid "Activate License"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: includes/class-freemius.php:23379, templates/account.php:652, templates/account.php:707, templates/account/partials/addon.php:322, templates/account/partials/site.php:271
|
688 |
msgid "Change License"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: includes/class-freemius.php:23500, templates/account/partials/site.php:169
|
692 |
msgid "Opt Out"
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: includes/class-freemius.php:23502, includes/class-freemius.php:23508, templates/account/partials/site.php:49, templates/account/partials/site.php:169
|
696 |
msgid "Opt In"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: includes/class-freemius.php:23738
|
700 |
msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: includes/class-freemius.php:23746
|
704 |
msgid "Activate %s features"
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: includes/class-freemius.php:23759
|
708 |
msgid "Please follow these steps to complete the upgrade"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: includes/class-freemius.php:23763
|
712 |
msgid "Download the latest %s version"
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: includes/class-freemius.php:23767
|
716 |
msgid "Upload and activate the downloaded version"
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: includes/class-freemius.php:23769
|
720 |
msgid "How to upload and activate?"
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: includes/class-freemius.php:23903
|
724 |
msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
|
725 |
msgstr ""
|
726 |
|
727 |
+
#: includes/class-freemius.php:24072
|
728 |
msgid "Auto installation only works for opted-in users."
|
729 |
msgstr ""
|
730 |
|
731 |
+
#: includes/class-freemius.php:24082, includes/class-freemius.php:24115, includes/class-fs-plugin-updater.php:1261, includes/class-fs-plugin-updater.php:1275
|
732 |
msgid "Invalid module ID."
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: includes/class-freemius.php:24091, includes/class-fs-plugin-updater.php:1297
|
736 |
msgid "Premium version already active."
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: includes/class-freemius.php:24098
|
740 |
msgid "You do not have a valid license to access the premium version."
|
741 |
msgstr ""
|
742 |
|
743 |
+
#: includes/class-freemius.php:24105
|
744 |
msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
|
745 |
msgstr ""
|
746 |
|
747 |
+
#: includes/class-freemius.php:24123, includes/class-fs-plugin-updater.php:1296
|
748 |
msgid "Premium add-on version already installed."
|
749 |
msgstr ""
|
750 |
|
751 |
+
#: includes/class-freemius.php:24473
|
752 |
msgid "View paid features"
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: includes/class-freemius.php:24795
|
756 |
msgid "Thank you so much for using %s and its add-ons!"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: includes/class-freemius.php:24796
|
760 |
msgid "Thank you so much for using %s!"
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: includes/class-freemius.php:24802
|
764 |
msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
|
765 |
msgstr ""
|
766 |
|
767 |
+
#: includes/class-freemius.php:24806
|
768 |
msgid "Thank you so much for using our products!"
|
769 |
msgstr ""
|
770 |
|
771 |
+
#: includes/class-freemius.php:24807
|
772 |
msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
|
773 |
msgstr ""
|
774 |
|
775 |
+
#: includes/class-freemius.php:24826
|
776 |
msgid "%s and its add-ons"
|
777 |
msgstr ""
|
778 |
|
779 |
+
#: includes/class-freemius.php:24835
|
780 |
msgid "Products"
|
781 |
msgstr ""
|
782 |
|
783 |
+
#: includes/class-freemius.php:24842, templates/connect.php:275
|
784 |
msgid "Yes"
|
785 |
msgstr ""
|
786 |
|
787 |
+
#: includes/class-freemius.php:24843, templates/connect.php:276
|
788 |
msgid "send me security & feature updates, educational content and offers."
|
789 |
msgstr ""
|
790 |
|
791 |
+
#: includes/class-freemius.php:24844, templates/connect.php:281
|
792 |
msgid "No"
|
793 |
msgstr ""
|
794 |
|
795 |
+
#: includes/class-freemius.php:24846, templates/connect.php:283
|
796 |
msgid "do %sNOT%s send me security & feature updates, educational content and offers."
|
797 |
msgstr ""
|
798 |
|
799 |
+
#: includes/class-freemius.php:24856
|
800 |
msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
|
801 |
msgstr ""
|
802 |
|
803 |
+
#: includes/class-freemius.php:24858, templates/connect.php:290
|
804 |
msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
|
805 |
msgstr ""
|
806 |
|
807 |
+
#: includes/class-freemius.php:25140
|
808 |
msgid "License key is empty."
|
809 |
msgstr ""
|
810 |
|
832 |
msgid "Important Upgrade Notice:"
|
833 |
msgstr ""
|
834 |
|
835 |
+
#: includes/class-fs-plugin-updater.php:1326
|
836 |
msgid "Installing plugin: %s"
|
837 |
msgstr ""
|
838 |
|
839 |
+
#: includes/class-fs-plugin-updater.php:1367
|
840 |
msgid "Unable to connect to the filesystem. Please confirm your credentials."
|
841 |
msgstr ""
|
842 |
|
843 |
+
#: includes/class-fs-plugin-updater.php:1549
|
844 |
msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
845 |
msgstr ""
|
846 |
|
861 |
msgid "Install Free Version Update Now"
|
862 |
msgstr ""
|
863 |
|
864 |
+
#: includes/fs-plugin-info-dialog.php:745, templates/account.php:641
|
865 |
msgid "Install Update Now"
|
866 |
msgstr ""
|
867 |
|
878 |
msgid "Download Latest Free Version"
|
879 |
msgstr ""
|
880 |
|
881 |
+
#: includes/fs-plugin-info-dialog.php:772, templates/account.php:101, templates/add-ons.php:37, templates/account/partials/addon.php:25
|
882 |
msgctxt "as download latest version"
|
883 |
msgid "Download Latest"
|
884 |
msgstr ""
|
887 |
msgid "Activate this add-on"
|
888 |
msgstr ""
|
889 |
|
890 |
+
#: includes/fs-plugin-info-dialog.php:789, templates/connect.php:458
|
891 |
msgid "Activate Free Version"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: includes/fs-plugin-info-dialog.php:790, templates/account.php:125, templates/add-ons.php:330, templates/account/partials/addon.php:48
|
895 |
msgid "Activate"
|
896 |
msgstr ""
|
897 |
|
1020 |
msgid "Details"
|
1021 |
msgstr ""
|
1022 |
|
1023 |
+
#: includes/fs-plugin-info-dialog.php:1318, templates/account.php:112, templates/debug.php:201, templates/debug.php:238, templates/debug.php:455, templates/account/partials/addon.php:36
|
1024 |
msgctxt "product version"
|
1025 |
msgid "Version"
|
1026 |
msgstr ""
|
1034 |
msgid "Last Updated"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
+
#: includes/fs-plugin-info-dialog.php:1337, templates/account.php:527
|
1038 |
msgctxt "x-ago"
|
1039 |
msgid "%s ago"
|
1040 |
msgstr ""
|
1143 |
msgid "Latest Free Version Installed"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
+
#: templates/account.php:102, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:26, templates/account/partials/site.php:311
|
1147 |
msgid "Downgrading your plan"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
+
#: templates/account.php:103, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:27, templates/account/partials/site.php:312
|
1151 |
msgid "Cancelling the subscription"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
#. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
|
1155 |
+
#: templates/account.php:105, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:314
|
1156 |
msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
|
1157 |
msgstr ""
|
1158 |
|
1159 |
+
#: templates/account.php:106, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:30, templates/account/partials/site.php:315
|
1160 |
msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
|
1161 |
msgstr ""
|
1162 |
|
1163 |
+
#: templates/account.php:107, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:31
|
1164 |
msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
+
#: templates/account.php:108, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:32, templates/account/partials/site.php:316
|
1168 |
msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: templates/account.php:109, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:33, templates/account/partials/site.php:317
|
1172 |
msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
|
1173 |
msgstr ""
|
1174 |
|
1175 |
#. translators: %s: Plan title (e.g. "Professional")
|
1176 |
+
#: templates/account.php:111, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:35
|
1177 |
msgid "Activate %s Plan"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
#. translators: %s: Time period (e.g. Auto renews in "2 months")
|
1181 |
+
#: templates/account.php:114, templates/account/partials/addon.php:38, templates/account/partials/site.php:291
|
1182 |
msgid "Auto renews in %s"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
#. translators: %s: Time period (e.g. Expires in "2 months")
|
1186 |
+
#: templates/account.php:116, templates/account/partials/addon.php:40, templates/account/partials/site.php:293
|
1187 |
msgid "Expires in %s"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
+
#: templates/account.php:117
|
1191 |
msgctxt "as synchronize license"
|
1192 |
msgid "Sync License"
|
1193 |
msgstr ""
|
1194 |
|
1195 |
+
#: templates/account.php:118, templates/account/partials/addon.php:41
|
1196 |
msgid "Cancel Trial"
|
1197 |
msgstr ""
|
1198 |
|
1199 |
+
#: templates/account.php:119, templates/account/partials/addon.php:42
|
1200 |
msgid "Change Plan"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
+
#: templates/account.php:120, templates/account/partials/addon.php:43
|
1204 |
msgctxt "verb"
|
1205 |
msgid "Upgrade"
|
1206 |
msgstr ""
|
1207 |
|
1208 |
+
#: templates/account.php:122, templates/account/partials/addon.php:45, templates/account/partials/site.php:318
|
1209 |
msgctxt "verb"
|
1210 |
msgid "Downgrade"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
+
#: templates/account.php:124, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:47, templates/account/partials/site.php:33
|
1214 |
msgid "Free"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
+
#: templates/account.php:126, templates/debug.php:371, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:49
|
1218 |
msgctxt "as product pricing plan"
|
1219 |
msgid "Plan"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
+
#: templates/account.php:127
|
1223 |
msgid "Bundle Plan"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
+
#: templates/account.php:250
|
1227 |
msgid "Free Trial"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
+
#: templates/account.php:261
|
1231 |
msgid "Account Details"
|
1232 |
msgstr ""
|
1233 |
|
1234 |
+
#: templates/account.php:268, templates/forms/data-debug-mode.php:33
|
1235 |
msgid "Start Debug"
|
1236 |
msgstr ""
|
1237 |
|
1238 |
+
#: templates/account.php:270
|
1239 |
msgid "Stop Debug"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
+
#: templates/account.php:277
|
1243 |
msgid "Billing & Invoices"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
+
#: templates/account.php:288
|
1247 |
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
+
#: templates/account.php:290
|
1251 |
msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
|
1252 |
msgstr ""
|
1253 |
|
1254 |
+
#: templates/account.php:293
|
1255 |
msgid "Delete Account"
|
1256 |
msgstr ""
|
1257 |
|
1258 |
+
#: templates/account.php:305, templates/account/partials/addon.php:231, templates/account/partials/deactivate-license-button.php:35
|
1259 |
msgid "Deactivate License"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
+
#: templates/account.php:328, templates/forms/subscription-cancellation.php:125
|
1263 |
msgid "Are you sure you want to proceed?"
|
1264 |
msgstr ""
|
1265 |
|
1266 |
+
#: templates/account.php:328, templates/account/partials/addon.php:255
|
1267 |
msgid "Cancel Subscription"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
+
#: templates/account.php:357, templates/account/partials/addon.php:340
|
1271 |
msgctxt "as synchronize"
|
1272 |
msgid "Sync"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
+
#: templates/account.php:372, templates/debug.php:505
|
1276 |
msgid "Name"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
+
#: templates/account.php:378, templates/debug.php:506
|
1280 |
msgid "Email"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
+
#: templates/account.php:385, templates/debug.php:369, templates/debug.php:555
|
1284 |
msgid "User ID"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
+
#: templates/account.php:403, templates/account.php:721, templates/account.php:754, templates/debug.php:236, templates/debug.php:363, templates/debug.php:452, templates/debug.php:504, templates/debug.php:553, templates/debug.php:632, templates/account/payments.php:35, templates/debug/logger.php:21
|
1288 |
msgid "ID"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
+
#: templates/account.php:410
|
1292 |
msgid "Site ID"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
+
#: templates/account.php:413
|
1296 |
msgid "No ID"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
+
#: templates/account.php:418, templates/debug.php:243, templates/debug.php:372, templates/debug.php:456, templates/debug.php:508, templates/account/partials/site.php:227
|
1300 |
msgid "Public Key"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
+
#: templates/account.php:424, templates/debug.php:373, templates/debug.php:457, templates/debug.php:509, templates/account/partials/site.php:239
|
1304 |
msgid "Secret Key"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
+
#: templates/account.php:427
|
1308 |
msgctxt "as secret encryption key missing"
|
1309 |
msgid "No Secret"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
+
#: templates/account.php:454, templates/account/partials/site.php:120, templates/account/partials/site.php:122
|
1313 |
msgid "Trial"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
+
#: templates/account.php:481, templates/debug.php:561, templates/account/partials/site.php:260
|
1317 |
msgid "License Key"
|
1318 |
msgstr ""
|
1319 |
|
1320 |
+
#: templates/account.php:512
|
1321 |
msgid "Join the Beta program"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: templates/account.php:518
|
1325 |
msgid "not verified"
|
1326 |
msgstr ""
|
1327 |
|
1328 |
+
#: templates/account.php:527, templates/account/partials/addon.php:190
|
1329 |
msgid "Expired"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: templates/account.php:587
|
1333 |
msgid "Premium version"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: templates/account.php:589
|
1337 |
msgid "Free version"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
+
#: templates/account.php:601
|
1341 |
msgid "Verify Email"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
+
#: templates/account.php:615
|
1345 |
msgid "Download %s Version"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
+
#: templates/account.php:631
|
1349 |
msgid "Download Paid Version"
|
1350 |
msgstr ""
|
1351 |
|
1352 |
+
#: templates/account.php:649, templates/account.php:892, templates/account/partials/site.php:248, templates/account/partials/site.php:270
|
1353 |
msgctxt "verb"
|
1354 |
msgid "Show"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
+
#: templates/account.php:664
|
1358 |
msgid "What is your %s?"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
+
#: templates/account.php:672, templates/account/billing.php:21
|
1362 |
msgctxt "verb"
|
1363 |
msgid "Edit"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
+
#: templates/account.php:676, templates/forms/user-change.php:27
|
1367 |
msgid "Change User"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
+
#: templates/account.php:700
|
1371 |
msgid "Sites"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
+
#: templates/account.php:713
|
1375 |
msgid "Search by address"
|
1376 |
msgstr ""
|
1377 |
|
1378 |
+
#: templates/account.php:722, templates/debug.php:366
|
1379 |
msgid "Address"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
+
#: templates/account.php:723
|
1383 |
msgid "License"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
+
#: templates/account.php:724
|
1387 |
msgid "Plan"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
+
#: templates/account.php:757
|
1391 |
msgctxt "as software license"
|
1392 |
msgid "License"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
+
#: templates/account.php:886
|
1396 |
msgctxt "verb"
|
1397 |
msgid "Hide"
|
1398 |
msgstr ""
|
1399 |
|
1400 |
+
#: templates/account.php:908, templates/forms/data-debug-mode.php:31
|
1401 |
msgid "Processing"
|
1402 |
msgstr ""
|
1403 |
|
1404 |
+
#: templates/account.php:911
|
1405 |
msgid "Get updates for bleeding edge Beta versions of %s."
|
1406 |
msgstr ""
|
1407 |
|
1408 |
+
#: templates/account.php:969
|
1409 |
msgid "Cancelling %s"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
+
#: templates/account.php:969, templates/account.php:986, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:133
|
1413 |
msgid "trial"
|
1414 |
msgstr ""
|
1415 |
|
1416 |
+
#: templates/account.php:984, templates/forms/deactivation/form.php:150
|
1417 |
msgid "Cancelling %s..."
|
1418 |
msgstr ""
|
1419 |
|
1420 |
+
#: templates/account.php:987, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:134
|
1421 |
msgid "subscription"
|
1422 |
msgstr ""
|
1423 |
|
1424 |
+
#: templates/account.php:1001
|
1425 |
msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
|
1426 |
msgstr ""
|
1427 |
|
1428 |
+
#: templates/account.php:1075
|
1429 |
msgid "Disabling white-label mode"
|
1430 |
msgstr ""
|
1431 |
|
1432 |
+
#: templates/account.php:1076
|
1433 |
msgid "Enabling white-label mode"
|
1434 |
msgstr ""
|
1435 |
|
1455 |
msgid "Installed"
|
1456 |
msgstr ""
|
1457 |
|
1458 |
+
#: templates/admin-notice.php:13, templates/forms/license-activation.php:222, templates/forms/resend-key.php:77
|
1459 |
msgctxt "as close a window"
|
1460 |
msgid "Dismiss"
|
1461 |
msgstr ""
|
1510 |
msgid "Agree & Activate License"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
+
#: templates/connect.php:184
|
1514 |
+
msgid "Welcome to %s! To get started, please enter your license key:"
|
1515 |
msgstr ""
|
1516 |
|
1517 |
+
#: templates/connect.php:191
|
1518 |
msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
|
1519 |
msgstr ""
|
1520 |
|
1521 |
+
#: templates/connect.php:192
|
1522 |
msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
1523 |
msgstr ""
|
1524 |
|
1525 |
+
#: templates/connect.php:198
|
1526 |
msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
1527 |
msgstr ""
|
1528 |
|
1529 |
+
#: templates/connect.php:199
|
1530 |
msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
|
1531 |
msgstr ""
|
1532 |
|
1533 |
+
#: templates/connect.php:233
|
1534 |
msgid "We're excited to introduce the Freemius network-level integration."
|
1535 |
msgstr ""
|
1536 |
|
1537 |
+
#: templates/connect.php:236
|
1538 |
msgid "During the update process we detected %d site(s) that are still pending license activation."
|
1539 |
msgstr ""
|
1540 |
|
1541 |
+
#: templates/connect.php:238
|
1542 |
msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
|
1543 |
msgstr ""
|
1544 |
|
1545 |
+
#: templates/connect.php:240
|
1546 |
msgid "%s's paid features"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
+
#: templates/connect.php:245
|
1550 |
msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
|
1551 |
msgstr ""
|
1552 |
|
1553 |
+
#: templates/connect.php:247
|
1554 |
msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
|
1555 |
msgstr ""
|
1556 |
|
1557 |
+
#: templates/connect.php:256, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:49
|
1558 |
msgid "License key"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
+
#: templates/connect.php:259, templates/forms/license-activation.php:22
|
1562 |
msgid "Can't find your license key?"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: templates/connect.php:318, templates/connect.php:700, templates/forms/deactivation/retry-skip.php:20
|
1566 |
msgctxt "verb"
|
1567 |
msgid "Skip"
|
1568 |
msgstr ""
|
1569 |
|
1570 |
+
#: templates/connect.php:321
|
1571 |
msgid "Delegate to Site Admins"
|
1572 |
msgstr ""
|
1573 |
|
1574 |
+
#: templates/connect.php:321
|
1575 |
msgid "If you click it, this decision will be delegated to the sites administrators."
|
1576 |
msgstr ""
|
1577 |
|
1578 |
+
#: templates/connect.php:346
|
1579 |
+
msgid "License issues?"
|
1580 |
+
msgstr ""
|
1581 |
+
|
1582 |
+
#: templates/connect.php:362
|
1583 |
msgid "Your Profile Overview"
|
1584 |
msgstr ""
|
1585 |
|
1586 |
+
#: templates/connect.php:363
|
1587 |
msgid "Name and email address"
|
1588 |
msgstr ""
|
1589 |
|
1590 |
+
#: templates/connect.php:370
|
1591 |
+
msgid "So you can manage and control your license remotely from the User Dashboard."
|
1592 |
+
msgstr ""
|
1593 |
+
|
1594 |
+
#: templates/connect.php:371
|
1595 |
msgid "Your Site Overview"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
+
#: templates/connect.php:372
|
1599 |
msgid "Site URL, WP version, PHP info"
|
1600 |
msgstr ""
|
1601 |
|
1603 |
msgid "Admin Notices"
|
1604 |
msgstr ""
|
1605 |
|
1606 |
+
#: templates/connect.php:380, templates/connect.php:398
|
1607 |
msgid "Updates, announcements, marketing, no spam"
|
1608 |
msgstr ""
|
1609 |
|
1610 |
+
#: templates/connect.php:387
|
1611 |
+
msgid "So you can reuse the license when the %s is no longer active."
|
1612 |
+
msgstr ""
|
1613 |
+
|
1614 |
+
#: templates/connect.php:388
|
1615 |
+
msgid "Current %s Status"
|
1616 |
msgstr ""
|
1617 |
|
1618 |
+
#: templates/connect.php:389
|
1619 |
+
msgid "Active, deactivated, or uninstalled"
|
1620 |
msgstr ""
|
1621 |
|
1622 |
+
#: templates/connect.php:397
|
1623 |
msgid "Newsletter"
|
1624 |
msgstr ""
|
1625 |
|
1626 |
+
#: templates/connect.php:405
|
1627 |
msgid "Plugins & Themes"
|
1628 |
msgstr ""
|
1629 |
|
1630 |
+
#: templates/connect.php:405
|
1631 |
+
msgid "optional"
|
1632 |
+
msgstr ""
|
1633 |
+
|
1634 |
+
#: templates/connect.php:406
|
1635 |
+
msgid "To help us troubleshoot any potential issues that may arise from other plugin or theme conflicts."
|
1636 |
+
msgstr ""
|
1637 |
+
|
1638 |
+
#: templates/connect.php:407
|
1639 |
msgid "Title, slug, version, and is active"
|
1640 |
msgstr ""
|
1641 |
|
1642 |
+
#: templates/connect.php:424
|
1643 |
+
msgid "The %1$s will periodically send %2$s to %3$s for security & feature updates delivery, and license management."
|
1644 |
msgstr ""
|
1645 |
|
1646 |
#: templates/connect.php:426
|
1647 |
+
msgid "diagnostic data"
|
1648 |
+
msgstr ""
|
1649 |
+
|
1650 |
+
#: templates/connect.php:427
|
1651 |
+
msgid "Freemius is our licensing and software updates engine"
|
1652 |
+
msgstr ""
|
1653 |
+
|
1654 |
+
#: templates/connect.php:430
|
1655 |
msgid "What permissions are being granted?"
|
1656 |
msgstr ""
|
1657 |
|
1658 |
+
#: templates/connect.php:457
|
1659 |
msgid "Don't have a license key?"
|
1660 |
msgstr ""
|
1661 |
|
1662 |
+
#: templates/connect.php:460
|
1663 |
msgid "Have a license key?"
|
1664 |
msgstr ""
|
1665 |
|
1666 |
+
#: templates/connect.php:468
|
1667 |
msgid "Privacy Policy"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
+
#: templates/connect.php:470
|
1671 |
msgid "License Agreement"
|
1672 |
msgstr ""
|
1673 |
|
1674 |
+
#: templates/connect.php:470
|
1675 |
msgid "Terms of Service"
|
1676 |
msgstr ""
|
1677 |
|
1678 |
+
#: templates/connect.php:866
|
1679 |
msgctxt "as in the process of sending an email"
|
1680 |
msgid "Sending email"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
+
#: templates/connect.php:867
|
1684 |
msgctxt "as activating plugin"
|
1685 |
msgid "Activating"
|
1686 |
msgstr ""
|
2269 |
msgid "Update License"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
+
#: templates/forms/license-activation.php:41
|
2273 |
+
msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
|
2274 |
+
msgstr ""
|
2275 |
+
|
2276 |
+
#: templates/forms/license-activation.php:183
|
2277 |
msgid "Associate with the license owner's account."
|
2278 |
msgstr ""
|
2279 |
|
freemius/start.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
-
$this_sdk_version = '2.4.
|
19 |
|
20 |
#region SDK Selection Logic --------------------------------------------------------------------
|
21 |
|
@@ -512,7 +512,7 @@
|
|
512 |
}
|
513 |
|
514 |
/**
|
515 |
-
* @param array <string,string> $module Plugin or Theme details.
|
516 |
*
|
517 |
* @return Freemius
|
518 |
* @throws Freemius_Exception
|
@@ -527,4 +527,4 @@
|
|
527 |
function fs_dump_log() {
|
528 |
FS_Logger::dump();
|
529 |
}
|
530 |
-
}
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
+
$this_sdk_version = '2.4.2';
|
19 |
|
20 |
#region SDK Selection Logic --------------------------------------------------------------------
|
21 |
|
512 |
}
|
513 |
|
514 |
/**
|
515 |
+
* @param array <string,string|bool|array> $module Plugin or Theme details.
|
516 |
*
|
517 |
* @return Freemius
|
518 |
* @throws Freemius_Exception
|
527 |
function fs_dump_log() {
|
528 |
FS_Logger::dump();
|
529 |
}
|
530 |
+
}
|
freemius/templates/account.php
CHANGED
@@ -21,7 +21,9 @@
|
|
21 |
/**
|
22 |
* @var FS_Plugin_Tag $update
|
23 |
*/
|
24 |
-
$update = $fs->
|
|
|
|
|
25 |
|
26 |
if ( is_object($update) ) {
|
27 |
/**
|
@@ -433,11 +435,11 @@
|
|
433 |
'value' => $fs->get_plugin_version()
|
434 |
);
|
435 |
|
436 |
-
if ( $is_premium && ! $is_whitelabeled ) {
|
437 |
$profile[] = array(
|
438 |
'id' => 'beta_program',
|
439 |
'title' => '',
|
440 |
-
'value' => $
|
441 |
);
|
442 |
}
|
443 |
|
21 |
/**
|
22 |
* @var FS_Plugin_Tag $update
|
23 |
*/
|
24 |
+
$update = $fs->has_release_on_freemius() ?
|
25 |
+
$fs->get_update( false, false, WP_FS__TIME_24_HOURS_IN_SEC / 24 ) :
|
26 |
+
null;
|
27 |
|
28 |
if ( is_object($update) ) {
|
29 |
/**
|
435 |
'value' => $fs->get_plugin_version()
|
436 |
);
|
437 |
|
438 |
+
if ( ! fs_is_network_admin() && $is_premium && ! $is_whitelabeled ) {
|
439 |
$profile[] = array(
|
440 |
'id' => 'beta_program',
|
441 |
'title' => '',
|
442 |
+
'value' => $site->is_beta
|
443 |
);
|
444 |
}
|
445 |
|
freemius/templates/connect.php
CHANGED
@@ -181,12 +181,7 @@
|
|
181 |
|
182 |
$message = $fs->apply_filters(
|
183 |
'connect-message_on-premium',
|
184 |
-
|
185 |
-
'' :
|
186 |
-
/* translators: %s: name (e.g. Hey John,) */
|
187 |
-
$hey_x_text . '<br>'
|
188 |
-
) .
|
189 |
-
sprintf( fs_text_inline( 'Thanks for purchasing %s! To get started, please enter your license key:', 'thanks-for-purchasing', $slug ), '<b>' . $fs->get_plugin_name() . '</b>' ),
|
190 |
$first_name,
|
191 |
$fs->get_plugin_name()
|
192 |
);
|
@@ -347,6 +342,9 @@
|
|
347 |
} ?>><?php echo esc_html( $button_label ) ?></button>
|
348 |
</form>
|
349 |
<?php endif ?>
|
|
|
|
|
|
|
350 |
</div><?php
|
351 |
|
352 |
// Set core permission list items.
|
@@ -367,26 +365,30 @@
|
|
367 |
);
|
368 |
}
|
369 |
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
|
|
|
|
|
|
383 |
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
|
|
390 |
|
391 |
// Add newsletter permissions if enabled.
|
392 |
if ( $is_gdpr_required || $fs->is_permission_requested( 'newsletter' ) ) {
|
@@ -398,14 +400,15 @@
|
|
398 |
);
|
399 |
}
|
400 |
|
401 |
-
|
402 |
'icon-class' => 'dashicons dashicons-menu',
|
403 |
-
'label' => $fs->get_text_inline( 'Plugins & Themes', 'permissions-extensions' ),
|
|
|
404 |
'desc' => $fs->get_text_inline( 'Title, slug, version, and is active', 'permissions-extensions_desc' ),
|
405 |
'priority' => 25,
|
406 |
'optional' => true,
|
407 |
-
'default' => $fs->apply_filters( 'permission_extensions_default',
|
408 |
-
|
409 |
|
410 |
// Allow filtering of the permissions list.
|
411 |
$permissions = $fs->apply_filters( 'permission_list', $permissions );
|
@@ -417,13 +420,15 @@
|
|
417 |
<div class="fs-permissions">
|
418 |
<?php if ( $require_license_key ) : ?>
|
419 |
<p class="fs-license-sync-disclaimer"><?php
|
420 |
-
|
421 |
-
fs_esc_html_inline( 'The %1$s will
|
422 |
$fs->get_module_label( true ),
|
423 |
-
|
|
|
424 |
) ?></p>
|
425 |
-
<?php
|
426 |
<a class="fs-trigger" href="#" tabindex="1"><?php fs_esc_html_echo_inline( 'What permissions are being granted?', 'what-permissions', $slug ) ?></a>
|
|
|
427 |
<ul><?php
|
428 |
foreach ( $permissions as $id => $permission ) : ?>
|
429 |
<li id="fs-permission-<?php echo esc_attr( $id ); ?>"
|
@@ -436,7 +441,7 @@
|
|
436 |
<?php endif ?>
|
437 |
|
438 |
<div class="fs-permission-description">
|
439 |
-
<span
|
440 |
|
441 |
<p><?php echo esc_html( $permission['desc'] ); ?></p>
|
442 |
</div>
|
@@ -702,9 +707,16 @@
|
|
702 |
var ajaxOptin = ( requireLicenseKey || isNetworkActive );
|
703 |
|
704 |
$form.on('submit', function () {
|
705 |
-
|
706 |
-
|
707 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
708 |
|
709 |
/**
|
710 |
* @author Vova Feldman (@svovaf)
|
181 |
|
182 |
$message = $fs->apply_filters(
|
183 |
'connect-message_on-premium',
|
184 |
+
sprintf( fs_text_inline( 'Welcome to %s! To get started, please enter your license key:', 'thanks-for-purchasing', $slug ), '<b>' . $fs->get_plugin_name() . '</b>' ),
|
|
|
|
|
|
|
|
|
|
|
185 |
$first_name,
|
186 |
$fs->get_plugin_name()
|
187 |
);
|
342 |
} ?>><?php echo esc_html( $button_label ) ?></button>
|
343 |
</form>
|
344 |
<?php endif ?>
|
345 |
+
<?php if ( $require_license_key ) : ?>
|
346 |
+
<a id="license_issues_link" href="<?php echo $fs->apply_filters( 'known_license_issues_url', 'https://freemius.com/help/documentation/wordpress-sdk/license-activation-issues/' ) ?>" target="_blank"><?php fs_esc_html_echo_inline( 'License issues?', 'license-issues', $slug ) ?></a>
|
347 |
+
<?php endif ?>
|
348 |
</div><?php
|
349 |
|
350 |
// Set core permission list items.
|
365 |
);
|
366 |
}
|
367 |
|
368 |
+
$permissions['site'] = array(
|
369 |
+
'icon-class' => 'dashicons dashicons-admin-settings',
|
370 |
+
'tooltip' => ( $require_license_key ? sprintf( $fs->get_text_inline( 'So you can manage and control your license remotely from the User Dashboard.', 'permissions-site_tooltip' ), $fs->get_module_type() ) : '' ),
|
371 |
+
'label' => $fs->get_text_inline( 'Your Site Overview', 'permissions-site' ),
|
372 |
+
'desc' => $fs->get_text_inline( 'Site URL, WP version, PHP info', 'permissions-site_desc' ),
|
373 |
+
'priority' => 10,
|
374 |
+
);
|
375 |
+
|
376 |
+
if ( ! $require_license_key ) {
|
377 |
+
$permissions['notices'] = array(
|
378 |
+
'icon-class' => 'dashicons dashicons-testimonial',
|
379 |
+
'label' => $fs->get_text_inline( 'Admin Notices', 'permissions-admin-notices' ),
|
380 |
+
'desc' => $fs->get_text_inline( 'Updates, announcements, marketing, no spam', 'permissions-newsletter_desc' ),
|
381 |
+
'priority' => 13,
|
382 |
+
);
|
383 |
+
}
|
384 |
|
385 |
+
$permissions['events'] = array(
|
386 |
+
'icon-class' => 'dashicons dashicons-admin-' . ( $fs->is_plugin() ? 'plugins' : 'appearance' ),
|
387 |
+
'tooltip' => ( $require_license_key ? sprintf( $fs->get_text_inline( 'So you can reuse the license when the %s is no longer active.', 'permissions-events_tooltip' ), $fs->get_module_type() ) : '' ),
|
388 |
+
'label' => sprintf( $fs->get_text_inline( 'Current %s Status', 'permissions-events' ), ucfirst( $fs->get_module_type() ) ),
|
389 |
+
'desc' => $fs->get_text_inline( 'Active, deactivated, or uninstalled', 'permissions-events_desc' ),
|
390 |
+
'priority' => 20,
|
391 |
+
);
|
392 |
|
393 |
// Add newsletter permissions if enabled.
|
394 |
if ( $is_gdpr_required || $fs->is_permission_requested( 'newsletter' ) ) {
|
400 |
);
|
401 |
}
|
402 |
|
403 |
+
$permissions['extensions'] = array(
|
404 |
'icon-class' => 'dashicons dashicons-menu',
|
405 |
+
'label' => $fs->get_text_inline( 'Plugins & Themes', 'permissions-extensions' ) . ( $require_license_key ? ' (' . $fs->get_text_inline( 'optional' ) . ')' : '' ),
|
406 |
+
'tooltip' => $fs->get_text_inline( 'To help us troubleshoot any potential issues that may arise from other plugin or theme conflicts.', 'permissions-events_tooltip' ),
|
407 |
'desc' => $fs->get_text_inline( 'Title, slug, version, and is active', 'permissions-extensions_desc' ),
|
408 |
'priority' => 25,
|
409 |
'optional' => true,
|
410 |
+
'default' => $fs->apply_filters( 'permission_extensions_default', ! $require_license_key )
|
411 |
+
);
|
412 |
|
413 |
// Allow filtering of the permissions list.
|
414 |
$permissions = $fs->apply_filters( 'permission_list', $permissions );
|
420 |
<div class="fs-permissions">
|
421 |
<?php if ( $require_license_key ) : ?>
|
422 |
<p class="fs-license-sync-disclaimer"><?php
|
423 |
+
echo sprintf(
|
424 |
+
fs_esc_html_inline( 'The %1$s will periodically send %2$s to %3$s for security & feature updates delivery, and license management.', 'license-sync-disclaimer', $slug ),
|
425 |
$fs->get_module_label( true ),
|
426 |
+
sprintf('<a class="fs-trigger" href="#" tabindex="1">%s</a>', fs_esc_html_inline('diagnostic data', 'send-data')),
|
427 |
+
'<a class="fs-tooltip-trigger' . (is_rtl() ? ' rtl' : '') . '" href="' . $freemius_site_url . '" target="_blank" rel="noopener" tabindex="1">freemius.com <i class="dashicons dashicons-editor-help" style="text-decoration: none;"><span class="fs-tooltip" style="width: 170px">' . $fs->get_text_inline( 'Freemius is our licensing and software updates engine', 'permissions-extensions_desc' ) . '</span></i></a>'
|
428 |
) ?></p>
|
429 |
+
<?php else : ?>
|
430 |
<a class="fs-trigger" href="#" tabindex="1"><?php fs_esc_html_echo_inline( 'What permissions are being granted?', 'what-permissions', $slug ) ?></a>
|
431 |
+
<?php endif ?>
|
432 |
<ul><?php
|
433 |
foreach ( $permissions as $id => $permission ) : ?>
|
434 |
<li id="fs-permission-<?php echo esc_attr( $id ); ?>"
|
441 |
<?php endif ?>
|
442 |
|
443 |
<div class="fs-permission-description">
|
444 |
+
<span<?php if ( ! empty($permission['tooltip']) ) : ?> class="fs-tooltip-trigger"<?php endif ?>><?php echo esc_html( $permission['label'] ); ?><?php if ( ! empty($permission['tooltip']) ) : ?><i class="dashicons dashicons-editor-help"><span class="fs-tooltip" style="width: 200px"><?php echo $permission['tooltip'] ?></span></i><?php endif ?></span>
|
445 |
|
446 |
<p><?php echo esc_html( $permission['desc'] ); ?></p>
|
447 |
</div>
|
707 |
var ajaxOptin = ( requireLicenseKey || isNetworkActive );
|
708 |
|
709 |
$form.on('submit', function () {
|
710 |
+
var $extensionsPermission = $('#fs-permission-extensions .fs-switch'),
|
711 |
+
isExtensionsTrackingAllowed = ($extensionsPermission.length > 0) ?
|
712 |
+
$extensionsPermission.hasClass('fs-on') :
|
713 |
+
null;
|
714 |
+
|
715 |
+
if (null === isExtensionsTrackingAllowed) {
|
716 |
+
$('input[name=is_extensions_tracking_allowed]').remove();
|
717 |
+
} else {
|
718 |
+
$('input[name=is_extensions_tracking_allowed]').val(isExtensionsTrackingAllowed ? 1 : 0);
|
719 |
+
}
|
720 |
|
721 |
/**
|
722 |
* @author Vova Feldman (@svovaf)
|
freemius/templates/forms/license-activation.php
CHANGED
@@ -115,13 +115,15 @@ HTML;
|
|
115 |
* @var FS_Plugin_License $license
|
116 |
*/
|
117 |
foreach ( $available_licenses as $license ) {
|
|
|
|
|
118 |
$label = sprintf(
|
119 |
"%s-Site %s License - %s",
|
120 |
( 1 == $license->quota ?
|
121 |
'Single' :
|
122 |
( $license->is_unlimited() ? 'Unlimited' : $license->quota )
|
123 |
),
|
124 |
-
|
125 |
$license->get_html_escaped_masked_secret_key()
|
126 |
);
|
127 |
|
115 |
* @var FS_Plugin_License $license
|
116 |
*/
|
117 |
foreach ( $available_licenses as $license ) {
|
118 |
+
$plan = $fs->_get_plan_by_id( $license->plan_id );
|
119 |
+
|
120 |
$label = sprintf(
|
121 |
"%s-Site %s License - %s",
|
122 |
( 1 == $license->quota ?
|
123 |
'Single' :
|
124 |
( $license->is_unlimited() ? 'Unlimited' : $license->quota )
|
125 |
),
|
126 |
+
( is_object( $plan ) ? $plan->title : '' ),
|
127 |
$license->get_html_escaped_masked_secret_key()
|
128 |
);
|
129 |
|
includes/class-wp-mobile-menu-core.php
CHANGED
@@ -556,7 +556,7 @@ class WP_Mobile_Menu_Core
|
|
556 |
$current_menu = '';
|
557 |
}
|
558 |
|
559 |
-
if ( has_nav_menu( $menu . '-wp-mobile-menu' ) ) {
|
560 |
$current_menu = $menu . '-wp-mobile-menu';
|
561 |
$menu_param = 'theme_location';
|
562 |
} else {
|
@@ -667,7 +667,7 @@ class WP_Mobile_Menu_Core
|
|
667 |
}
|
668 |
|
669 |
/**
|
670 |
-
* Load the
|
671 |
*/
|
672 |
public function find_elements_mobmenu()
|
673 |
{
|
556 |
$current_menu = '';
|
557 |
}
|
558 |
|
559 |
+
if ( has_nav_menu( $menu . '-wp-mobile-menu' ) && $current_menu === '' ) {
|
560 |
$current_menu = $menu . '-wp-mobile-menu';
|
561 |
$menu_param = 'theme_location';
|
562 |
} else {
|
667 |
}
|
668 |
|
669 |
/**
|
670 |
+
* Load the Finde elements tool.
|
671 |
*/
|
672 |
public function find_elements_mobmenu()
|
673 |
{
|
includes/class-wp-mobile-menu-options.php
CHANGED
@@ -44,23 +44,6 @@ class WP_Mobile_Menu_Options
|
|
44 |
add_action( 'tf_create_options', array( $this, 'create_plugin_options' ) );
|
45 |
}
|
46 |
|
47 |
-
private function scan_alert()
|
48 |
-
{
|
49 |
-
// For sample purposes, we set this to 1. But typically, you should have another
|
50 |
-
// area in your plugin that increments this number to display a notification on the menu.
|
51 |
-
$num_notifications = 0;
|
52 |
-
// Do all processment to find issues and create alerts
|
53 |
-
if ( $num_notifications > 0 ) {
|
54 |
-
return sprintf(
|
55 |
-
'<span class="update-plugins count-%s"><span class="plugin-count" aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></span>',
|
56 |
-
$num_notifications,
|
57 |
-
$num_notifications,
|
58 |
-
sprintf( _n( '%s notification', '%s notifications', $num_notifications ), $num_notifications )
|
59 |
-
);
|
60 |
-
}
|
61 |
-
return '';
|
62 |
-
}
|
63 |
-
|
64 |
/**
|
65 |
*
|
66 |
* Create Plugin options.
|
@@ -70,6 +53,7 @@ class WP_Mobile_Menu_Options
|
|
70 |
public function create_plugin_options()
|
71 |
{
|
72 |
global $mm_fs ;
|
|
|
73 |
$prefix = '';
|
74 |
$menus = get_terms( 'nav_menu', array(
|
75 |
'hide_empty' => true,
|
@@ -106,95 +90,51 @@ class WP_Mobile_Menu_Options
|
|
106 |
'search' => 'Search',
|
107 |
'left-menu' => 'Left Menu',
|
108 |
);
|
|
|
109 |
// Create my admin options panel.
|
110 |
$panel = $titan->createAdminPanel( array(
|
111 |
'name' => 'Mobile Menu Options',
|
112 |
-
'title' => __(
|
113 |
'icon' => 'dashicons-smartphone',
|
114 |
) );
|
115 |
-
// Premium options.
|
116 |
-
// Create options in My Meta Box.
|
117 |
-
$mobmenu_metabox = $titan->createMetaBox( array(
|
118 |
-
'name' => __( 'WP Mobile Menu Meta options', 'mobile-menu' ),
|
119 |
-
'post_type' => array( 'page', 'post' ),
|
120 |
-
) );
|
121 |
-
global $mm_fs ;
|
122 |
-
// Create WP Mobile Menu Meta Box options.
|
123 |
-
$custom_html = '<style>.dashicons-yes {color:#008000;font-size: 3em;padding-right: 20px;margin-top: -10px;}';
|
124 |
-
$custom_html .= '.mm-button-business-upgrade {margin-top: 20px!important;background-color: #FF015C!important;border-color: #fff;color: #fff!important;margin: 20px 10px 20px 10px;text-transform: uppercase;min-height: 35px;padding-top: 5px;border-radius: 6px;}';
|
125 |
-
$custom_html .= '</style><p>The features below are available in the Premium versions of WP Mobile Menu.</p>';
|
126 |
-
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>' . __( 'Alternative Left Menu', 'mobile-menu' ) . '</strong></p>';
|
127 |
-
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>' . __( 'Alternative Right Menu', 'mobile-menu' ) . '</strong></p>';
|
128 |
-
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>' . __( 'Alternative Footer Menu', 'mobile-menu' ) . '</strong></p>';
|
129 |
-
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>' . __( 'Use page title', 'mobile-menu' ) . '</strong></p>';
|
130 |
-
$custom_html .= '<p><a href="' . $mm_fs->get_upgrade_url() . '&cta=metabox-settings" class="button mm-button-business-upgrade">' . __( 'Upgrade Now!', 'mobile-menu' ) . '</a></p>';
|
131 |
-
$custom_html .= '</div></div>';
|
132 |
-
// Page Metabox Upgrade Content.
|
133 |
-
$mobmenu_metabox->createOption( array(
|
134 |
-
'name' => '',
|
135 |
-
'type' => 'custom',
|
136 |
-
'custom' => $custom_html,
|
137 |
-
) );
|
138 |
// Only proceed if we are in the plugin page.
|
139 |
|
140 |
if ( !is_admin() || isset( $_GET['page'] ) && 'mobile-menu-options' === sanitize_text_field( $_GET['page'] ) ) {
|
141 |
// Create General Options panel.
|
142 |
-
$
|
143 |
'name' => __( 'General Options', 'mobile-menu' ),
|
144 |
) );
|
145 |
-
|
146 |
-
$header_tab = $panel->createTab( array(
|
147 |
'name' => __( 'Header', 'mobile-menu' ),
|
148 |
) );
|
149 |
-
$
|
150 |
-
|
151 |
-
|
|
|
152 |
'name' => __( 'Left Menu', 'mobile-menu' ),
|
153 |
) );
|
154 |
-
|
155 |
-
$right_menu_tab = $panel->createTab( array(
|
156 |
'name' => __( 'Right Menu', 'mobile-menu' ),
|
157 |
) );
|
158 |
-
|
159 |
-
|
160 |
-
// Create Color Options panel.
|
161 |
-
$colors_tab = $panel->createTab( array(
|
162 |
-
'name' => __( 'Colors', 'mobile-menu' ),
|
163 |
-
) );
|
164 |
-
// Create Fonts panel.
|
165 |
-
$fonts_tab = $panel->createTab( array(
|
166 |
-
'name' => __( 'Fonts', 'mobile-menu' ),
|
167 |
-
) );
|
168 |
-
// Create Documentation panel.
|
169 |
-
$documentation_tab = $panel->createTab( array(
|
170 |
-
'name' => __( 'Documentation', 'mobile-menu' ),
|
171 |
-
) );
|
172 |
-
// Check if it's HTTPS.
|
173 |
-
|
174 |
-
if ( is_ssl() ) {
|
175 |
-
$doc_url = 'https://wpmobilemenu.com/documentation-iframe/';
|
176 |
-
} else {
|
177 |
-
$doc_url = 'http://wpmobilemenu.com/documentation-iframe/';
|
178 |
-
}
|
179 |
-
|
180 |
-
// Documentation IFrame.
|
181 |
-
$documentation_tab->createOption( array(
|
182 |
-
'type' => 'iframe',
|
183 |
-
'url' => $doc_url,
|
184 |
) );
|
185 |
-
$general_tab->
|
186 |
-
'name' => __( '
|
187 |
-
'type' => 'heading',
|
188 |
) );
|
|
|
|
|
|
|
|
|
189 |
// Enable/Disable Left Header Menu.
|
190 |
$general_tab->createOption( array(
|
191 |
'name' => __( 'Enable Left Menu', 'mobile-menu' ),
|
192 |
'id' => 'enable_left_menu',
|
193 |
'type' => 'enable',
|
194 |
'default' => true,
|
195 |
-
'
|
196 |
-
'
|
197 |
-
'
|
198 |
) );
|
199 |
// Left Menu.
|
200 |
$general_tab->createOption( array(
|
@@ -204,6 +144,7 @@ class WP_Mobile_Menu_Options
|
|
204 |
'desc' => __( 'Select the menu that will open in the left side.', 'mobile-menu' ),
|
205 |
'options' => $menus_options,
|
206 |
'default' => $titan->getOption( 'left_menu' ),
|
|
|
207 |
) );
|
208 |
// Enable/Disable Right Header Menu.
|
209 |
$general_tab->createOption( array(
|
@@ -211,9 +152,9 @@ class WP_Mobile_Menu_Options
|
|
211 |
'id' => 'enable_right_menu',
|
212 |
'type' => 'enable',
|
213 |
'default' => false,
|
214 |
-
'
|
215 |
-
'
|
216 |
-
'
|
217 |
) );
|
218 |
// Right Menu.
|
219 |
$general_tab->createOption( array(
|
@@ -223,10 +164,7 @@ class WP_Mobile_Menu_Options
|
|
223 |
'desc' => __( 'Select the menu that will open in the right side.', 'mobile-menu' ),
|
224 |
'options' => $menus_options,
|
225 |
'default' => $titan->getOption( 'right_menu' ),
|
226 |
-
|
227 |
-
$general_tab->createOption( array(
|
228 |
-
'name' => __( 'Visibility Options', 'mobile-menu' ),
|
229 |
-
'type' => 'heading',
|
230 |
) );
|
231 |
// Width trigger.
|
232 |
$general_tab->createOption( array(
|
@@ -238,10 +176,12 @@ class WP_Mobile_Menu_Options
|
|
238 |
'max' => '5000',
|
239 |
'min' => '479',
|
240 |
'unit' => 'px',
|
|
|
241 |
) );
|
242 |
$general_tab->createOption( array(
|
243 |
-
'type'
|
244 |
-
'desc'
|
|
|
245 |
) );
|
246 |
// Enable/Disable only in Mobile Devices.
|
247 |
$general_tab->createOption( array(
|
@@ -252,6 +192,7 @@ class WP_Mobile_Menu_Options
|
|
252 |
'desc' => __( 'Enable only in Mobiles devices. This will disable the Mobile Menu Visibilty option above (using resolution width trigger).', 'mobile-menu' ),
|
253 |
'enabled' => __( 'On', 'mobile-menu' ),
|
254 |
'disabled' => __( 'Off', 'mobile-menu' ),
|
|
|
255 |
) );
|
256 |
// Enable/Disable Testing Mode.
|
257 |
$general_tab->createOption( array(
|
@@ -262,10 +203,7 @@ class WP_Mobile_Menu_Options
|
|
262 |
'desc' => __( 'Enable only for admin users. This will disable the Mobile Menu for all the visitors of your site except the administrator users.', 'mobile-menu' ),
|
263 |
'enabled' => __( 'On', 'mobile-menu' ),
|
264 |
'disabled' => __( 'Off', 'mobile-menu' ),
|
265 |
-
|
266 |
-
$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(
|
@@ -273,11 +211,13 @@ class WP_Mobile_Menu_Options
|
|
273 |
'id' => 'hide_elements',
|
274 |
'type' => 'text',
|
275 |
'default' => '',
|
276 |
-
'desc' => __( '
|
|
|
277 |
) );
|
278 |
$general_tab->createOption( array(
|
279 |
-
'type'
|
280 |
-
'desc'
|
|
|
281 |
) );
|
282 |
$general_tab->createOption( array(
|
283 |
'name' => __( 'Hide elements by default', 'mobile-menu' ),
|
@@ -322,10 +262,7 @@ class WP_Mobile_Menu_Options
|
|
322 |
'16',
|
323 |
'17'
|
324 |
),
|
325 |
-
|
326 |
-
$general_tab->createOption( array(
|
327 |
-
'name' => __( 'Miscelaneous Options', 'mobile-menu' ),
|
328 |
-
'type' => 'heading',
|
329 |
) );
|
330 |
// Menu Display Type.
|
331 |
$general_tab->createOption( array(
|
@@ -335,6 +272,7 @@ class WP_Mobile_Menu_Options
|
|
335 |
'desc' => __( 'Choose the display type for the mobile menu.', 'mobile-menu' ),
|
336 |
'options' => $display_type,
|
337 |
'default' => 'slideout-over',
|
|
|
338 |
) );
|
339 |
// Automatically Close Sub Menus.
|
340 |
$general_tab->createOption( array(
|
@@ -345,6 +283,7 @@ class WP_Mobile_Menu_Options
|
|
345 |
'default' => false,
|
346 |
'enabled' => __( 'On', 'mobile-menu' ),
|
347 |
'disabled' => __( 'Off', 'mobile-menu' ),
|
|
|
348 |
) );
|
349 |
// Menu Border Style.
|
350 |
$general_tab->createOption( array(
|
@@ -356,6 +295,7 @@ class WP_Mobile_Menu_Options
|
|
356 |
'max' => '5',
|
357 |
'min' => '0',
|
358 |
'unit' => 'px',
|
|
|
359 |
) );
|
360 |
// Close Menu Icon Font.
|
361 |
$general_tab->createOption( array(
|
@@ -364,6 +304,7 @@ class WP_Mobile_Menu_Options
|
|
364 |
'type' => 'text',
|
365 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
366 |
'default' => 'cancel-1',
|
|
|
367 |
) );
|
368 |
// Close Menu Icon Font Size.
|
369 |
$general_tab->createOption( array(
|
@@ -375,6 +316,7 @@ class WP_Mobile_Menu_Options
|
|
375 |
'max' => '100',
|
376 |
'min' => '5',
|
377 |
'unit' => 'px',
|
|
|
378 |
) );
|
379 |
// Submenu Open Icon Font.
|
380 |
$general_tab->createOption( array(
|
@@ -383,6 +325,7 @@ class WP_Mobile_Menu_Options
|
|
383 |
'type' => 'text',
|
384 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
385 |
'default' => 'down-open',
|
|
|
386 |
) );
|
387 |
// Submenu Close Icon Font.
|
388 |
$general_tab->createOption( array(
|
@@ -391,6 +334,7 @@ class WP_Mobile_Menu_Options
|
|
391 |
'type' => 'text',
|
392 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
393 |
'default' => 'up-open',
|
|
|
394 |
) );
|
395 |
// Submenu Icon Font Size.
|
396 |
$general_tab->createOption( array(
|
@@ -402,10 +346,7 @@ class WP_Mobile_Menu_Options
|
|
402 |
'max' => '100',
|
403 |
'min' => '0',
|
404 |
'unit' => 'px',
|
405 |
-
|
406 |
-
$general_tab->createOption( array(
|
407 |
-
'name' => __( 'Advanced Options', 'mobile-menu' ),
|
408 |
-
'type' => 'heading',
|
409 |
) );
|
410 |
// Automatically Close Sub Menus.
|
411 |
$general_tab->createOption( array(
|
@@ -416,6 +357,7 @@ class WP_Mobile_Menu_Options
|
|
416 |
'default' => false,
|
417 |
'enabled' => __( 'On', 'mobile-menu' ),
|
418 |
'disabled' => __( 'Off', 'mobile-menu' ),
|
|
|
419 |
) );
|
420 |
// Sticky Html Elements.
|
421 |
$general_tab->createOption( array(
|
@@ -424,46 +366,42 @@ class WP_Mobile_Menu_Options
|
|
424 |
'type' => 'text',
|
425 |
'default' => '',
|
426 |
'desc' => __( '<p>If you are having issues with sticky elements that dont assume a sticky behaviour, enter the ids or class name that identify that element.</p>', 'mobile-menu' ),
|
|
|
427 |
) );
|
428 |
// Custom css.
|
429 |
$general_tab->createOption( array(
|
430 |
-
'name'
|
431 |
-
'id'
|
432 |
-
'type'
|
433 |
-
'desc'
|
434 |
-
'lang'
|
|
|
435 |
) );
|
436 |
// Custom js.
|
437 |
$general_tab->createOption( array(
|
438 |
-
'name'
|
439 |
-
'id'
|
440 |
-
'type'
|
441 |
-
'desc'
|
442 |
-
'lang'
|
443 |
-
|
444 |
-
$general_tab->createOption( array(
|
445 |
-
'name' => __( 'Import and Export', 'mobile-menu' ),
|
446 |
-
'type' => 'heading',
|
447 |
) );
|
448 |
// Export settings.
|
449 |
$general_tab->createOption( array(
|
450 |
'name' => __( 'Export Settings', 'mobile-menu' ),
|
451 |
'type' => 'custom',
|
452 |
'custom' => '<button class="button button-secondary export-mobile-menu-settings">' . __( 'Export', 'mobile-menu' ) . '</button>',
|
|
|
453 |
) );
|
454 |
// Import settings.
|
455 |
$general_tab->createOption( array(
|
456 |
'name' => __( 'Import Settings', 'mobile-menu' ),
|
457 |
'type' => 'custom',
|
458 |
'custom' => '<button class="button button-secondary import-mobile-menu-settings">' . __( 'Import', 'mobile-menu' ) . '</button>',
|
459 |
-
|
460 |
-
// Header Main Options.
|
461 |
-
$header_tab->createOption( array(
|
462 |
-
'name' => __( 'Main options', 'mobile-menu' ),
|
463 |
-
'type' => 'heading',
|
464 |
) );
|
465 |
// Enable/Disable Sticky Header.
|
466 |
-
$
|
467 |
'name' => __( 'Sticky Header', 'mobile-menu' ),
|
468 |
'id' => 'enabled_sticky_header',
|
469 |
'type' => 'enable',
|
@@ -471,9 +409,10 @@ class WP_Mobile_Menu_Options
|
|
471 |
'desc' => __( 'Choose if you want to have the Header Fixed or scrolling with the content.', 'mobile-menu' ),
|
472 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
473 |
'disabled' => __( 'No', 'mobile-menu' ),
|
|
|
474 |
) );
|
475 |
// Enable/Disable Naked Header.
|
476 |
-
$
|
477 |
'name' => __( 'Naked Header', 'mobile-menu' ),
|
478 |
'id' => 'enabled_naked_header',
|
479 |
'type' => 'enable',
|
@@ -481,9 +420,10 @@ class WP_Mobile_Menu_Options
|
|
481 |
'desc' => __( 'Choose if you want to display a naked header with no background color(transparent).', 'mobile-menu' ),
|
482 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
483 |
'disabled' => __( 'No', 'mobile-menu' ),
|
|
|
484 |
) );
|
485 |
// Enable/Disable Logo Url.
|
486 |
-
$
|
487 |
'name' => __( 'Disable Logo/Text', 'mobile-menu' ),
|
488 |
'id' => 'disabled_logo_text',
|
489 |
'type' => 'enable',
|
@@ -491,13 +431,10 @@ class WP_Mobile_Menu_Options
|
|
491 |
'desc' => __( 'Choose if you want to disable the logo/text so it will only display the menu icons in the header.', 'mobile-menu' ),
|
492 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
493 |
'disabled' => __( 'No', 'mobile-menu' ),
|
494 |
-
|
495 |
-
$header_tab->createOption( array(
|
496 |
-
'name' => __( 'Header options', 'mobile-menu' ),
|
497 |
-
'type' => 'heading',
|
498 |
) );
|
499 |
// Header Shadow.
|
500 |
-
$
|
501 |
'name' => __( 'Header Shadow.', 'mobile-menu' ),
|
502 |
'id' => 'header_shadow',
|
503 |
'type' => 'enable',
|
@@ -505,9 +442,10 @@ class WP_Mobile_Menu_Options
|
|
505 |
'desc' => __( 'Choose if you want to enable the header shadow at the bottom of the header.', 'mobile-menu' ),
|
506 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
507 |
'disabled' => __( 'No', 'mobile-menu' ),
|
|
|
508 |
) );
|
509 |
// Header Height.
|
510 |
-
$
|
511 |
'name' => __( 'Header Height', 'mobile-menu' ),
|
512 |
'id' => 'header_height',
|
513 |
'type' => 'number',
|
@@ -516,17 +454,19 @@ class WP_Mobile_Menu_Options
|
|
516 |
'max' => '500',
|
517 |
'min' => '20',
|
518 |
'unit' => 'px',
|
|
|
519 |
) );
|
520 |
// Header Text.
|
521 |
-
$
|
522 |
'name' => __( 'Header Text', 'mobile-menu' ),
|
523 |
'id' => 'header_text',
|
524 |
'type' => 'text',
|
525 |
'desc' => __( 'Enter the desired text for the Mobile Header. If not specified it will use the site title.', 'mobile-menu' ),
|
526 |
'default' => '',
|
|
|
527 |
) );
|
528 |
// Header Text Font Size.
|
529 |
-
$
|
530 |
'name' => __( 'Header Text Font Size', 'mobile-menu' ),
|
531 |
'id' => 'header_font_size',
|
532 |
'type' => 'number',
|
@@ -535,9 +475,10 @@ class WP_Mobile_Menu_Options
|
|
535 |
'max' => '100',
|
536 |
'min' => '5',
|
537 |
'unit' => 'px',
|
|
|
538 |
) );
|
539 |
// Header Logo/Text Alignment.
|
540 |
-
$
|
541 |
'name' => 'Header Logo/Text Alignment',
|
542 |
'id' => 'header_text_align',
|
543 |
'type' => 'select',
|
@@ -548,9 +489,10 @@ class WP_Mobile_Menu_Options
|
|
548 |
'right' => __( 'Right', 'mobile-menu' ),
|
549 |
),
|
550 |
'default' => 'center',
|
|
|
551 |
) );
|
552 |
// Header Logo/Text Left Margin.
|
553 |
-
$
|
554 |
'name' => __( 'Header Logo/Text Left Margin', 'mobile-menu' ),
|
555 |
'id' => 'header_text_left_margin',
|
556 |
'type' => 'number',
|
@@ -559,9 +501,10 @@ class WP_Mobile_Menu_Options
|
|
559 |
'max' => '200',
|
560 |
'min' => '0',
|
561 |
'unit' => 'px',
|
|
|
562 |
) );
|
563 |
// Header Logo/Text Right Margin.
|
564 |
-
$
|
565 |
'name' => __( 'Header Logo/Text Right Margin', 'mobile-menu' ),
|
566 |
'id' => 'header_text_right_margin',
|
567 |
'type' => 'number',
|
@@ -570,20 +513,7 @@ class WP_Mobile_Menu_Options
|
|
570 |
'max' => '200',
|
571 |
'min' => '0',
|
572 |
'unit' => 'px',
|
573 |
-
|
574 |
-
$header_tab->createOption( array(
|
575 |
-
'name' => __( 'Logo options', 'mobile-menu' ),
|
576 |
-
'type' => 'heading',
|
577 |
-
) );
|
578 |
-
// Enable/Disable Site Logo.
|
579 |
-
$header_tab->createOption( array(
|
580 |
-
'name' => __( 'Site Logo', 'mobile-menu' ),
|
581 |
-
'id' => 'enabled_logo',
|
582 |
-
'type' => 'enable',
|
583 |
-
'default' => false,
|
584 |
-
'desc' => __( 'Choose if you want to display an image has logo or text instead.', 'mobile-menu' ),
|
585 |
-
'enabled' => __( 'Logo', 'mobile-menu' ),
|
586 |
-
'disabled' => __( 'Text', 'mobile-menu' ),
|
587 |
) );
|
588 |
$header_branding = array(
|
589 |
'logo' => __( 'Logo', 'mobile-menu' ),
|
@@ -597,24 +527,26 @@ class WP_Mobile_Menu_Options
|
|
597 |
}
|
598 |
|
599 |
// Use the page title in the Header or Header Banner(global Option).
|
600 |
-
$
|
601 |
'name' => __( 'Site Logo', 'mobile-menu' ),
|
602 |
'id' => 'header_branding',
|
603 |
'type' => 'select',
|
604 |
'desc' => __( 'Chose the Header Branding ( Logo/Text ).', 'mobile-menu' ),
|
605 |
'options' => $header_branding,
|
606 |
'default' => $default_header_branding,
|
|
|
607 |
) );
|
608 |
// Site Logo Image.
|
609 |
-
$
|
610 |
'name' => __( 'Logo', 'mobile-menu' ),
|
611 |
'id' => 'logo_img',
|
612 |
'type' => 'upload',
|
613 |
'desc' => __( 'Upload your logo image', 'mobile-menu' ),
|
614 |
'default' => '',
|
|
|
615 |
) );
|
616 |
// Header Height.
|
617 |
-
$
|
618 |
'name' => __( 'Logo Height', 'mobile-menu' ),
|
619 |
'id' => 'logo_height',
|
620 |
'type' => 'number',
|
@@ -623,17 +555,19 @@ class WP_Mobile_Menu_Options
|
|
623 |
'max' => '500',
|
624 |
'min' => '0',
|
625 |
'unit' => 'px',
|
|
|
626 |
) );
|
627 |
// Site Logo Retina Image.
|
628 |
-
$
|
629 |
'name' => __( 'Retina Logo', 'mobile-menu' ),
|
630 |
'id' => 'logo_img_retina',
|
631 |
'type' => 'upload',
|
632 |
'desc' => __( 'Upload your logo image for retina devices', 'mobile-menu' ),
|
633 |
'default' => '',
|
|
|
634 |
) );
|
635 |
// Enable/Disable Logo Url.
|
636 |
-
$
|
637 |
'name' => __( 'Disable Logo URL ', 'mobile-menu' ),
|
638 |
'id' => 'disabled_logo_url',
|
639 |
'type' => 'enable',
|
@@ -641,17 +575,19 @@ class WP_Mobile_Menu_Options
|
|
641 |
'desc' => __( 'Choose if you want to disable the logo url to avoid being redirect to the homepage or alternative home url when touching the header logo.', 'mobile-menu' ),
|
642 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
643 |
'disabled' => __( 'No', 'mobile-menu' ),
|
|
|
644 |
) );
|
645 |
// Alternative Site URL.
|
646 |
-
$
|
647 |
'name' => __( 'Alternative Logo URL', 'mobile-menu' ),
|
648 |
'id' => 'logo_url',
|
649 |
'type' => 'text',
|
650 |
'desc' => __( 'Enter you alternative logo URL. If you leave it blank it will use the Site URL.', 'mobile-menu' ),
|
651 |
'default' => '',
|
|
|
652 |
) );
|
653 |
// Logo/text Top Margin.
|
654 |
-
$
|
655 |
'name' => __( 'Logo/Text Top Margin', 'mobile-menu' ),
|
656 |
'id' => 'logo_top_margin',
|
657 |
'type' => 'number',
|
@@ -660,6 +596,7 @@ class WP_Mobile_Menu_Options
|
|
660 |
'max' => '450',
|
661 |
'min' => '0',
|
662 |
'unit' => 'px',
|
|
|
663 |
) );
|
664 |
$def_value = $titan->getOption( 'header_font_size' );
|
665 |
|
@@ -669,7 +606,7 @@ class WP_Mobile_Menu_Options
|
|
669 |
$def_value = '';
|
670 |
}
|
671 |
|
672 |
-
$
|
673 |
'name' => __( 'Header Menu Font', 'mobile-menu' ),
|
674 |
'id' => 'header_menu_font',
|
675 |
'type' => 'font',
|
@@ -686,13 +623,10 @@ class WP_Mobile_Menu_Options
|
|
686 |
'font-family' => 'Dosis',
|
687 |
'font-size' => $def_value,
|
688 |
),
|
689 |
-
|
690 |
-
$left_menu_tab->createOption( array(
|
691 |
-
'name' => __( 'Menu Icon', 'mobile-menu' ),
|
692 |
-
'type' => 'heading',
|
693 |
) );
|
694 |
// Click Menu Parent link to open Sub menu.
|
695 |
-
$
|
696 |
'name' => __( 'Parent Link open submenu', 'mobile-menu' ),
|
697 |
'id' => 'left_menu_parent_link_submenu',
|
698 |
'type' => 'enable',
|
@@ -700,6 +634,7 @@ class WP_Mobile_Menu_Options
|
|
700 |
'desc' => __( 'Choose if you want to open the submenu by click in the Parent Menu item.', 'mobile-menu' ),
|
701 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
702 |
'disabled' => __( 'No', 'mobile-menu' ),
|
|
|
703 |
) );
|
704 |
|
705 |
if ( true === $titan->getOption( 'left_menu_icon_opt' ) ) {
|
@@ -709,24 +644,26 @@ class WP_Mobile_Menu_Options
|
|
709 |
}
|
710 |
|
711 |
// Icon Image/text Option.
|
712 |
-
$
|
713 |
'name' => __( 'Icon Type', 'mobile-menu' ),
|
714 |
'id' => 'left_menu_icon_new',
|
715 |
'type' => 'select',
|
716 |
'default' => $icon_type,
|
717 |
'desc' => __( 'Choose if you want to display an image, icon or an animated icon.', 'mobile-menu' ),
|
718 |
'options' => $icon_types,
|
|
|
719 |
) );
|
720 |
// Left Menu Icon Font.
|
721 |
-
$
|
722 |
'name' => __( 'Icon Font', 'mobile-menu' ),
|
723 |
'id' => 'left_menu_icon_font',
|
724 |
'type' => 'text',
|
725 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
726 |
'default' => 'menu',
|
|
|
727 |
) );
|
728 |
// Left Menu Icon Font Size.
|
729 |
-
$
|
730 |
'name' => __( 'Icon Font Size', 'mobile-menu' ),
|
731 |
'id' => 'left_icon_font_size',
|
732 |
'type' => 'number',
|
@@ -735,26 +672,29 @@ class WP_Mobile_Menu_Options
|
|
735 |
'max' => '100',
|
736 |
'min' => '0',
|
737 |
'unit' => 'px',
|
|
|
738 |
) );
|
739 |
// Left Menu Icon.
|
740 |
-
$
|
741 |
'name' => __( 'Icon Image', 'mobile-menu' ),
|
742 |
'id' => 'left_menu_icon',
|
743 |
'type' => 'upload',
|
744 |
'placeholder' => 'Click here to select the icon',
|
745 |
'desc' => __( 'Upload your left menu icon image', 'mobile-menu' ),
|
746 |
'default' => 'menu',
|
|
|
747 |
) );
|
748 |
// Text After Left Icon.
|
749 |
-
$
|
750 |
'name' => __( 'Text After Icon', 'mobile-menu' ),
|
751 |
'id' => 'left_menu_text',
|
752 |
'type' => 'text',
|
753 |
'desc' => __( 'Enter the text that will appear after the Icon.', 'mobile-menu' ),
|
754 |
'default' => '',
|
|
|
755 |
) );
|
756 |
// Text After Left Icon Font Options.
|
757 |
-
$
|
758 |
'name' => __( 'Text After Icon Font', 'mobile-menu' ),
|
759 |
'id' => 'text_after_left_icon_font',
|
760 |
'type' => 'font',
|
@@ -771,9 +711,10 @@ class WP_Mobile_Menu_Options
|
|
771 |
'line-height' => '1.5em',
|
772 |
'font-family' => 'Dosis',
|
773 |
),
|
|
|
774 |
) );
|
775 |
// Icon Action Option.
|
776 |
-
$
|
777 |
'name' => __( 'Icon Action', 'mobile-menu' ),
|
778 |
'id' => 'left_menu_icon_action',
|
779 |
'type' => 'enable',
|
@@ -781,17 +722,19 @@ class WP_Mobile_Menu_Options
|
|
781 |
'desc' => __( 'Open the Left Menu Panel or open a Link url.', 'mobile-menu' ),
|
782 |
'enabled' => __( 'Open Menu', 'mobile-menu' ),
|
783 |
'disabled' => __( 'Open Link Url', 'mobile-menu' ),
|
|
|
784 |
) );
|
785 |
// Icon URL.
|
786 |
-
$
|
787 |
'name' => __( 'Icon Link URL', 'mobile-menu' ),
|
788 |
'id' => 'left_icon_url',
|
789 |
'type' => 'text',
|
790 |
'desc' => __( 'Enter the Icon Link Url.', 'mobile-menu' ),
|
791 |
'default' => '',
|
|
|
792 |
) );
|
793 |
// Icon URL Target.
|
794 |
-
$
|
795 |
'name' => __( 'Icon Link Url Target', 'mobile-menu' ),
|
796 |
'id' => 'left_icon_url_target',
|
797 |
'type' => 'enable',
|
@@ -799,9 +742,10 @@ class WP_Mobile_Menu_Options
|
|
799 |
'desc' => __( 'Choose it the link will open in the same window or in the new window.', 'mobile-menu' ),
|
800 |
'enabled' => 'Self',
|
801 |
'disabled' => 'Blank',
|
|
|
802 |
) );
|
803 |
// Left Menu Icon Top Margin.
|
804 |
-
$
|
805 |
'name' => __( 'Icon Top Margin', 'mobile-menu' ),
|
806 |
'id' => 'left_icon_top_margin',
|
807 |
'type' => 'number',
|
@@ -810,9 +754,10 @@ class WP_Mobile_Menu_Options
|
|
810 |
'max' => '450',
|
811 |
'min' => '0',
|
812 |
'unit' => 'px',
|
|
|
813 |
) );
|
814 |
// Left Menu Icon Left Margin.
|
815 |
-
$
|
816 |
'name' => __( 'Icon Left Margin', 'mobile-menu' ),
|
817 |
'id' => 'left_icon_left_margin',
|
818 |
'type' => 'number',
|
@@ -821,20 +766,18 @@ class WP_Mobile_Menu_Options
|
|
821 |
'max' => '450',
|
822 |
'min' => '0',
|
823 |
'unit' => 'px',
|
824 |
-
|
825 |
-
$left_menu_tab->createOption( array(
|
826 |
-
'name' => __( 'Left Panel options', 'mobile-menu' ),
|
827 |
-
'type' => 'heading',
|
828 |
) );
|
829 |
// Left Menu Background Image.
|
830 |
-
$
|
831 |
-
'name'
|
832 |
-
'id'
|
833 |
-
'type'
|
834 |
-
'desc'
|
|
|
835 |
) );
|
836 |
// Left Menu Background Image Opacity.
|
837 |
-
$
|
838 |
'name' => __( 'Panel Background Image Opacity', 'mobile-menu' ),
|
839 |
'id' => 'left_menu_bg_opacity',
|
840 |
'type' => 'number',
|
@@ -844,9 +787,10 @@ class WP_Mobile_Menu_Options
|
|
844 |
'min' => '10',
|
845 |
'step' => '10',
|
846 |
'unit' => '%',
|
|
|
847 |
) );
|
848 |
// Left Menu Background Image Size.
|
849 |
-
$
|
850 |
'name' => __( 'Panel Background Image Size', 'mobile-menu' ),
|
851 |
'id' => 'left_menu_bg_image_size',
|
852 |
'type' => 'upload',
|
@@ -861,17 +805,19 @@ class WP_Mobile_Menu_Options
|
|
861 |
'unset' => __( 'Unset', 'mobile-menu' ),
|
862 |
),
|
863 |
'default' => 'cover',
|
|
|
864 |
) );
|
865 |
// Left Menu Gradient css.
|
866 |
-
$
|
867 |
'name' => __( 'Panel Background Gradient Css', 'mobile-menu' ),
|
868 |
'id' => 'left_menu_bg_gradient',
|
869 |
'type' => 'text',
|
870 |
'desc' => __( '<a href="https://webgradients.com/" target="_blank">Click here</a> to get your desired Gradient, just press the copy button and paste in this field.', 'mobile-menu' ),
|
871 |
'default' => '',
|
|
|
872 |
) );
|
873 |
// Left Menu Panel Width Units.
|
874 |
-
$
|
875 |
'name' => __( 'Menu Panel Width Units', 'mobile-menu' ),
|
876 |
'id' => 'left_menu_width_units',
|
877 |
'type' => 'enable',
|
@@ -879,9 +825,10 @@ class WP_Mobile_Menu_Options
|
|
879 |
'desc' => __( 'Choose the width units.', 'mobile-menu' ),
|
880 |
'enabled' => 'Pixels',
|
881 |
'disabled' => __( 'Percentage', 'mobile-menu' ),
|
|
|
882 |
) );
|
883 |
// Left Menu Panel Width.
|
884 |
-
$
|
885 |
'name' => __( 'Menu Panel Width(Pixels)', 'mobile-menu' ),
|
886 |
'id' => 'left_menu_width',
|
887 |
'type' => 'number',
|
@@ -890,9 +837,10 @@ class WP_Mobile_Menu_Options
|
|
890 |
'max' => '1000',
|
891 |
'min' => '50',
|
892 |
'unit' => 'px',
|
|
|
893 |
) );
|
894 |
// Left Menu Panel Width.
|
895 |
-
$
|
896 |
'name' => __( 'Menu Panel Width(Percentage)', 'mobile-menu' ),
|
897 |
'id' => 'left_menu_width_percentage',
|
898 |
'type' => 'number',
|
@@ -901,9 +849,10 @@ class WP_Mobile_Menu_Options
|
|
901 |
'max' => '90',
|
902 |
'min' => '0',
|
903 |
'unit' => '%',
|
|
|
904 |
) );
|
905 |
// Left Menu Content Padding.
|
906 |
-
$
|
907 |
'name' => __( 'Left Menu Content Padding', 'mobile-menu' ),
|
908 |
'id' => 'left_menu_content_padding',
|
909 |
'type' => 'number',
|
@@ -913,9 +862,10 @@ class WP_Mobile_Menu_Options
|
|
913 |
'min' => '0',
|
914 |
'step' => '1',
|
915 |
'unit' => '%',
|
|
|
916 |
) );
|
917 |
// Left Menu Font.
|
918 |
-
$
|
919 |
'name' => __( 'Left Menu Font', 'mobile-menu' ),
|
920 |
'id' => 'left_menu_font',
|
921 |
'type' => 'font',
|
@@ -932,14 +882,10 @@ class WP_Mobile_Menu_Options
|
|
932 |
'line-height' => '1.5em',
|
933 |
'font-family' => 'Dosis',
|
934 |
),
|
935 |
-
|
936 |
-
// Icon Heading.
|
937 |
-
$right_menu_tab->createOption( array(
|
938 |
-
'name' => __( 'Menu Icon', 'mobile-menu' ),
|
939 |
-
'type' => 'heading',
|
940 |
) );
|
941 |
// Click Menu Parent link to open Sub menu.
|
942 |
-
$
|
943 |
'name' => __( 'Parent Link open submenu', 'mobile-menu' ),
|
944 |
'id' => 'right_menu_parent_link_submenu',
|
945 |
'type' => 'enable',
|
@@ -947,6 +893,7 @@ class WP_Mobile_Menu_Options
|
|
947 |
'desc' => __( 'Choose if you want to open the submenu by click in the Parent Menu item.', 'mobile-menu' ),
|
948 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
949 |
'disabled' => __( 'No', 'mobile-menu' ),
|
|
|
950 |
) );
|
951 |
|
952 |
if ( true === $titan->getOption( 'right_menu_icon_opt' ) ) {
|
@@ -956,24 +903,26 @@ class WP_Mobile_Menu_Options
|
|
956 |
}
|
957 |
|
958 |
// Icon Image/text Option.
|
959 |
-
$
|
960 |
'name' => __( 'Icon Type', 'mobile-menu' ),
|
961 |
'id' => 'right_menu_icon_new',
|
962 |
'type' => 'select',
|
963 |
'default' => $icon_type,
|
964 |
'desc' => __( 'Choose if you want to display an image, icon or an animated icon.', 'mobile-menu' ),
|
965 |
'options' => $icon_types,
|
|
|
966 |
) );
|
967 |
// Right Menu Icon Font.
|
968 |
-
$
|
969 |
'name' => __( 'Icon Font', 'mobile-menu' ),
|
970 |
'id' => 'right_menu_icon_font',
|
971 |
'type' => 'text',
|
972 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
973 |
'default' => 'menu',
|
|
|
974 |
) );
|
975 |
// Right Menu Icon Font Size.
|
976 |
-
$
|
977 |
'name' => __( 'Icon Font Size', 'mobile-menu' ),
|
978 |
'id' => 'right_icon_font_size',
|
979 |
'type' => 'number',
|
@@ -982,25 +931,19 @@ class WP_Mobile_Menu_Options
|
|
982 |
'max' => '100',
|
983 |
'min' => '0',
|
984 |
'unit' => 'px',
|
|
|
985 |
) );
|
986 |
// Right Menu Icon.
|
987 |
-
$
|
988 |
'name' => __( 'Icon Image', 'mobile-menu' ),
|
989 |
'id' => 'right_menu_icon',
|
990 |
'type' => 'upload',
|
991 |
'desc' => __( 'Upload your right menu icon image', 'mobile-menu' ),
|
992 |
'default' => 'menu',
|
993 |
-
|
994 |
-
// Text Before Right Icon.
|
995 |
-
$right_menu_tab->createOption( array(
|
996 |
-
'name' => __( 'Text Before Icon', 'mobile-menu' ),
|
997 |
-
'id' => 'right_menu_text',
|
998 |
-
'type' => 'text',
|
999 |
-
'desc' => __( 'Enter the text that will appear before the Icon.', 'mobile-menu' ),
|
1000 |
-
'default' => '',
|
1001 |
) );
|
1002 |
// Icon Action Option.
|
1003 |
-
$
|
1004 |
'name' => __( 'Icon Action', 'mobile-menu' ),
|
1005 |
'id' => 'right_menu_icon_action',
|
1006 |
'type' => 'enable',
|
@@ -1008,9 +951,19 @@ class WP_Mobile_Menu_Options
|
|
1008 |
'desc' => __( 'Open the Right Menu Panel or open a Link url.', 'mobile-menu' ),
|
1009 |
'enabled' => __( 'Open Menu', 'mobile-menu' ),
|
1010 |
'disabled' => __( 'Open Link Url', 'mobile-menu' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1011 |
) );
|
1012 |
// Text Before Right Icon Font Options.
|
1013 |
-
$
|
1014 |
'name' => __( 'Text Before Icon Font', 'mobile-menu' ),
|
1015 |
'id' => 'text_before_right_icon_font',
|
1016 |
'type' => 'font',
|
@@ -1028,17 +981,19 @@ class WP_Mobile_Menu_Options
|
|
1028 |
'line-height' => '1.5em',
|
1029 |
'font-family' => 'Dosis',
|
1030 |
),
|
|
|
1031 |
) );
|
1032 |
// Icon URL.
|
1033 |
-
$
|
1034 |
'name' => __( 'Icon Link URL', 'mobile-menu' ),
|
1035 |
'id' => 'right_icon_url',
|
1036 |
'type' => 'text',
|
1037 |
'desc' => __( 'Enter the Icon Link Url.', 'mobile-menu' ),
|
1038 |
'default' => '',
|
|
|
1039 |
) );
|
1040 |
// Icon URL Target.
|
1041 |
-
$
|
1042 |
'name' => __( 'Icon Link Url Target', 'mobile-menu' ),
|
1043 |
'id' => 'right_icon_url_target',
|
1044 |
'type' => 'enable',
|
@@ -1046,9 +1001,10 @@ class WP_Mobile_Menu_Options
|
|
1046 |
'desc' => __( 'Choose it the link will open in the same window or in the new window.', 'mobile-menu' ),
|
1047 |
'enabled' => 'Self',
|
1048 |
'disabled' => 'Blank',
|
|
|
1049 |
) );
|
1050 |
// Right Menu Icon Top Margin.
|
1051 |
-
$
|
1052 |
'name' => __( 'Icon Top Margin', 'mobile-menu' ),
|
1053 |
'id' => 'right_icon_top_margin',
|
1054 |
'type' => 'number',
|
@@ -1057,9 +1013,10 @@ class WP_Mobile_Menu_Options
|
|
1057 |
'max' => '450',
|
1058 |
'min' => '0',
|
1059 |
'unit' => 'px',
|
|
|
1060 |
) );
|
1061 |
// Right Menu Icon Right Margin.
|
1062 |
-
$
|
1063 |
'name' => __( 'Icon Right Margin', 'mobile-menu' ),
|
1064 |
'id' => 'right_icon_right_margin',
|
1065 |
'type' => 'number',
|
@@ -1068,21 +1025,18 @@ class WP_Mobile_Menu_Options
|
|
1068 |
'max' => '450',
|
1069 |
'min' => '0',
|
1070 |
'unit' => 'px',
|
1071 |
-
|
1072 |
-
// Background Heading.
|
1073 |
-
$right_menu_tab->createOption( array(
|
1074 |
-
'name' => __( 'Right Panel options', 'mobile-menu' ),
|
1075 |
-
'type' => 'heading',
|
1076 |
) );
|
1077 |
// Right Menu Background Image.
|
1078 |
-
$
|
1079 |
-
'name'
|
1080 |
-
'id'
|
1081 |
-
'type'
|
1082 |
-
'desc'
|
|
|
1083 |
) );
|
1084 |
// Right Menu Background Image Opacity.
|
1085 |
-
$
|
1086 |
'name' => __( 'Panel Background Image Opacity', 'mobile-menu' ),
|
1087 |
'id' => 'right_menu_bg_opacity',
|
1088 |
'type' => 'number',
|
@@ -1092,9 +1046,10 @@ class WP_Mobile_Menu_Options
|
|
1092 |
'min' => '10',
|
1093 |
'step' => '10',
|
1094 |
'unit' => '%',
|
|
|
1095 |
) );
|
1096 |
// Left Menu Background Image Size.
|
1097 |
-
$
|
1098 |
'name' => __( 'Panel Background Image Size', 'mobile-menu' ),
|
1099 |
'id' => 'right_menu_bg_image_size',
|
1100 |
'type' => 'select',
|
@@ -1108,17 +1063,19 @@ class WP_Mobile_Menu_Options
|
|
1108 |
'unset' => __( 'Unset', 'mobile-menu' ),
|
1109 |
),
|
1110 |
'default' => 'cover',
|
|
|
1111 |
) );
|
1112 |
// Right Menu Gradient css.
|
1113 |
-
$
|
1114 |
'name' => __( 'Panel Background Gradient Css', 'mobile-menu' ),
|
1115 |
'id' => 'right_menu_bg_gradient',
|
1116 |
'type' => 'text',
|
1117 |
'desc' => __( '<a href="https://webgradients.com/" target="_blank">Click here</a> to get your desired Gradient, just press the copy button and paste in this field.', 'mobile-menu' ),
|
1118 |
'default' => '',
|
|
|
1119 |
) );
|
1120 |
// Right Menu Panel Width Units.
|
1121 |
-
$
|
1122 |
'name' => __( 'Menu Panel Width Units', 'mobile-menu' ),
|
1123 |
'id' => 'right_menu_width_units',
|
1124 |
'type' => 'enable',
|
@@ -1126,9 +1083,10 @@ class WP_Mobile_Menu_Options
|
|
1126 |
'desc' => __( 'Choose the width units.', 'mobile-menu' ),
|
1127 |
'enabled' => __( 'Pixels', 'mobile-menu' ),
|
1128 |
'disabled' => __( 'Percentage', 'mobile-menu' ),
|
|
|
1129 |
) );
|
1130 |
// Right Menu Panel Width.
|
1131 |
-
$
|
1132 |
'name' => __( 'Menu Panel Width(Pixels)', 'mobile-menu' ),
|
1133 |
'id' => 'right_menu_width',
|
1134 |
'type' => 'number',
|
@@ -1137,9 +1095,10 @@ class WP_Mobile_Menu_Options
|
|
1137 |
'max' => '450',
|
1138 |
'min' => '50',
|
1139 |
'unit' => 'px',
|
|
|
1140 |
) );
|
1141 |
// Right Menu Panel Width.
|
1142 |
-
$
|
1143 |
'name' => __( 'Menu Panel Width(Percentage)', 'mobile-menu' ),
|
1144 |
'id' => 'right_menu_width_percentage',
|
1145 |
'type' => 'number',
|
@@ -1148,9 +1107,10 @@ class WP_Mobile_Menu_Options
|
|
1148 |
'max' => '90',
|
1149 |
'min' => '0',
|
1150 |
'unit' => '%',
|
|
|
1151 |
) );
|
1152 |
// Right Menu Content Padding.
|
1153 |
-
$
|
1154 |
'name' => __( 'Right Menu Content Padding', 'mobile-menu' ),
|
1155 |
'id' => 'right_menu_content_padding',
|
1156 |
'type' => 'number',
|
@@ -1160,9 +1120,10 @@ class WP_Mobile_Menu_Options
|
|
1160 |
'min' => '0',
|
1161 |
'step' => '1',
|
1162 |
'unit' => '%',
|
|
|
1163 |
) );
|
1164 |
// Right Menu Font.
|
1165 |
-
$
|
1166 |
'name' => __( 'Right Menu Font', 'mobile-menu' ),
|
1167 |
'id' => 'right_menu_font',
|
1168 |
'type' => 'font',
|
@@ -1180,301 +1141,312 @@ class WP_Mobile_Menu_Options
|
|
1180 |
'line-height' => '1.5em',
|
1181 |
'font-family' => 'Dosis',
|
1182 |
),
|
1183 |
-
|
1184 |
-
// Header Left Menu Section.
|
1185 |
-
$colors_tab->createOption( array(
|
1186 |
-
'name' => __( 'General', 'mobile-menu' ),
|
1187 |
-
'type' => 'heading',
|
1188 |
) );
|
1189 |
// Overlay Background color.
|
1190 |
-
$
|
1191 |
'name' => __( 'Overlay Background Color', 'mobile-menu' ),
|
1192 |
'id' => 'overlay_bg_color',
|
1193 |
'type' => 'color',
|
1194 |
'desc' => '',
|
1195 |
'alpha' => true,
|
1196 |
'default' => 'rgba(0, 0, 0, 0.83)',
|
|
|
1197 |
) );
|
1198 |
// Menu Items Border color.
|
1199 |
-
$
|
1200 |
'name' => __( 'Menu Items Border Color', 'mobile-menu' ),
|
1201 |
'id' => 'menu_items_border_color',
|
1202 |
'type' => 'color',
|
1203 |
'desc' => '',
|
1204 |
'alpha' => true,
|
1205 |
'default' => 'rgba(0, 0, 0, 0.83)',
|
1206 |
-
|
1207 |
-
// Header Left Menu Section.
|
1208 |
-
$colors_tab->createOption( array(
|
1209 |
-
'name' => __( 'Header', 'mobile-menu' ),
|
1210 |
-
'type' => 'heading',
|
1211 |
) );
|
1212 |
// Header Background color.
|
1213 |
-
$
|
1214 |
'name' => __( 'Header Background Color', 'mobile-menu' ),
|
1215 |
'id' => 'header_bg_color',
|
1216 |
'type' => 'color',
|
1217 |
'desc' => '',
|
1218 |
'alpha' => true,
|
1219 |
'default' => '#111111',
|
|
|
1220 |
) );
|
1221 |
// Header Text color.
|
1222 |
-
$
|
1223 |
'name' => __( 'Header Text Color', 'mobile-menu' ),
|
1224 |
'id' => 'header_text_color',
|
1225 |
'type' => 'color',
|
1226 |
'desc' => '',
|
1227 |
'alpha' => true,
|
1228 |
'default' => '#FFF',
|
|
|
1229 |
) );
|
1230 |
-
|
1231 |
-
|
1232 |
-
'
|
1233 |
-
'
|
1234 |
) );
|
1235 |
// Left Menu Icon color.
|
1236 |
-
$
|
1237 |
'name' => __( 'Left Menu Icon Color', 'mobile-menu' ),
|
1238 |
'id' => 'left_menu_icon_color',
|
1239 |
'type' => 'color',
|
1240 |
'desc' => '',
|
1241 |
'alpha' => true,
|
1242 |
'default' => '#FFF',
|
|
|
1243 |
) );
|
1244 |
// Header Text After Left Icon.
|
1245 |
-
$
|
1246 |
'name' => __( 'Text After Left Icon', 'mobile-menu' ),
|
1247 |
'id' => 'header_text_after_icon',
|
1248 |
'type' => 'color',
|
1249 |
'desc' => '',
|
1250 |
'alpha' => true,
|
1251 |
'default' => '#222',
|
|
|
1252 |
) );
|
1253 |
// Left Panel Background color.
|
1254 |
-
$
|
1255 |
'name' => __( 'Background Color', 'mobile-menu' ),
|
1256 |
'id' => 'left_panel_bg_color',
|
1257 |
'type' => 'color',
|
1258 |
'desc' => '',
|
1259 |
'alpha' => true,
|
1260 |
'default' => '#F7F7F7',
|
|
|
1261 |
) );
|
1262 |
// Left Panel Text color.
|
1263 |
-
$
|
1264 |
'name' => __( 'Text Color', 'mobile-menu' ),
|
1265 |
'id' => 'left_panel_text_color',
|
1266 |
'type' => 'color',
|
1267 |
'desc' => '',
|
1268 |
'alpha' => true,
|
1269 |
'default' => '#666',
|
|
|
1270 |
) );
|
1271 |
// Left Panel Background Hover Color.
|
1272 |
-
$
|
1273 |
'name' => __( 'Background Hover Color', 'mobile-menu' ),
|
1274 |
'id' => 'left_panel_hover_bgcolor',
|
1275 |
'type' => 'color',
|
1276 |
'desc' => '',
|
1277 |
'alpha' => true,
|
1278 |
'default' => '#666',
|
|
|
1279 |
) );
|
1280 |
// Left Panel Text color Hover.
|
1281 |
-
$
|
1282 |
'name' => __( 'Hover Text Color', 'mobile-menu' ),
|
1283 |
'id' => 'left_panel_hover_text_color',
|
1284 |
'type' => 'color',
|
1285 |
'desc' => '',
|
1286 |
'alpha' => true,
|
1287 |
'default' => '#FFF',
|
|
|
1288 |
) );
|
1289 |
// Left Panel Sub-menu Background Color.
|
1290 |
-
$
|
1291 |
'name' => __( 'Submenu Background Color', 'mobile-menu' ),
|
1292 |
'id' => 'left_panel_submenu_bgcolor',
|
1293 |
'type' => 'color',
|
1294 |
'desc' => '',
|
1295 |
'alpha' => true,
|
1296 |
'default' => '#3a3a3a',
|
|
|
1297 |
) );
|
1298 |
// Left Panel Sub-menu Text Color.
|
1299 |
-
$
|
1300 |
'name' => __( 'Submenu Text Color', 'mobile-menu' ),
|
1301 |
'id' => 'left_panel_submenu_text_color',
|
1302 |
'type' => 'color',
|
1303 |
'desc' => '',
|
1304 |
'alpha' => true,
|
1305 |
'default' => '#fff',
|
|
|
1306 |
) );
|
1307 |
// Left Panel Cancel Button Color.
|
1308 |
-
$
|
1309 |
'name' => __( 'Cancel Button Color', 'mobile-menu' ),
|
1310 |
'id' => 'left_panel_cancel_button_color',
|
1311 |
'type' => 'color',
|
1312 |
'desc' => '',
|
1313 |
'alpha' => true,
|
1314 |
'default' => '#666',
|
1315 |
-
|
1316 |
-
// Header Right Menu Section.
|
1317 |
-
$colors_tab->createOption( array(
|
1318 |
-
'name' => __( 'Right Menu', 'mobile-menu' ),
|
1319 |
-
'type' => 'heading',
|
1320 |
) );
|
1321 |
// Right Menu Icon color.
|
1322 |
-
$
|
1323 |
'name' => __( 'Right Menu Icon Color', 'mobile-menu' ),
|
1324 |
'id' => 'right_menu_icon_color',
|
1325 |
'type' => 'color',
|
1326 |
'desc' => '',
|
1327 |
'alpha' => true,
|
1328 |
'default' => '#FFF',
|
|
|
1329 |
) );
|
1330 |
// Header Text Before Right Icon.
|
1331 |
-
$
|
1332 |
'name' => __( 'Text Before Right Icon', 'mobile-menu' ),
|
1333 |
'id' => 'header_text_before_icon',
|
1334 |
'type' => 'color',
|
1335 |
'desc' => '',
|
1336 |
'alpha' => true,
|
1337 |
'default' => '#222',
|
|
|
1338 |
) );
|
1339 |
// Right Panel Background color.
|
1340 |
-
$
|
1341 |
'name' => __( 'Background Color', 'mobile-menu' ),
|
1342 |
'id' => 'right_panel_bg_color',
|
1343 |
'type' => 'color',
|
1344 |
'desc' => '',
|
1345 |
'alpha' => true,
|
1346 |
'default' => '#F7F7F7',
|
|
|
1347 |
) );
|
1348 |
// Right Panel Text color.
|
1349 |
-
$
|
1350 |
'name' => __( 'Text Color', 'mobile-menu' ),
|
1351 |
'id' => 'right_panel_text_color',
|
1352 |
'type' => 'color',
|
1353 |
'desc' => '',
|
1354 |
'alpha' => true,
|
1355 |
'default' => '#666',
|
|
|
1356 |
) );
|
1357 |
// Right Panel Background Hover Color.
|
1358 |
-
$
|
1359 |
'name' => __( 'Background Hover Color', 'mobile-menu' ),
|
1360 |
'id' => 'right_panel_hover_bgcolor',
|
1361 |
'type' => 'color',
|
1362 |
'desc' => '',
|
1363 |
'alpha' => true,
|
1364 |
'default' => '#666',
|
|
|
1365 |
) );
|
1366 |
// Right Panel Text color Hover.
|
1367 |
-
$
|
1368 |
'name' => __( 'Hover Text Color', 'mobile-menu' ),
|
1369 |
'id' => 'right_panel_hover_text_color',
|
1370 |
'type' => 'color',
|
1371 |
'desc' => '',
|
1372 |
'alpha' => true,
|
1373 |
'default' => '#FFF',
|
|
|
1374 |
) );
|
1375 |
// Right Panel Sub-menu Background Color.
|
1376 |
-
$
|
1377 |
'name' => __( 'Submenu Background Color', 'mobile-menu' ),
|
1378 |
'id' => 'right_panel_submenu_bgcolor',
|
1379 |
'type' => 'color',
|
1380 |
'desc' => '',
|
1381 |
'alpha' => true,
|
1382 |
'default' => '#3a3a3a',
|
|
|
1383 |
) );
|
1384 |
// Right Panel Sub-menu Text Color.
|
1385 |
-
$
|
1386 |
'name' => __( 'Submenu Text Color', 'mobile-menu' ),
|
1387 |
'id' => 'right_panel_submenu_text_color',
|
1388 |
'type' => 'color',
|
1389 |
'desc' => '',
|
1390 |
'alpha' => true,
|
1391 |
'default' => '#fff',
|
|
|
1392 |
) );
|
1393 |
// Right Panel Cancel Button Color.
|
1394 |
-
$
|
1395 |
'name' => __( 'Cancel Button Color', 'mobile-menu' ),
|
1396 |
'id' => 'right_panel_cancel_button_color',
|
1397 |
'type' => 'color',
|
1398 |
'desc' => '',
|
1399 |
'alpha' => true,
|
1400 |
'default' => '#666',
|
1401 |
-
|
1402 |
-
// 3rd Level Right Menu Section.
|
1403 |
-
$colors_tab->createOption( array(
|
1404 |
-
'name' => __( '3rd Level Menu Colors', 'mobile-menu' ),
|
1405 |
-
'type' => 'heading',
|
1406 |
) );
|
1407 |
// Left Panel 3rd Level Left Menu Items Text color.
|
1408 |
-
$
|
1409 |
'name' => __( 'Left Menu Text Color', 'mobile-menu' ),
|
1410 |
'id' => 'left_panel_3rd_menu_text_color',
|
1411 |
'type' => 'color',
|
1412 |
'desc' => '',
|
1413 |
'alpha' => true,
|
1414 |
'default' => '#fff',
|
|
|
1415 |
) );
|
1416 |
// Left Panel 3rd Level Left Menu Items Text color Hover.
|
1417 |
-
$
|
1418 |
'name' => __( 'Left Menu Text Color Hover', 'mobile-menu' ),
|
1419 |
'id' => 'left_panel_3rd_menu_text_color_hover',
|
1420 |
'type' => 'color',
|
1421 |
'desc' => '',
|
1422 |
'alpha' => true,
|
1423 |
'default' => '#ccc',
|
|
|
1424 |
) );
|
1425 |
// Left Panel 3rd Level Left Menu Items Background color.
|
1426 |
-
$
|
1427 |
'name' => __( 'Left Menu Background Color', 'mobile-menu' ),
|
1428 |
'id' => 'left_panel_3rd_menu_bg_color',
|
1429 |
'type' => 'color',
|
1430 |
'desc' => '',
|
1431 |
'alpha' => true,
|
1432 |
'default' => '#222',
|
|
|
1433 |
) );
|
1434 |
// Left Panel 3rd Level Left Menu Items Background color Hover.
|
1435 |
-
$
|
1436 |
'name' => __( 'Left Menu Background Color Hover', 'mobile-menu' ),
|
1437 |
'id' => 'left_panel_3rd_menu_bg_color_hover',
|
1438 |
'type' => 'color',
|
1439 |
'desc' => '',
|
1440 |
'alpha' => true,
|
1441 |
'default' => '#666',
|
|
|
1442 |
) );
|
1443 |
// Right Panel 3rd Level Right Menu Items Text color.
|
1444 |
-
$
|
1445 |
'name' => __( 'Right Menu Text Color', 'mobile-menu' ),
|
1446 |
'id' => 'right_panel_3rd_menu_text_color',
|
1447 |
'type' => 'color',
|
1448 |
'desc' => '',
|
1449 |
'alpha' => true,
|
1450 |
'default' => '#fff',
|
|
|
1451 |
) );
|
1452 |
// Right Panel 3rd Level Right Menu Items Text color Hover.
|
1453 |
-
$
|
1454 |
'name' => __( 'Right Menu Text Color Hover', 'mobile-menu' ),
|
1455 |
'id' => 'right_panel_3rd_menu_text_color_hover',
|
1456 |
'type' => 'color',
|
1457 |
'desc' => '',
|
1458 |
'alpha' => true,
|
1459 |
'default' => '#ccc',
|
|
|
1460 |
) );
|
1461 |
// Right Panel 3rd Level Right Menu Items Background color.
|
1462 |
-
$
|
1463 |
'name' => __( 'Right Menu Background Color', 'mobile-menu' ),
|
1464 |
'id' => 'right_panel_3rd_menu_bg_color',
|
1465 |
'type' => 'color',
|
1466 |
'desc' => '',
|
1467 |
'alpha' => true,
|
1468 |
'default' => '#222',
|
|
|
1469 |
) );
|
1470 |
// Right Panel 3rd Level Right Menu Items Background color Hover.
|
1471 |
-
$
|
1472 |
'name' => __( 'Right Menu Background Color Hover', 'mobile-menu' ),
|
1473 |
'id' => 'right_panel_3rd_menu_bg_color_hover',
|
1474 |
'type' => 'color',
|
1475 |
'desc' => '',
|
1476 |
'alpha' => true,
|
1477 |
'default' => '#666',
|
|
|
1478 |
) );
|
1479 |
$panel->createOption( array(
|
1480 |
'type' => 'save',
|
@@ -1495,10 +1467,7 @@ class WP_Mobile_Menu_Options
|
|
1495 |
public function create_woocommerce_options_upsell( $panel, $titan )
|
1496 |
{
|
1497 |
global $mm_fs ;
|
1498 |
-
|
1499 |
-
$mm_woo_tab = $panel->createTab( array(
|
1500 |
-
'name' => __( 'Woocommerce', 'mobile-menu' ),
|
1501 |
-
) );
|
1502 |
$custom_html = '<div class="mm-business-features-holder"><div class="mm-bussiness-features"><h3>' . __( 'Increase your shop revenue (Business Version)', 'mobile-menu' ) . '</h3>';
|
1503 |
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>Menu Cart Icon</strong> - Product counter notification buble, upload the desired icon.</p>';
|
1504 |
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>Mobile Product Filter</strong> - Advanced product filter for mobile users.</p>';
|
@@ -1512,11 +1481,11 @@ class WP_Mobile_Menu_Options
|
|
1512 |
$custom_html .= '</div>';
|
1513 |
$custom_html .= '<div class="mm-business-image"><a href="https://shopdemo.wpmobilemenu.com/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=upsell_link" target="_blank"><img src="' . plugins_url( 'demo-content/assets/shopdemo-mobile-menu.png', __FILE__ ) . '">';
|
1514 |
$custom_html .= '</a><p><a href="https://shopdemo.wpmobilemenu.com/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=upsell_link"> ' . esc_html( 'See Demo Site', 'mobile-menu' ) . '</a></div></div>';
|
1515 |
-
|
1516 |
-
|
1517 |
-
'name' => '',
|
1518 |
'type' => 'custom',
|
1519 |
'custom' => $custom_html,
|
|
|
1520 |
) );
|
1521 |
}
|
1522 |
|
@@ -1532,10 +1501,7 @@ class WP_Mobile_Menu_Options
|
|
1532 |
public function create_footer_options_upsell( $panel, $titan )
|
1533 |
{
|
1534 |
global $mm_fs ;
|
1535 |
-
|
1536 |
-
$footer_tab = $panel->createTab( array(
|
1537 |
-
'name' => __( 'Footer', 'mobile-menu' ),
|
1538 |
-
) );
|
1539 |
$custom_html = '<div class="mm-business-features-holder"><div class="mm-bussiness-features"><h3>' . __( 'Give your Website an App look and feel', 'mobile-menu' ) . '</h3>';
|
1540 |
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>Fixed Footer Bar</strong></p>';
|
1541 |
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>Auto-hide on Scroll</strong></p>';
|
@@ -1547,10 +1513,11 @@ class WP_Mobile_Menu_Options
|
|
1547 |
$custom_html .= '<div class="mm-business-image"><a href="https://prodemo.wpmobilemenu.com/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=upsell_link" target="_blank"><img src="' . plugins_url( 'demo-content/assets/prodemo-mobile-menu.png', __FILE__ ) . '">';
|
1548 |
$custom_html .= '</a><p><a href="https://prodemo.wpmobilemenu.com/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=upsell_link"> ' . esc_html( 'See Demo Site', 'mobile-menu' ) . '</a></div></div>';
|
1549 |
// Footer Tab Upgrade Content.
|
1550 |
-
$
|
1551 |
-
'name' => '',
|
1552 |
'type' => 'custom',
|
1553 |
'custom' => $custom_html,
|
|
|
1554 |
) );
|
1555 |
}
|
1556 |
|
44 |
add_action( 'tf_create_options', array( $this, 'create_plugin_options' ) );
|
45 |
}
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
/**
|
48 |
*
|
49 |
* Create Plugin options.
|
53 |
public function create_plugin_options()
|
54 |
{
|
55 |
global $mm_fs ;
|
56 |
+
global $general_tab ;
|
57 |
$prefix = '';
|
58 |
$menus = get_terms( 'nav_menu', array(
|
59 |
'hide_empty' => true,
|
90 |
'search' => 'Search',
|
91 |
'left-menu' => 'Left Menu',
|
92 |
);
|
93 |
+
$plugin_title = 'Mobile Menu Options';
|
94 |
// Create my admin options panel.
|
95 |
$panel = $titan->createAdminPanel( array(
|
96 |
'name' => 'Mobile Menu Options',
|
97 |
+
'title' => __( $plugin_title, 'mobile-menu' ),
|
98 |
'icon' => 'dashicons-smartphone',
|
99 |
) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
// Only proceed if we are in the plugin page.
|
101 |
|
102 |
if ( !is_admin() || isset( $_GET['page'] ) && 'mobile-menu-options' === sanitize_text_field( $_GET['page'] ) ) {
|
103 |
// Create General Options panel.
|
104 |
+
$general_tab2 = $panel->createTab( array(
|
105 |
'name' => __( 'General Options', 'mobile-menu' ),
|
106 |
) );
|
107 |
+
$general_tab = $panel->createTab( array(
|
|
|
108 |
'name' => __( 'Header', 'mobile-menu' ),
|
109 |
) );
|
110 |
+
$general_tab = $panel->createTab( array(
|
111 |
+
'name' => __( 'Footer', 'mobile-menu' ),
|
112 |
+
) );
|
113 |
+
$general_tab = $panel->createTab( array(
|
114 |
'name' => __( 'Left Menu', 'mobile-menu' ),
|
115 |
) );
|
116 |
+
$general_tab = $panel->createTab( array(
|
|
|
117 |
'name' => __( 'Right Menu', 'mobile-menu' ),
|
118 |
) );
|
119 |
+
$general_tab = $panel->createTab( array(
|
120 |
+
'name' => __( 'WooCommerce', 'mobile-menu' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
) );
|
122 |
+
$general_tab = $panel->createTab( array(
|
123 |
+
'name' => __( 'Colors', 'mobile-menu' ),
|
|
|
124 |
) );
|
125 |
+
$general_tab = $general_tab2;
|
126 |
+
$this->create_footer_options_upsell( $panel, $titan );
|
127 |
+
// Create Woocommerce options upsell.
|
128 |
+
$this->create_woocommerce_options_upsell( $panel, $titan );
|
129 |
// Enable/Disable Left Header Menu.
|
130 |
$general_tab->createOption( array(
|
131 |
'name' => __( 'Enable Left Menu', 'mobile-menu' ),
|
132 |
'id' => 'enable_left_menu',
|
133 |
'type' => 'enable',
|
134 |
'default' => true,
|
135 |
+
'enabled' => __( 'Yes', 'mobile-menu' ),
|
136 |
+
'disabled' => __( 'No', 'mobile-menu' ),
|
137 |
+
'class' => 'general-options left-menu-options',
|
138 |
) );
|
139 |
// Left Menu.
|
140 |
$general_tab->createOption( array(
|
144 |
'desc' => __( 'Select the menu that will open in the left side.', 'mobile-menu' ),
|
145 |
'options' => $menus_options,
|
146 |
'default' => $titan->getOption( 'left_menu' ),
|
147 |
+
'class' => 'general-options left-menu-options',
|
148 |
) );
|
149 |
// Enable/Disable Right Header Menu.
|
150 |
$general_tab->createOption( array(
|
152 |
'id' => 'enable_right_menu',
|
153 |
'type' => 'enable',
|
154 |
'default' => false,
|
155 |
+
'enabled' => __( 'Yes', 'mobile-menu' ),
|
156 |
+
'disabled' => __( 'No', 'mobile-menu' ),
|
157 |
+
'class' => 'general-options right-menu-options',
|
158 |
) );
|
159 |
// Right Menu.
|
160 |
$general_tab->createOption( array(
|
164 |
'desc' => __( 'Select the menu that will open in the right side.', 'mobile-menu' ),
|
165 |
'options' => $menus_options,
|
166 |
'default' => $titan->getOption( 'right_menu' ),
|
167 |
+
'class' => 'general-options right-menu-options',
|
|
|
|
|
|
|
168 |
) );
|
169 |
// Width trigger.
|
170 |
$general_tab->createOption( array(
|
176 |
'max' => '5000',
|
177 |
'min' => '479',
|
178 |
'unit' => 'px',
|
179 |
+
'class' => 'general-visibility-options',
|
180 |
) );
|
181 |
$general_tab->createOption( array(
|
182 |
+
'type' => 'note',
|
183 |
+
'desc' => __( 'The Width trigger field is very important because it determines the width that will show the Mobile Menu. If you want it always visible set it to 5000px', 'mobile-menu' ),
|
184 |
+
'class' => 'general-visibility-options',
|
185 |
) );
|
186 |
// Enable/Disable only in Mobile Devices.
|
187 |
$general_tab->createOption( array(
|
192 |
'desc' => __( 'Enable only in Mobiles devices. This will disable the Mobile Menu Visibilty option above (using resolution width trigger).', 'mobile-menu' ),
|
193 |
'enabled' => __( 'On', 'mobile-menu' ),
|
194 |
'disabled' => __( 'Off', 'mobile-menu' ),
|
195 |
+
'class' => 'general-visibility-options',
|
196 |
) );
|
197 |
// Enable/Disable Testing Mode.
|
198 |
$general_tab->createOption( array(
|
203 |
'desc' => __( 'Enable only for admin users. This will disable the Mobile Menu for all the visitors of your site except the administrator users.', 'mobile-menu' ),
|
204 |
'enabled' => __( 'On', 'mobile-menu' ),
|
205 |
'disabled' => __( 'Off', 'mobile-menu' ),
|
206 |
+
'class' => 'general-visibility-options',
|
|
|
|
|
|
|
207 |
) );
|
208 |
// Hide Html Elements.
|
209 |
$general_tab->createOption( array(
|
211 |
'id' => 'hide_elements',
|
212 |
'type' => 'text',
|
213 |
'default' => '',
|
214 |
+
'desc' => __( 'Use the Find element button and click in the elements you want to hide. When you are done hit the Save Changes button.<br>Example: .menu , #nav</p>', 'mobile-menu' ),
|
215 |
+
'class' => 'general-hide-elements',
|
216 |
) );
|
217 |
$general_tab->createOption( array(
|
218 |
+
'type' => 'note',
|
219 |
+
'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' ),
|
220 |
+
'class' => 'general-hide-elements',
|
221 |
) );
|
222 |
$general_tab->createOption( array(
|
223 |
'name' => __( 'Hide elements by default', 'mobile-menu' ),
|
262 |
'16',
|
263 |
'17'
|
264 |
),
|
265 |
+
'class' => 'general-hide-elements',
|
|
|
|
|
|
|
266 |
) );
|
267 |
// Menu Display Type.
|
268 |
$general_tab->createOption( array(
|
272 |
'desc' => __( 'Choose the display type for the mobile menu.', 'mobile-menu' ),
|
273 |
'options' => $display_type,
|
274 |
'default' => 'slideout-over',
|
275 |
+
'class' => 'general-misc-options',
|
276 |
) );
|
277 |
// Automatically Close Sub Menus.
|
278 |
$general_tab->createOption( array(
|
283 |
'default' => false,
|
284 |
'enabled' => __( 'On', 'mobile-menu' ),
|
285 |
'disabled' => __( 'Off', 'mobile-menu' ),
|
286 |
+
'class' => 'general-misc-options',
|
287 |
) );
|
288 |
// Menu Border Style.
|
289 |
$general_tab->createOption( array(
|
295 |
'max' => '5',
|
296 |
'min' => '0',
|
297 |
'unit' => 'px',
|
298 |
+
'class' => 'general-misc-options',
|
299 |
) );
|
300 |
// Close Menu Icon Font.
|
301 |
$general_tab->createOption( array(
|
304 |
'type' => 'text',
|
305 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
306 |
'default' => 'cancel-1',
|
307 |
+
'class' => 'general-misc-options',
|
308 |
) );
|
309 |
// Close Menu Icon Font Size.
|
310 |
$general_tab->createOption( array(
|
316 |
'max' => '100',
|
317 |
'min' => '5',
|
318 |
'unit' => 'px',
|
319 |
+
'class' => 'general-misc-options',
|
320 |
) );
|
321 |
// Submenu Open Icon Font.
|
322 |
$general_tab->createOption( array(
|
325 |
'type' => 'text',
|
326 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
327 |
'default' => 'down-open',
|
328 |
+
'class' => 'general-misc-options',
|
329 |
) );
|
330 |
// Submenu Close Icon Font.
|
331 |
$general_tab->createOption( array(
|
334 |
'type' => 'text',
|
335 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
336 |
'default' => 'up-open',
|
337 |
+
'class' => 'general-misc-options',
|
338 |
) );
|
339 |
// Submenu Icon Font Size.
|
340 |
$general_tab->createOption( array(
|
346 |
'max' => '100',
|
347 |
'min' => '0',
|
348 |
'unit' => 'px',
|
349 |
+
'class' => 'general-misc-options',
|
|
|
|
|
|
|
350 |
) );
|
351 |
// Automatically Close Sub Menus.
|
352 |
$general_tab->createOption( array(
|
357 |
'default' => false,
|
358 |
'enabled' => __( 'On', 'mobile-menu' ),
|
359 |
'disabled' => __( 'Off', 'mobile-menu' ),
|
360 |
+
'class' => 'general-advanced-options',
|
361 |
) );
|
362 |
// Sticky Html Elements.
|
363 |
$general_tab->createOption( array(
|
366 |
'type' => 'text',
|
367 |
'default' => '',
|
368 |
'desc' => __( '<p>If you are having issues with sticky elements that dont assume a sticky behaviour, enter the ids or class name that identify that element.</p>', 'mobile-menu' ),
|
369 |
+
'class' => 'general-advanced-options',
|
370 |
) );
|
371 |
// Custom css.
|
372 |
$general_tab->createOption( array(
|
373 |
+
'name' => __( 'Custom CSS', 'mobile-menu' ),
|
374 |
+
'id' => 'custom_css',
|
375 |
+
'type' => 'code',
|
376 |
+
'desc' => __( 'Put your custom CSS rules here', 'mobile-menu' ),
|
377 |
+
'lang' => 'css',
|
378 |
+
'class' => 'general-advanced-options',
|
379 |
) );
|
380 |
// Custom js.
|
381 |
$general_tab->createOption( array(
|
382 |
+
'name' => __( 'Custom JS', 'mobile-menu' ),
|
383 |
+
'id' => 'custom_js',
|
384 |
+
'type' => 'code',
|
385 |
+
'desc' => __( 'Put your custom JS rules here', 'mobile-menu' ),
|
386 |
+
'lang' => 'javascript',
|
387 |
+
'class' => 'general-advanced-options',
|
|
|
|
|
|
|
388 |
) );
|
389 |
// Export settings.
|
390 |
$general_tab->createOption( array(
|
391 |
'name' => __( 'Export Settings', 'mobile-menu' ),
|
392 |
'type' => 'custom',
|
393 |
'custom' => '<button class="button button-secondary export-mobile-menu-settings">' . __( 'Export', 'mobile-menu' ) . '</button>',
|
394 |
+
'class' => 'general-import-export',
|
395 |
) );
|
396 |
// Import settings.
|
397 |
$general_tab->createOption( array(
|
398 |
'name' => __( 'Import Settings', 'mobile-menu' ),
|
399 |
'type' => 'custom',
|
400 |
'custom' => '<button class="button button-secondary import-mobile-menu-settings">' . __( 'Import', 'mobile-menu' ) . '</button>',
|
401 |
+
'class' => 'general-import-export',
|
|
|
|
|
|
|
|
|
402 |
) );
|
403 |
// Enable/Disable Sticky Header.
|
404 |
+
$general_tab->createOption( array(
|
405 |
'name' => __( 'Sticky Header', 'mobile-menu' ),
|
406 |
'id' => 'enabled_sticky_header',
|
407 |
'type' => 'enable',
|
409 |
'desc' => __( 'Choose if you want to have the Header Fixed or scrolling with the content.', 'mobile-menu' ),
|
410 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
411 |
'disabled' => __( 'No', 'mobile-menu' ),
|
412 |
+
'class' => 'header-options',
|
413 |
) );
|
414 |
// Enable/Disable Naked Header.
|
415 |
+
$general_tab->createOption( array(
|
416 |
'name' => __( 'Naked Header', 'mobile-menu' ),
|
417 |
'id' => 'enabled_naked_header',
|
418 |
'type' => 'enable',
|
420 |
'desc' => __( 'Choose if you want to display a naked header with no background color(transparent).', 'mobile-menu' ),
|
421 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
422 |
'disabled' => __( 'No', 'mobile-menu' ),
|
423 |
+
'class' => 'header-options',
|
424 |
) );
|
425 |
// Enable/Disable Logo Url.
|
426 |
+
$general_tab->createOption( array(
|
427 |
'name' => __( 'Disable Logo/Text', 'mobile-menu' ),
|
428 |
'id' => 'disabled_logo_text',
|
429 |
'type' => 'enable',
|
431 |
'desc' => __( 'Choose if you want to disable the logo/text so it will only display the menu icons in the header.', 'mobile-menu' ),
|
432 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
433 |
'disabled' => __( 'No', 'mobile-menu' ),
|
434 |
+
'class' => 'header-options',
|
|
|
|
|
|
|
435 |
) );
|
436 |
// Header Shadow.
|
437 |
+
$general_tab->createOption( array(
|
438 |
'name' => __( 'Header Shadow.', 'mobile-menu' ),
|
439 |
'id' => 'header_shadow',
|
440 |
'type' => 'enable',
|
442 |
'desc' => __( 'Choose if you want to enable the header shadow at the bottom of the header.', 'mobile-menu' ),
|
443 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
444 |
'disabled' => __( 'No', 'mobile-menu' ),
|
445 |
+
'class' => 'header-options',
|
446 |
) );
|
447 |
// Header Height.
|
448 |
+
$general_tab->createOption( array(
|
449 |
'name' => __( 'Header Height', 'mobile-menu' ),
|
450 |
'id' => 'header_height',
|
451 |
'type' => 'number',
|
454 |
'max' => '500',
|
455 |
'min' => '20',
|
456 |
'unit' => 'px',
|
457 |
+
'class' => 'header-options',
|
458 |
) );
|
459 |
// Header Text.
|
460 |
+
$general_tab->createOption( array(
|
461 |
'name' => __( 'Header Text', 'mobile-menu' ),
|
462 |
'id' => 'header_text',
|
463 |
'type' => 'text',
|
464 |
'desc' => __( 'Enter the desired text for the Mobile Header. If not specified it will use the site title.', 'mobile-menu' ),
|
465 |
'default' => '',
|
466 |
+
'class' => 'header-options',
|
467 |
) );
|
468 |
// Header Text Font Size.
|
469 |
+
$general_tab->createOption( array(
|
470 |
'name' => __( 'Header Text Font Size', 'mobile-menu' ),
|
471 |
'id' => 'header_font_size',
|
472 |
'type' => 'number',
|
475 |
'max' => '100',
|
476 |
'min' => '5',
|
477 |
'unit' => 'px',
|
478 |
+
'class' => 'header-options',
|
479 |
) );
|
480 |
// Header Logo/Text Alignment.
|
481 |
+
$general_tab->createOption( array(
|
482 |
'name' => 'Header Logo/Text Alignment',
|
483 |
'id' => 'header_text_align',
|
484 |
'type' => 'select',
|
489 |
'right' => __( 'Right', 'mobile-menu' ),
|
490 |
),
|
491 |
'default' => 'center',
|
492 |
+
'class' => 'header-options',
|
493 |
) );
|
494 |
// Header Logo/Text Left Margin.
|
495 |
+
$general_tab->createOption( array(
|
496 |
'name' => __( 'Header Logo/Text Left Margin', 'mobile-menu' ),
|
497 |
'id' => 'header_text_left_margin',
|
498 |
'type' => 'number',
|
501 |
'max' => '200',
|
502 |
'min' => '0',
|
503 |
'unit' => 'px',
|
504 |
+
'class' => 'header-options',
|
505 |
) );
|
506 |
// Header Logo/Text Right Margin.
|
507 |
+
$general_tab->createOption( array(
|
508 |
'name' => __( 'Header Logo/Text Right Margin', 'mobile-menu' ),
|
509 |
'id' => 'header_text_right_margin',
|
510 |
'type' => 'number',
|
513 |
'max' => '200',
|
514 |
'min' => '0',
|
515 |
'unit' => 'px',
|
516 |
+
'class' => 'header-options',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
517 |
) );
|
518 |
$header_branding = array(
|
519 |
'logo' => __( 'Logo', 'mobile-menu' ),
|
527 |
}
|
528 |
|
529 |
// Use the page title in the Header or Header Banner(global Option).
|
530 |
+
$general_tab->createOption( array(
|
531 |
'name' => __( 'Site Logo', 'mobile-menu' ),
|
532 |
'id' => 'header_branding',
|
533 |
'type' => 'select',
|
534 |
'desc' => __( 'Chose the Header Branding ( Logo/Text ).', 'mobile-menu' ),
|
535 |
'options' => $header_branding,
|
536 |
'default' => $default_header_branding,
|
537 |
+
'class' => 'logo-options',
|
538 |
) );
|
539 |
// Site Logo Image.
|
540 |
+
$general_tab->createOption( array(
|
541 |
'name' => __( 'Logo', 'mobile-menu' ),
|
542 |
'id' => 'logo_img',
|
543 |
'type' => 'upload',
|
544 |
'desc' => __( 'Upload your logo image', 'mobile-menu' ),
|
545 |
'default' => '',
|
546 |
+
'class' => 'logo-options',
|
547 |
) );
|
548 |
// Header Height.
|
549 |
+
$general_tab->createOption( array(
|
550 |
'name' => __( 'Logo Height', 'mobile-menu' ),
|
551 |
'id' => 'logo_height',
|
552 |
'type' => 'number',
|
555 |
'max' => '500',
|
556 |
'min' => '0',
|
557 |
'unit' => 'px',
|
558 |
+
'class' => 'logo-options',
|
559 |
) );
|
560 |
// Site Logo Retina Image.
|
561 |
+
$general_tab->createOption( array(
|
562 |
'name' => __( 'Retina Logo', 'mobile-menu' ),
|
563 |
'id' => 'logo_img_retina',
|
564 |
'type' => 'upload',
|
565 |
'desc' => __( 'Upload your logo image for retina devices', 'mobile-menu' ),
|
566 |
'default' => '',
|
567 |
+
'class' => 'logo-options',
|
568 |
) );
|
569 |
// Enable/Disable Logo Url.
|
570 |
+
$general_tab->createOption( array(
|
571 |
'name' => __( 'Disable Logo URL ', 'mobile-menu' ),
|
572 |
'id' => 'disabled_logo_url',
|
573 |
'type' => 'enable',
|
575 |
'desc' => __( 'Choose if you want to disable the logo url to avoid being redirect to the homepage or alternative home url when touching the header logo.', 'mobile-menu' ),
|
576 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
577 |
'disabled' => __( 'No', 'mobile-menu' ),
|
578 |
+
'class' => 'logo-options',
|
579 |
) );
|
580 |
// Alternative Site URL.
|
581 |
+
$general_tab->createOption( array(
|
582 |
'name' => __( 'Alternative Logo URL', 'mobile-menu' ),
|
583 |
'id' => 'logo_url',
|
584 |
'type' => 'text',
|
585 |
'desc' => __( 'Enter you alternative logo URL. If you leave it blank it will use the Site URL.', 'mobile-menu' ),
|
586 |
'default' => '',
|
587 |
+
'class' => 'logo-options',
|
588 |
) );
|
589 |
// Logo/text Top Margin.
|
590 |
+
$general_tab->createOption( array(
|
591 |
'name' => __( 'Logo/Text Top Margin', 'mobile-menu' ),
|
592 |
'id' => 'logo_top_margin',
|
593 |
'type' => 'number',
|
596 |
'max' => '450',
|
597 |
'min' => '0',
|
598 |
'unit' => 'px',
|
599 |
+
'class' => 'logo-options',
|
600 |
) );
|
601 |
$def_value = $titan->getOption( 'header_font_size' );
|
602 |
|
606 |
$def_value = '';
|
607 |
}
|
608 |
|
609 |
+
$general_tab->createOption( array(
|
610 |
'name' => __( 'Header Menu Font', 'mobile-menu' ),
|
611 |
'id' => 'header_menu_font',
|
612 |
'type' => 'font',
|
623 |
'font-family' => 'Dosis',
|
624 |
'font-size' => $def_value,
|
625 |
),
|
626 |
+
'class' => 'font-options header-options',
|
|
|
|
|
|
|
627 |
) );
|
628 |
// Click Menu Parent link to open Sub menu.
|
629 |
+
$general_tab->createOption( array(
|
630 |
'name' => __( 'Parent Link open submenu', 'mobile-menu' ),
|
631 |
'id' => 'left_menu_parent_link_submenu',
|
632 |
'type' => 'enable',
|
634 |
'desc' => __( 'Choose if you want to open the submenu by click in the Parent Menu item.', 'mobile-menu' ),
|
635 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
636 |
'disabled' => __( 'No', 'mobile-menu' ),
|
637 |
+
'class' => 'left-menu-options',
|
638 |
) );
|
639 |
|
640 |
if ( true === $titan->getOption( 'left_menu_icon_opt' ) ) {
|
644 |
}
|
645 |
|
646 |
// Icon Image/text Option.
|
647 |
+
$general_tab->createOption( array(
|
648 |
'name' => __( 'Icon Type', 'mobile-menu' ),
|
649 |
'id' => 'left_menu_icon_new',
|
650 |
'type' => 'select',
|
651 |
'default' => $icon_type,
|
652 |
'desc' => __( 'Choose if you want to display an image, icon or an animated icon.', 'mobile-menu' ),
|
653 |
'options' => $icon_types,
|
654 |
+
'class' => 'left-menu-icon',
|
655 |
) );
|
656 |
// Left Menu Icon Font.
|
657 |
+
$general_tab->createOption( array(
|
658 |
'name' => __( 'Icon Font', 'mobile-menu' ),
|
659 |
'id' => 'left_menu_icon_font',
|
660 |
'type' => 'text',
|
661 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
662 |
'default' => 'menu',
|
663 |
+
'class' => 'left-menu-icon',
|
664 |
) );
|
665 |
// Left Menu Icon Font Size.
|
666 |
+
$general_tab->createOption( array(
|
667 |
'name' => __( 'Icon Font Size', 'mobile-menu' ),
|
668 |
'id' => 'left_icon_font_size',
|
669 |
'type' => 'number',
|
672 |
'max' => '100',
|
673 |
'min' => '0',
|
674 |
'unit' => 'px',
|
675 |
+
'class' => 'left-menu-icon',
|
676 |
) );
|
677 |
// Left Menu Icon.
|
678 |
+
$general_tab->createOption( array(
|
679 |
'name' => __( 'Icon Image', 'mobile-menu' ),
|
680 |
'id' => 'left_menu_icon',
|
681 |
'type' => 'upload',
|
682 |
'placeholder' => 'Click here to select the icon',
|
683 |
'desc' => __( 'Upload your left menu icon image', 'mobile-menu' ),
|
684 |
'default' => 'menu',
|
685 |
+
'class' => 'left-menu-icon',
|
686 |
) );
|
687 |
// Text After Left Icon.
|
688 |
+
$general_tab->createOption( array(
|
689 |
'name' => __( 'Text After Icon', 'mobile-menu' ),
|
690 |
'id' => 'left_menu_text',
|
691 |
'type' => 'text',
|
692 |
'desc' => __( 'Enter the text that will appear after the Icon.', 'mobile-menu' ),
|
693 |
'default' => '',
|
694 |
+
'class' => 'left-menu-icon',
|
695 |
) );
|
696 |
// Text After Left Icon Font Options.
|
697 |
+
$general_tab->createOption( array(
|
698 |
'name' => __( 'Text After Icon Font', 'mobile-menu' ),
|
699 |
'id' => 'text_after_left_icon_font',
|
700 |
'type' => 'font',
|
711 |
'line-height' => '1.5em',
|
712 |
'font-family' => 'Dosis',
|
713 |
),
|
714 |
+
'class' => 'font-options left-menu-icon',
|
715 |
) );
|
716 |
// Icon Action Option.
|
717 |
+
$general_tab->createOption( array(
|
718 |
'name' => __( 'Icon Action', 'mobile-menu' ),
|
719 |
'id' => 'left_menu_icon_action',
|
720 |
'type' => 'enable',
|
722 |
'desc' => __( 'Open the Left Menu Panel or open a Link url.', 'mobile-menu' ),
|
723 |
'enabled' => __( 'Open Menu', 'mobile-menu' ),
|
724 |
'disabled' => __( 'Open Link Url', 'mobile-menu' ),
|
725 |
+
'class' => 'left-menu-icon',
|
726 |
) );
|
727 |
// Icon URL.
|
728 |
+
$general_tab->createOption( array(
|
729 |
'name' => __( 'Icon Link URL', 'mobile-menu' ),
|
730 |
'id' => 'left_icon_url',
|
731 |
'type' => 'text',
|
732 |
'desc' => __( 'Enter the Icon Link Url.', 'mobile-menu' ),
|
733 |
'default' => '',
|
734 |
+
'class' => 'left-menu-icon',
|
735 |
) );
|
736 |
// Icon URL Target.
|
737 |
+
$general_tab->createOption( array(
|
738 |
'name' => __( 'Icon Link Url Target', 'mobile-menu' ),
|
739 |
'id' => 'left_icon_url_target',
|
740 |
'type' => 'enable',
|
742 |
'desc' => __( 'Choose it the link will open in the same window or in the new window.', 'mobile-menu' ),
|
743 |
'enabled' => 'Self',
|
744 |
'disabled' => 'Blank',
|
745 |
+
'class' => 'left-menu-icon',
|
746 |
) );
|
747 |
// Left Menu Icon Top Margin.
|
748 |
+
$general_tab->createOption( array(
|
749 |
'name' => __( 'Icon Top Margin', 'mobile-menu' ),
|
750 |
'id' => 'left_icon_top_margin',
|
751 |
'type' => 'number',
|
754 |
'max' => '450',
|
755 |
'min' => '0',
|
756 |
'unit' => 'px',
|
757 |
+
'class' => 'left-menu-icon',
|
758 |
) );
|
759 |
// Left Menu Icon Left Margin.
|
760 |
+
$general_tab->createOption( array(
|
761 |
'name' => __( 'Icon Left Margin', 'mobile-menu' ),
|
762 |
'id' => 'left_icon_left_margin',
|
763 |
'type' => 'number',
|
766 |
'max' => '450',
|
767 |
'min' => '0',
|
768 |
'unit' => 'px',
|
769 |
+
'class' => 'left-menu-icon',
|
|
|
|
|
|
|
770 |
) );
|
771 |
// Left Menu Background Image.
|
772 |
+
$general_tab->createOption( array(
|
773 |
+
'name' => __( 'Panel Background Image', 'mobile-menu' ),
|
774 |
+
'id' => 'left_menu_bg_image',
|
775 |
+
'type' => 'upload',
|
776 |
+
'desc' => __( 'Upload your left menu background image(this will override the Background color option)', 'mobile-menu' ),
|
777 |
+
'class' => 'left-panel-options',
|
778 |
) );
|
779 |
// Left Menu Background Image Opacity.
|
780 |
+
$general_tab->createOption( array(
|
781 |
'name' => __( 'Panel Background Image Opacity', 'mobile-menu' ),
|
782 |
'id' => 'left_menu_bg_opacity',
|
783 |
'type' => 'number',
|
787 |
'min' => '10',
|
788 |
'step' => '10',
|
789 |
'unit' => '%',
|
790 |
+
'class' => 'left-panel-options',
|
791 |
) );
|
792 |
// Left Menu Background Image Size.
|
793 |
+
$general_tab->createOption( array(
|
794 |
'name' => __( 'Panel Background Image Size', 'mobile-menu' ),
|
795 |
'id' => 'left_menu_bg_image_size',
|
796 |
'type' => 'upload',
|
805 |
'unset' => __( 'Unset', 'mobile-menu' ),
|
806 |
),
|
807 |
'default' => 'cover',
|
808 |
+
'class' => 'left-panel-options',
|
809 |
) );
|
810 |
// Left Menu Gradient css.
|
811 |
+
$general_tab->createOption( array(
|
812 |
'name' => __( 'Panel Background Gradient Css', 'mobile-menu' ),
|
813 |
'id' => 'left_menu_bg_gradient',
|
814 |
'type' => 'text',
|
815 |
'desc' => __( '<a href="https://webgradients.com/" target="_blank">Click here</a> to get your desired Gradient, just press the copy button and paste in this field.', 'mobile-menu' ),
|
816 |
'default' => '',
|
817 |
+
'class' => 'left-panel-options',
|
818 |
) );
|
819 |
// Left Menu Panel Width Units.
|
820 |
+
$general_tab->createOption( array(
|
821 |
'name' => __( 'Menu Panel Width Units', 'mobile-menu' ),
|
822 |
'id' => 'left_menu_width_units',
|
823 |
'type' => 'enable',
|
825 |
'desc' => __( 'Choose the width units.', 'mobile-menu' ),
|
826 |
'enabled' => 'Pixels',
|
827 |
'disabled' => __( 'Percentage', 'mobile-menu' ),
|
828 |
+
'class' => 'left-panel-options',
|
829 |
) );
|
830 |
// Left Menu Panel Width.
|
831 |
+
$general_tab->createOption( array(
|
832 |
'name' => __( 'Menu Panel Width(Pixels)', 'mobile-menu' ),
|
833 |
'id' => 'left_menu_width',
|
834 |
'type' => 'number',
|
837 |
'max' => '1000',
|
838 |
'min' => '50',
|
839 |
'unit' => 'px',
|
840 |
+
'class' => 'left-panel-options',
|
841 |
) );
|
842 |
// Left Menu Panel Width.
|
843 |
+
$general_tab->createOption( array(
|
844 |
'name' => __( 'Menu Panel Width(Percentage)', 'mobile-menu' ),
|
845 |
'id' => 'left_menu_width_percentage',
|
846 |
'type' => 'number',
|
849 |
'max' => '90',
|
850 |
'min' => '0',
|
851 |
'unit' => '%',
|
852 |
+
'class' => 'left-panel-options',
|
853 |
) );
|
854 |
// Left Menu Content Padding.
|
855 |
+
$general_tab->createOption( array(
|
856 |
'name' => __( 'Left Menu Content Padding', 'mobile-menu' ),
|
857 |
'id' => 'left_menu_content_padding',
|
858 |
'type' => 'number',
|
862 |
'min' => '0',
|
863 |
'step' => '1',
|
864 |
'unit' => '%',
|
865 |
+
'class' => 'left-panel-options',
|
866 |
) );
|
867 |
// Left Menu Font.
|
868 |
+
$general_tab->createOption( array(
|
869 |
'name' => __( 'Left Menu Font', 'mobile-menu' ),
|
870 |
'id' => 'left_menu_font',
|
871 |
'type' => 'font',
|
882 |
'line-height' => '1.5em',
|
883 |
'font-family' => 'Dosis',
|
884 |
),
|
885 |
+
'class' => 'font-options left-panel-options',
|
|
|
|
|
|
|
|
|
886 |
) );
|
887 |
// Click Menu Parent link to open Sub menu.
|
888 |
+
$general_tab->createOption( array(
|
889 |
'name' => __( 'Parent Link open submenu', 'mobile-menu' ),
|
890 |
'id' => 'right_menu_parent_link_submenu',
|
891 |
'type' => 'enable',
|
893 |
'desc' => __( 'Choose if you want to open the submenu by click in the Parent Menu item.', 'mobile-menu' ),
|
894 |
'enabled' => __( 'Yes', 'mobile-menu' ),
|
895 |
'disabled' => __( 'No', 'mobile-menu' ),
|
896 |
+
'class' => 'right-menu-options',
|
897 |
) );
|
898 |
|
899 |
if ( true === $titan->getOption( 'right_menu_icon_opt' ) ) {
|
903 |
}
|
904 |
|
905 |
// Icon Image/text Option.
|
906 |
+
$general_tab->createOption( array(
|
907 |
'name' => __( 'Icon Type', 'mobile-menu' ),
|
908 |
'id' => 'right_menu_icon_new',
|
909 |
'type' => 'select',
|
910 |
'default' => $icon_type,
|
911 |
'desc' => __( 'Choose if you want to display an image, icon or an animated icon.', 'mobile-menu' ),
|
912 |
'options' => $icon_types,
|
913 |
+
'class' => 'right-menu-icon',
|
914 |
) );
|
915 |
// Right Menu Icon Font.
|
916 |
+
$general_tab->createOption( array(
|
917 |
'name' => __( 'Icon Font', 'mobile-menu' ),
|
918 |
'id' => 'right_menu_icon_font',
|
919 |
'type' => 'text',
|
920 |
'desc' => __( '<div class="mobmenu-icon-holder"></div><a href="#" class="mobmenu-icon-picker button">Select menu icon</a>', 'mobile-menu' ),
|
921 |
'default' => 'menu',
|
922 |
+
'class' => 'right-menu-icon',
|
923 |
) );
|
924 |
// Right Menu Icon Font Size.
|
925 |
+
$general_tab->createOption( array(
|
926 |
'name' => __( 'Icon Font Size', 'mobile-menu' ),
|
927 |
'id' => 'right_icon_font_size',
|
928 |
'type' => 'number',
|
931 |
'max' => '100',
|
932 |
'min' => '0',
|
933 |
'unit' => 'px',
|
934 |
+
'class' => 'right-menu-icon',
|
935 |
) );
|
936 |
// Right Menu Icon.
|
937 |
+
$general_tab->createOption( array(
|
938 |
'name' => __( 'Icon Image', 'mobile-menu' ),
|
939 |
'id' => 'right_menu_icon',
|
940 |
'type' => 'upload',
|
941 |
'desc' => __( 'Upload your right menu icon image', 'mobile-menu' ),
|
942 |
'default' => 'menu',
|
943 |
+
'class' => 'right-menu-icon',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
944 |
) );
|
945 |
// Icon Action Option.
|
946 |
+
$general_tab->createOption( array(
|
947 |
'name' => __( 'Icon Action', 'mobile-menu' ),
|
948 |
'id' => 'right_menu_icon_action',
|
949 |
'type' => 'enable',
|
951 |
'desc' => __( 'Open the Right Menu Panel or open a Link url.', 'mobile-menu' ),
|
952 |
'enabled' => __( 'Open Menu', 'mobile-menu' ),
|
953 |
'disabled' => __( 'Open Link Url', 'mobile-menu' ),
|
954 |
+
'class' => 'right-menu-icon',
|
955 |
+
) );
|
956 |
+
// Text Before Right Icon.
|
957 |
+
$general_tab->createOption( array(
|
958 |
+
'name' => __( 'Text Before Icon', 'mobile-menu' ),
|
959 |
+
'id' => 'right_menu_text',
|
960 |
+
'type' => 'text',
|
961 |
+
'desc' => __( 'Enter the text that will appear before the Icon.', 'mobile-menu' ),
|
962 |
+
'default' => '',
|
963 |
+
'class' => 'right-menu-icon',
|
964 |
) );
|
965 |
// Text Before Right Icon Font Options.
|
966 |
+
$general_tab->createOption( array(
|
967 |
'name' => __( 'Text Before Icon Font', 'mobile-menu' ),
|
968 |
'id' => 'text_before_right_icon_font',
|
969 |
'type' => 'font',
|
981 |
'line-height' => '1.5em',
|
982 |
'font-family' => 'Dosis',
|
983 |
),
|
984 |
+
'class' => 'font-options right-menu-icon',
|
985 |
) );
|
986 |
// Icon URL.
|
987 |
+
$general_tab->createOption( array(
|
988 |
'name' => __( 'Icon Link URL', 'mobile-menu' ),
|
989 |
'id' => 'right_icon_url',
|
990 |
'type' => 'text',
|
991 |
'desc' => __( 'Enter the Icon Link Url.', 'mobile-menu' ),
|
992 |
'default' => '',
|
993 |
+
'class' => 'right-menu-icon',
|
994 |
) );
|
995 |
// Icon URL Target.
|
996 |
+
$general_tab->createOption( array(
|
997 |
'name' => __( 'Icon Link Url Target', 'mobile-menu' ),
|
998 |
'id' => 'right_icon_url_target',
|
999 |
'type' => 'enable',
|
1001 |
'desc' => __( 'Choose it the link will open in the same window or in the new window.', 'mobile-menu' ),
|
1002 |
'enabled' => 'Self',
|
1003 |
'disabled' => 'Blank',
|
1004 |
+
'class' => 'right-menu-icon',
|
1005 |
) );
|
1006 |
// Right Menu Icon Top Margin.
|
1007 |
+
$general_tab->createOption( array(
|
1008 |
'name' => __( 'Icon Top Margin', 'mobile-menu' ),
|
1009 |
'id' => 'right_icon_top_margin',
|
1010 |
'type' => 'number',
|
1013 |
'max' => '450',
|
1014 |
'min' => '0',
|
1015 |
'unit' => 'px',
|
1016 |
+
'class' => 'right-menu-icon',
|
1017 |
) );
|
1018 |
// Right Menu Icon Right Margin.
|
1019 |
+
$general_tab->createOption( array(
|
1020 |
'name' => __( 'Icon Right Margin', 'mobile-menu' ),
|
1021 |
'id' => 'right_icon_right_margin',
|
1022 |
'type' => 'number',
|
1025 |
'max' => '450',
|
1026 |
'min' => '0',
|
1027 |
'unit' => 'px',
|
1028 |
+
'class' => 'right-menu-icon',
|
|
|
|
|
|
|
|
|
1029 |
) );
|
1030 |
// Right Menu Background Image.
|
1031 |
+
$general_tab->createOption( array(
|
1032 |
+
'name' => __( 'Panel Background Image', 'mobile-menu' ),
|
1033 |
+
'id' => 'right_menu_bg_image',
|
1034 |
+
'type' => 'upload',
|
1035 |
+
'desc' => __( 'upload your right menu background image(this will override the Background color option)', 'mobile-menu' ),
|
1036 |
+
'class' => 'right-panel-options',
|
1037 |
) );
|
1038 |
// Right Menu Background Image Opacity.
|
1039 |
+
$general_tab->createOption( array(
|
1040 |
'name' => __( 'Panel Background Image Opacity', 'mobile-menu' ),
|
1041 |
'id' => 'right_menu_bg_opacity',
|
1042 |
'type' => 'number',
|
1046 |
'min' => '10',
|
1047 |
'step' => '10',
|
1048 |
'unit' => '%',
|
1049 |
+
'class' => 'right-panel-options',
|
1050 |
) );
|
1051 |
// Left Menu Background Image Size.
|
1052 |
+
$general_tab->createOption( array(
|
1053 |
'name' => __( 'Panel Background Image Size', 'mobile-menu' ),
|
1054 |
'id' => 'right_menu_bg_image_size',
|
1055 |
'type' => 'select',
|
1063 |
'unset' => __( 'Unset', 'mobile-menu' ),
|
1064 |
),
|
1065 |
'default' => 'cover',
|
1066 |
+
'class' => 'right-panel-options',
|
1067 |
) );
|
1068 |
// Right Menu Gradient css.
|
1069 |
+
$general_tab->createOption( array(
|
1070 |
'name' => __( 'Panel Background Gradient Css', 'mobile-menu' ),
|
1071 |
'id' => 'right_menu_bg_gradient',
|
1072 |
'type' => 'text',
|
1073 |
'desc' => __( '<a href="https://webgradients.com/" target="_blank">Click here</a> to get your desired Gradient, just press the copy button and paste in this field.', 'mobile-menu' ),
|
1074 |
'default' => '',
|
1075 |
+
'class' => 'right-panel-options',
|
1076 |
) );
|
1077 |
// Right Menu Panel Width Units.
|
1078 |
+
$general_tab->createOption( array(
|
1079 |
'name' => __( 'Menu Panel Width Units', 'mobile-menu' ),
|
1080 |
'id' => 'right_menu_width_units',
|
1081 |
'type' => 'enable',
|
1083 |
'desc' => __( 'Choose the width units.', 'mobile-menu' ),
|
1084 |
'enabled' => __( 'Pixels', 'mobile-menu' ),
|
1085 |
'disabled' => __( 'Percentage', 'mobile-menu' ),
|
1086 |
+
'class' => 'right-panel-options',
|
1087 |
) );
|
1088 |
// Right Menu Panel Width.
|
1089 |
+
$general_tab->createOption( array(
|
1090 |
'name' => __( 'Menu Panel Width(Pixels)', 'mobile-menu' ),
|
1091 |
'id' => 'right_menu_width',
|
1092 |
'type' => 'number',
|
1095 |
'max' => '450',
|
1096 |
'min' => '50',
|
1097 |
'unit' => 'px',
|
1098 |
+
'class' => 'right-panel-options',
|
1099 |
) );
|
1100 |
// Right Menu Panel Width.
|
1101 |
+
$general_tab->createOption( array(
|
1102 |
'name' => __( 'Menu Panel Width(Percentage)', 'mobile-menu' ),
|
1103 |
'id' => 'right_menu_width_percentage',
|
1104 |
'type' => 'number',
|
1107 |
'max' => '90',
|
1108 |
'min' => '0',
|
1109 |
'unit' => '%',
|
1110 |
+
'class' => 'right-panel-options',
|
1111 |
) );
|
1112 |
// Right Menu Content Padding.
|
1113 |
+
$general_tab->createOption( array(
|
1114 |
'name' => __( 'Right Menu Content Padding', 'mobile-menu' ),
|
1115 |
'id' => 'right_menu_content_padding',
|
1116 |
'type' => 'number',
|
1120 |
'min' => '0',
|
1121 |
'step' => '1',
|
1122 |
'unit' => '%',
|
1123 |
+
'class' => 'right-panel-options',
|
1124 |
) );
|
1125 |
// Right Menu Font.
|
1126 |
+
$general_tab->createOption( array(
|
1127 |
'name' => __( 'Right Menu Font', 'mobile-menu' ),
|
1128 |
'id' => 'right_menu_font',
|
1129 |
'type' => 'font',
|
1141 |
'line-height' => '1.5em',
|
1142 |
'font-family' => 'Dosis',
|
1143 |
),
|
1144 |
+
'class' => 'font-options right-panel-options',
|
|
|
|
|
|
|
|
|
1145 |
) );
|
1146 |
// Overlay Background color.
|
1147 |
+
$general_tab->createOption( array(
|
1148 |
'name' => __( 'Overlay Background Color', 'mobile-menu' ),
|
1149 |
'id' => 'overlay_bg_color',
|
1150 |
'type' => 'color',
|
1151 |
'desc' => '',
|
1152 |
'alpha' => true,
|
1153 |
'default' => 'rgba(0, 0, 0, 0.83)',
|
1154 |
+
'class' => 'colors-options',
|
1155 |
) );
|
1156 |
// Menu Items Border color.
|
1157 |
+
$general_tab->createOption( array(
|
1158 |
'name' => __( 'Menu Items Border Color', 'mobile-menu' ),
|
1159 |
'id' => 'menu_items_border_color',
|
1160 |
'type' => 'color',
|
1161 |
'desc' => '',
|
1162 |
'alpha' => true,
|
1163 |
'default' => 'rgba(0, 0, 0, 0.83)',
|
1164 |
+
'class' => 'colors-options',
|
|
|
|
|
|
|
|
|
1165 |
) );
|
1166 |
// Header Background color.
|
1167 |
+
$general_tab->createOption( array(
|
1168 |
'name' => __( 'Header Background Color', 'mobile-menu' ),
|
1169 |
'id' => 'header_bg_color',
|
1170 |
'type' => 'color',
|
1171 |
'desc' => '',
|
1172 |
'alpha' => true,
|
1173 |
'default' => '#111111',
|
1174 |
+
'class' => 'header-colors',
|
1175 |
) );
|
1176 |
// Header Text color.
|
1177 |
+
$general_tab->createOption( array(
|
1178 |
'name' => __( 'Header Text Color', 'mobile-menu' ),
|
1179 |
'id' => 'header_text_color',
|
1180 |
'type' => 'color',
|
1181 |
'desc' => '',
|
1182 |
'alpha' => true,
|
1183 |
'default' => '#FFF',
|
1184 |
+
'class' => 'header-colors',
|
1185 |
) );
|
1186 |
+
$general_tab->createOption( array(
|
1187 |
+
'name' => __( 'Alerts', 'mobile-menu' ),
|
1188 |
+
'type' => 'note',
|
1189 |
+
'class' => 'general-alerts heading',
|
1190 |
) );
|
1191 |
// Left Menu Icon color.
|
1192 |
+
$general_tab->createOption( array(
|
1193 |
'name' => __( 'Left Menu Icon Color', 'mobile-menu' ),
|
1194 |
'id' => 'left_menu_icon_color',
|
1195 |
'type' => 'color',
|
1196 |
'desc' => '',
|
1197 |
'alpha' => true,
|
1198 |
'default' => '#FFF',
|
1199 |
+
'class' => 'left-menu-colors',
|
1200 |
) );
|
1201 |
// Header Text After Left Icon.
|
1202 |
+
$general_tab->createOption( array(
|
1203 |
'name' => __( 'Text After Left Icon', 'mobile-menu' ),
|
1204 |
'id' => 'header_text_after_icon',
|
1205 |
'type' => 'color',
|
1206 |
'desc' => '',
|
1207 |
'alpha' => true,
|
1208 |
'default' => '#222',
|
1209 |
+
'class' => 'left-menu-colors',
|
1210 |
) );
|
1211 |
// Left Panel Background color.
|
1212 |
+
$general_tab->createOption( array(
|
1213 |
'name' => __( 'Background Color', 'mobile-menu' ),
|
1214 |
'id' => 'left_panel_bg_color',
|
1215 |
'type' => 'color',
|
1216 |
'desc' => '',
|
1217 |
'alpha' => true,
|
1218 |
'default' => '#F7F7F7',
|
1219 |
+
'class' => 'left-menu-colors',
|
1220 |
) );
|
1221 |
// Left Panel Text color.
|
1222 |
+
$general_tab->createOption( array(
|
1223 |
'name' => __( 'Text Color', 'mobile-menu' ),
|
1224 |
'id' => 'left_panel_text_color',
|
1225 |
'type' => 'color',
|
1226 |
'desc' => '',
|
1227 |
'alpha' => true,
|
1228 |
'default' => '#666',
|
1229 |
+
'class' => 'left-menu-colors',
|
1230 |
) );
|
1231 |
// Left Panel Background Hover Color.
|
1232 |
+
$general_tab->createOption( array(
|
1233 |
'name' => __( 'Background Hover Color', 'mobile-menu' ),
|
1234 |
'id' => 'left_panel_hover_bgcolor',
|
1235 |
'type' => 'color',
|
1236 |
'desc' => '',
|
1237 |
'alpha' => true,
|
1238 |
'default' => '#666',
|
1239 |
+
'class' => 'left-menu-colors',
|
1240 |
) );
|
1241 |
// Left Panel Text color Hover.
|
1242 |
+
$general_tab->createOption( array(
|
1243 |
'name' => __( 'Hover Text Color', 'mobile-menu' ),
|
1244 |
'id' => 'left_panel_hover_text_color',
|
1245 |
'type' => 'color',
|
1246 |
'desc' => '',
|
1247 |
'alpha' => true,
|
1248 |
'default' => '#FFF',
|
1249 |
+
'class' => 'left-menu-colors',
|
1250 |
) );
|
1251 |
// Left Panel Sub-menu Background Color.
|
1252 |
+
$general_tab->createOption( array(
|
1253 |
'name' => __( 'Submenu Background Color', 'mobile-menu' ),
|
1254 |
'id' => 'left_panel_submenu_bgcolor',
|
1255 |
'type' => 'color',
|
1256 |
'desc' => '',
|
1257 |
'alpha' => true,
|
1258 |
'default' => '#3a3a3a',
|
1259 |
+
'class' => 'left-menu-colors',
|
1260 |
) );
|
1261 |
// Left Panel Sub-menu Text Color.
|
1262 |
+
$general_tab->createOption( array(
|
1263 |
'name' => __( 'Submenu Text Color', 'mobile-menu' ),
|
1264 |
'id' => 'left_panel_submenu_text_color',
|
1265 |
'type' => 'color',
|
1266 |
'desc' => '',
|
1267 |
'alpha' => true,
|
1268 |
'default' => '#fff',
|
1269 |
+
'class' => 'left-menu-colors',
|
1270 |
) );
|
1271 |
// Left Panel Cancel Button Color.
|
1272 |
+
$general_tab->createOption( array(
|
1273 |
'name' => __( 'Cancel Button Color', 'mobile-menu' ),
|
1274 |
'id' => 'left_panel_cancel_button_color',
|
1275 |
'type' => 'color',
|
1276 |
'desc' => '',
|
1277 |
'alpha' => true,
|
1278 |
'default' => '#666',
|
1279 |
+
'class' => 'left-menu-colors',
|
|
|
|
|
|
|
|
|
1280 |
) );
|
1281 |
// Right Menu Icon color.
|
1282 |
+
$general_tab->createOption( array(
|
1283 |
'name' => __( 'Right Menu Icon Color', 'mobile-menu' ),
|
1284 |
'id' => 'right_menu_icon_color',
|
1285 |
'type' => 'color',
|
1286 |
'desc' => '',
|
1287 |
'alpha' => true,
|
1288 |
'default' => '#FFF',
|
1289 |
+
'class' => 'right-menu-colors',
|
1290 |
) );
|
1291 |
// Header Text Before Right Icon.
|
1292 |
+
$general_tab->createOption( array(
|
1293 |
'name' => __( 'Text Before Right Icon', 'mobile-menu' ),
|
1294 |
'id' => 'header_text_before_icon',
|
1295 |
'type' => 'color',
|
1296 |
'desc' => '',
|
1297 |
'alpha' => true,
|
1298 |
'default' => '#222',
|
1299 |
+
'class' => 'right-menu-colors',
|
1300 |
) );
|
1301 |
// Right Panel Background color.
|
1302 |
+
$general_tab->createOption( array(
|
1303 |
'name' => __( 'Background Color', 'mobile-menu' ),
|
1304 |
'id' => 'right_panel_bg_color',
|
1305 |
'type' => 'color',
|
1306 |
'desc' => '',
|
1307 |
'alpha' => true,
|
1308 |
'default' => '#F7F7F7',
|
1309 |
+
'class' => 'right-menu-colors',
|
1310 |
) );
|
1311 |
// Right Panel Text color.
|
1312 |
+
$general_tab->createOption( array(
|
1313 |
'name' => __( 'Text Color', 'mobile-menu' ),
|
1314 |
'id' => 'right_panel_text_color',
|
1315 |
'type' => 'color',
|
1316 |
'desc' => '',
|
1317 |
'alpha' => true,
|
1318 |
'default' => '#666',
|
1319 |
+
'class' => 'right-menu-colors',
|
1320 |
) );
|
1321 |
// Right Panel Background Hover Color.
|
1322 |
+
$general_tab->createOption( array(
|
1323 |
'name' => __( 'Background Hover Color', 'mobile-menu' ),
|
1324 |
'id' => 'right_panel_hover_bgcolor',
|
1325 |
'type' => 'color',
|
1326 |
'desc' => '',
|
1327 |
'alpha' => true,
|
1328 |
'default' => '#666',
|
1329 |
+
'class' => 'right-menu-colors',
|
1330 |
) );
|
1331 |
// Right Panel Text color Hover.
|
1332 |
+
$general_tab->createOption( array(
|
1333 |
'name' => __( 'Hover Text Color', 'mobile-menu' ),
|
1334 |
'id' => 'right_panel_hover_text_color',
|
1335 |
'type' => 'color',
|
1336 |
'desc' => '',
|
1337 |
'alpha' => true,
|
1338 |
'default' => '#FFF',
|
1339 |
+
'class' => 'right-menu-colors',
|
1340 |
) );
|
1341 |
// Right Panel Sub-menu Background Color.
|
1342 |
+
$general_tab->createOption( array(
|
1343 |
'name' => __( 'Submenu Background Color', 'mobile-menu' ),
|
1344 |
'id' => 'right_panel_submenu_bgcolor',
|
1345 |
'type' => 'color',
|
1346 |
'desc' => '',
|
1347 |
'alpha' => true,
|
1348 |
'default' => '#3a3a3a',
|
1349 |
+
'class' => 'right-menu-colors',
|
1350 |
) );
|
1351 |
// Right Panel Sub-menu Text Color.
|
1352 |
+
$general_tab->createOption( array(
|
1353 |
'name' => __( 'Submenu Text Color', 'mobile-menu' ),
|
1354 |
'id' => 'right_panel_submenu_text_color',
|
1355 |
'type' => 'color',
|
1356 |
'desc' => '',
|
1357 |
'alpha' => true,
|
1358 |
'default' => '#fff',
|
1359 |
+
'class' => 'right-menu-colors',
|
1360 |
) );
|
1361 |
// Right Panel Cancel Button Color.
|
1362 |
+
$general_tab->createOption( array(
|
1363 |
'name' => __( 'Cancel Button Color', 'mobile-menu' ),
|
1364 |
'id' => 'right_panel_cancel_button_color',
|
1365 |
'type' => 'color',
|
1366 |
'desc' => '',
|
1367 |
'alpha' => true,
|
1368 |
'default' => '#666',
|
1369 |
+
'class' => 'right-menu-colors',
|
|
|
|
|
|
|
|
|
1370 |
) );
|
1371 |
// Left Panel 3rd Level Left Menu Items Text color.
|
1372 |
+
$general_tab->createOption( array(
|
1373 |
'name' => __( 'Left Menu Text Color', 'mobile-menu' ),
|
1374 |
'id' => 'left_panel_3rd_menu_text_color',
|
1375 |
'type' => 'color',
|
1376 |
'desc' => '',
|
1377 |
'alpha' => true,
|
1378 |
'default' => '#fff',
|
1379 |
+
'class' => '3rd-level-menu-colors',
|
1380 |
) );
|
1381 |
// Left Panel 3rd Level Left Menu Items Text color Hover.
|
1382 |
+
$general_tab->createOption( array(
|
1383 |
'name' => __( 'Left Menu Text Color Hover', 'mobile-menu' ),
|
1384 |
'id' => 'left_panel_3rd_menu_text_color_hover',
|
1385 |
'type' => 'color',
|
1386 |
'desc' => '',
|
1387 |
'alpha' => true,
|
1388 |
'default' => '#ccc',
|
1389 |
+
'class' => '3rd-level-menu-colors',
|
1390 |
) );
|
1391 |
// Left Panel 3rd Level Left Menu Items Background color.
|
1392 |
+
$general_tab->createOption( array(
|
1393 |
'name' => __( 'Left Menu Background Color', 'mobile-menu' ),
|
1394 |
'id' => 'left_panel_3rd_menu_bg_color',
|
1395 |
'type' => 'color',
|
1396 |
'desc' => '',
|
1397 |
'alpha' => true,
|
1398 |
'default' => '#222',
|
1399 |
+
'class' => '3rd-level-menu-colors',
|
1400 |
) );
|
1401 |
// Left Panel 3rd Level Left Menu Items Background color Hover.
|
1402 |
+
$general_tab->createOption( array(
|
1403 |
'name' => __( 'Left Menu Background Color Hover', 'mobile-menu' ),
|
1404 |
'id' => 'left_panel_3rd_menu_bg_color_hover',
|
1405 |
'type' => 'color',
|
1406 |
'desc' => '',
|
1407 |
'alpha' => true,
|
1408 |
'default' => '#666',
|
1409 |
+
'class' => '3rd-level-menu-colors',
|
1410 |
) );
|
1411 |
// Right Panel 3rd Level Right Menu Items Text color.
|
1412 |
+
$general_tab->createOption( array(
|
1413 |
'name' => __( 'Right Menu Text Color', 'mobile-menu' ),
|
1414 |
'id' => 'right_panel_3rd_menu_text_color',
|
1415 |
'type' => 'color',
|
1416 |
'desc' => '',
|
1417 |
'alpha' => true,
|
1418 |
'default' => '#fff',
|
1419 |
+
'class' => '3rd-level-menu-colors',
|
1420 |
) );
|
1421 |
// Right Panel 3rd Level Right Menu Items Text color Hover.
|
1422 |
+
$general_tab->createOption( array(
|
1423 |
'name' => __( 'Right Menu Text Color Hover', 'mobile-menu' ),
|
1424 |
'id' => 'right_panel_3rd_menu_text_color_hover',
|
1425 |
'type' => 'color',
|
1426 |
'desc' => '',
|
1427 |
'alpha' => true,
|
1428 |
'default' => '#ccc',
|
1429 |
+
'class' => '3rd-level-menu-colors',
|
1430 |
) );
|
1431 |
// Right Panel 3rd Level Right Menu Items Background color.
|
1432 |
+
$general_tab->createOption( array(
|
1433 |
'name' => __( 'Right Menu Background Color', 'mobile-menu' ),
|
1434 |
'id' => 'right_panel_3rd_menu_bg_color',
|
1435 |
'type' => 'color',
|
1436 |
'desc' => '',
|
1437 |
'alpha' => true,
|
1438 |
'default' => '#222',
|
1439 |
+
'class' => '3rd-level-menu-colors',
|
1440 |
) );
|
1441 |
// Right Panel 3rd Level Right Menu Items Background color Hover.
|
1442 |
+
$general_tab->createOption( array(
|
1443 |
'name' => __( 'Right Menu Background Color Hover', 'mobile-menu' ),
|
1444 |
'id' => 'right_panel_3rd_menu_bg_color_hover',
|
1445 |
'type' => 'color',
|
1446 |
'desc' => '',
|
1447 |
'alpha' => true,
|
1448 |
'default' => '#666',
|
1449 |
+
'class' => '3rd-level-menu-colors',
|
1450 |
) );
|
1451 |
$panel->createOption( array(
|
1452 |
'type' => 'save',
|
1467 |
public function create_woocommerce_options_upsell( $panel, $titan )
|
1468 |
{
|
1469 |
global $mm_fs ;
|
1470 |
+
global $general_tab ;
|
|
|
|
|
|
|
1471 |
$custom_html = '<div class="mm-business-features-holder"><div class="mm-bussiness-features"><h3>' . __( 'Increase your shop revenue (Business Version)', 'mobile-menu' ) . '</h3>';
|
1472 |
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>Menu Cart Icon</strong> - Product counter notification buble, upload the desired icon.</p>';
|
1473 |
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>Mobile Product Filter</strong> - Advanced product filter for mobile users.</p>';
|
1481 |
$custom_html .= '</div>';
|
1482 |
$custom_html .= '<div class="mm-business-image"><a href="https://shopdemo.wpmobilemenu.com/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=upsell_link" target="_blank"><img src="' . plugins_url( 'demo-content/assets/shopdemo-mobile-menu.png', __FILE__ ) . '">';
|
1483 |
$custom_html .= '</a><p><a href="https://shopdemo.wpmobilemenu.com/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=upsell_link"> ' . esc_html( 'See Demo Site', 'mobile-menu' ) . '</a></div></div>';
|
1484 |
+
$general_tab->createOption( array(
|
1485 |
+
'name' => 'woo-premium-features',
|
|
|
1486 |
'type' => 'custom',
|
1487 |
'custom' => $custom_html,
|
1488 |
+
'class' => 'woocommerce-options',
|
1489 |
) );
|
1490 |
}
|
1491 |
|
1501 |
public function create_footer_options_upsell( $panel, $titan )
|
1502 |
{
|
1503 |
global $mm_fs ;
|
1504 |
+
global $general_tab ;
|
|
|
|
|
|
|
1505 |
$custom_html = '<div class="mm-business-features-holder"><div class="mm-bussiness-features"><h3>' . __( 'Give your Website an App look and feel', 'mobile-menu' ) . '</h3>';
|
1506 |
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>Fixed Footer Bar</strong></p>';
|
1507 |
$custom_html .= '<p><span class="dashicons dashicons-yes"></span><strong>Auto-hide on Scroll</strong></p>';
|
1513 |
$custom_html .= '<div class="mm-business-image"><a href="https://prodemo.wpmobilemenu.com/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=upsell_link" target="_blank"><img src="' . plugins_url( 'demo-content/assets/prodemo-mobile-menu.png', __FILE__ ) . '">';
|
1514 |
$custom_html .= '</a><p><a href="https://prodemo.wpmobilemenu.com/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=upsell_link"> ' . esc_html( 'See Demo Site', 'mobile-menu' ) . '</a></div></div>';
|
1515 |
// Footer Tab Upgrade Content.
|
1516 |
+
$general_tab->createOption( array(
|
1517 |
+
'name' => 'footer-upsell',
|
1518 |
'type' => 'custom',
|
1519 |
'custom' => $custom_html,
|
1520 |
+
'class' => 'footer-options',
|
1521 |
) );
|
1522 |
}
|
1523 |
|
includes/class-wp-mobile-menu-walker-nav-menu.php
CHANGED
@@ -65,7 +65,7 @@ class WP_Mobile_Menu_Walker_Nav_Menu extends Walker_Nav_Menu
|
|
65 |
if ( $this->footer_li_class !== '' ) {
|
66 |
}
|
67 |
$output .= apply_filters(
|
68 |
-
'
|
69 |
$item_output,
|
70 |
$item,
|
71 |
$depth,
|
65 |
if ( $this->footer_li_class !== '' ) {
|
66 |
}
|
67 |
$output .= apply_filters(
|
68 |
+
'wp_mobmenu_walker_nav_menu_start_el',
|
69 |
$item_output,
|
70 |
$item,
|
71 |
$depth,
|
includes/css/font/mobmenu.eot
DELETED
Binary file
|
includes/css/font/mobmenu.svg
DELETED
@@ -1,148 +0,0 @@
|
|
1 |
-
<?xml version="1.0" standalone="no"?>
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
-
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
-
<metadata>Copyright (C) 2020 by original authors @ fontello.com</metadata>
|
5 |
-
<defs>
|
6 |
-
<font id="mobmenu" horiz-adv-x="1000" >
|
7 |
-
<font-face font-family="mobmenu" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
8 |
-
<missing-glyph horiz-adv-x="1000" />
|
9 |
-
<glyph glyph-name="ok-1" unicode="" d="M933 534q0-22-16-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38t15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q16-15 16-38z" horiz-adv-x="1000" />
|
10 |
-
|
11 |
-
<glyph glyph-name="ok" unicode="" d="M1179 778q-250-222-600-750l-115-179q-144 180-464 500l107 107 286-250q150 150 279 272t206 187 131 111 77 59l21 14q4 0 11-2t26-19 35-50z" horiz-adv-x="1179" />
|
12 |
-
|
13 |
-
<glyph glyph-name="plus" unicode="" d="M786 439v-107q0-22-16-38t-38-15h-232v-233q0-22-16-37t-38-16h-107q-22 0-38 16t-15 37v233h-232q-23 0-38 15t-16 38v107q0 23 16 38t38 16h232v232q0 22 15 38t38 16h107q23 0 38-16t16-38v-232h232q23 0 38-16t16-38z" horiz-adv-x="785.7" />
|
14 |
-
|
15 |
-
<glyph glyph-name="minus" unicode="" d="M786 439v-107q0-22-16-38t-38-15h-678q-23 0-38 15t-16 38v107q0 23 16 38t38 16h678q23 0 38-16t16-38z" horiz-adv-x="785.7" />
|
16 |
-
|
17 |
-
<glyph glyph-name="plus-1" unicode="" d="M550 400q30 0 30-50t-30-50l-210 0 0-210q0-30-50-30t-50 30l0 210-210 0q-30 0-30 50t30 50l210 0 0 210q0 30 50 30t50-30l0-210 210 0z" horiz-adv-x="580" />
|
18 |
-
|
19 |
-
<glyph glyph-name="plus-outline" unicode="" d="M469-119q-65 0-111 46t-45 111l2 159-157-3q-65 0-112 46t-46 110 46 111 110 46l159 2-2 153q0 65 45 111t111 46 110-46 46-110l3-154 155-2q63 0 109-46t46-111-46-110-111-46l-153 3-3-160q0-64-46-110t-110-46z m-53 417l0-261q0-22 16-37t37-15 37 16 15 37l0 260 262 0q21 0 36 15t15 37-16 37-37 16l-260 0 0 260q0 22-15 37t-37 15-37-15-16-37l0-260-260 0q-22 0-37-16t-15-37 15-37 37-15l260 0z" horiz-adv-x="938" />
|
20 |
-
|
21 |
-
<glyph glyph-name="plus-2" unicode="" d="M729 454q44 0 74-31t31-73-31-73-74-30l-208 3 0-212q0-43-30-73t-75-31-73 31-30 73l3 212-212-3q-44 0-74 30t-30 73 30 73 74 31l212 0-3 209q0 42 30 73t73 31 75-31 30-73l0-209 208 0z" horiz-adv-x="834" />
|
22 |
-
|
23 |
-
<glyph glyph-name="align-justify-1" unicode="" d="M0-89l0 156 1000 0 0-156-1000 0z m0 240l0 156 1000 0 0-156-1000 0z m0 242l0 156 1000 0 0-156-1000 0z m0 240l0 157 1000 0 0-157-1000 0z" horiz-adv-x="1000" />
|
24 |
-
|
25 |
-
<glyph glyph-name="instagram" unicode="" d="M0-150l0 674 270 0q-26-51-26-109 0-104 73-176t176-73 176 73 73 176q0 58-25 109l283 0 0-674-1000 0z m0 715l0 285 1000 0 0-285-311 0q-74 96-196 96t-196-96l-297 0z m49 45l35 0 0 191q-16-6-25-20t-10-33l0-138z m60 0l36 0 0 197-36 0 0-197z m59 0l35 0 0 197-35 0 0-197z m61 0l33 0 0 197-33 0 0-197z m44-196q0 90 65 155t155 64 155-64 65-155-65-155-155-63-155 63-65 155z m45 1q0-73 51-124t123-50 124 50 52 124-52 123-124 50-123-50-51-123z m422 253q0-23 18-41t43-17l94 0q23 0 41 17t17 41l0 80q0 24-17 42t-41 17l-94 0q-26 0-43-17t-18-42l0-80z" horiz-adv-x="1000" />
|
26 |
-
|
27 |
-
<glyph glyph-name="linkedin" unicode="" d="M0-150l0 1000 1000 0 0-1000-1000 0z m164 729q2-34 25-54t53-23l2 0q35 2 59 24t23 53q-2 33-25 53t-55 21q-35 0-58-22t-24-52z m8-569l144 0 0 434-144 0 0-434z m225 0l144 0 0 242q0 24 4 36 27 52 74 52 72-2 72-97l0-233 145 0 0 248q-2 98-47 149-47 47-119 49-53-2-86-26-21-15-43-47l0 61-144 0q1-18 1-70 0-90-1-364z" horiz-adv-x="1000" />
|
28 |
-
|
29 |
-
<glyph glyph-name="pinterest" unicode="" d="M0 350q4 213 150 356t350 144q219-4 358-149t142-351q-4-211-150-354t-350-146q-70 0-141 21 14 22 28 49 15 34 39 125 6 26 17 69 14-24 47-43 88-41 186 8 101 58 140 181 36 129-8 239t-158 160q-142 41-277-9t-187-171q-14-45-17-89t3-86 29-75 63-51q9-4 15 0 8 4 16 31t6 38q-2 3-8 13-41 67-27 140t60 124q72 64 169 70t165-53q37-42 48-103t0-116-38-105q-49-76-115-78-39 2-64 30t-14 66q3 21 23 84t22 94q-6 74-69 76-49-6-72-44t-26-87q6-57 18-78-21-88-33-141-4-14-22-84t-19-107l0-55q-139 64-219 187t-80 270z" horiz-adv-x="1000" />
|
30 |
-
|
31 |
-
<glyph glyph-name="twitter" unicode="" d="M0 26q162-19 305 88-67-2-117 39t-77 105q18-3 43-1 34 1 49 5-99 34-139 108-23 51-23 103 57-29 92-27-80 68-90 146-6 63 25 135 114-125 239-180 93-39 185-39-12 94 26 159 45 70 128 93 55 14 106-3t86-55q60 6 133 49-30-86-92-118 62 10 121 36-10-20-37-53t-68-57q1-10 1-17 4-110-42-233-81-201-243-302-160-90-382-69-141 16-229 88z" horiz-adv-x="1000" />
|
32 |
-
|
33 |
-
<glyph glyph-name="tumblr" unicode="" d="M0-150l0 1000 1000 0 0-1000-1000 0z m291 559l76 0 0-276q2-70 57-101 41-22 103-22 84 0 102 2 45 0 80 20l0 119q-21-14-47-24-43-15-80-5-31 7-47 19-8 8-8 12l0 256 162 0 0 113-162 0 0 168-93 0q-4-70-41-119t-102-49l0-113z" horiz-adv-x="1000" />
|
34 |
-
|
35 |
-
<glyph glyph-name="vimeo" unicode="" d="M0-150l0 1000 1000 0 0-1000-1000 0z m133 600q2-4 8-12t7-10q12-12 38-4 25 10 41 9t29-26q27-74 74-252 31-102 76-121 26-6 52 0t46 17q119 76 213 239 2 3 26 50t33 69 23 60 12 68-18 47q-53 41-108 27t-101-58-62-94q48 0 58-3 29-16 25-65-11-51-37-100t-58-54q-14 0-30 17-19 24-27 50t-13 71-6 55q0 2-5 31t-8 42-11 36-19 35-28 18q-66 10-156-74-37-33-74-64l0-4z" horiz-adv-x="1000" />
|
36 |
-
|
37 |
-
<glyph glyph-name="star" unicode="" d="M4 457q14 41 57 47l262 39 113 235q19 41 64 41t65-41l113-235 262-39q43-6 56-47t-15-70l-192-191 43-264q8-43-29-68-18-14-41-14-18 0-35 8l-227 123-226-123q-18-8-35-8-24 0-41 14-38 25-30 68l43 264-189 191q-32 29-18 70z m69-21l191-191q25-26 19-61l-44-264 226 123q16 8 35 8t35-8l227-123-45 264q-6 35 20 61l191 191-260 37q-39 6-54 41l-114 234-113-234q-16-35-55-39z" horiz-adv-x="1001" />
|
38 |
-
|
39 |
-
<glyph glyph-name="user" unicode="" d="M4-105q-14 43 25 70 119 78 291 116-84 105-119 255-10 55-11 122t23 149 66 138q84 105 223 105t222-105q43-57 67-138t22-149-11-122q-35-150-119-255 172-38 291-116 39-27 26-71t-61-44l-875 0q-21 0-38 13t-22 32z m60 17l875 0q-109 73-267 108l-79 16q-45-30-91-30t-92 30l-78-16q-160-35-268-108z m193 602q-13-103 16-208t96-186l10-14q56-65 123-65t123 65l9 14q67 82 96 186t16 208q-14 113-76 193t-168 80-168-80-77-193z" horiz-adv-x="1003" />
|
40 |
-
|
41 |
-
<glyph glyph-name="star-1" unicode="" d="M1050 464q0-15-29-38l-275-200 105-323q5-17 5-30 0-24-18-24-17 0-38 17l-275 199-275-199q-23-17-39-17-18 0-18 23 0 11 6 31l105 323-275 200q-29 21-29 37 0 23 49 23l340-1 104 324q12 40 32 40 19 0 31-40l106-324 339 1q49 0 49-22z" horiz-adv-x="1050" />
|
42 |
-
|
43 |
-
<glyph glyph-name="user-1" unicode="" d="M1070-88q0-21-2-63h-1067q0 10 0 31t-1 32q0 30 1 37 12 49 64 85t112 53 125 47 97 65q17 22 17 38 0 22-11 73-4 21-10 37t-16 33-16 31q-15 35-33 132-6 38-6 75 0 105 54 168t157 63 158-63 53-168q0-31-7-75-14-89-32-132-6-14-15-31t-16-33-11-37q-11-51-11-73 0-18 17-38 31-36 97-65t125-47 111-53 64-85q2-8 2-37z" horiz-adv-x="1070" />
|
44 |
-
|
45 |
-
<glyph glyph-name="left-open" unicode="" d="M308 349l346-346-154-154-500 500 500 500 154-154z" horiz-adv-x="654" />
|
46 |
-
|
47 |
-
<glyph glyph-name="right-open" unicode="" d="M154 849l500-500-500-500-154 154 346 346-346 346z" horiz-adv-x="654" />
|
48 |
-
|
49 |
-
<glyph glyph-name="down-dir" unicode="" d="M265 84l-265 530h529z" horiz-adv-x="529" />
|
50 |
-
|
51 |
-
<glyph glyph-name="right-dir" unicode="" d="M529 349l-529-265v530z" horiz-adv-x="529" />
|
52 |
-
|
53 |
-
<glyph glyph-name="star-empty" unicode="" d="M635 290l170 166-235 34-106 213-105-213-236-34 171-166-41-235 211 111 211-111z m294 199q0-12-15-27l-202-197 48-279q0-4 0-12 0-28-23-28-10 0-22 7l-251 132-250-132q-12-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27 0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26z" horiz-adv-x="928.6" />
|
54 |
-
|
55 |
-
<glyph glyph-name="up-dir" unicode="" d="M571 171q0-14-10-25t-25-10h-500q-15 0-25 10t-11 25 11 26l250 250q10 10 25 10t25-10l250-250q10-11 10-26z" horiz-adv-x="571.4" />
|
56 |
-
|
57 |
-
<glyph glyph-name="left-dir" unicode="" d="M357 600v-500q0-14-10-25t-26-11-25 11l-250 250q-10 11-10 25t10 25l250 250q11 11 25 11t26-11 10-25z" horiz-adv-x="357.1" />
|
58 |
-
|
59 |
-
<glyph glyph-name="menu" unicode="" d="M650 400q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z m-600 100q-20 0-35 15t-15 35 14 35 36 15l600 0q22 0 36-15t14-35-15-35-35-15l-600 0z m600-300q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z" horiz-adv-x="700" />
|
60 |
-
|
61 |
-
<glyph glyph-name="minus-1" unicode="" d="M550 400q30 0 30-50t-30-50l-520 0q-30 0-30 50t30 50l520 0z" horiz-adv-x="580" />
|
62 |
-
|
63 |
-
<glyph glyph-name="right-open-2" unicode="" d="M98 626l226-236q16-16 16-40 0-22-16-38l-226-236q-16-16-40-16t-40 16q-36 36 0 80l186 194-186 196q-36 44 0 80 16 16 41 16t39-16z" horiz-adv-x="340" />
|
64 |
-
|
65 |
-
<glyph glyph-name="th" unicode="" d="M0-15q0 130 130 130t130-130-130-130-130 130z m0 365q0 130 130 130t130-130-130-130-130 130z m0 365q0 130 130 130t130-130-130-130-130 130z m365-730q0 130 130 130t130-130-130-130-130 130z m0 365q0 130 130 130t130-130-130-130-130 130z m0 365q0 130 130 130t130-130-130-130-130 130z m364-730q0 130 131 130 130 0 130-130t-130-130q-131 0-131 130z m0 365q0 130 131 130 130 0 130-130t-130-130q-131 0-131 130z m0 365q0 130 131 130 130 0 130-130t-130-130q-131 0-131 130z" horiz-adv-x="990" />
|
66 |
-
|
67 |
-
<glyph glyph-name="th-large" unicode="" d="M0 663q0 65 46 110t110 46l104 0q65 0 111-46t45-110l0-104q0-65-45-111t-111-45l-104 0q-65 0-110 45t-46 111l0 104z m521 0q0 65 46 110t111 46l103 0q65 0 111-46t46-110l0-104q0-65-46-111t-111-45l-103 0q-65 0-111 45t-46 111l0 104z m-521-521q0 65 46 110t110 46l104 0q65 0 111-46t45-110l0-104q0-65-45-111t-111-46l-104 0q-65 0-110 46t-46 111l0 104z m521 0q0 65 46 110t111 46l103 0q65 0 111-46t46-110l0-104q0-65-46-111t-111-46l-103 0q-65 0-111 46t-46 111l0 104z" horiz-adv-x="938" />
|
68 |
-
|
69 |
-
<glyph glyph-name="th-list" unicode="" d="M860 90q43 0 73-31t31-74q0-43-31-73t-73-31l-365 0q-44 0-74 31t-31 73 31 74 74 31l365 0z m0 364q43 0 73-31t31-73-31-73-73-31l-365 0q-44 0-74 31t-31 73 31 73 74 31l365 0z m0 365q43 0 73-31t31-73q0-44-31-74t-73-31l-365 0q-42 0-74 31t-31 74 31 73 74 31l365 0z m-860-834q0 130 130 130t130-130-130-130-130 130z m0 365q0 130 130 130t130-130-130-130-130 130z m0 365q0 130 130 130t130-130-130-130-130 130z" horiz-adv-x="964" />
|
70 |
-
|
71 |
-
<glyph glyph-name="minus-2" unicode="" d="M729 455q44 0 74-32t31-73-31-74-74-30l-625 0q-44 0-74 30t-30 74q0 43 31 74t73 31l625 0z" horiz-adv-x="834" />
|
72 |
-
|
73 |
-
<glyph glyph-name="th-list-3" unicode="" d="M160 660l0-161-160 0 0 161 160 0z m0-230l0-162-160 0 0 162 160 0z m0-230l0-160-160 0 0 160 160 0z m641 406l0-81-533 0 0 81 533 0z m0-230l0-81-533 0 0 81 533 0z m0-217l0-81-533 0 0 81 533 0z" horiz-adv-x="801" />
|
74 |
-
|
75 |
-
<glyph glyph-name="cancel" unicode="" d="M123 654l181-181 181 181 123-124-182-178 183-184-124-121-181 182-181-182-123 122 183 183-182 178z" horiz-adv-x="609" />
|
76 |
-
|
77 |
-
<glyph glyph-name="cancel-circle" unicode="" d="M406 755c227 0 405-180 405-404 0-226-178-406-405-406-225 0-406 180-406 406 0 224 181 404 406 404z m84-404l125 125-85 84-124-125-126 126-84-85 127-125-127-125 84-85 126 127 124-125 85 83z" horiz-adv-x="811" />
|
78 |
-
|
79 |
-
<glyph glyph-name="cancel-1" unicode="" d="M0 90q0 36 26 62l195 195-195 196q-26 25-26 61t26 61 61 25 61-25l196-196 195 196q25 25 61 25t61-25 25-61-25-61l-195-196 195-195q25-26 25-62t-25-61q-25-25-61-25t-61 25l-195 195-196-195q-25-25-61-25t-61 25q-26 26-26 61z" horiz-adv-x="686.5" />
|
80 |
-
|
81 |
-
<glyph glyph-name="cancel-2" unicode="" d="M0 71l279 279-279 279 221 221 279-279 279 279 221-221-279-279 279-279-221-221-279 279-279-279z" horiz-adv-x="1000" />
|
82 |
-
|
83 |
-
<glyph glyph-name="cancel-circled-1" unicode="" d="M0 350q0 207 147 354t353 146 354-146 146-354-146-354-354-146-353 146-147 354z m219-156l125-125 156 156 156-156 125 125-156 156 156 156-125 125-156-156-156 156-125-125 156-156z" horiz-adv-x="1000" />
|
84 |
-
|
85 |
-
<glyph glyph-name="cancel-circled2" unicode="" d="M0 350q0 207 147 354t353 146 354-146 146-354-146-354-354-146-353 146-147 354z m109 0q0-162 115-276t276-115 276 115 115 276-115 276-276 115-276-115-115-276z m145-137l137 137-137 137 109 109 137-137 137 137 109-109-137-137 137-137-109-109-137 137-137-137z" horiz-adv-x="1000" />
|
86 |
-
|
87 |
-
<glyph glyph-name="up-open-1" unicode="" d="M0 174l352 352 148 148 148-148 352-352-148-148-352 351-352-351z" horiz-adv-x="1000" />
|
88 |
-
|
89 |
-
<glyph glyph-name="cancel-3" unicode="" d="M724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38z" horiz-adv-x="785.7" />
|
90 |
-
|
91 |
-
<glyph glyph-name="cancel-circled-2" unicode="" d="M641 224q0 14-10 25l-101 101 101 101q10 11 10 25 0 15-10 26l-51 50q-10 11-25 11-15 0-25-11l-101-101-101 101q-11 11-25 11-16 0-26-11l-50-50q-11-11-11-26 0-14 11-25l101-101-101-101q-11-11-11-25 0-15 11-26l50-50q10-11 26-11 14 0 25 11l101 101 101-101q10-11 25-11 15 0 25 11l51 50q10 11 10 26z m216 126q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
|
92 |
-
|
93 |
-
<glyph glyph-name="th-large-1" unicode="" d="M429 279v-215q0-29-22-50t-50-21h-286q-29 0-50 21t-21 50v215q0 29 21 50t50 21h286q29 0 50-21t22-50z m0 428v-214q0-29-22-50t-50-22h-286q-29 0-50 22t-21 50v214q0 29 21 50t50 22h286q29 0 50-22t22-50z m500-428v-215q0-29-22-50t-50-21h-286q-29 0-50 21t-21 50v215q0 29 21 50t50 21h286q29 0 50-21t22-50z m0 428v-214q0-29-22-50t-50-22h-286q-29 0-50 22t-21 50v214q0 29 21 50t50 22h286q29 0 50-22t22-50z" horiz-adv-x="928.6" />
|
94 |
-
|
95 |
-
<glyph glyph-name="th-1" unicode="" d="M286 154v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m0 285v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m357-285v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m-357 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m357-286v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m357-285v-108q0-22-16-37t-38-16h-178q-22 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m-357 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m357-286v-107q0-22-16-38t-38-15h-178q-22 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m0 286v-107q0-22-16-38t-38-16h-178q-22 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z" horiz-adv-x="1000" />
|
96 |
-
|
97 |
-
<glyph glyph-name="th-list-1" unicode="" d="M286 154v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m0 285v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m714-285v-108q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v108q0 22 16 38t38 15h535q23 0 38-15t16-38z m-714 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m714-286v-107q0-22-16-38t-38-15h-535q-23 0-38 15t-16 38v107q0 23 16 38t38 16h535q23 0 38-16t16-38z m0 286v-107q0-22-16-38t-38-16h-535q-23 0-38 16t-16 38v107q0 22 16 38t38 16h535q23 0 38-16t16-38z" horiz-adv-x="1000" />
|
98 |
-
|
99 |
-
<glyph glyph-name="up-open-2" unicode="" d="M939 107l-92-92q-11-10-26-10t-25 10l-296 297-296-297q-11-10-25-10t-25 10l-93 92q-11 11-11 26t11 25l414 414q11 10 25 10t25-10l414-414q11-11 11-25t-11-26z" horiz-adv-x="1000" />
|
100 |
-
|
101 |
-
<glyph glyph-name="down-open-2" unicode="" d="M939 399l-414-413q-10-11-25-11t-25 11l-414 413q-11 11-11 26t11 25l93 92q10 11 25 11t25-11l296-296 296 296q11 11 25 11t26-11l92-92q11-11 11-25t-11-26z" horiz-adv-x="1000" />
|
102 |
-
|
103 |
-
<glyph glyph-name="cancel-squared" unicode="" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-146-638l86 86-154 152 154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152z" horiz-adv-x="800" />
|
104 |
-
|
105 |
-
<glyph glyph-name="cancel-4" unicode="" d="M452 194q18-18 18-43t-18-43q-18-16-43-16t-43 16l-132 152-132-152q-18-16-43-16t-43 16q-16 18-16 43t16 43l138 156-138 158q-16 18-16 43t16 43q18 16 43 16t43-16l132-152 132 152q18 16 43 16t43-16q18-18 18-43t-18-43l-138-158z" horiz-adv-x="470" />
|
106 |
-
|
107 |
-
<glyph glyph-name="up-open-big" unicode="" d="M804 130l-372 358-370-358q-26-22-50 0-24 24 0 50l396 390q26 26 48 0l396-390q24-26 0-50-26-22-48 0z" horiz-adv-x="864" />
|
108 |
-
|
109 |
-
<glyph glyph-name="down-open-big" unicode="" d="M63 570l370-356 372 356q22 26 48 0 26-22 0-48l-396-392q-22-22-48 0l-396 392q-26 26 0 48 24 24 50 0z" horiz-adv-x="866" />
|
110 |
-
|
111 |
-
<glyph glyph-name="down-open-mini" unicode="" d="M405 470q22 26 48 0 26-22 0-48l-196-192q-22-22-48 0l-196 192q-26 26 0 48 24 24 50 0l170-156z" horiz-adv-x="466" />
|
112 |
-
|
113 |
-
<glyph glyph-name="cancel-circled-outline" unicode="" d="M469 819q194 0 331-137t138-332-138-331-331-138-331 138-138 331 138 332 331 137z m0-834q151 0 258 107t107 258-107 258-258 107-258-107-107-258 107-258 258-107z m36 365l139-137q12-13 5-29t-24-16q-11 0-19 7l-137 139-138-139q-7-7-18-7-17 0-24 16t5 29l139 137-139 138q-18 17 1 36t36 1l138-138 137 138q18 18 37-1t1-36z" horiz-adv-x="938" />
|
114 |
-
|
115 |
-
<glyph glyph-name="cancel-outline" unicode="" d="M729 143q0-64-46-110t-110-47-110 47l-98 97-99-97q-43-44-110-44t-110 44q-46 46-46 110 0 65 46 111l98 98-98 97q-46 46-46 111 0 64 46 110 44 44 110 44t110-44l99-97 98 97q43 44 110 44t111-44q45-45 45-110 0-66-45-111l-99-97 99-98q45-45 45-111z m-364 135l171-171q15-15 37-15t37 15 15 36q0 22-15 37l-171 172 171 171q15 15 15 37 0 22-15 37t-37 15-37-15l-171-172-172 172q-15 15-37 15t-36-15q-16-17-16-37 0-21 16-37l171-171-171-172q-16-16-16-37 0-20 16-36 15-15 36-15t37 15z" horiz-adv-x="729" />
|
116 |
-
|
117 |
-
<glyph glyph-name="menu-2" unicode="" d="M834 90q42 0 73-30t31-75q0-42-30-73t-74-31l-730 0q-44 0-74 31t-30 73q0 44 31 75t73 30l730 0z m0 364q44 0 74-31t30-73-30-73-74-30l-730 0q-44 0-74 30t-30 73 30 73 74 31l730 0z m0 365q44 0 74-31t30-73q0-43-31-74t-73-31l-730 0q-43 0-73 31t-31 74q0 43 30 73t74 31l730 0z" horiz-adv-x="938" />
|
118 |
-
|
119 |
-
<glyph glyph-name="menu-outline" unicode="" d="M885 38l-729 0q-21 0-37-16t-15-37 15-36 37-15l729 0q21 0 37 15t16 36-16 37-37 16z m0 104q65 0 111-46t45-111-45-110-111-46l-729 0q-65 0-110 46t-46 110 46 111 110 46l729 0z m0 261l-729 0q-21 0-37-16t-15-37 15-37 37-15l729 0q21 0 37 15t16 37-16 37-37 16z m0 104q65 0 111-46t45-111-45-110-111-46l-729 0q-65 0-110 46t-46 110 46 111 110 46l729 0z m0 260l-729 0q-21 0-37-15t-15-37 15-37 37-15l729 0q21 0 37 15t16 37-16 37-37 15z m0 105q65 0 111-46t45-111-45-110-111-46l-729 0q-65 0-110 46t-46 110 46 111 110 46l729 0z" horiz-adv-x="1041" />
|
120 |
-
|
121 |
-
<glyph glyph-name="cancel-circle-1" unicode="" d="M465 797q184 0 315-131t131-316-131-315-315-132-316 132-131 315 131 316 316 131z m220-588l-141 142 141 141-79 79-142-141-141 141-79-79 141-141-141-142 79-79 141 141 142-141z" horiz-adv-x="928" />
|
122 |
-
|
123 |
-
<glyph glyph-name="down-open" unicode="" d="M0 533q0 25 18 43t44 18 42-18l305-303 304 303q18 18 43 18t43-18q18-18 18-43t-18-43l-390-391-391 391q-18 19-18 43z" horiz-adv-x="817.4" />
|
124 |
-
|
125 |
-
<glyph glyph-name="up-open" unicode="" d="M0 167q0 26 18 43l391 391 390-391q17-17 17-43 0-26-17-44-18-17-44-17t-43 17l-303 305-305-305q-18-17-43-17t-43 17q-18 18-18 44z" horiz-adv-x="816.9" />
|
126 |
-
|
127 |
-
<glyph glyph-name="menu-3" unicode="" d="M68 62q0-30 21-51t51-21h793q30 0 51 21t21 51-21 51-51 21h-793q-29 0-51-21t-21-51z m0 288q0-30 21-51t51-21h793q30 0 51 21t21 51-21 51-51 21h-793q-29 0-51-21t-21-51z m0 288q0-30 21-51t51-21h793q30 0 51 21t21 51-21 51-51 21h-793q-29 0-51-21t-21-51z" horiz-adv-x="1073.2" />
|
128 |
-
|
129 |
-
<glyph glyph-name="th-list-2" unicode="" d="M0 62q0-30 21-51t51-21h32q30 0 51 21t21 51-21 51-51 21h-32q-30 0-51-21t-21-51z m0 288q0-30 21-51t51-21h32q30 0 51 21t21 51-21 51-51 21h-32q-30 0-51-21t-21-51z m0 288q0-30 21-51t51-21h32q30 0 51 21t21 51-21 51-51 21h-32q-30 0-51-21t-21-51z m234-576q0-30 21-51t51-21h559q30 0 51 21t21 51-21 51-51 21h-559q-30 0-51-21t-21-51z m0 288q0-30 21-51t51-21h559q30 0 51 21t21 51-21 51-51 21h-559q-30 0-51-21t-21-51z m0 288q0-30 21-51t51-21h559q30 0 51 21t21 51-21 51-51 21h-559q-30 0-51-21t-21-51z" horiz-adv-x="937.5" />
|
130 |
-
|
131 |
-
<glyph glyph-name="th-thumb" unicode="" d="M0-66v286q0 22 15 37t37 16h285q22 0 37-16t15-37v-286q0-21-15-36t-37-15h-285q-22 0-37 15t-15 36z m0 546v286q0 21 15 36t37 15h285q22 0 37-15t15-36v-286q0-22-15-37t-37-16h-285q-22 0-37 16t-15 37z m547-546v286q0 22 15 37t37 16h286q21 0 37-16t15-37v-286q0-21-15-36t-37-15h-286q-21 0-37 15t-15 36z m0 546v286q0 21 15 36t37 15h286q22 0 37-15t15-36v-286q0-22-15-37t-37-16h-286q-21 0-37 16t-15 37z" horiz-adv-x="937.5" />
|
132 |
-
|
133 |
-
<glyph glyph-name="th-thumb-empty" unicode="" d="M0-66v286q0 22 15 37t37 16h286q21 0 37-16t15-37v-286q0-21-15-36t-37-15h-286q-22 0-37 15t-15 36z m0 546v286q0 21 15 36t37 15h286q21 0 37-15t15-36v-286q0-22-15-37t-37-16h-286q-21 0-37 16t-15 37z m88-510h214v214h-214v-214z m0 546h214v213h-214v-213z m459-582v286q0 22 15 37t37 16h286q21 0 37-16t15-37v-286q0-21-15-36t-37-15h-286q-21 0-37 15t-15 36z m0 546v286q0 21 15 36t37 15h286q22 0 37-15t15-36v-286q0-22-15-37t-37-16h-286q-21 0-37 16t-15 37z m88-510h215v214h-215v-214z m0 546h215v213h-215v-213z" horiz-adv-x="937.5" />
|
134 |
-
|
135 |
-
<glyph glyph-name="cancel-circled" unicode="" d="M0 350q0 95 37 182t100 149 150 100 182 37 182-37 149-100 100-149 37-182-37-182-100-150-149-100-182-37-182 37-150 100-100 150-37 182z m261-155q0-22 15-38 15-15 37-15 22 0 37 15l119 119 118-119q15-15 37-15 22 0 37 15 15 16 15 38t-15 37l-118 118 118 119q15 15 15 37t-15 37-37 15-37-15l-118-119-119 119q-15 15-37 15t-37-15q-15-15-15-37t15-37l118-119-118-118q-15-15-15-37z" horiz-adv-x="937.5" />
|
136 |
-
|
137 |
-
<glyph glyph-name="menu-1" unicode="" d="M857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-14-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" />
|
138 |
-
|
139 |
-
<glyph glyph-name="gplus" unicode="" d="M802 341q0-117-49-207t-138-142-206-51q-83 0-159 32t-131 87-87 131-32 159 32 159 87 131 131 87 159 32q160 0 274-107l-111-107q-65 63-163 63-69 0-127-34t-92-94-34-130 34-130 92-94 127-34q46 0 85 13t64 32 44 43 27 47 12 41h-232v141h386q7-36 7-68z m484 68v-118h-117v-116h-117v116h-117v118h117v116h117v-116h117z" horiz-adv-x="1285.7" />
|
140 |
-
|
141 |
-
<glyph glyph-name="ellipsis" unicode="" d="M214 439v-107q0-22-15-38t-38-15h-107q-23 0-38 15t-16 38v107q0 23 16 38t38 16h107q22 0 38-16t15-38z m286 0v-107q0-22-16-38t-38-15h-107q-22 0-38 15t-15 38v107q0 23 15 38t38 16h107q23 0 38-16t16-38z m286 0v-107q0-22-16-38t-38-15h-107q-22 0-38 15t-16 38v107q0 23 16 38t38 16h107q23 0 38-16t16-38z" horiz-adv-x="785.7" />
|
142 |
-
|
143 |
-
<glyph glyph-name="ellipsis-vert" unicode="" d="M214 154v-108q0-22-15-37t-38-16h-107q-23 0-38 16t-16 37v108q0 22 16 38t38 15h107q22 0 38-15t15-38z m0 285v-107q0-22-15-38t-38-15h-107q-23 0-38 15t-16 38v107q0 23 16 38t38 16h107q22 0 38-16t15-38z m0 286v-107q0-22-15-38t-38-16h-107q-23 0-38 16t-16 38v107q0 22 16 38t38 16h107q22 0 38-16t15-38z" horiz-adv-x="214.3" />
|
144 |
-
|
145 |
-
<glyph glyph-name="facebook-squared" unicode="" d="M696 779q67 0 114-48t47-113v-536q0-66-47-113t-114-48h-104v333h111l16 129h-127v83q0 31 13 46t51 16l68 1v115q-35 5-100 5-75 0-121-44t-45-127v-95h-112v-129h112v-333h-297q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535z" horiz-adv-x="857.1" />
|
146 |
-
</font>
|
147 |
-
</defs>
|
148 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/font/mobmenu.ttf
DELETED
Binary file
|
includes/css/mobmenu-admin.css
CHANGED
@@ -9,7 +9,11 @@
|
|
9 |
.menu-item-handle .item-title {
|
10 |
margin-right: 0px!important;
|
11 |
}
|
12 |
-
|
|
|
|
|
|
|
|
|
13 |
.menu .mobmenu-item-settings:before {
|
14 |
padding-right: 5px;
|
15 |
}
|
@@ -233,17 +237,24 @@ td.second.tf-select .select2 {
|
|
233 |
.titan-framework-panel-wrap td.second.tf-iframe iframe {
|
234 |
margin-left: -200px!important;
|
235 |
}
|
236 |
-
.tf-sortable .vertical li {
|
237 |
width: 50%;
|
|
|
|
|
|
|
238 |
}
|
239 |
.tf-sortable li {
|
240 |
width: 12%;
|
241 |
float: left;
|
242 |
line-height: 20px;
|
243 |
}
|
244 |
-
.
|
245 |
-
|
246 |
-
|
|
|
|
|
|
|
|
|
247 |
}
|
248 |
.active-tab-general-options .tf-sortable div {
|
249 |
margin-top: 20px;
|
@@ -256,10 +267,7 @@ td.second.tf-select .select2 {
|
|
256 |
display: none;
|
257 |
}
|
258 |
.options-container th.first {
|
259 |
-
padding:
|
260 |
-
}
|
261 |
-
.active-tab-general-options .tf-sortable ul li i.dashicons-menu, .active-tab-general-options .tf-sortable ul li i.dashicons-visibility {
|
262 |
-
display: none!important;
|
263 |
}
|
264 |
.tf-sortable ul{
|
265 |
width: 100%;
|
@@ -285,16 +293,35 @@ td.second.tf-select .select2 {
|
|
285 |
color: #656e77;
|
286 |
letter-spacing: 1px;
|
287 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
.titan-framework-panel-wrap .tf-heading th {
|
289 |
background:none repeat scroll 0 0 #fbfbfb!important;
|
290 |
width: 100vw;
|
291 |
}
|
|
|
|
|
|
|
|
|
|
|
292 |
.titan-framework-panel-wrap .active-tab-fonts .form-table th label {
|
293 |
font-weight: 600;
|
294 |
}
|
295 |
-
.titan-framework-panel-wrap .
|
296 |
-
background: #
|
297 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
298 |
}
|
299 |
td.second.tf-multicheck-pages fieldset {
|
300 |
max-height: 500px;
|
@@ -388,9 +415,14 @@ td.second.tf-multicheck-pages fieldset {
|
|
388 |
max-width: 250px;
|
389 |
min-width: 160px;
|
390 |
}
|
|
|
|
|
|
|
391 |
.titan-framework-panel-wrap .nav-tab-wrapper, .wrap .titan-framework-panel-wrap h2.nav-tab-wrapper {
|
392 |
border-bottom: none;
|
393 |
background: #f9f9f9;
|
|
|
|
|
394 |
}
|
395 |
.titan-framework-panel-wrap {
|
396 |
display: flex;
|
@@ -401,42 +433,46 @@ td.second.tf-multicheck-pages fieldset {
|
|
401 |
width: 100%;
|
402 |
border: none;
|
403 |
margin-left: 0px;
|
404 |
-
color: #
|
405 |
background: #f9f9f9;
|
406 |
-
border-width: 1px 0;
|
407 |
-
border-style: solid;
|
408 |
-
border-bottom-color: #e7e7e7;
|
409 |
-
border-top-color: #f9f9f9;
|
410 |
font-weight: 500;
|
411 |
line-height: 2.5em;
|
412 |
-
letter-spacing:
|
|
|
|
|
|
|
|
|
413 |
}
|
414 |
.nav-tab-wrapper ul {
|
415 |
margin: 0;
|
416 |
padding: 1px;
|
417 |
}
|
418 |
-
.nav-tab-wrapper .nav-tab.
|
419 |
display: grid;
|
420 |
}
|
421 |
.nav-tab-wrapper .nav-tab ul {
|
422 |
display: none;
|
423 |
-
margin-left: -11px;
|
424 |
}
|
425 |
.nav-tab-wrapper ul li {
|
426 |
-
padding:
|
427 |
-
font-size:
|
428 |
-
font-weight:
|
429 |
margin: 0;
|
430 |
-
|
431 |
-
color: #4c4747;
|
432 |
line-height: 2em;
|
|
|
|
|
|
|
|
|
|
|
|
|
433 |
}
|
434 |
.nav-tab-wrapper ul li:hover {
|
435 |
background: #f7f7f7;
|
436 |
color: #3695ef;
|
437 |
}
|
438 |
-
.titan-framework-panel-wrap .
|
439 |
-
color: #
|
440 |
}
|
441 |
.wrap .titan-framework-panel-wrap .nav-tab-wrapper {
|
442 |
padding: 0;
|
@@ -450,19 +486,30 @@ td.second.tf-multicheck-pages fieldset {
|
|
450 |
.toplevel_page_mobile-menu-options .wrap {
|
451 |
padding: 12px;
|
452 |
}
|
453 |
-
.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
padding-top: 15px;
|
455 |
padding-bottom: 15px;
|
456 |
-
padding-left:
|
457 |
-
|
458 |
-
|
459 |
}
|
460 |
.titan-framework-panel-wrap .form-table th label {
|
461 |
-
font-weight:
|
462 |
font-family: sans-serif;
|
|
|
|
|
463 |
}
|
464 |
.titan-framework-panel-wrap .form-table td .description {
|
465 |
-
color: #
|
|
|
|
|
466 |
}
|
467 |
.nav-tab-wrapper ul li:hover {
|
468 |
cursor: pointer;
|
@@ -484,16 +531,16 @@ td.second.tf-multicheck-pages fieldset {
|
|
484 |
color: #676767;
|
485 |
}
|
486 |
.titan-framework-panel-wrap .form-table {
|
487 |
-
margin-top:
|
488 |
background: #fff;
|
489 |
}
|
490 |
.titan-framework-panel-wrap .active-tab-documentation {
|
491 |
width: 100%;
|
492 |
}
|
493 |
.mm-panel-search-bar {
|
494 |
-
background: #eff1f7;
|
495 |
padding: 10px 10px;
|
496 |
-
color: #
|
|
|
497 |
}
|
498 |
.mm-panel-search-bar span {
|
499 |
padding-left: 30px;
|
@@ -501,7 +548,7 @@ td.second.tf-multicheck-pages fieldset {
|
|
501 |
.mm-search-settings-results li {
|
502 |
padding: 5px;
|
503 |
line-height: 2em;
|
504 |
-
background: #
|
505 |
width: 21%;
|
506 |
font-size: 14px;
|
507 |
cursor: pointer;
|
@@ -512,15 +559,49 @@ td.second.tf-multicheck-pages fieldset {
|
|
512 |
.mm-search-settings-results li:hover {
|
513 |
background: #f5f5f5;
|
514 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
515 |
.mm-panel-search-bar #mm_search_settings {
|
516 |
border-radius: 4px;
|
517 |
border: 2px solid #0085ba;
|
518 |
-
padding: 10px;
|
519 |
font-size: 15px;
|
520 |
color: #656e76;
|
521 |
}
|
522 |
.mm-panel-search-bar label {
|
523 |
-
color: #
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
524 |
}
|
525 |
.CodeMirror {
|
526 |
border: 1px solid #ddd;
|
@@ -531,23 +612,30 @@ td.second.tf-multicheck-pages fieldset {
|
|
531 |
cursor: grab;
|
532 |
border: 1px solid #efefef;
|
533 |
}
|
|
|
534 |
.options-container.active-tab-general-options .tf-sortable li[data-value="logo"]{
|
535 |
width:120px;
|
536 |
-
}
|
537 |
.options-container .tf-sortable li span {
|
538 |
padding-top: 40px;
|
539 |
display: block;
|
540 |
text-align: center;
|
541 |
font-size: 11px;
|
542 |
}
|
|
|
|
|
|
|
|
|
543 |
.mm-version-holder {
|
544 |
position: absolute;
|
545 |
-
|
546 |
-
top:
|
|
|
|
|
|
|
547 |
}
|
548 |
.mm-version-holder a {
|
549 |
-
|
550 |
-
position: absolute;
|
551 |
}
|
552 |
.mm-bussiness-features .dashicons-yes {
|
553 |
color:#008000;
|
@@ -555,12 +643,13 @@ td.second.tf-multicheck-pages fieldset {
|
|
555 |
padding-right: 20px;
|
556 |
}
|
557 |
.mm-bussiness-features p {
|
558 |
-
line-height:
|
559 |
-
font-size:
|
|
|
560 |
}
|
561 |
.mm-bussiness-features {
|
562 |
float: left;
|
563 |
-
width:
|
564 |
}
|
565 |
.mm-bussiness-features h3 {
|
566 |
font-size: 2em;
|
@@ -587,6 +676,7 @@ td.second.tf-multicheck-pages fieldset {
|
|
587 |
min-height: 35px;
|
588 |
padding-top: 5px;
|
589 |
border-radius: 6px;
|
|
|
590 |
}
|
591 |
.toplevel_page_mobile-menu-options .CodeMirror {
|
592 |
resize: vertical;
|
@@ -625,17 +715,57 @@ td.second.tf-multicheck-pages fieldset {
|
|
625 |
padding: 5px;
|
626 |
margin-left: 10px;
|
627 |
color: #fff;
|
628 |
-
background: #
|
629 |
text-decoration: none;
|
630 |
cursor: pointer;
|
631 |
}
|
632 |
.mobmenu-preview-iframe {
|
633 |
position: fixed;
|
634 |
-
top:
|
635 |
-
right:
|
636 |
display: none;
|
637 |
background: #fefdfd;
|
638 |
border: 15px solid #222020;
|
639 |
border-radius: 25px;
|
640 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
641 |
}
|
9 |
.menu-item-handle .item-title {
|
10 |
margin-right: 0px!important;
|
11 |
}
|
12 |
+
.mobmenu-standard .footer-options th.first, .mobmenu-standard .woocommerce-options th.first {
|
13 |
+
opacity: 0;
|
14 |
+
width: 10px;
|
15 |
+
padding: 0px!important;
|
16 |
+
}
|
17 |
.menu .mobmenu-item-settings:before {
|
18 |
padding-right: 5px;
|
19 |
}
|
237 |
.titan-framework-panel-wrap td.second.tf-iframe iframe {
|
238 |
margin-left: -200px!important;
|
239 |
}
|
240 |
+
.options-container .tf-sortable .vertical li {
|
241 |
width: 50%;
|
242 |
+
}
|
243 |
+
.titan-framework-panel-wrap{
|
244 |
+
|
245 |
}
|
246 |
.tf-sortable li {
|
247 |
width: 12%;
|
248 |
float: left;
|
249 |
line-height: 20px;
|
250 |
}
|
251 |
+
.mobmenu-header-wrap-inner .updated.top {
|
252 |
+
position: absolute;
|
253 |
+
right: 50px;
|
254 |
+
top: 120px;
|
255 |
+
}
|
256 |
+
.general-options .dashicons.dashicons-menu {
|
257 |
+
display: none;
|
258 |
}
|
259 |
.active-tab-general-options .tf-sortable div {
|
260 |
margin-top: 20px;
|
267 |
display: none;
|
268 |
}
|
269 |
.options-container th.first {
|
270 |
+
padding: 20px!important;
|
|
|
|
|
|
|
271 |
}
|
272 |
.tf-sortable ul{
|
273 |
width: 100%;
|
293 |
color: #656e77;
|
294 |
letter-spacing: 1px;
|
295 |
}
|
296 |
+
.mobmenu-header-wrap .notice, .mobmenu-header-wrap .fs-notice {
|
297 |
+
display: none;
|
298 |
+
}
|
299 |
+
|
300 |
+
.mobmenu-header-wrap .fs-plugin-title {
|
301 |
+
display: none;
|
302 |
+
}
|
303 |
.titan-framework-panel-wrap .tf-heading th {
|
304 |
background:none repeat scroll 0 0 #fbfbfb!important;
|
305 |
width: 100vw;
|
306 |
}
|
307 |
+
.titan-framework-panel-wrap .form-table tr.heading label {
|
308 |
+
color: #5b7ff7;
|
309 |
+
font-weight: 500;
|
310 |
+
font-size: 15px;
|
311 |
+
}
|
312 |
.titan-framework-panel-wrap .active-tab-fonts .form-table th label {
|
313 |
font-weight: 600;
|
314 |
}
|
315 |
+
.titan-framework-panel-wrap .active, .titan-framework-panel-wrap .active:hover {
|
316 |
+
background: #FFF!important;
|
317 |
+
}
|
318 |
+
.titan-framework-panel-wrap .button-primary{
|
319 |
+
background: #8995B2!important;
|
320 |
+
}
|
321 |
+
.titan-framework-panel-wrap .button-secondary{
|
322 |
+
color: #8995B2!important;
|
323 |
+
border-color: #8995B2!important;
|
324 |
+
background-color: #FFF!important;
|
325 |
}
|
326 |
td.second.tf-multicheck-pages fieldset {
|
327 |
max-height: 500px;
|
415 |
max-width: 250px;
|
416 |
min-width: 160px;
|
417 |
}
|
418 |
+
.titan-framework-panel-wrap .form-table tr {
|
419 |
+
display: none;
|
420 |
+
}
|
421 |
.titan-framework-panel-wrap .nav-tab-wrapper, .wrap .titan-framework-panel-wrap h2.nav-tab-wrapper {
|
422 |
border-bottom: none;
|
423 |
background: #f9f9f9;
|
424 |
+
margin-top: 0px;
|
425 |
+
border-right: 1px solid #98a2bc;
|
426 |
}
|
427 |
.titan-framework-panel-wrap {
|
428 |
display: flex;
|
433 |
width: 100%;
|
434 |
border: none;
|
435 |
margin-left: 0px;
|
436 |
+
color: #737b8d;
|
437 |
background: #f9f9f9;
|
|
|
|
|
|
|
|
|
438 |
font-weight: 500;
|
439 |
line-height: 2.5em;
|
440 |
+
letter-spacing: 0.5px;
|
441 |
+
padding: 0px 0px 10px 20px;
|
442 |
+
}
|
443 |
+
[data-link-id=general-alerts]{
|
444 |
+
display: none;
|
445 |
}
|
446 |
.nav-tab-wrapper ul {
|
447 |
margin: 0;
|
448 |
padding: 1px;
|
449 |
}
|
450 |
+
.nav-tab-wrapper .nav-tab.active ul {
|
451 |
display: grid;
|
452 |
}
|
453 |
.nav-tab-wrapper .nav-tab ul {
|
454 |
display: none;
|
|
|
455 |
}
|
456 |
.nav-tab-wrapper ul li {
|
457 |
+
padding: 2px;
|
458 |
+
font-size: 13px;
|
459 |
+
font-weight: 500;
|
460 |
margin: 0;
|
461 |
+
color: #737b8d;
|
|
|
462 |
line-height: 2em;
|
463 |
+
padding-left: 20px;
|
464 |
+
margin-top: 6px;
|
465 |
+
margin-bottom: 6px;
|
466 |
+
}
|
467 |
+
.titan-framework-panel-wrap .nav-tab:focus {
|
468 |
+
box-shadow: none;
|
469 |
}
|
470 |
.nav-tab-wrapper ul li:hover {
|
471 |
background: #f7f7f7;
|
472 |
color: #3695ef;
|
473 |
}
|
474 |
+
.titan-framework-panel-wrap .active, .titan-framework-panel-wrap .active:hover {
|
475 |
+
color: #5C7FF7;
|
476 |
}
|
477 |
.wrap .titan-framework-panel-wrap .nav-tab-wrapper {
|
478 |
padding: 0;
|
486 |
.toplevel_page_mobile-menu-options .wrap {
|
487 |
padding: 12px;
|
488 |
}
|
489 |
+
.mobmenu-header-wrap-inner h2 {
|
490 |
+
color: #FFF;
|
491 |
+
font-size: 1.5em;
|
492 |
+
}
|
493 |
+
.mobmenu-title-h2{
|
494 |
+
font-size: 0px;
|
495 |
+
}
|
496 |
+
.mobmenu-header-wrap-inner {
|
497 |
padding-top: 15px;
|
498 |
padding-bottom: 15px;
|
499 |
+
padding-left: 20px;
|
500 |
+
background: #5C7FF7;
|
501 |
+
display: flex;
|
502 |
}
|
503 |
.titan-framework-panel-wrap .form-table th label {
|
504 |
+
font-weight: 300;
|
505 |
font-family: sans-serif;
|
506 |
+
color: #5e667c;
|
507 |
+
font-size: 13px;
|
508 |
}
|
509 |
.titan-framework-panel-wrap .form-table td .description {
|
510 |
+
color: #8995b2;
|
511 |
+
font-size: 13px;
|
512 |
+
padding-top: 10px;
|
513 |
}
|
514 |
.nav-tab-wrapper ul li:hover {
|
515 |
cursor: pointer;
|
531 |
color: #676767;
|
532 |
}
|
533 |
.titan-framework-panel-wrap .form-table {
|
534 |
+
margin-top: 5px;
|
535 |
background: #fff;
|
536 |
}
|
537 |
.titan-framework-panel-wrap .active-tab-documentation {
|
538 |
width: 100%;
|
539 |
}
|
540 |
.mm-panel-search-bar {
|
|
|
541 |
padding: 10px 10px;
|
542 |
+
color: #FFF;
|
543 |
+
margin-left: 50px;
|
544 |
}
|
545 |
.mm-panel-search-bar span {
|
546 |
padding-left: 30px;
|
548 |
.mm-search-settings-results li {
|
549 |
padding: 5px;
|
550 |
line-height: 2em;
|
551 |
+
background: #f5f8ff;
|
552 |
width: 21%;
|
553 |
font-size: 14px;
|
554 |
cursor: pointer;
|
559 |
.mm-search-settings-results li:hover {
|
560 |
background: #f5f5f5;
|
561 |
}
|
562 |
+
.mm-search-settings-results {
|
563 |
+
position: absolute;
|
564 |
+
background: #fff;
|
565 |
+
padding: 10px;
|
566 |
+
width: 62%;
|
567 |
+
z-index: 99;
|
568 |
+
border: 1px solid #5c7ff7;
|
569 |
+
opacity: 0;
|
570 |
+
}
|
571 |
+
.mm-doc-icon {
|
572 |
+
color: #fff;
|
573 |
+
margin-top: 25px;
|
574 |
+
right: 50px;
|
575 |
+
position: absolute;
|
576 |
+
}
|
577 |
+
.mm-doc-icon a {
|
578 |
+
text-decoration: none;
|
579 |
+
color: #fff;
|
580 |
+
}
|
581 |
+
.mm-doc-icon a:hover {
|
582 |
+
color: #e0e7ec
|
583 |
+
}
|
584 |
.mm-panel-search-bar #mm_search_settings {
|
585 |
border-radius: 4px;
|
586 |
border: 2px solid #0085ba;
|
|
|
587 |
font-size: 15px;
|
588 |
color: #656e76;
|
589 |
}
|
590 |
.mm-panel-search-bar label {
|
591 |
+
color: #b3dcf0;
|
592 |
+
}
|
593 |
+
.mm-scan-alerts {
|
594 |
+
margin-top: 25px;
|
595 |
+
right: 190px;
|
596 |
+
position: absolute;
|
597 |
+
color: #fff;
|
598 |
+
}
|
599 |
+
.mm-scan-alerts a {
|
600 |
+
text-decoration: none;
|
601 |
+
color: #fff;
|
602 |
+
}
|
603 |
+
.mm-scan-alerts a:hover {
|
604 |
+
color: #e0e7ec;
|
605 |
}
|
606 |
.CodeMirror {
|
607 |
border: 1px solid #ddd;
|
612 |
cursor: grab;
|
613 |
border: 1px solid #efefef;
|
614 |
}
|
615 |
+
/*
|
616 |
.options-container.active-tab-general-options .tf-sortable li[data-value="logo"]{
|
617 |
width:120px;
|
618 |
+
}*/
|
619 |
.options-container .tf-sortable li span {
|
620 |
padding-top: 40px;
|
621 |
display: block;
|
622 |
text-align: center;
|
623 |
font-size: 11px;
|
624 |
}
|
625 |
+
.mm-search-settings-results a {
|
626 |
+
text-decoration: none;
|
627 |
+
font-weight: 300;
|
628 |
+
}
|
629 |
.mm-version-holder {
|
630 |
position: absolute;
|
631 |
+
left: 35px;
|
632 |
+
margin-top: 45px;
|
633 |
+
color: #fff;
|
634 |
+
width: 90px;
|
635 |
+
font-size: 11px;
|
636 |
}
|
637 |
.mm-version-holder a {
|
638 |
+
color: #e0e7ec;
|
|
|
639 |
}
|
640 |
.mm-bussiness-features .dashicons-yes {
|
641 |
color:#008000;
|
643 |
padding-right: 20px;
|
644 |
}
|
645 |
.mm-bussiness-features p {
|
646 |
+
line-height: 3em;
|
647 |
+
font-size: 14px!important;
|
648 |
+
font-weight: 500!important;
|
649 |
}
|
650 |
.mm-bussiness-features {
|
651 |
float: left;
|
652 |
+
width: 64%;
|
653 |
}
|
654 |
.mm-bussiness-features h3 {
|
655 |
font-size: 2em;
|
676 |
min-height: 35px;
|
677 |
padding-top: 5px;
|
678 |
border-radius: 6px;
|
679 |
+
margin: 20px!important;
|
680 |
}
|
681 |
.toplevel_page_mobile-menu-options .CodeMirror {
|
682 |
resize: vertical;
|
715 |
padding: 5px;
|
716 |
margin-left: 10px;
|
717 |
color: #fff;
|
718 |
+
background: #5c7ff7;
|
719 |
text-decoration: none;
|
720 |
cursor: pointer;
|
721 |
}
|
722 |
.mobmenu-preview-iframe {
|
723 |
position: fixed;
|
724 |
+
top: 150px;
|
725 |
+
right: 50px;
|
726 |
display: none;
|
727 |
background: #fefdfd;
|
728 |
border: 15px solid #222020;
|
729 |
border-radius: 25px;
|
730 |
+
}
|
731 |
+
.mm-alerts-bubble.alert-number-0 {
|
732 |
+
color: #4ebb4e;
|
733 |
+
box-shadow: 0 0 0 .1rem var(--white,#4ebb4e)
|
734 |
+
}
|
735 |
+
|
736 |
+
|
737 |
+
.mm-alerts-bubble {
|
738 |
+
color: #FF5722;
|
739 |
+
font-size: 10px;
|
740 |
+
font-weight: 700;
|
741 |
+
top: -11px;
|
742 |
+
right: -5px;
|
743 |
+
position: relative;
|
744 |
+
box-shadow: 0 0 0 .1rem var(--white,#FF5722);
|
745 |
+
border-radius: 25px;
|
746 |
+
padding: 0px 3px 1px 3px!important;
|
747 |
+
text-align: center;
|
748 |
+
background: #ffffff;
|
749 |
+
}
|
750 |
+
.nav-tab-wrapper ul li.active {
|
751 |
+
border-left: 2px solid #5c7ff7;
|
752 |
+
color: #5c7ff7;
|
753 |
+
}
|
754 |
+
.active-tab-general-options .general-hide-elements, .active-tab-general-options .general-import-export, .active-tab-general-options .general-misc-options, .active-tab-general-options .general-visibility-options, .active-tab-general-options .general-advanced-options{
|
755 |
+
display:none;
|
756 |
+
}
|
757 |
+
tr.even.first.tf-heading {
|
758 |
+
display: none;
|
759 |
+
}
|
760 |
+
.select2-container--default .select2-results__option--highlighted[aria-selected] {
|
761 |
+
background-color: #8995b2!important;
|
762 |
+
}
|
763 |
+
.titan-framework-panel-wrap .form-table td {
|
764 |
+
padding: 15px 10px!important;
|
765 |
+
}
|
766 |
+
.titan-framework-panel-wrap .form-table {
|
767 |
+
max-width: 1000px;
|
768 |
+
}
|
769 |
+
.submit button.button.button-primary {
|
770 |
+
background: #5c7ff7!important;
|
771 |
}
|
includes/css/mobmenu-codes.css
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
|
2 |
-
.icon-th:before { content: '\e800'; } /* '' */
|
3 |
-
.icon-th-list:before { content: '\e801'; } /* '' */
|
4 |
-
.icon-th-large:before { content: '\e802'; } /* '' */
|
5 |
-
.icon-down-open:before { content: '\e803'; } /* '' */
|
6 |
-
.icon-up-open:before { content: '\e804'; } /* '' */
|
7 |
-
.icon-align-justify:before { content: '\e805'; } /* '' */
|
8 |
-
.icon-down-open-big:before { content: '\e806'; } /* '' */
|
9 |
-
.icon-up-open-big:before { content: '\e807'; } /* '' */
|
10 |
-
.icon-up-open-1:before { content: '\e808'; } /* '' */
|
11 |
-
.icon-down-open-mini:before { content: '\e809'; } /* '' */
|
12 |
-
.icon-menu-1:before { content: '\e80a'; } /* '' */
|
13 |
-
.icon-menu-outline:before { content: '\e80b'; } /* '' */
|
14 |
-
.icon-th-large-1:before { content: '\e80c'; } /* '' */
|
15 |
-
.icon-th-1:before { content: '\e80d'; } /* '' */
|
16 |
-
.icon-th-list-2:before { content: '\e80e'; } /* '' */
|
17 |
-
.icon-th-list-3:before { content: '\e80f'; } /* '' */
|
18 |
-
.icon-cancel:before { content: '\e810'; } /* '' */
|
19 |
-
.icon-cancel-circled:before { content: '\e811'; } /* '' */
|
20 |
-
.icon-cancel-circled2:before { content: '\e812'; } /* '' */
|
21 |
-
.icon-cancel-squared:before { content: '\e813'; } /* '' */
|
22 |
-
.icon-cancel-circled-1:before { content: '\e814'; } /* '' */
|
23 |
-
.icon-cancel-1:before { content: '\e815'; } /* '' */
|
24 |
-
.icon-cancel-outline:before { content: '\e816'; } /* '' */
|
25 |
-
.icon-cancel-2:before { content: '\e817'; } /* '' */
|
26 |
-
.icon-cancel-circled-outline:before { content: '\e818'; } /* '' */
|
27 |
-
.icon-cancel-circled-2:before { content: '\e819'; } /* '' */
|
28 |
-
.icon-cancel-circle:before { content: '\e81a'; } /* '' */
|
29 |
-
.icon-cancel-3:before { content: '\e81b'; } /* '' */
|
30 |
-
.icon-cancel-4:before { content: '\e81c'; } /* '' */
|
31 |
-
.icon-cancel-circle-1:before { content: '\e81d'; } /* '' */
|
32 |
-
.icon-up-open-mini:before { content: '\e81e'; } /* '' */
|
33 |
-
.icon-down-open-1:before { content: '\e81f'; } /* '' */
|
34 |
-
.icon-menu-2:before { content: '\f008'; } /* '' */
|
35 |
-
.icon-th-list-1:before { content: '\f009'; } /* '' */
|
36 |
-
.icon-th-thumb:before { content: '\f00a'; } /* '' */
|
37 |
-
.icon-th-thumb-empty:before { content: '\f00b'; } /* '' */
|
38 |
-
.icon-menu:before { content: '\f0c9'; } /* '' */
|
39 |
-
.icon-ellipsis:before { content: '\f141'; } /* '' */
|
40 |
-
.icon-ellipsis-vert:before { content: '\f142'; } /* '' */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu-codes_remove.css
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
|
2 |
-
.icon-th:before { content: '\e800'; } /* '' */
|
3 |
-
.icon-th-list:before { content: '\e801'; } /* '' */
|
4 |
-
.icon-th-large:before { content: '\e802'; } /* '' */
|
5 |
-
.icon-down-open:before { content: '\e803'; } /* '' */
|
6 |
-
.icon-up-open:before { content: '\e804'; } /* '' */
|
7 |
-
.icon-align-justify:before { content: '\e805'; } /* '' */
|
8 |
-
.icon-down-open-big:before { content: '\e806'; } /* '' */
|
9 |
-
.icon-up-open-big:before { content: '\e807'; } /* '' */
|
10 |
-
.icon-up-open-1:before { content: '\e808'; } /* '' */
|
11 |
-
.icon-down-open-mini:before { content: '\e809'; } /* '' */
|
12 |
-
.icon-menu-1:before { content: '\e80a'; } /* '' */
|
13 |
-
.icon-menu-outline:before { content: '\e80b'; } /* '' */
|
14 |
-
.icon-th-large-1:before { content: '\e80c'; } /* '' */
|
15 |
-
.icon-th-1:before { content: '\e80d'; } /* '' */
|
16 |
-
.icon-th-list-2:before { content: '\e80e'; } /* '' */
|
17 |
-
.icon-th-list-3:before { content: '\e80f'; } /* '' */
|
18 |
-
.icon-cancel:before { content: '\e810'; } /* '' */
|
19 |
-
.icon-cancel-circled:before { content: '\e811'; } /* '' */
|
20 |
-
.icon-cancel-circled2:before { content: '\e812'; } /* '' */
|
21 |
-
.icon-cancel-squared:before { content: '\e813'; } /* '' */
|
22 |
-
.icon-cancel-circled-1:before { content: '\e814'; } /* '' */
|
23 |
-
.icon-cancel-1:before { content: '\e815'; } /* '' */
|
24 |
-
.icon-cancel-outline:before { content: '\e816'; } /* '' */
|
25 |
-
.icon-cancel-2:before { content: '\e817'; } /* '' */
|
26 |
-
.icon-cancel-circled-outline:before { content: '\e818'; } /* '' */
|
27 |
-
.icon-cancel-circled-2:before { content: '\e819'; } /* '' */
|
28 |
-
.icon-cancel-circle:before { content: '\e81a'; } /* '' */
|
29 |
-
.icon-cancel-3:before { content: '\e81b'; } /* '' */
|
30 |
-
.icon-cancel-4:before { content: '\e81c'; } /* '' */
|
31 |
-
.icon-cancel-circle-1:before { content: '\e81d'; } /* '' */
|
32 |
-
.icon-up-open-mini:before { content: '\e81e'; } /* '' */
|
33 |
-
.icon-down-open-1:before { content: '\e81f'; } /* '' */
|
34 |
-
.icon-menu-2:before { content: '\f008'; } /* '' */
|
35 |
-
.icon-th-list-1:before { content: '\f009'; } /* '' */
|
36 |
-
.icon-th-thumb:before { content: '\f00a'; } /* '' */
|
37 |
-
.icon-th-thumb-empty:before { content: '\f00b'; } /* '' */
|
38 |
-
.icon-menu:before { content: '\f0c9'; } /* '' */
|
39 |
-
.icon-ellipsis:before { content: '\f141'; } /* '' */
|
40 |
-
.icon-ellipsis-vert:before { content: '\f142'; } /* '' */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu-embedded.css
DELETED
@@ -1,93 +0,0 @@
|
|
1 |
-
@font-face {
|
2 |
-
font-family: 'mobmenu';
|
3 |
-
src: url('../font/mobmenu.eot?35594329');
|
4 |
-
src: url('../font/mobmenu.eot?35594329#iefix') format('embedded-opentype'),
|
5 |
-
url('../font/mobmenu.svg?35594329#mobmenu') format('svg');
|
6 |
-
font-weight: normal;
|
7 |
-
font-style: normal;
|
8 |
-
}
|
9 |
-
@font-face {
|
10 |
-
font-family: 'mobmenu';
|
11 |
-
src: url('data:application/octet-stream;base64,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') format('woff'),
|
12 |
-
url('data:application/octet-stream;base64,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') format('truetype');
|
13 |
-
}
|
14 |
-
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
15 |
-
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
16 |
-
/*
|
17 |
-
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
18 |
-
@font-face {
|
19 |
-
font-family: 'mobmenu';
|
20 |
-
src: url('../font/mobmenu.svg?35594329#mobmenu') format('svg');
|
21 |
-
}
|
22 |
-
}
|
23 |
-
*/
|
24 |
-
|
25 |
-
[class^="icon-"]:before, [class*=" icon-"]:before {
|
26 |
-
font-family: "mobmenu";
|
27 |
-
font-style: normal;
|
28 |
-
font-weight: normal;
|
29 |
-
speak: none;
|
30 |
-
|
31 |
-
display: inline-block;
|
32 |
-
text-decoration: inherit;
|
33 |
-
width: 1em;
|
34 |
-
margin-right: .2em;
|
35 |
-
text-align: center;
|
36 |
-
/* opacity: .8; */
|
37 |
-
|
38 |
-
/* For safety - reset parent styles, that can break glyph codes*/
|
39 |
-
font-variant: normal;
|
40 |
-
text-transform: none;
|
41 |
-
|
42 |
-
/* fix buttons height, for twitter bootstrap */
|
43 |
-
line-height: 1em;
|
44 |
-
|
45 |
-
/* Animation center compensation - margins should be symmetric */
|
46 |
-
/* remove if not needed */
|
47 |
-
margin-left: .2em;
|
48 |
-
|
49 |
-
/* you can be more comfortable with increased icons size */
|
50 |
-
/* font-size: 120%; */
|
51 |
-
|
52 |
-
/* Uncomment for 3D effect */
|
53 |
-
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
54 |
-
}
|
55 |
-
.icon-th:before { content: '\e800'; } /* '' */
|
56 |
-
.icon-th-list:before { content: '\e801'; } /* '' */
|
57 |
-
.icon-th-large:before { content: '\e802'; } /* '' */
|
58 |
-
.icon-down-open:before { content: '\e803'; } /* '' */
|
59 |
-
.icon-up-open:before { content: '\e804'; } /* '' */
|
60 |
-
.icon-align-justify:before { content: '\e805'; } /* '' */
|
61 |
-
.icon-down-open-big:before { content: '\e806'; } /* '' */
|
62 |
-
.icon-up-open-big:before { content: '\e807'; } /* '' */
|
63 |
-
.icon-up-open-1:before { content: '\e808'; } /* '' */
|
64 |
-
.icon-down-open-mini:before { content: '\e809'; } /* '' */
|
65 |
-
.icon-menu-1:before { content: '\e80a'; } /* '' */
|
66 |
-
.icon-menu-outline:before { content: '\e80b'; } /* '' */
|
67 |
-
.icon-th-large-1:before { content: '\e80c'; } /* '' */
|
68 |
-
.icon-th-1:before { content: '\e80d'; } /* '' */
|
69 |
-
.icon-th-list-2:before { content: '\e80e'; } /* '' */
|
70 |
-
.icon-th-list-3:before { content: '\e80f'; } /* '' */
|
71 |
-
.icon-cancel:before { content: '\e810'; } /* '' */
|
72 |
-
.icon-cancel-circled:before { content: '\e811'; } /* '' */
|
73 |
-
.icon-cancel-circled2:before { content: '\e812'; } /* '' */
|
74 |
-
.icon-cancel-squared:before { content: '\e813'; } /* '' */
|
75 |
-
.icon-cancel-circled-1:before { content: '\e814'; } /* '' */
|
76 |
-
.icon-cancel-1:before { content: '\e815'; } /* '' */
|
77 |
-
.icon-cancel-outline:before { content: '\e816'; } /* '' */
|
78 |
-
.icon-cancel-2:before { content: '\e817'; } /* '' */
|
79 |
-
.icon-cancel-circled-outline:before { content: '\e818'; } /* '' */
|
80 |
-
.icon-cancel-circled-2:before { content: '\e819'; } /* '' */
|
81 |
-
.icon-cancel-circle:before { content: '\e81a'; } /* '' */
|
82 |
-
.icon-cancel-3:before { content: '\e81b'; } /* '' */
|
83 |
-
.icon-cancel-4:before { content: '\e81c'; } /* '' */
|
84 |
-
.icon-cancel-circle-1:before { content: '\e81d'; } /* '' */
|
85 |
-
.icon-up-open-mini:before { content: '\e81e'; } /* '' */
|
86 |
-
.icon-down-open-1:before { content: '\e81f'; } /* '' */
|
87 |
-
.icon-menu-2:before { content: '\f008'; } /* '' */
|
88 |
-
.icon-th-list-1:before { content: '\f009'; } /* '' */
|
89 |
-
.icon-th-thumb:before { content: '\f00a'; } /* '' */
|
90 |
-
.icon-th-thumb-empty:before { content: '\f00b'; } /* '' */
|
91 |
-
.icon-menu:before { content: '\f0c9'; } /* '' */
|
92 |
-
.icon-ellipsis:before { content: '\f141'; } /* '' */
|
93 |
-
.icon-ellipsis-vert:before { content: '\f142'; } /* '' */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu-embedded_remove.css
DELETED
@@ -1,98 +0,0 @@
|
|
1 |
-
|
2 |
-
/* Premium Code Stripped by Freemius */
|
3 |
-
|
4 |
-
|
5 |
-
@font-face {
|
6 |
-
font-family: 'mobmenu';
|
7 |
-
src: url('../font/mobmenu.eot?35594329');
|
8 |
-
src: url('../font/mobmenu.eot?35594329#iefix') format('embedded-opentype'),
|
9 |
-
url('../font/mobmenu.svg?35594329#mobmenu') format('svg');
|
10 |
-
font-weight: normal;
|
11 |
-
font-style: normal;
|
12 |
-
}
|
13 |
-
|
14 |
-
@font-face {
|
15 |
-
font-family: 'mobmenu';
|
16 |
-
src: url('data:application/octet-stream;base64,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') format('woff'),
|
17 |
-
url('data:application/octet-stream;base64,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') format('truetype');
|
18 |
-
}
|
19 |
-
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
20 |
-
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
21 |
-
/*
|
22 |
-
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
23 |
-
@font-face {
|
24 |
-
font-family: 'mobmenu';
|
25 |
-
src: url('../font/mobmenu.svg?35594329#mobmenu') format('svg');
|
26 |
-
}
|
27 |
-
}
|
28 |
-
*/
|
29 |
-
|
30 |
-
[class^="icon-"]:before, [class*=" icon-"]:before {
|
31 |
-
font-family: "mobmenu";
|
32 |
-
font-style: normal;
|
33 |
-
font-weight: normal;
|
34 |
-
speak: none;
|
35 |
-
|
36 |
-
display: inline-block;
|
37 |
-
text-decoration: inherit;
|
38 |
-
width: 1em;
|
39 |
-
margin-right: .2em;
|
40 |
-
text-align: center;
|
41 |
-
/* opacity: .8; */
|
42 |
-
|
43 |
-
/* For safety - reset parent styles, that can break glyph codes*/
|
44 |
-
font-variant: normal;
|
45 |
-
text-transform: none;
|
46 |
-
|
47 |
-
/* fix buttons height, for twitter bootstrap */
|
48 |
-
line-height: 1em;
|
49 |
-
|
50 |
-
/* Animation center compensation - margins should be symmetric */
|
51 |
-
/* remove if not needed */
|
52 |
-
margin-left: .2em;
|
53 |
-
|
54 |
-
/* you can be more comfortable with increased icons size */
|
55 |
-
/* font-size: 120%; */
|
56 |
-
|
57 |
-
/* Uncomment for 3D effect */
|
58 |
-
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
59 |
-
}
|
60 |
-
.icon-th:before { content: '\e800'; } /* '' */
|
61 |
-
.icon-th-list:before { content: '\e801'; } /* '' */
|
62 |
-
.icon-th-large:before { content: '\e802'; } /* '' */
|
63 |
-
.icon-down-open:before { content: '\e803'; } /* '' */
|
64 |
-
.icon-up-open:before { content: '\e804'; } /* '' */
|
65 |
-
.icon-align-justify:before { content: '\e805'; } /* '' */
|
66 |
-
.icon-down-open-big:before { content: '\e806'; } /* '' */
|
67 |
-
.icon-up-open-big:before { content: '\e807'; } /* '' */
|
68 |
-
.icon-up-open-1:before { content: '\e808'; } /* '' */
|
69 |
-
.icon-down-open-mini:before { content: '\e809'; } /* '' */
|
70 |
-
.icon-menu-1:before { content: '\e80a'; } /* '' */
|
71 |
-
.icon-menu-outline:before { content: '\e80b'; } /* '' */
|
72 |
-
.icon-th-large-1:before { content: '\e80c'; } /* '' */
|
73 |
-
.icon-th-1:before { content: '\e80d'; } /* '' */
|
74 |
-
.icon-th-list-2:before { content: '\e80e'; } /* '' */
|
75 |
-
.icon-th-list-3:before { content: '\e80f'; } /* '' */
|
76 |
-
.icon-cancel:before { content: '\e810'; } /* '' */
|
77 |
-
.icon-cancel-circled:before { content: '\e811'; } /* '' */
|
78 |
-
.icon-cancel-circled2:before { content: '\e812'; } /* '' */
|
79 |
-
.icon-cancel-squared:before { content: '\e813'; } /* '' */
|
80 |
-
.icon-cancel-circled-1:before { content: '\e814'; } /* '' */
|
81 |
-
.icon-cancel-1:before { content: '\e815'; } /* '' */
|
82 |
-
.icon-cancel-outline:before { content: '\e816'; } /* '' */
|
83 |
-
.icon-cancel-2:before { content: '\e817'; } /* '' */
|
84 |
-
.icon-cancel-circled-outline:before { content: '\e818'; } /* '' */
|
85 |
-
.icon-cancel-circled-2:before { content: '\e819'; } /* '' */
|
86 |
-
.icon-cancel-circle:before { content: '\e81a'; } /* '' */
|
87 |
-
.icon-cancel-3:before { content: '\e81b'; } /* '' */
|
88 |
-
.icon-cancel-4:before { content: '\e81c'; } /* '' */
|
89 |
-
.icon-cancel-circle-1:before { content: '\e81d'; } /* '' */
|
90 |
-
.icon-up-open-mini:before { content: '\e81e'; } /* '' */
|
91 |
-
.icon-down-open-1:before { content: '\e81f'; } /* '' */
|
92 |
-
.icon-menu-2:before { content: '\f008'; } /* '' */
|
93 |
-
.icon-th-list-1:before { content: '\f009'; } /* '' */
|
94 |
-
.icon-th-thumb:before { content: '\f00a'; } /* '' */
|
95 |
-
.icon-th-thumb-empty:before { content: '\f00b'; } /* '' */
|
96 |
-
.icon-menu:before { content: '\f0c9'; } /* '' */
|
97 |
-
.icon-ellipsis:before { content: '\f141'; } /* '' */
|
98 |
-
.icon-ellipsis-vert:before { content: '\f142'; } /* '' */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu-fontello.css
DELETED
@@ -1,94 +0,0 @@
|
|
1 |
-
@font-face {
|
2 |
-
font-family: 'mobmenu';
|
3 |
-
src: url('../font/mobmenu.eot?18442310');
|
4 |
-
src: url('../font/mobmenu.eot?18442310#iefix') format('embedded-opentype'),
|
5 |
-
url('../font/mobmenu.woff2?18442310') format('woff2'),
|
6 |
-
url('../font/mobmenu.woff?18442310') format('woff'),
|
7 |
-
url('../font/mobmenu.ttf?18442310') format('truetype'),
|
8 |
-
url('../font/mobmenu.svg?18442310#mobmenu') format('svg');
|
9 |
-
font-weight: normal;
|
10 |
-
font-style: normal;
|
11 |
-
}
|
12 |
-
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
13 |
-
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
14 |
-
/*
|
15 |
-
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
16 |
-
@font-face {
|
17 |
-
font-family: 'mobmenu';
|
18 |
-
src: url('../font/mobmenu.svg?18442310#mobmenu') format('svg');
|
19 |
-
}
|
20 |
-
}
|
21 |
-
*/
|
22 |
-
|
23 |
-
[class^="icon-"]:before, [class*=" icon-"]:before {
|
24 |
-
font-family: "mobmenu";
|
25 |
-
font-style: normal;
|
26 |
-
font-weight: normal;
|
27 |
-
speak: none;
|
28 |
-
|
29 |
-
display: inline-block;
|
30 |
-
text-decoration: inherit;
|
31 |
-
width: 1em;
|
32 |
-
margin-right: .2em;
|
33 |
-
text-align: center;
|
34 |
-
/* opacity: .8; */
|
35 |
-
|
36 |
-
/* For safety - reset parent styles, that can break glyph codes*/
|
37 |
-
font-variant: normal;
|
38 |
-
text-transform: none;
|
39 |
-
|
40 |
-
/* fix buttons height, for twitter bootstrap */
|
41 |
-
line-height: 1em;
|
42 |
-
|
43 |
-
/* Animation center compensation - margins should be symmetric */
|
44 |
-
/* remove if not needed */
|
45 |
-
margin-left: .2em;
|
46 |
-
|
47 |
-
/* you can be more comfortable with increased icons size */
|
48 |
-
/* font-size: 120%; */
|
49 |
-
|
50 |
-
/* Font smoothing. That was taken from TWBS */
|
51 |
-
-webkit-font-smoothing: antialiased;
|
52 |
-
-moz-osx-font-smoothing: grayscale;
|
53 |
-
|
54 |
-
/* Uncomment for 3D effect */
|
55 |
-
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
56 |
-
}
|
57 |
-
|
58 |
-
.icon-th:before { content: '\e800'; } /* '' */
|
59 |
-
.icon-th-list:before { content: '\e801'; } /* '' */
|
60 |
-
.icon-th-large:before { content: '\e802'; } /* '' */
|
61 |
-
.icon-down-open:before { content: '\e803'; } /* '' */
|
62 |
-
.icon-up-open:before { content: '\e804'; } /* '' */
|
63 |
-
.icon-align-justify:before { content: '\e805'; } /* '' */
|
64 |
-
.icon-down-open-big:before { content: '\e806'; } /* '' */
|
65 |
-
.icon-up-open-big:before { content: '\e807'; } /* '' */
|
66 |
-
.icon-up-open-1:before { content: '\e808'; } /* '' */
|
67 |
-
.icon-down-open-mini:before { content: '\e809'; } /* '' */
|
68 |
-
.icon-menu-1:before { content: '\e80a'; } /* '' */
|
69 |
-
.icon-menu-outline:before { content: '\e80b'; } /* '' */
|
70 |
-
.icon-th-large-1:before { content: '\e80c'; } /* '' */
|
71 |
-
.icon-th-1:before { content: '\e80d'; } /* '' */
|
72 |
-
.icon-th-list-2:before { content: '\e80e'; } /* '' */
|
73 |
-
.icon-th-list-3:before { content: '\e80f'; } /* '' */
|
74 |
-
.icon-cancel:before { content: '\e810'; } /* '' */
|
75 |
-
.icon-cancel-circled:before { content: '\e811'; } /* '' */
|
76 |
-
.icon-cancel-circled2:before { content: '\e812'; } /* '' */
|
77 |
-
.icon-cancel-squared:before { content: '\e813'; } /* '' */
|
78 |
-
.icon-cancel-circled-1:before { content: '\e814'; } /* '' */
|
79 |
-
.icon-cancel-1:before { content: '\e815'; } /* '' */
|
80 |
-
.icon-cancel-outline:before { content: '\e816'; } /* '' */
|
81 |
-
.icon-cancel-2:before { content: '\e817'; } /* '' */
|
82 |
-
.icon-cancel-circled-outline:before { content: '\e818'; } /* '' */
|
83 |
-
.icon-cancel-circled-2:before { content: '\e819'; } /* '' */
|
84 |
-
.icon-cancel-circle:before { content: '\e81a'; } /* '' */
|
85 |
-
.icon-cancel-3:before { content: '\e81b'; } /* '' */
|
86 |
-
.icon-cancel-4:before { content: '\e81c'; } /* '' */
|
87 |
-
.icon-cancel-circle-1:before { content: '\e81d'; } /* '' */
|
88 |
-
.icon-menu-2:before { content: '\f008'; } /* '' */
|
89 |
-
.icon-th-list-1:before { content: '\f009'; } /* '' */
|
90 |
-
.icon-th-thumb:before { content: '\f00a'; } /* '' */
|
91 |
-
.icon-th-thumb-empty:before { content: '\f00b'; } /* '' */
|
92 |
-
.icon-menu:before { content: '\f0c9'; } /* '' */
|
93 |
-
.icon-ellipsis:before { content: '\f141'; } /* '' */
|
94 |
-
.icon-ellipsis-vert:before { content: '\f142'; } /* '' */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu-fontello_remove.css
DELETED
@@ -1,94 +0,0 @@
|
|
1 |
-
@font-face {
|
2 |
-
font-family: 'mobmenu';
|
3 |
-
src: url('../font/mobmenu.eot?18442310');
|
4 |
-
src: url('../font/mobmenu.eot?18442310#iefix') format('embedded-opentype'),
|
5 |
-
url('../font/mobmenu.woff2?18442310') format('woff2'),
|
6 |
-
url('../font/mobmenu.woff?18442310') format('woff'),
|
7 |
-
url('../font/mobmenu.ttf?18442310') format('truetype'),
|
8 |
-
url('../font/mobmenu.svg?18442310#mobmenu') format('svg');
|
9 |
-
font-weight: normal;
|
10 |
-
font-style: normal;
|
11 |
-
}
|
12 |
-
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
13 |
-
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
14 |
-
/*
|
15 |
-
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
16 |
-
@font-face {
|
17 |
-
font-family: 'mobmenu';
|
18 |
-
src: url('../font/mobmenu.svg?18442310#mobmenu') format('svg');
|
19 |
-
}
|
20 |
-
}
|
21 |
-
*/
|
22 |
-
|
23 |
-
[class^="icon-"]:before, [class*=" icon-"]:before {
|
24 |
-
font-family: "mobmenu";
|
25 |
-
font-style: normal;
|
26 |
-
font-weight: normal;
|
27 |
-
speak: none;
|
28 |
-
|
29 |
-
display: inline-block;
|
30 |
-
text-decoration: inherit;
|
31 |
-
width: 1em;
|
32 |
-
margin-right: .2em;
|
33 |
-
text-align: center;
|
34 |
-
/* opacity: .8; */
|
35 |
-
|
36 |
-
/* For safety - reset parent styles, that can break glyph codes*/
|
37 |
-
font-variant: normal;
|
38 |
-
text-transform: none;
|
39 |
-
|
40 |
-
/* fix buttons height, for twitter bootstrap */
|
41 |
-
line-height: 1em;
|
42 |
-
|
43 |
-
/* Animation center compensation - margins should be symmetric */
|
44 |
-
/* remove if not needed */
|
45 |
-
margin-left: .2em;
|
46 |
-
|
47 |
-
/* you can be more comfortable with increased icons size */
|
48 |
-
/* font-size: 120%; */
|
49 |
-
|
50 |
-
/* Font smoothing. That was taken from TWBS */
|
51 |
-
-webkit-font-smoothing: antialiased;
|
52 |
-
-moz-osx-font-smoothing: grayscale;
|
53 |
-
|
54 |
-
/* Uncomment for 3D effect */
|
55 |
-
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
56 |
-
}
|
57 |
-
|
58 |
-
.icon-th:before { content: '\e800'; } /* '' */
|
59 |
-
.icon-th-list:before { content: '\e801'; } /* '' */
|
60 |
-
.icon-th-large:before { content: '\e802'; } /* '' */
|
61 |
-
.icon-down-open:before { content: '\e803'; } /* '' */
|
62 |
-
.icon-up-open:before { content: '\e804'; } /* '' */
|
63 |
-
.icon-align-justify:before { content: '\e805'; } /* '' */
|
64 |
-
.icon-down-open-big:before { content: '\e806'; } /* '' */
|
65 |
-
.icon-up-open-big:before { content: '\e807'; } /* '' */
|
66 |
-
.icon-up-open-1:before { content: '\e808'; } /* '' */
|
67 |
-
.icon-down-open-mini:before { content: '\e809'; } /* '' */
|
68 |
-
.icon-menu-1:before { content: '\e80a'; } /* '' */
|
69 |
-
.icon-menu-outline:before { content: '\e80b'; } /* '' */
|
70 |
-
.icon-th-large-1:before { content: '\e80c'; } /* '' */
|
71 |
-
.icon-th-1:before { content: '\e80d'; } /* '' */
|
72 |
-
.icon-th-list-2:before { content: '\e80e'; } /* '' */
|
73 |
-
.icon-th-list-3:before { content: '\e80f'; } /* '' */
|
74 |
-
.icon-cancel:before { content: '\e810'; } /* '' */
|
75 |
-
.icon-cancel-circled:before { content: '\e811'; } /* '' */
|
76 |
-
.icon-cancel-circled2:before { content: '\e812'; } /* '' */
|
77 |
-
.icon-cancel-squared:before { content: '\e813'; } /* '' */
|
78 |
-
.icon-cancel-circled-1:before { content: '\e814'; } /* '' */
|
79 |
-
.icon-cancel-1:before { content: '\e815'; } /* '' */
|
80 |
-
.icon-cancel-outline:before { content: '\e816'; } /* '' */
|
81 |
-
.icon-cancel-2:before { content: '\e817'; } /* '' */
|
82 |
-
.icon-cancel-circled-outline:before { content: '\e818'; } /* '' */
|
83 |
-
.icon-cancel-circled-2:before { content: '\e819'; } /* '' */
|
84 |
-
.icon-cancel-circle:before { content: '\e81a'; } /* '' */
|
85 |
-
.icon-cancel-3:before { content: '\e81b'; } /* '' */
|
86 |
-
.icon-cancel-4:before { content: '\e81c'; } /* '' */
|
87 |
-
.icon-cancel-circle-1:before { content: '\e81d'; } /* '' */
|
88 |
-
.icon-menu-2:before { content: '\f008'; } /* '' */
|
89 |
-
.icon-th-list-1:before { content: '\f009'; } /* '' */
|
90 |
-
.icon-th-thumb:before { content: '\f00a'; } /* '' */
|
91 |
-
.icon-th-thumb-empty:before { content: '\f00b'; } /* '' */
|
92 |
-
.icon-menu:before { content: '\f0c9'; } /* '' */
|
93 |
-
.icon-ellipsis:before { content: '\f141'; } /* '' */
|
94 |
-
.icon-ellipsis-vert:before { content: '\f142'; } /* '' */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu-icons.css
CHANGED
@@ -3,12 +3,8 @@
|
|
3 |
/* Mobile Menu Admin CSS Style*/
|
4 |
@font-face {
|
5 |
font-family: 'mobmenu';
|
6 |
-
|
7 |
-
|
8 |
-
url('font/mobmenu.woff2?31192480') format('woff2'),
|
9 |
-
url('font/mobmenu.woff?31192480') format('woff'),
|
10 |
-
url('font/mobmenu.ttf?31192480') format('truetype'),
|
11 |
-
url('font/mobmenu.svg?31192480#mobmenu') format('svg');
|
12 |
font-weight: normal;
|
13 |
font-style: normal;
|
14 |
}
|
3 |
/* Mobile Menu Admin CSS Style*/
|
4 |
@font-face {
|
5 |
font-family: 'mobmenu';
|
6 |
+
src: url('font/mobmenu.woff2?31192480') format('woff2'),
|
7 |
+
url('font/mobmenu.woff?31192480') format('woff');
|
|
|
|
|
|
|
|
|
8 |
font-weight: normal;
|
9 |
font-style: normal;
|
10 |
}
|
includes/css/mobmenu-ie7-codes.css
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
|
2 |
-
.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
3 |
-
.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
4 |
-
.icon-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
5 |
-
.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
6 |
-
.icon-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
7 |
-
.icon-align-justify { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
8 |
-
.icon-down-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
9 |
-
.icon-up-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
10 |
-
.icon-up-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
11 |
-
.icon-down-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
12 |
-
.icon-menu-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
13 |
-
.icon-menu-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
14 |
-
.icon-th-large-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
15 |
-
.icon-th-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
16 |
-
.icon-th-list-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
17 |
-
.icon-th-list-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
18 |
-
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
19 |
-
.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
20 |
-
.icon-cancel-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
21 |
-
.icon-cancel-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
22 |
-
.icon-cancel-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
23 |
-
.icon-cancel-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
24 |
-
.icon-cancel-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
25 |
-
.icon-cancel-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
26 |
-
.icon-cancel-circled-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
27 |
-
.icon-cancel-circled-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
28 |
-
.icon-cancel-circle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
29 |
-
.icon-cancel-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
30 |
-
.icon-cancel-4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
31 |
-
.icon-cancel-circle-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
32 |
-
.icon-up-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
33 |
-
.icon-down-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
34 |
-
.icon-menu-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
35 |
-
.icon-th-list-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
36 |
-
.icon-th-thumb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
37 |
-
.icon-th-thumb-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
38 |
-
.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
39 |
-
.icon-ellipsis { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
40 |
-
.icon-ellipsis-vert { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu-ie7-codes_remove.css
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
|
2 |
-
.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
3 |
-
.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
4 |
-
.icon-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
5 |
-
.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
6 |
-
.icon-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
7 |
-
.icon-align-justify { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
8 |
-
.icon-down-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
9 |
-
.icon-up-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
10 |
-
.icon-up-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
11 |
-
.icon-down-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
12 |
-
.icon-menu-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
13 |
-
.icon-menu-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
14 |
-
.icon-th-large-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
15 |
-
.icon-th-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
16 |
-
.icon-th-list-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
17 |
-
.icon-th-list-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
18 |
-
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
19 |
-
.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
20 |
-
.icon-cancel-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
21 |
-
.icon-cancel-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
22 |
-
.icon-cancel-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
23 |
-
.icon-cancel-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
24 |
-
.icon-cancel-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
25 |
-
.icon-cancel-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
26 |
-
.icon-cancel-circled-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
27 |
-
.icon-cancel-circled-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
28 |
-
.icon-cancel-circle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
29 |
-
.icon-cancel-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
30 |
-
.icon-cancel-4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
31 |
-
.icon-cancel-circle-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
32 |
-
.icon-up-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
33 |
-
.icon-down-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
34 |
-
.icon-menu-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
35 |
-
.icon-th-list-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
36 |
-
.icon-th-thumb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
37 |
-
.icon-th-thumb-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
38 |
-
.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
39 |
-
.icon-ellipsis { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
40 |
-
.icon-ellipsis-vert { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu-ie7.css
DELETED
@@ -1,51 +0,0 @@
|
|
1 |
-
[class^="icon-"], [class*=" icon-"] {
|
2 |
-
font-family: 'mobmenu';
|
3 |
-
font-style: normal;
|
4 |
-
font-weight: normal;
|
5 |
-
|
6 |
-
/* fix buttons height */
|
7 |
-
line-height: 1em;
|
8 |
-
|
9 |
-
/* you can be more comfortable with increased icons size */
|
10 |
-
/* font-size: 120%; */
|
11 |
-
}
|
12 |
-
|
13 |
-
.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
14 |
-
.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
15 |
-
.icon-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
16 |
-
.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
17 |
-
.icon-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
18 |
-
.icon-align-justify { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
19 |
-
.icon-down-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
20 |
-
.icon-up-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
21 |
-
.icon-up-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
22 |
-
.icon-down-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
23 |
-
.icon-menu-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
24 |
-
.icon-menu-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
25 |
-
.icon-th-large-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
26 |
-
.icon-th-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
27 |
-
.icon-th-list-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
28 |
-
.icon-th-list-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
29 |
-
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
30 |
-
.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
31 |
-
.icon-cancel-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
32 |
-
.icon-cancel-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
33 |
-
.icon-cancel-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
34 |
-
.icon-cancel-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
35 |
-
.icon-cancel-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
36 |
-
.icon-cancel-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
37 |
-
.icon-cancel-circled-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
38 |
-
.icon-cancel-circled-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
39 |
-
.icon-cancel-circle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
40 |
-
.icon-cancel-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
41 |
-
.icon-cancel-4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
42 |
-
.icon-cancel-circle-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
43 |
-
.icon-up-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
44 |
-
.icon-down-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
45 |
-
.icon-menu-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
46 |
-
.icon-th-list-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
47 |
-
.icon-th-thumb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
48 |
-
.icon-th-thumb-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
49 |
-
.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
50 |
-
.icon-ellipsis { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
51 |
-
.icon-ellipsis-vert { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu-ie7_remove.css
DELETED
@@ -1,51 +0,0 @@
|
|
1 |
-
[class^="icon-"], [class*=" icon-"] {
|
2 |
-
font-family: 'mobmenu';
|
3 |
-
font-style: normal;
|
4 |
-
font-weight: normal;
|
5 |
-
|
6 |
-
/* fix buttons height */
|
7 |
-
line-height: 1em;
|
8 |
-
|
9 |
-
/* you can be more comfortable with increased icons size */
|
10 |
-
/* font-size: 120%; */
|
11 |
-
}
|
12 |
-
|
13 |
-
.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
14 |
-
.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
15 |
-
.icon-th-large { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
16 |
-
.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
17 |
-
.icon-up-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
18 |
-
.icon-align-justify { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
19 |
-
.icon-down-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
20 |
-
.icon-up-open-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
21 |
-
.icon-up-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
22 |
-
.icon-down-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
23 |
-
.icon-menu-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
24 |
-
.icon-menu-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
25 |
-
.icon-th-large-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
26 |
-
.icon-th-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
27 |
-
.icon-th-list-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
28 |
-
.icon-th-list-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
29 |
-
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
30 |
-
.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
31 |
-
.icon-cancel-circled2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
32 |
-
.icon-cancel-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
33 |
-
.icon-cancel-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
34 |
-
.icon-cancel-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
35 |
-
.icon-cancel-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
36 |
-
.icon-cancel-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
37 |
-
.icon-cancel-circled-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
38 |
-
.icon-cancel-circled-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
39 |
-
.icon-cancel-circle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
40 |
-
.icon-cancel-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
41 |
-
.icon-cancel-4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
42 |
-
.icon-cancel-circle-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
43 |
-
.icon-up-open-mini { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
44 |
-
.icon-down-open-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
45 |
-
.icon-menu-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
46 |
-
.icon-th-list-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
47 |
-
.icon-th-thumb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
48 |
-
.icon-th-thumb-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
49 |
-
.icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
50 |
-
.icon-ellipsis { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
51 |
-
.icon-ellipsis-vert { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/mobmenu.css
CHANGED
@@ -272,14 +272,17 @@ body.admin-bar .mobmenu, body.admin-bar .mobmenu-panel {
|
|
272 |
}
|
273 |
/* No menu assigned warning. */
|
274 |
h4.no-mobile-menu {
|
275 |
-
padding:
|
276 |
text-align: center;
|
277 |
-
width:
|
278 |
background: #fff;
|
279 |
margin: auto;
|
|
|
|
|
|
|
280 |
}
|
281 |
h4.no-mobile-menu a {
|
282 |
-
text-decoration:
|
283 |
color:#000;
|
284 |
}
|
285 |
.mobmenu-content li a:focus {
|
272 |
}
|
273 |
/* No menu assigned warning. */
|
274 |
h4.no-mobile-menu {
|
275 |
+
padding: 22px;
|
276 |
text-align: center;
|
277 |
+
width: 90%;
|
278 |
background: #fff;
|
279 |
margin: auto;
|
280 |
+
font-size: 17px;
|
281 |
+
font-weight: 400;
|
282 |
+
line-height: 29px;
|
283 |
}
|
284 |
h4.no-mobile-menu a {
|
285 |
+
text-decoration: none;
|
286 |
color:#000;
|
287 |
}
|
288 |
.mobmenu-content li a:focus {
|
includes/js/mobmenu-admin.js
CHANGED
@@ -19,8 +19,21 @@
|
|
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 |
|
25 |
// Initilialize the CodeMirror on the custom CSS option.
|
26 |
if ( $('#mobmenu_custom_css').length > 0 ) {
|
@@ -70,6 +83,18 @@
|
|
70 |
}
|
71 |
});
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
$( document ).on( "click", ".mobmenu-close-overlay" , function () {
|
74 |
|
75 |
$( ".mobmenu-icons-overlay" ).fadeOut();
|
@@ -263,31 +288,31 @@
|
|
263 |
searchTerm = $( this ).val();
|
264 |
var previousTerm = '';
|
265 |
var termsList = [];
|
266 |
-
termsList = [['Header Options','url'],['Left Menu Options','
|
267 |
|
268 |
// General Options Tab - Main Options
|
269 |
-
termsList.push(['Mobile Menu Visibility (Width trigger)', 'general-options'],['Enable only in Mobile devices', 'general-options'],['Enable Testing Mode', 'general-options'],['Enable Left Menu', '
|
270 |
|
271 |
// General Options Tab - Hide Original Theme menu
|
272 |
-
termsList.push(['Hide Elements', 'general-
|
273 |
|
274 |
// General Options Tab - Miscelaneous Options
|
275 |
-
termsList.push(['Menu Display Type', 'general-
|
276 |
|
277 |
// General Options Tab - Advanced Options
|
278 |
-
termsList.push(['Sticky HTML Elements', 'general-
|
279 |
|
280 |
// General Options Tab - Import and Export Options
|
281 |
-
termsList.push(['Export Settings', 'general-
|
282 |
|
283 |
// Header Tab - Logo
|
284 |
-
termsList.push(['Site Logo', '
|
285 |
|
286 |
// Header Tab - Header Main Options
|
287 |
-
termsList.push(['Header Elements Position', 'header'],['Sticky Header', 'header'],['Naked Header', 'header'],['Disable Logo/Text', 'header'],['Auto-hide Header when scrolling down.', 'header']);
|
288 |
|
289 |
// Header Tab - Header
|
290 |
-
termsList.push(['Header Shadow', 'header
|
291 |
|
292 |
// Header Tab - Header Banner
|
293 |
termsList.push(['Enable Header Banner', 'header#header-banner-options'],['Header Banner Position', 'header#header-banner-options'],['Header Banner Content', 'header#header-banner-options'],['Header Banner Height', 'header#header-banner-options'],['Disable Logo URL', 'header#header-banner-options'],['Header Banner Alignment', 'header#header-banner-options'],['Header Banner Padding', 'header#header-banner-options']);
|
@@ -299,22 +324,22 @@
|
|
299 |
termsList.push(['Footer Menu', 'footer'],['Auto-hide Footer when scrolling up', 'footer'],['Footer style', 'footer'],['Footer padding', 'footer'],['Icon font size', 'footer'],['Footer Text Font/Size', 'footer']);
|
300 |
|
301 |
// Left Menu Tab - Main options
|
302 |
-
termsList.push(['Left Menu Content', 'left-menu'],['Left Menu', 'left-menu'],['Parent Link open submenu', 'left-menu'],['Only visible for logged users', 'left-menu']);
|
303 |
|
304 |
// Left Menu Tab - Left Menu Icon
|
305 |
-
termsList.push(['Text After Icon', 'left-menu
|
306 |
|
307 |
// Left Menu Tab - Left Panel options
|
308 |
-
termsList.push(['Left Panel Background Image', 'left-
|
309 |
|
310 |
// Right Menu Tab - Main options
|
311 |
-
termsList.push(['Right Menu Content', 'right-menu'],['Right Menu', 'right-menu'],['Parent Link open submenu', 'right-menu'],['Only visible for logged users', 'right-menu']);
|
312 |
|
313 |
// Right Menu Tab - Right Menu Icon
|
314 |
-
termsList.push(['Text After Icon', 'right-menu
|
315 |
|
316 |
// Right Menu Tab - Right Panel options
|
317 |
-
termsList.push(['Right Panel Background Image', 'right-
|
318 |
|
319 |
// WooCommerce Tab - Main options
|
320 |
termsList.push(['Enable WooCommerce Menu', 'woocommerce'],['Open cart after adding a product', 'woocommerce'],['Enable Account links in Mobile Cart Panel', 'woocommerce'],['Header Search only in products', 'woocommerce'],['Cart Total in Footer', 'woocommerce']);
|
@@ -343,7 +368,8 @@
|
|
343 |
var found = termsList.find(function(element) {
|
344 |
if ( 0 <= element[0].toLowerCase().indexOf(searchTerm.toLowerCase()) ) {
|
345 |
var linkURL = window.location.origin + window.location.pathname + '?page=mobile-menu-options&tab=' + element[1];
|
346 |
-
|
|
|
347 |
}
|
348 |
});
|
349 |
|
@@ -352,14 +378,20 @@
|
|
352 |
}
|
353 |
|
354 |
$( '.mm-search-settings-results' ).html( $searchResult );
|
|
|
355 |
}
|
356 |
else {
|
357 |
$( '.mm-search-settings-results' ).html( '' );
|
|
|
358 |
}
|
359 |
});
|
360 |
|
|
|
|
|
|
|
|
|
361 |
|
362 |
-
$( document ).on(
|
363 |
|
364 |
e.preventDefault();
|
365 |
|
@@ -415,15 +447,36 @@
|
|
415 |
|
416 |
});
|
417 |
|
418 |
-
|
419 |
-
$( "#mobmenu_search_icons" ).focus();
|
420 |
});
|
421 |
-
|
422 |
$( document ).on( 'click', '.nav-tab-wrapper ul li', function(e) {
|
|
|
423 |
e.preventDefault();
|
424 |
-
$('
|
425 |
-
|
426 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
427 |
});
|
428 |
|
429 |
$( "#menu-to-edit li.menu-item" ).each( function() {
|
19 |
jQuery( document ).ready( function(){
|
20 |
var editorSettings = null;
|
21 |
|
22 |
+
$( '#mobmenu_hide_elements' ).after( '<a href="#" class="mobmenu-find-element"><span class="dashicons-before dashicons-search">Find element</a>' );
|
23 |
$('body').append('<iframe class="mobmenu-preview-iframe" scrolling="no" id="mobmenu-preview-iframe" width="380" height="650" >');
|
24 |
+
setTimeout(function(){
|
25 |
+
const urlParams = new URLSearchParams( window.location.search );
|
26 |
+
var subMenu = urlParams.get( 'tab' );
|
27 |
+
|
28 |
+
if ( subMenu == null ) {
|
29 |
+
subMenu = 'general-options';
|
30 |
+
}
|
31 |
+
$( '.nav-tab-wrapper .nav-tab' ).removeClass( 'active' );
|
32 |
+
$( '[data-link-id=' + subMenu + ']' ).parent().parent().addClass( 'active' );
|
33 |
+
$( '[data-link-id=' + subMenu + ']' ).click();
|
34 |
+
|
35 |
+
}, 100);
|
36 |
+
|
37 |
|
38 |
// Initilialize the CodeMirror on the custom CSS option.
|
39 |
if ( $('#mobmenu_custom_css').length > 0 ) {
|
83 |
}
|
84 |
});
|
85 |
|
86 |
+
|
87 |
+
$( document ).on( 'click', '.mm-search-settings-results li' , function ( e ) {
|
88 |
+
|
89 |
+
e.preventDefault();
|
90 |
+
var dataTarget = jQuery( this ).find('a').attr( 'data-target-id' );
|
91 |
+
jQuery('[data-link-id=' + dataTarget ).parent().click();
|
92 |
+
jQuery('[data-link-id=' + dataTarget ).click();
|
93 |
+
$( '.mm-search-settings-results' ).css( 'opacity', '0');
|
94 |
+
$( '.mm-search-settings-results' ).html( '' );
|
95 |
+
$( '#mm_search_settings').val('');
|
96 |
+
});
|
97 |
+
|
98 |
$( document ).on( "click", ".mobmenu-close-overlay" , function () {
|
99 |
|
100 |
$( ".mobmenu-icons-overlay" ).fadeOut();
|
288 |
searchTerm = $( this ).val();
|
289 |
var previousTerm = '';
|
290 |
var termsList = [];
|
291 |
+
termsList = [['Header Options','url'],['Left Menu Options','left-menu-options'],['Right Menu Options','value6'], ['Color Options', 'url']];
|
292 |
|
293 |
// General Options Tab - Main Options
|
294 |
+
termsList.push(['Mobile Menu Visibility (Width trigger)', 'general-visibility-options'],['Enable only in Mobile devices', 'general-visibility-options'],['Enable Testing Mode', 'general-visibility-options'],['Enable Left Menu', 'left-menu-options'],['Enable Right Menu', 'right-menu-options'],['Enable Footer Menu', 'footer-options']);
|
295 |
|
296 |
// General Options Tab - Hide Original Theme menu
|
297 |
+
termsList.push(['Hide Elements', 'general-hide-elements'],['Hide Elements by default', 'general-hide-elements']);
|
298 |
|
299 |
// General Options Tab - Miscelaneous Options
|
300 |
+
termsList.push(['Menu Display Type', 'general-misc-options'],['Enable Over effects', 'general-misc-options'],['Sliding Submenus', 'general-misc-options'],['Automatically Close Submenus', 'general-misc-options'],['Menu items border size', 'general-misc-options'],['Close icon', 'general-misc-options'],['Close icon font size', 'general-misc-options'],['Submenu Open icon', 'general-misc-options'],['Submenu Close icon', 'general-misc-options'],['Submenu icon font size', 'general-misc-options']);
|
301 |
|
302 |
// General Options Tab - Advanced Options
|
303 |
+
termsList.push(['Sticky HTML Elements', 'general-advanced-options'],['Custom CSS', 'general-advanced-options'],['Custom JS', 'general-advanced-options'],['Disable Mobile Menu on specific custom post types', 'general-advanced-options'],['Disable Mobile Menu on seleted pages', 'general-advanced-options']);
|
304 |
|
305 |
// General Options Tab - Import and Export Options
|
306 |
+
termsList.push(['Export Settings', 'general-import-export'],['Import Settings', 'general-import-export']);
|
307 |
|
308 |
// Header Tab - Logo
|
309 |
+
termsList.push(['Site Logo', 'logo-options'],['Upload Logo', 'logo-options'],['Logo Height', 'logo-options'],['Retina Logo', 'logo-options'],['Disable Logo URL', 'logo-options'],['Alternative Logo URL', 'logo-options'],['Logo/Text Top Margin', 'logo-options']);
|
310 |
|
311 |
// Header Tab - Header Main Options
|
312 |
+
termsList.push(['Header Elements Position', 'header'],['Sticky Header', 'header-options'],['Naked Header', 'header-options'],['Disable Logo/Text', 'header-options'],['Auto-hide Header when scrolling down.', 'header-options']);
|
313 |
|
314 |
// Header Tab - Header
|
315 |
+
termsList.push(['Header Shadow', 'header-options'],['Header Height', 'header-options'],['Header Text', 'header-options'],['Use page title text', 'header-options'],['Header Logo/Text Alignment', 'header-options'],['Header Logo/Text Left Margin', 'header-options'],['Header Logo/text Spacing', 'header-options'],['Header Logo/text Right Margin', 'header-options']);
|
316 |
|
317 |
// Header Tab - Header Banner
|
318 |
termsList.push(['Enable Header Banner', 'header#header-banner-options'],['Header Banner Position', 'header#header-banner-options'],['Header Banner Content', 'header#header-banner-options'],['Header Banner Height', 'header#header-banner-options'],['Disable Logo URL', 'header#header-banner-options'],['Header Banner Alignment', 'header#header-banner-options'],['Header Banner Padding', 'header#header-banner-options']);
|
324 |
termsList.push(['Footer Menu', 'footer'],['Auto-hide Footer when scrolling up', 'footer'],['Footer style', 'footer'],['Footer padding', 'footer'],['Icon font size', 'footer'],['Footer Text Font/Size', 'footer']);
|
325 |
|
326 |
// Left Menu Tab - Main options
|
327 |
+
termsList.push(['Left Menu Content', 'left-menu-options'],['Left Menu', 'left-menu-options'],['Parent Link open submenu', 'left-menu-options'],['Only visible for logged users', 'left-menu-options']);
|
328 |
|
329 |
// Left Menu Tab - Left Menu Icon
|
330 |
+
termsList.push(['Text After Icon', 'left-menu-icon'],['Icon Action', 'left-menu-icon'],['Icon Link URL', 'left-menu-icon'],['Icon Link URL target', 'left-menu-icon'],['Icon Type', 'left-menu-icon'],['Icon Animation Type', 'left-menu-icon'],['Icon Font', 'left-menu-icon'],['Icon Font Size', 'left-menu-icon'],['Icon Image', 'left-menu-icon'],['Icon Top Margin', 'left-menu-icon'],['Icon Left Margin', 'left-menu-icon'],['Menu item icons position', 'left-menu-icon'],['Menu Item icons Horizontal Padding', 'left-menu-icon']);
|
331 |
|
332 |
// Left Menu Tab - Left Panel options
|
333 |
+
termsList.push(['Left Panel Background Image', 'left-panel-options'],['Left Panel Background Image Opacity', 'left-panel-options'],['Left Panel Background Image Size', 'left-panel-options'],['Left Panel Background Gradient CSS', 'left-panel-options'],['Left Menu Panel Widht Units', 'left-panel-options'],['Left Menu Panel Width (Pixels)', 'left-panel-options'],['Left Menu Panel Width (Percentage)', 'left-panel-options'],['Left Menu content padding', 'left-panel-options'],['Left Menu Copyright content', 'left-panel-options']);
|
334 |
|
335 |
// Right Menu Tab - Main options
|
336 |
+
termsList.push(['Right Menu Content', 'right-menu-options'],['Right Menu', 'right-menu-options'],['Parent Link open submenu', 'right-menu-options'],['Only visible for logged users', 'right-menu-options']);
|
337 |
|
338 |
// Right Menu Tab - Right Menu Icon
|
339 |
+
termsList.push(['Text After Icon', 'right-menu-options'],['Icon Action', 'right-menu-options'],['Icon Link URL', 'right-menu-options'],['Icon Link URL target', 'right-menu-options'],['Icon Type', 'right-menu-icon'],['Icon Animation Type', 'right-menu-icon'],['Icon Font', 'right-menu-icon'],['Icon Font Size', 'right-menu-icon'],['Icon Image', 'right-menu-icon'],['Icon Top Margin', 'right-menu-icon'],['Icon Left Margin', 'right-menu-icon'],['Menu item icons position', 'right-menu-icon'],['Menu Item icons Horizontal Padding', 'right-menu-icon']);
|
340 |
|
341 |
// Right Menu Tab - Right Panel options
|
342 |
+
termsList.push(['Right Panel Background Image', 'right-panel-options'],['Right Panel Background Image Opacity', 'right-panel-options'],['Right Panel Background Image Size', 'right-panel-options'],['Right Panel Background Gradient CSS', 'right-panel-options'],['Right Menu Panel Widht Units', 'right-panel-options'],['Right Menu Panel Width (Pixels)', 'right-panel-options'],['Right Menu Panel Width (Percentage)', 'right-panel-options'],['Right Menu content padding', 'right-panel-options'],['Right Menu Copyright content', 'right-panel-options']);
|
343 |
|
344 |
// WooCommerce Tab - Main options
|
345 |
termsList.push(['Enable WooCommerce Menu', 'woocommerce'],['Open cart after adding a product', 'woocommerce'],['Enable Account links in Mobile Cart Panel', 'woocommerce'],['Header Search only in products', 'woocommerce'],['Cart Total in Footer', 'woocommerce']);
|
368 |
var found = termsList.find(function(element) {
|
369 |
if ( 0 <= element[0].toLowerCase().indexOf(searchTerm.toLowerCase()) ) {
|
370 |
var linkURL = window.location.origin + window.location.pathname + '?page=mobile-menu-options&tab=' + element[1];
|
371 |
+
|
372 |
+
$searchResult += '<li><a href="' + linkURL + '" data-target-id="' + element[1] + ' ">' + element[0] + '</a></li>';
|
373 |
}
|
374 |
});
|
375 |
|
378 |
}
|
379 |
|
380 |
$( '.mm-search-settings-results' ).html( $searchResult );
|
381 |
+
$( '.mm-search-settings-results' ).css( 'opacity', '1' );
|
382 |
}
|
383 |
else {
|
384 |
$( '.mm-search-settings-results' ).html( '' );
|
385 |
+
$( '.mm-search-settings-results' ).css( 'opacity', '0');
|
386 |
}
|
387 |
});
|
388 |
|
389 |
+
$( document ).on( 'click', '.mm-scan-alerts a' , function( e ) {
|
390 |
+
e.preventDefault();
|
391 |
+
$( '[data-link-id=general-alerts]' ).click();
|
392 |
+
});
|
393 |
|
394 |
+
$( document ).on( 'click', '.mobmenu-item-settings' , function( e ) {
|
395 |
|
396 |
e.preventDefault();
|
397 |
|
447 |
|
448 |
});
|
449 |
|
450 |
+
$( "#mobmenu_search_icons" ).focus();
|
|
|
451 |
});
|
452 |
+
|
453 |
$( document ).on( 'click', '.nav-tab-wrapper ul li', function(e) {
|
454 |
+
|
455 |
e.preventDefault();
|
456 |
+
var dataLinkId = $(this).attr( 'data-link-id' );
|
457 |
+
|
458 |
+
$( '.nav-tab-wrapper .nav-tab li' ).removeClass( 'active' );
|
459 |
+
$(this).addClass( 'active' );
|
460 |
+
$( '.titan-framework-panel-wrap .form-table tr' ).hide();
|
461 |
+
$( '.' + dataLinkId ).show();
|
462 |
+
const url = new URL(window.location);
|
463 |
+
url.searchParams.set('tab', dataLinkId);
|
464 |
+
window.history.pushState({}, '', url);
|
465 |
+
|
466 |
+
return false;
|
467 |
+
});
|
468 |
+
|
469 |
+
$( document ).on( 'click', '.titan-framework-panel-wrap .nav-tab-wrapper .nav-tab', function(e) {
|
470 |
+
e.preventDefault();
|
471 |
+
$( '.nav-tab-wrapper .nav-tab.active ul' ).hide();
|
472 |
+
$( '.nav-tab-wrapper .nav-tab' ).removeClass( 'active' );
|
473 |
+
$(this).find( 'ul' ).first().show();
|
474 |
+
$(this).addClass( 'active' );
|
475 |
+
$( '.nav-tab-wrapper .nav-tab li' ).removeClass( 'active' );
|
476 |
+
$(this).find( 'ul li' ).first().addClass( 'active' );
|
477 |
+
$( '.titan-framework-panel-wrap .form-table tr' ).hide();
|
478 |
+
$( '.' + $(this).attr( 'data-tab-id' ) ).show();
|
479 |
+
|
480 |
});
|
481 |
|
482 |
$( "#menu-to-edit li.menu-item" ).each( function() {
|
includes/js/mobmenu.js
CHANGED
@@ -9,64 +9,80 @@
|
|
9 |
*/
|
10 |
|
11 |
"use strict";
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
}
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
jQuery( document ).ready( function($) {
|
71 |
|
72 |
const urlParams = new URLSearchParams( window.location.search );
|
@@ -94,7 +110,7 @@
|
|
94 |
} else {
|
95 |
submenu.hide();
|
96 |
}
|
97 |
-
|
98 |
if ( ! $('body').hasClass('mob-menu-sliding-menus') ) {
|
99 |
$( menu ).find('.open-icon').toggleClass('hide');
|
100 |
$( menu ).find('.close-icon').toggleClass('hide');
|
@@ -104,7 +120,6 @@
|
|
104 |
|
105 |
|
106 |
}
|
107 |
-
|
108 |
|
109 |
if ( $( 'body' ).find( '.mobmenu-push-wrap' ).length <= 0 && $( 'body' ).hasClass('mob-menu-slideout') ) {
|
110 |
|
@@ -124,7 +139,6 @@
|
|
124 |
// Double Check the the menu display classes where added to the body.
|
125 |
var menu_display_type = $( '.mob-menu-header-holder' ).attr( 'data-menu-display' );
|
126 |
|
127 |
-
|
128 |
if ( menu_display_type != '' && !$( 'body' ).hasClass( 'mob-menu-slideout' ) && !$( 'body' ).hasClass( 'mob-menu-slideout-over' ) && !$( 'body' ).hasClass( 'mob-menu-slideout-top' ) && !$( 'body' ).hasClass( 'mob-menu-overlay' ) ) {
|
129 |
$( 'body' ).addClass( menu_display_type );
|
130 |
}
|
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 |
+
onClick(event) {
|
61 |
+
var selector = getSelector(event.target).toLowerCase();
|
62 |
+
window.parent.receivePickedElement(selector);
|
63 |
+
jQuery(selector).hide();
|
64 |
+
},
|
65 |
+
onHover(event) {
|
66 |
+
},
|
67 |
+
});
|
|
|
68 |
|
69 |
+
document.getElementById('m_on').addEventListener('click', () => {
|
70 |
+
p.on();
|
71 |
+
});
|
72 |
+
|
73 |
+
document.getElementById('m_off').addEventListener('click', () => {
|
74 |
+
p.off();
|
75 |
+
});
|
76 |
+
|
77 |
+
document.getElementById('m_cover').addEventListener('click', () => {
|
78 |
+
p.changeMode('cover');
|
79 |
+
});
|
80 |
+
|
81 |
+
document.getElementById('m_target').addEventListener('click', () => {
|
82 |
+
p.changeMode('target');
|
83 |
+
});
|
84 |
+
|
85 |
+
}
|
86 |
jQuery( document ).ready( function($) {
|
87 |
|
88 |
const urlParams = new URLSearchParams( window.location.search );
|
110 |
} else {
|
111 |
submenu.hide();
|
112 |
}
|
113 |
+
|
114 |
if ( ! $('body').hasClass('mob-menu-sliding-menus') ) {
|
115 |
$( menu ).find('.open-icon').toggleClass('hide');
|
116 |
$( menu ).find('.close-icon').toggleClass('hide');
|
120 |
|
121 |
|
122 |
}
|
|
|
123 |
|
124 |
if ( $( 'body' ).find( '.mobmenu-push-wrap' ).length <= 0 && $( 'body' ).hasClass('mob-menu-slideout') ) {
|
125 |
|
139 |
// Double Check the the menu display classes where added to the body.
|
140 |
var menu_display_type = $( '.mob-menu-header-holder' ).attr( 'data-menu-display' );
|
141 |
|
|
|
142 |
if ( menu_display_type != '' && !$( 'body' ).hasClass( 'mob-menu-slideout' ) && !$( 'body' ).hasClass( 'mob-menu-slideout-over' ) && !$( 'body' ).hasClass( 'mob-menu-slideout-top' ) && !$( 'body' ).hasClass( 'mob-menu-overlay' ) ) {
|
143 |
$( 'body' ).addClass( menu_display_type );
|
144 |
}
|
mobmenu.php
CHANGED
@@ -3,11 +3,11 @@
|
|
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.
|
7 |
* Plugin URI: https://www.wpmobilemenu.com/
|
8 |
* Author: Rui Guerreiro
|
9 |
* Author URI: https://www.jedipress.com/
|
10 |
-
* Tested up to: 5.
|
11 |
* Text Domain: mobile-menu
|
12 |
* Domain Path: /languages/
|
13 |
* License: GPLv2
|
@@ -16,7 +16,7 @@
|
|
16 |
if ( !defined( 'ABSPATH' ) ) {
|
17 |
die;
|
18 |
}
|
19 |
-
define( 'WP_MOBILE_MENU_VERSION', '2.8.
|
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,7 +82,7 @@ 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
|
86 |
add_action( 'init', array( $this->mobmenu_core, 'find_elements_mobmenu' ) );
|
87 |
// Load frontend assets.
|
88 |
if ( !is_admin() ) {
|
@@ -156,7 +156,7 @@ if ( !class_exists( 'WP_Mobile_Menu' ) ) {
|
|
156 |
*/
|
157 |
private function include_required_files()
|
158 |
{
|
159 |
-
require_once dirname( __FILE__ ) . '/options-framework/
|
160 |
require_once dirname( __FILE__ ) . '/includes/class-wp-mobile-menu-core.php';
|
161 |
require_once dirname( __FILE__ ) . '/includes/class-wp-mobile-menu-options.php';
|
162 |
require_once dirname( __FILE__ ) . '/includes/class-wp-mobile-menu-walker-nav-menu.php';
|
@@ -173,11 +173,10 @@ if ( !class_exists( 'WP_Mobile_Menu' ) ) {
|
|
173 |
$is_mobile_only = $mobmenu_options->getOption( 'only_mobile_devices' );
|
174 |
$is_testing_mode = $mobmenu_options->getOption( 'only_testing_mode' );
|
175 |
$mobmenu_action = '';
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
if ( $mobmenu_action == 'find-element' || $is_testing_mode && current_user_can( 'administrator' ) || !$is_testing_mode && (!$is_mobile_only || $is_mobile_only && wp_is_mobile()) ) {
|
182 |
// Enqueue Html to the Footer.
|
183 |
add_action( 'wp_footer', array( $this->mobmenu_core, 'load_menu_html_markup' ) );
|
@@ -234,7 +233,12 @@ if ( !class_exists( 'WP_Mobile_Menu' ) ) {
|
|
234 |
if ( 'nav-menus.php' === $hook || 'toplevel_page_mobile-menu-options' === $hook ) {
|
235 |
wp_enqueue_style( 'cssmobmenu-icons', plugins_url( 'includes/css/mobmenu-icons.css', __FILE__ ) );
|
236 |
wp_enqueue_style( 'cssmobmenu-admin', plugins_url( 'includes/css/mobmenu-admin.css', __FILE__ ) );
|
237 |
-
wp_register_script(
|
|
|
|
|
|
|
|
|
|
|
238 |
wp_enqueue_script( 'mobmenu-admin-js' );
|
239 |
}
|
240 |
|
@@ -265,9 +269,8 @@ if ( isset( $admin_options['only_mobile_devices'] ) ) {
|
|
265 |
}
|
266 |
|
267 |
$mobmenu_action = '';
|
268 |
-
|
269 |
-
|
270 |
-
$mobmenu_action = $_GET['mobmenu-action'];
|
271 |
}
|
272 |
|
273 |
if ( $mobmenu_action == 'find-element' || is_admin() || (!$is_mobile_only || $is_mobile_only && wp_is_mobile()) ) {
|
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.2
|
7 |
* Plugin URI: https://www.wpmobilemenu.com/
|
8 |
* Author: Rui Guerreiro
|
9 |
* Author URI: https://www.jedipress.com/
|
10 |
+
* Tested up to: 5.7
|
11 |
* Text Domain: mobile-menu
|
12 |
* Domain Path: /languages/
|
13 |
* License: GPLv2
|
16 |
if ( !defined( 'ABSPATH' ) ) {
|
17 |
die;
|
18 |
}
|
19 |
+
define( 'WP_MOBILE_MENU_VERSION', '2.8.2' );
|
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() ) {
|
156 |
*/
|
157 |
private function include_required_files()
|
158 |
{
|
159 |
+
require_once dirname( __FILE__ ) . '/options-framework/option-framework.php';
|
160 |
require_once dirname( __FILE__ ) . '/includes/class-wp-mobile-menu-core.php';
|
161 |
require_once dirname( __FILE__ ) . '/includes/class-wp-mobile-menu-options.php';
|
162 |
require_once dirname( __FILE__ ) . '/includes/class-wp-mobile-menu-walker-nav-menu.php';
|
173 |
$is_mobile_only = $mobmenu_options->getOption( 'only_mobile_devices' );
|
174 |
$is_testing_mode = $mobmenu_options->getOption( 'only_testing_mode' );
|
175 |
$mobmenu_action = '';
|
176 |
+
if ( isset( $_GET['mobmenu-action'] ) ) {
|
177 |
+
$mobmenu_action = $_GET['mobmenu-action'];
|
178 |
+
}
|
179 |
+
|
|
|
180 |
if ( $mobmenu_action == 'find-element' || $is_testing_mode && current_user_can( 'administrator' ) || !$is_testing_mode && (!$is_mobile_only || $is_mobile_only && wp_is_mobile()) ) {
|
181 |
// Enqueue Html to the Footer.
|
182 |
add_action( 'wp_footer', array( $this->mobmenu_core, 'load_menu_html_markup' ) );
|
233 |
if ( 'nav-menus.php' === $hook || 'toplevel_page_mobile-menu-options' === $hook ) {
|
234 |
wp_enqueue_style( 'cssmobmenu-icons', plugins_url( 'includes/css/mobmenu-icons.css', __FILE__ ) );
|
235 |
wp_enqueue_style( 'cssmobmenu-admin', plugins_url( 'includes/css/mobmenu-admin.css', __FILE__ ) );
|
236 |
+
wp_register_script(
|
237 |
+
'mobmenu-admin-js',
|
238 |
+
plugins_url( 'includes/js/mobmenu-admin.js', __FILE__ ),
|
239 |
+
array( 'jquery' ),
|
240 |
+
WP_MOBILE_MENU_VERSION
|
241 |
+
);
|
242 |
wp_enqueue_script( 'mobmenu-admin-js' );
|
243 |
}
|
244 |
|
269 |
}
|
270 |
|
271 |
$mobmenu_action = '';
|
272 |
+
if ( isset( $_GET['mobmenu-action'] ) ) {
|
273 |
+
$mobmenu_action = $_GET['mobmenu-action'];
|
|
|
274 |
}
|
275 |
|
276 |
if ( $mobmenu_action == 'find-element' || is_admin() || (!$is_mobile_only || $is_mobile_only && wp_is_mobile()) ) {
|
options-framework/{titan-framework/css → css}/admin-styles.css
RENAMED
@@ -128,13 +128,7 @@
|
|
128 |
border-bottom: 1px solid #eee;
|
129 |
}
|
130 |
.titan-framework-panel-wrap .form-table + p.submit {
|
131 |
-
padding:
|
132 |
-
border-left: 1px solid #DFDFDF;
|
133 |
-
border-right: 1px solid #DFDFDF;
|
134 |
-
border: 1px solid #DFDFDF;
|
135 |
-
position: fixed;
|
136 |
-
bottom: 0px;
|
137 |
-
right: 0px;
|
138 |
background: #fff;
|
139 |
z-index: 999999;
|
140 |
}
|
128 |
border-bottom: 1px solid #eee;
|
129 |
}
|
130 |
.titan-framework-panel-wrap .form-table + p.submit {
|
131 |
+
padding: 14px 10px;
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
background: #fff;
|
133 |
z-index: 999999;
|
134 |
}
|
options-framework/{titan-framework/css → css}/admin-theme-customizer-styles.css
RENAMED
File without changes
|
options-framework/{titan-framework/css → css}/class-option-date.css
RENAMED
File without changes
|
options-framework/{titan-framework/css → css}/class-option-font.css
RENAMED
File without changes
|
options-framework/{titan-framework/css → css}/class-option-select.css
RENAMED
File without changes
|
options-framework/{titan-framework/css → css}/select2/select2.min.css
RENAMED
File without changes
|
options-framework/{titan-framework/inc → inc}/scssphp/LICENSE.md
RENAMED
File without changes
|
options-framework/{titan-framework/inc → inc}/scssphp/README.md
RENAMED
File without changes
|
options-framework/{titan-framework/inc → inc}/scssphp/composer.json
RENAMED
File without changes
|
options-framework/{titan-framework/inc → inc}/scssphp/scss.inc.php
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/admin-styling.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/dev/admin-styling.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/dev/jquery-ui-timepicker-addon.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/dev/serialize.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/dev/wp-color-picker-alpha.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/jquery-ui-timepicker-addon.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/min/admin-styling-min.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/min/jquery-ui-timepicker-addon-min.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/min/serialize-min.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/min/wp-color-picker-alpha-min.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/multicheck-select-all.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/select2/select2.min.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/serialize.js
RENAMED
File without changes
|
options-framework/{titan-framework/js → js}/wp-color-picker-alpha.js
RENAMED
File without changes
|
options-framework/{titan-framework/lib → lib}/class-admin-notification.php
RENAMED
File without changes
|
options-framework/lib/class-admin-page.php
ADDED
@@ -0,0 +1,535 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( !defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
// Exit if accessed directly
|
6 |
+
}
|
7 |
+
|
8 |
+
class TitanFrameworkAdminPage
|
9 |
+
{
|
10 |
+
private $defaultSettings = array(
|
11 |
+
'name' => '',
|
12 |
+
'title' => '',
|
13 |
+
'parent' => null,
|
14 |
+
'id' => '',
|
15 |
+
'capability' => 'manage_options',
|
16 |
+
'icon' => 'dashicons-admin-generic',
|
17 |
+
'position' => null,
|
18 |
+
'use_form' => true,
|
19 |
+
'desc' => '',
|
20 |
+
) ;
|
21 |
+
private $alert_messages = array() ;
|
22 |
+
public $options = array() ;
|
23 |
+
public $tabs = array() ;
|
24 |
+
private static $idsUsed = array() ;
|
25 |
+
private $activeTab = null ;
|
26 |
+
public $settings = array() ;
|
27 |
+
public $owner ;
|
28 |
+
public $panelID ;
|
29 |
+
function __construct( $settings, $owner )
|
30 |
+
{
|
31 |
+
$this->owner = $owner;
|
32 |
+
if ( !is_admin() ) {
|
33 |
+
return;
|
34 |
+
}
|
35 |
+
$this->settings = array_merge( $this->defaultSettings, $settings );
|
36 |
+
// $this->options = $options;
|
37 |
+
if ( empty($this->settings['name']) ) {
|
38 |
+
return;
|
39 |
+
}
|
40 |
+
if ( empty($this->settings['title']) ) {
|
41 |
+
$this->settings['title'] = $this->settings['name'];
|
42 |
+
}
|
43 |
+
|
44 |
+
if ( empty($this->settings['id']) ) {
|
45 |
+
$prefix = '';
|
46 |
+
if ( !empty($this->settings['parent']) ) {
|
47 |
+
$prefix = str_replace( ' ', '-', trim( strtolower( $this->settings['parent'] ) ) ) . '-';
|
48 |
+
}
|
49 |
+
$this->settings['id'] = $prefix . str_replace( ' ', '-', trim( strtolower( $this->settings['name'] ) ) );
|
50 |
+
$this->settings['id'] = str_replace( '&', '-', $this->settings['id'] );
|
51 |
+
}
|
52 |
+
|
53 |
+
// make sure all our IDs are unique
|
54 |
+
$suffix = '';
|
55 |
+
while ( in_array( $this->settings['id'] . $suffix, self::$idsUsed ) ) {
|
56 |
+
|
57 |
+
if ( $suffix == '' ) {
|
58 |
+
$suffix = 2;
|
59 |
+
} else {
|
60 |
+
$suffix++;
|
61 |
+
}
|
62 |
+
|
63 |
+
}
|
64 |
+
$this->settings['id'] .= $suffix;
|
65 |
+
// keep track of all IDs used
|
66 |
+
self::$idsUsed[] = $this->settings['id'];
|
67 |
+
$priority = -1;
|
68 |
+
if ( $this->settings['parent'] ) {
|
69 |
+
$priority = intval( $this->settings['position'] );
|
70 |
+
}
|
71 |
+
add_action( 'admin_menu', array( $this, 'register' ), $priority );
|
72 |
+
}
|
73 |
+
|
74 |
+
public function createAdminPanel( $settings )
|
75 |
+
{
|
76 |
+
$settings['parent'] = $this->settings['id'] ?? null;
|
77 |
+
return $this->owner->createAdminPanel( $settings );
|
78 |
+
}
|
79 |
+
|
80 |
+
public function register()
|
81 |
+
{
|
82 |
+
// Parent menu
|
83 |
+
|
84 |
+
if ( empty($this->settings['parent']) ) {
|
85 |
+
$this->panelID = add_menu_page(
|
86 |
+
$this->settings['name'],
|
87 |
+
$this->settings['title'],
|
88 |
+
$this->settings['capability'],
|
89 |
+
$this->settings['id'],
|
90 |
+
array( $this, 'createAdminPage' ),
|
91 |
+
$this->settings['icon'],
|
92 |
+
$this->settings['position']
|
93 |
+
);
|
94 |
+
// Sub menu
|
95 |
+
} else {
|
96 |
+
$this->panelID = add_submenu_page(
|
97 |
+
$this->settings['parent'],
|
98 |
+
$this->settings['name'],
|
99 |
+
$this->settings['title'],
|
100 |
+
$this->settings['capability'],
|
101 |
+
$this->settings['id'],
|
102 |
+
array( $this, 'createAdminPage' )
|
103 |
+
);
|
104 |
+
}
|
105 |
+
|
106 |
+
add_action( 'load-' . $this->panelID, array( $this, 'saveOptions' ) );
|
107 |
+
}
|
108 |
+
|
109 |
+
public function getOptionNamespace()
|
110 |
+
{
|
111 |
+
return $this->owner->optionNamespace;
|
112 |
+
}
|
113 |
+
|
114 |
+
public function save_single_option( $option )
|
115 |
+
{
|
116 |
+
if ( empty($option->settings['id']) ) {
|
117 |
+
return;
|
118 |
+
}
|
119 |
+
|
120 |
+
if ( isset( $_POST[$this->getOptionNamespace() . '_' . $option->settings['id']] ) ) {
|
121 |
+
$value = $_POST[$this->getOptionNamespace() . '_' . $option->settings['id']];
|
122 |
+
} else {
|
123 |
+
$value = '';
|
124 |
+
}
|
125 |
+
|
126 |
+
$option->setValue( $value );
|
127 |
+
}
|
128 |
+
|
129 |
+
public function saveOptions()
|
130 |
+
{
|
131 |
+
if ( !$this->verifySecurity() ) {
|
132 |
+
return;
|
133 |
+
}
|
134 |
+
$message = '';
|
135 |
+
$activeTab = $this->getActiveTab();
|
136 |
+
/*
|
137 |
+
* Save
|
138 |
+
*/
|
139 |
+
|
140 |
+
if ( 'save' === $_POST['action'] ) {
|
141 |
+
// we are in a tab.
|
142 |
+
if ( !empty($activeTab) ) {
|
143 |
+
foreach ( $activeTab->options as $option ) {
|
144 |
+
$this->save_single_option( $option );
|
145 |
+
if ( !empty($option->options) ) {
|
146 |
+
foreach ( $option->options as $group_option ) {
|
147 |
+
$this->save_single_option( $group_option );
|
148 |
+
}
|
149 |
+
}
|
150 |
+
}
|
151 |
+
}
|
152 |
+
foreach ( $this->options as $option ) {
|
153 |
+
$this->save_single_option( $option );
|
154 |
+
if ( !empty($option->options) ) {
|
155 |
+
foreach ( $option->options as $group_option ) {
|
156 |
+
$this->save_single_option( $group_option );
|
157 |
+
}
|
158 |
+
}
|
159 |
+
}
|
160 |
+
// Hook 'tf_pre_save_options_{namespace}' - action pre-saving.
|
161 |
+
/**
|
162 |
+
* Fired right before options are saved.
|
163 |
+
*
|
164 |
+
* @since 1.0
|
165 |
+
*
|
166 |
+
* @param TitanFrameworkAdminPage|TitanFrameworkMetaBox $this The container currently being saved.
|
167 |
+
*/
|
168 |
+
$namespace = $this->getOptionNamespace();
|
169 |
+
do_action( "tf_pre_save_options_{$namespace}", $this );
|
170 |
+
do_action(
|
171 |
+
"tf_pre_save_admin_{$namespace}",
|
172 |
+
$this,
|
173 |
+
$activeTab,
|
174 |
+
$this->options
|
175 |
+
);
|
176 |
+
$this->owner->saveInternalAdminPageOptions();
|
177 |
+
do_action(
|
178 |
+
'tf_save_admin_' . $this->getOptionNamespace(),
|
179 |
+
$this,
|
180 |
+
$activeTab,
|
181 |
+
$this->options
|
182 |
+
);
|
183 |
+
$message = 'saved';
|
184 |
+
/*
|
185 |
+
* Reset
|
186 |
+
*/
|
187 |
+
} else {
|
188 |
+
|
189 |
+
if ( 'reset' === $_POST['action'] ) {
|
190 |
+
// We are in a tab.
|
191 |
+
if ( !empty($activeTab) ) {
|
192 |
+
foreach ( $activeTab->options as $option ) {
|
193 |
+
if ( !empty($option->options) ) {
|
194 |
+
foreach ( $option->options as $group_option ) {
|
195 |
+
if ( !empty($group_option->settings['id']) ) {
|
196 |
+
$group_option->setValue( $group_option->settings['default'] );
|
197 |
+
}
|
198 |
+
}
|
199 |
+
}
|
200 |
+
if ( empty($option->settings['id']) ) {
|
201 |
+
continue;
|
202 |
+
}
|
203 |
+
$option->setValue( $option->settings['default'] );
|
204 |
+
}
|
205 |
+
}
|
206 |
+
foreach ( $this->options as $option ) {
|
207 |
+
if ( !empty($option->options) ) {
|
208 |
+
foreach ( $option->options as $group_option ) {
|
209 |
+
if ( !empty($group_option->settings['id']) ) {
|
210 |
+
$group_option->setValue( $group_option->settings['default'] );
|
211 |
+
}
|
212 |
+
}
|
213 |
+
}
|
214 |
+
if ( empty($option->settings['id']) ) {
|
215 |
+
continue;
|
216 |
+
}
|
217 |
+
$option->setValue( $option->settings['default'] );
|
218 |
+
}
|
219 |
+
// Hook 'tf_pre_reset_options_{namespace}' - action pre-saving.
|
220 |
+
do_action( 'tf_pre_reset_options_' . $this->getOptionNamespace(), $this );
|
221 |
+
do_action(
|
222 |
+
'tf_pre_reset_admin_' . $this->getOptionNamespace(),
|
223 |
+
$this,
|
224 |
+
$activeTab,
|
225 |
+
$this->options
|
226 |
+
);
|
227 |
+
$this->owner->saveInternalAdminPageOptions();
|
228 |
+
do_action(
|
229 |
+
'tf_reset_admin_' . $this->getOptionNamespace(),
|
230 |
+
$this,
|
231 |
+
$activeTab,
|
232 |
+
$this->options
|
233 |
+
);
|
234 |
+
$message = 'reset';
|
235 |
+
}
|
236 |
+
|
237 |
+
}
|
238 |
+
|
239 |
+
if ( 'import_mobmenu_settings' !== sanitize_text_field( $_POST['action'] ) ) {
|
240 |
+
do_action( 'tf_admin_options_saved_' . $this->getOptionNamespace() );
|
241 |
+
}
|
242 |
+
}
|
243 |
+
|
244 |
+
private function verifySecurity()
|
245 |
+
{
|
246 |
+
if ( empty($_POST) || empty($_POST['action']) ) {
|
247 |
+
return false;
|
248 |
+
}
|
249 |
+
$screen = get_current_screen();
|
250 |
+
if ( $screen->id != $this->panelID ) {
|
251 |
+
return false;
|
252 |
+
}
|
253 |
+
if ( !current_user_can( $this->settings['capability'] ) ) {
|
254 |
+
return false;
|
255 |
+
}
|
256 |
+
if ( !check_admin_referer( $this->settings['id'], TF . '_nonce' ) ) {
|
257 |
+
return false;
|
258 |
+
}
|
259 |
+
return true;
|
260 |
+
}
|
261 |
+
|
262 |
+
public function getActiveTab()
|
263 |
+
{
|
264 |
+
$this->activeTab = $this->tabs[0];
|
265 |
+
return $this->activeTab;
|
266 |
+
}
|
267 |
+
|
268 |
+
public function get_alert_messages()
|
269 |
+
{
|
270 |
+
return $this->alert_messages;
|
271 |
+
}
|
272 |
+
|
273 |
+
private function check_left_menu_assignment()
|
274 |
+
{
|
275 |
+
if ( $this->owner->getOption( 'enable_left_menu' ) ) {
|
276 |
+
if ( $this->owner->getOption( 'left_menu', '' ) == '' ) {
|
277 |
+
if ( !has_nav_menu( 'left-wp-mobile-menu' ) ) {
|
278 |
+
array_push( $this->alert_messages, 'The Left menu isnt assigned.' );
|
279 |
+
}
|
280 |
+
}
|
281 |
+
}
|
282 |
+
}
|
283 |
+
|
284 |
+
private function check_incorrect_url_settings()
|
285 |
+
{
|
286 |
+
if ( get_option( 'siteurl' ) != get_option( 'home' ) ) {
|
287 |
+
array_push( $this->alert_messages, 'You may have incorrect settings in your Site URL option in Settings -> General' );
|
288 |
+
}
|
289 |
+
}
|
290 |
+
|
291 |
+
private function check_right_menu_assignment()
|
292 |
+
{
|
293 |
+
if ( $this->owner->getOption( 'enable_right_menu' ) ) {
|
294 |
+
if ( $this->owner->getOption( 'right_menu', '' ) == '' ) {
|
295 |
+
if ( !has_nav_menu( 'right-wp-mobile-menu' ) ) {
|
296 |
+
array_push( $this->alert_messages, __( 'The Right menu isnt assigned.', 'mobile-menu' ) );
|
297 |
+
}
|
298 |
+
}
|
299 |
+
}
|
300 |
+
}
|
301 |
+
|
302 |
+
private function check_footer_menu_assignment()
|
303 |
+
{
|
304 |
+
if ( $this->owner->getOption( 'enable_footer_icons' ) ) {
|
305 |
+
if ( $this->owner->getOption( 'footer_menu', '' ) == '' ) {
|
306 |
+
if ( !has_nav_menu( 'footer-wp-mobile-menu' ) ) {
|
307 |
+
array_push( $this->alert_messages, __( 'The Footer menu isnt assigned.', 'mobile-menu' ) );
|
308 |
+
}
|
309 |
+
}
|
310 |
+
}
|
311 |
+
}
|
312 |
+
|
313 |
+
private function mm_scan_alert()
|
314 |
+
{
|
315 |
+
global $mm_fs ;
|
316 |
+
// Left Menu Enabled without menu.
|
317 |
+
$this->check_left_menu_assignment();
|
318 |
+
// Right Menu Enabled without menu.
|
319 |
+
$this->check_right_menu_assignment();
|
320 |
+
// Check Incorrect HTTPS settings.
|
321 |
+
$this->check_incorrect_url_settings();
|
322 |
+
return count( $this->alert_messages );
|
323 |
+
}
|
324 |
+
|
325 |
+
public function createAdminPage()
|
326 |
+
{
|
327 |
+
global $mm_fs ;
|
328 |
+
$alert_number = $this->mm_scan_alert();
|
329 |
+
?>
|
330 |
+
<div class="wrap">
|
331 |
+
<div class="mobmenu-header-wrap">
|
332 |
+
<h2 class="mobmenu-title-h2"><?php
|
333 |
+
echo $this->settings['title'] ;
|
334 |
+
?></h2>
|
335 |
+
<div class="mobmenu-header-wrap-inner">
|
336 |
+
<h2><?php
|
337 |
+
echo $this->settings['title'] ;
|
338 |
+
?></h2>
|
339 |
+
<div class='mm-panel-search-bar'>
|
340 |
+
<input type="text" name="mm_search_settings" id="mm_search_settings" placeholder="Search Settings">
|
341 |
+
<div class="mm-search-settings-results"></div>
|
342 |
+
</div>
|
343 |
+
<div class="mm-scan-alerts">
|
344 |
+
<a href="#">
|
345 |
+
<i class="dashicons-before dashicons-bell"></i>
|
346 |
+
<span><?php
|
347 |
+
_e( "Alerts", 'mobile-menu' );
|
348 |
+
?><span class="mm-alerts-bubble alert-number-<?php
|
349 |
+
echo $alert_number ;
|
350 |
+
?>"><?php
|
351 |
+
echo $alert_number ;
|
352 |
+
?></span></span>
|
353 |
+
</a>
|
354 |
+
</div>
|
355 |
+
<div class="mm-doc-icon"><a href="https://www.wpmobilemenu.com/knowledgebase/?utm_source=plugin-settings&utm_medium=user%20website&utm_campaign=documentation-link" target="_blank"><i class="dashicons-before dashicons-admin-page"></i><span>Documentation</span></a></div>
|
356 |
+
<div class="mm-version-holder">
|
357 |
+
<a href="https://www.wpmobilemenu.com/features-changelog/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=changelog_details" target="_blank"><?php
|
358 |
+
_e( "Version " . WP_MOBILE_MENU_VERSION . " </br>", 'mobile-menu' );
|
359 |
+
?></a>
|
360 |
+
</div>
|
361 |
+
</div>
|
362 |
+
</div>
|
363 |
+
<?php
|
364 |
+
|
365 |
+
if ( !empty($this->settings['desc']) ) {
|
366 |
+
?>
|
367 |
+
<p class='description'><?php
|
368 |
+
echo $this->settings['desc'] ;
|
369 |
+
?></p>
|
370 |
+
<?php
|
371 |
+
}
|
372 |
+
|
373 |
+
?>
|
374 |
+
|
375 |
+
<style>
|
376 |
+
.tf-sortable .mm-lang-selector {
|
377 |
+
background: url(<?php
|
378 |
+
echo WP_MOBILE_MENU_PLUGIN_URL ;
|
379 |
+
?>/includes/assets/language-icon.png) no-repeat center top;
|
380 |
+
}
|
381 |
+
.tf-sortable .mm-cart-selector {
|
382 |
+
background: url(<?php
|
383 |
+
echo WP_MOBILE_MENU_PLUGIN_URL ;
|
384 |
+
?>/includes/assets/cart-icon.png) no-repeat center top;
|
385 |
+
}
|
386 |
+
.tf-sortable .mm-search-selector {
|
387 |
+
background: url(<?php
|
388 |
+
echo WP_MOBILE_MENU_PLUGIN_URL ;
|
389 |
+
?>/includes/assets/search-icon.png) no-repeat center top;
|
390 |
+
}
|
391 |
+
.tf-sortable .mm-left-menu-selector {
|
392 |
+
background: url(<?php
|
393 |
+
echo WP_MOBILE_MENU_PLUGIN_URL ;
|
394 |
+
?>/includes/assets/left-menu-icon.png) no-repeat center top;
|
395 |
+
}
|
396 |
+
.tf-sortable .mm-right-menu-selector {
|
397 |
+
background: url(<?php
|
398 |
+
echo WP_MOBILE_MENU_PLUGIN_URL ;
|
399 |
+
?>/includes/assets/right-menu-icon.png) no-repeat center top;
|
400 |
+
}
|
401 |
+
.tf-sortable .mm-logo-selector {
|
402 |
+
background: url(<?php
|
403 |
+
echo WP_MOBILE_MENU_PLUGIN_URL ;
|
404 |
+
?>/includes/assets/logo-icon.png) no-repeat center top;
|
405 |
+
}
|
406 |
+
.tf-sortable .mm-shop-filter-selector {
|
407 |
+
background: url(<?php
|
408 |
+
echo WP_MOBILE_MENU_PLUGIN_URL ;
|
409 |
+
?>/includes/assets/product-filter-icon.png) no-repeat center top;
|
410 |
+
}
|
411 |
+
</style>
|
412 |
+
<?php
|
413 |
+
|
414 |
+
if ( !$mm_fs->is_premium() ) {
|
415 |
+
$plan = 'mobmenu-standard';
|
416 |
+
} else {
|
417 |
+
$plan = 'mobmenu-premium';
|
418 |
+
}
|
419 |
+
|
420 |
+
?>
|
421 |
+
<div class='titan-framework-panel-wrap <?php
|
422 |
+
echo $plan ;
|
423 |
+
?>' >
|
424 |
+
<?php
|
425 |
+
|
426 |
+
if ( count( $this->tabs ) ) {
|
427 |
+
?>
|
428 |
+
<h2 class="nav-tab-wrapper">
|
429 |
+
<?php
|
430 |
+
foreach ( $this->tabs as $tab ) {
|
431 |
+
$tab->displayTab();
|
432 |
+
}
|
433 |
+
?>
|
434 |
+
</h2>
|
435 |
+
<?php
|
436 |
+
}
|
437 |
+
|
438 |
+
|
439 |
+
if ( !isset( $_GET['mobmenu-action'] ) || isset( $_GET['mobmenu-action'] ) && 'import-settings' !== $_GET['mobmenu-action'] ) {
|
440 |
+
$activeTab = $this->getActiveTab();
|
441 |
+
?>
|
442 |
+
|
443 |
+
<div class='options-container active-tab-<?php
|
444 |
+
echo $activeTab->settings['id'] ;
|
445 |
+
?>'>
|
446 |
+
<?php
|
447 |
+
// Display notification if we did something.
|
448 |
+
if ( !empty($_GET['message']) ) {
|
449 |
+
|
450 |
+
if ( 'saved' === $_GET['message'] ) {
|
451 |
+
echo TitanFrameworkAdminNotification::formNotification( __( 'Settings saved.', TF_I18NDOMAIN ), esc_html( $_GET['message'] ) ) ;
|
452 |
+
} else {
|
453 |
+
if ( 'reset' === $_GET['message'] ) {
|
454 |
+
echo TitanFrameworkAdminNotification::formNotification( __( 'Settings reset to default.', TF_I18NDOMAIN ), esc_html( $_GET['message'] ) ) ;
|
455 |
+
}
|
456 |
+
}
|
457 |
+
|
458 |
+
}
|
459 |
+
if ( $this->settings['use_form'] ) {
|
460 |
+
?>
|
461 |
+
<form method='post'>
|
462 |
+
<?php
|
463 |
+
}
|
464 |
+
if ( $this->settings['use_form'] ) {
|
465 |
+
// Security nonce verification.
|
466 |
+
wp_nonce_field( $this->settings['id'], TF . '_nonce' );
|
467 |
+
}
|
468 |
+
?>
|
469 |
+
<table class='form-table'>
|
470 |
+
<tbody>
|
471 |
+
<?php
|
472 |
+
do_action( 'tf_admin_page_table_start_' . $this->getOptionNamespace() );
|
473 |
+
$activeTab = $this->getActiveTab();
|
474 |
+
|
475 |
+
if ( !empty($activeTab) ) {
|
476 |
+
|
477 |
+
if ( !empty($activeTab->settings['desc']) ) {
|
478 |
+
?>
|
479 |
+
<p class='description'><?php
|
480 |
+
echo $activeTab->settings['desc'] ;
|
481 |
+
?></p>
|
482 |
+
<?php
|
483 |
+
}
|
484 |
+
|
485 |
+
$activeTab->displayOptions();
|
486 |
+
}
|
487 |
+
|
488 |
+
foreach ( $this->options as $option ) {
|
489 |
+
$option->display();
|
490 |
+
}
|
491 |
+
do_action( 'tf_admin_page_table_end_' . $this->getOptionNamespace() );
|
492 |
+
?>
|
493 |
+
</tbody>
|
494 |
+
</table>
|
495 |
+
<?php
|
496 |
+
if ( $this->settings['use_form'] ) {
|
497 |
+
?>
|
498 |
+
</form>
|
499 |
+
<?php
|
500 |
+
}
|
501 |
+
do_action( 'tf_admin_page_end_' . $this->getOptionNamespace() );
|
502 |
+
?>
|
503 |
+
<div class='options-container active-tab-<?php
|
504 |
+
echo $activeTab->settings['id'] ;
|
505 |
+
?>'>
|
506 |
+
</div>
|
507 |
+
</div>
|
508 |
+
</div>
|
509 |
+
</div>
|
510 |
+
|
511 |
+
<?php
|
512 |
+
do_action( 'tf_admin_page_after_' . $this->getOptionNamespace() );
|
513 |
+
} else {
|
514 |
+
do_action( 'mobile_menu_importer_page', $this->settings['id'] );
|
515 |
+
}
|
516 |
+
|
517 |
+
}
|
518 |
+
|
519 |
+
public function createTab( $settings )
|
520 |
+
{
|
521 |
+
$obj = new TitanFrameworkAdminTab( $settings, $this );
|
522 |
+
$this->tabs[] = $obj;
|
523 |
+
do_action( 'tf_admin_tab_created_' . $this->getOptionNamespace(), $obj );
|
524 |
+
return $obj;
|
525 |
+
}
|
526 |
+
|
527 |
+
public function createOption( $settings )
|
528 |
+
{
|
529 |
+
$obj = TitanFrameworkOption::factory( $settings, $this );
|
530 |
+
$this->options[] = $obj;
|
531 |
+
do_action( 'tf_create_option_' . $this->getOptionNamespace(), $obj );
|
532 |
+
return $obj;
|
533 |
+
}
|
534 |
+
|
535 |
+
}
|
options-framework/{titan-framework/lib → lib}/class-admin-tab.php
RENAMED
@@ -52,12 +52,17 @@ class TitanFrameworkAdminTab
|
|
52 |
'tab' => $this->settings['id'],
|
53 |
), remove_query_arg( array( 'message', 'mobmenu-action' ) ) );
|
54 |
$tab_submenus = $this->displayTabSubmenus();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
?>
|
56 |
-
<a href="<?php
|
57 |
-
echo
|
58 |
-
?>" class="nav-tab
|
59 |
-
echo ( $this->isActiveTab() ? 'nav-tab-active' : '' ) ;
|
60 |
-
?>"><?php
|
61 |
echo $this->settings['name'] ;
|
62 |
echo $tab_submenus ;
|
63 |
?></a>
|
@@ -70,21 +75,37 @@ class TitanFrameworkAdminTab
|
|
70 |
$output = '';
|
71 |
$li_elements = '';
|
72 |
$general_options_arr = array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
array(
|
74 |
'name' => __( 'Hide Theme Menu', 'mobile-menu' ),
|
75 |
-
'url' => 'hide-
|
76 |
),
|
77 |
array(
|
78 |
'name' => __( 'Miscelaneous Options', 'mobile-menu' ),
|
79 |
-
'url' => '
|
80 |
),
|
81 |
array(
|
82 |
'name' => __( 'Advanced Options', 'mobile-menu' ),
|
83 |
-
'url' => 'advanced-options',
|
|
|
|
|
|
|
|
|
84 |
),
|
85 |
array(
|
86 |
'name' => __( 'Import and Export', 'mobile-menu' ),
|
87 |
-
'url' => 'import-
|
|
|
|
|
|
|
|
|
88 |
)
|
89 |
);
|
90 |
$header_arr = array( array(
|
@@ -96,15 +117,21 @@ class TitanFrameworkAdminTab
|
|
96 |
) );
|
97 |
$woocommerce_arr = [];
|
98 |
$right_menu_arr = array( array(
|
|
|
|
|
|
|
99 |
'name' => __( 'Menu Icon', 'mobile-menu' ),
|
100 |
-
'url' => 'menu-icon',
|
101 |
), array(
|
102 |
'name' => __( 'Right Panel', 'mobile-menu' ),
|
103 |
'url' => 'right-panel-options',
|
104 |
) );
|
105 |
$left_menu_arr = array( array(
|
|
|
|
|
|
|
106 |
'name' => __( 'Menu Icon', 'mobile-menu' ),
|
107 |
-
'url' => 'menu-icon',
|
108 |
), array(
|
109 |
'name' => __( 'Left Panel', 'mobile-menu' ),
|
110 |
'url' => 'left-panel-options',
|
@@ -112,19 +139,19 @@ class TitanFrameworkAdminTab
|
|
112 |
$colors_arr = array(
|
113 |
array(
|
114 |
'name' => __( 'General', 'mobile-menu' ),
|
115 |
-
'url' => '
|
116 |
),
|
117 |
array(
|
118 |
'name' => __( 'Header', 'mobile-menu' ),
|
119 |
-
'url' => 'header',
|
120 |
),
|
121 |
array(
|
122 |
'name' => __( 'Left Menu', 'mobile-menu' ),
|
123 |
-
'url' => 'left-menu',
|
124 |
),
|
125 |
array(
|
126 |
'name' => __( 'Right Menu', 'mobile-menu' ),
|
127 |
-
'url' => 'right-menu',
|
128 |
),
|
129 |
array(
|
130 |
'name' => __( '3rd Level Menu', 'mobile-menu' ),
|
52 |
'tab' => $this->settings['id'],
|
53 |
), remove_query_arg( array( 'message', 'mobmenu-action' ) ) );
|
54 |
$tab_submenus = $this->displayTabSubmenus();
|
55 |
+
|
56 |
+
if ( $this->settings['id'] == 'general-options' ) {
|
57 |
+
$options_id = '';
|
58 |
+
} else {
|
59 |
+
$options_id = '-options';
|
60 |
+
}
|
61 |
+
|
62 |
?>
|
63 |
+
<a href="#" data-tab-id="<?php
|
64 |
+
echo $this->settings['id'] . $options_id ;
|
65 |
+
?>" class="nav-tab"><?php
|
|
|
|
|
66 |
echo $this->settings['name'] ;
|
67 |
echo $tab_submenus ;
|
68 |
?></a>
|
75 |
$output = '';
|
76 |
$li_elements = '';
|
77 |
$general_options_arr = array(
|
78 |
+
array(
|
79 |
+
'name' => __( 'Getting started', 'mobile-menu' ),
|
80 |
+
'url' => 'general-options',
|
81 |
+
),
|
82 |
+
array(
|
83 |
+
'name' => __( 'Visibility options', 'mobile-menu' ),
|
84 |
+
'url' => 'general-visibility-options',
|
85 |
+
),
|
86 |
array(
|
87 |
'name' => __( 'Hide Theme Menu', 'mobile-menu' ),
|
88 |
+
'url' => 'general-hide-elements',
|
89 |
),
|
90 |
array(
|
91 |
'name' => __( 'Miscelaneous Options', 'mobile-menu' ),
|
92 |
+
'url' => 'general-misc-options',
|
93 |
),
|
94 |
array(
|
95 |
'name' => __( 'Advanced Options', 'mobile-menu' ),
|
96 |
+
'url' => 'general-advanced-options',
|
97 |
+
),
|
98 |
+
array(
|
99 |
+
'name' => __( 'Font Options', 'mobile-menu' ),
|
100 |
+
'url' => 'font-options',
|
101 |
),
|
102 |
array(
|
103 |
'name' => __( 'Import and Export', 'mobile-menu' ),
|
104 |
+
'url' => 'general-import-export',
|
105 |
+
),
|
106 |
+
array(
|
107 |
+
'name' => __( 'Alerts', 'mobile-menu' ),
|
108 |
+
'url' => 'general-alerts',
|
109 |
)
|
110 |
);
|
111 |
$header_arr = array( array(
|
117 |
) );
|
118 |
$woocommerce_arr = [];
|
119 |
$right_menu_arr = array( array(
|
120 |
+
'name' => __( 'Main Options', 'mobile-menu' ),
|
121 |
+
'url' => 'right-menu-options',
|
122 |
+
), array(
|
123 |
'name' => __( 'Menu Icon', 'mobile-menu' ),
|
124 |
+
'url' => 'right-menu-icon',
|
125 |
), array(
|
126 |
'name' => __( 'Right Panel', 'mobile-menu' ),
|
127 |
'url' => 'right-panel-options',
|
128 |
) );
|
129 |
$left_menu_arr = array( array(
|
130 |
+
'name' => __( 'Main Options', 'mobile-menu' ),
|
131 |
+
'url' => 'left-menu-options',
|
132 |
+
), array(
|
133 |
'name' => __( 'Menu Icon', 'mobile-menu' ),
|
134 |
+
'url' => 'left-menu-icon',
|
135 |
), array(
|
136 |
'name' => __( 'Left Panel', 'mobile-menu' ),
|
137 |
'url' => 'left-panel-options',
|
139 |
$colors_arr = array(
|
140 |
array(
|
141 |
'name' => __( 'General', 'mobile-menu' ),
|
142 |
+
'url' => 'colors-options',
|
143 |
),
|
144 |
array(
|
145 |
'name' => __( 'Header', 'mobile-menu' ),
|
146 |
+
'url' => 'header-colors',
|
147 |
),
|
148 |
array(
|
149 |
'name' => __( 'Left Menu', 'mobile-menu' ),
|
150 |
+
'url' => 'left-menu-colors',
|
151 |
),
|
152 |
array(
|
153 |
'name' => __( 'Right Menu', 'mobile-menu' ),
|
154 |
+
'url' => 'right-menu-colors',
|
155 |
),
|
156 |
array(
|
157 |
'name' => __( '3rd Level Menu', 'mobile-menu' ),
|
options-framework/{titan-framework/lib → lib}/class-meta-box.php
RENAMED
File without changes
|
options-framework/{titan-framework/lib → lib}/class-option-ajax-button.php
RENAMED
@@ -123,7 +123,6 @@ class TitanFrameworkOptionAjaxButton extends TitanFrameworkOption {
|
|
123 |
|
124 |
}
|
125 |
|
126 |
-
|
127 |
/**
|
128 |
* Renders the option
|
129 |
*
|
@@ -265,57 +264,4 @@ class TitanFrameworkOptionAjaxButton extends TitanFrameworkOption {
|
|
265 |
<?php
|
266 |
}
|
267 |
|
268 |
-
/*
|
269 |
-
* Display for theme customizer
|
270 |
-
*/
|
271 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
272 |
-
$wp_customize->add_control( new TitanFrameworkOptionAjaxButtonControl( $wp_customize, '', array(
|
273 |
-
'label' => $this->settings['name'],
|
274 |
-
'section' => $section->getID(),
|
275 |
-
'settings' => $this->getID(),
|
276 |
-
'description' => $this->settings['desc'],
|
277 |
-
'priority' => $priority,
|
278 |
-
'options' => $this->settings,
|
279 |
-
) ) );
|
280 |
-
}
|
281 |
-
}
|
282 |
-
|
283 |
-
/*
|
284 |
-
* WP_Customize_Control with description
|
285 |
-
*/
|
286 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionAjaxButtonControl', 1 );
|
287 |
-
function registerTitanFrameworkOptionAjaxButtonControl() {
|
288 |
-
class TitanFrameworkOptionAjaxButtonControl extends WP_Customize_Control {
|
289 |
-
public $description;
|
290 |
-
public $options;
|
291 |
-
|
292 |
-
public function render_content() {
|
293 |
-
TitanFrameworkOptionAjaxButton::createAjaxScript();
|
294 |
-
|
295 |
-
?>
|
296 |
-
<label class='tf-ajax-button'>
|
297 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span><?php
|
298 |
-
|
299 |
-
foreach ( $this->options['action'] as $i => $action ) {
|
300 |
-
printf( '<button class="button %s" data-action="%s" data-label="%s" data-wait-label="%s" data-error-label="%s" data-success-label="%s" data-nonce="%s" data-success-callback="%s" data-error-callback="%s">%s</button>',
|
301 |
-
$this->options['class'][ $i ],
|
302 |
-
esc_attr( $action ),
|
303 |
-
esc_attr( $this->options['label'][ $i ] ),
|
304 |
-
esc_attr( $this->options['wait_label'][ $i ] ),
|
305 |
-
esc_attr( $this->options['error_label'][ $i ] ),
|
306 |
-
esc_attr( $this->options['success_label'][ $i ] ),
|
307 |
-
esc_attr( wp_create_nonce( 'tf-ajax-button' ) ),
|
308 |
-
esc_attr( $this->options['success_callback'][ $i ] ),
|
309 |
-
esc_attr( $this->options['error_callback'][ $i ] ),
|
310 |
-
esc_attr( $this->options['label'][ $i ] )
|
311 |
-
);
|
312 |
-
}
|
313 |
-
|
314 |
-
if ( ! empty( $this->description ) ) {
|
315 |
-
echo "<p class='description'>" . $this->description . '</p>';
|
316 |
-
}
|
317 |
-
|
318 |
-
?></label><?php
|
319 |
-
}
|
320 |
-
}
|
321 |
}
|
123 |
|
124 |
}
|
125 |
|
|
|
126 |
/**
|
127 |
* Renders the option
|
128 |
*
|
264 |
<?php
|
265 |
}
|
266 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-checkbox.php
RENAMED
@@ -32,17 +32,4 @@ class TitanFrameworkOptionCheckbox extends TitanFrameworkOption {
|
|
32 |
return $value == '1' ? true : false;
|
33 |
}
|
34 |
|
35 |
-
/*
|
36 |
-
* Display for theme customizer
|
37 |
-
*/
|
38 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
39 |
-
$wp_customize->add_control( new TitanFrameworkCustomizeControl( $wp_customize, $this->getID(), array(
|
40 |
-
'label' => $this->settings['name'],
|
41 |
-
'section' => $section->settings['id'],
|
42 |
-
'settings' => $this->getID(),
|
43 |
-
'type' => 'checkbox',
|
44 |
-
'description' => $this->settings['desc'],
|
45 |
-
'priority' => $priority,
|
46 |
-
) ) );
|
47 |
-
}
|
48 |
}
|
32 |
return $value == '1' ? true : false;
|
33 |
}
|
34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-code.php
RENAMED
File without changes
|
options-framework/lib/class-option-color.php
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
class TitanFrameworkOptionColor extends TitanFrameworkOption {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Default settings
|
9 |
+
* @var array
|
10 |
+
*/
|
11 |
+
public $defaultSecondarySettings = array(
|
12 |
+
|
13 |
+
/**
|
14 |
+
* (Optional) If true, an additional control will become available in the color picker for adjusting the alpha/opacity value of the color. You can get rgba colors with the option.
|
15 |
+
*
|
16 |
+
* @since 1.9
|
17 |
+
* @var boolean
|
18 |
+
*/
|
19 |
+
'alpha' => false,
|
20 |
+
);
|
21 |
+
|
22 |
+
function __construct( $settings, $owner ) {
|
23 |
+
parent::__construct( $settings, $owner );
|
24 |
+
tf_add_action_once( 'admin_enqueue_scripts', array( $this, 'enqueueColorPickerScript' ) );
|
25 |
+
tf_add_action_once( 'admin_footer', array( $this, 'startColorPicker' ) );
|
26 |
+
}
|
27 |
+
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Display for options and meta
|
31 |
+
*
|
32 |
+
* @since 1.0
|
33 |
+
*
|
34 |
+
* @return void
|
35 |
+
*/
|
36 |
+
public function display() {
|
37 |
+
|
38 |
+
$this->echoOptionHeader();
|
39 |
+
|
40 |
+
printf( '<input class="tf-colorpicker" type="text" name="%s" id="%s" value="%s" data-default-color="%s" data-custom-width="0" %s/>',
|
41 |
+
esc_attr( $this->getID() ),
|
42 |
+
esc_attr( $this->getID() ),
|
43 |
+
esc_attr( $this->getValue() ),
|
44 |
+
esc_attr( $this->getValue() ),
|
45 |
+
! empty( $this->settings['alpha'] ) ? "data-alpha='true'" : '' // Used by wp-color-picker-alpha
|
46 |
+
);
|
47 |
+
|
48 |
+
$this->echoOptionFooter();
|
49 |
+
}
|
50 |
+
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Enqueue the colorpicker scripts
|
54 |
+
*
|
55 |
+
* @since 1.9
|
56 |
+
*
|
57 |
+
* @return void
|
58 |
+
*/
|
59 |
+
public function enqueueColorPickerScript($hook) {
|
60 |
+
|
61 |
+
if ( $hook == 'toplevel_page_mobile-menu-options' ) {
|
62 |
+
wp_enqueue_script( 'wp-color-picker' );
|
63 |
+
wp_enqueue_style( 'wp-color-picker' );
|
64 |
+
wp_enqueue_script( 'wp-color-picker-alpha', TitanFramework::getURL( '../js/min/wp-color-picker-alpha-min.js', __FILE__ ), array( 'wp-color-picker' ), TF_VERSION );
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Load the javascript to init the colorpicker
|
71 |
+
*
|
72 |
+
* @since 1.9
|
73 |
+
*
|
74 |
+
* @return void
|
75 |
+
*/
|
76 |
+
public function startColorPicker($hook) {
|
77 |
+
|
78 |
+
|
79 |
+
?>
|
80 |
+
<script>
|
81 |
+
|
82 |
+
wpColorPicker_i18n = {"clear":"Clear","defaultString":"Default","pick":"Select Color","current":"Current Color"};
|
83 |
+
wpColorPickerL10n = wpColorPicker_i18n;
|
84 |
+
|
85 |
+
jQuery(document).ready(function() {
|
86 |
+
'use strict';
|
87 |
+
if ( typeof jQuery.fn.wpColorPicker !== 'undefined' ) {
|
88 |
+
jQuery('.tf-colorpicker').wpColorPicker();
|
89 |
+
}
|
90 |
+
});
|
91 |
+
</script>
|
92 |
+
|
93 |
+
<?php
|
94 |
+
}
|
95 |
+
|
96 |
+
}
|
options-framework/lib/class-option-custom.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Custom option
|
4 |
+
*
|
5 |
+
* @package Titan Framework
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly.
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Custom option class
|
13 |
+
*
|
14 |
+
* @since 1.0
|
15 |
+
*/
|
16 |
+
class TitanFrameworkOptionCustom extends TitanFrameworkOption {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Default settings specific to this option
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
public $defaultSecondarySettings = array(
|
23 |
+
'custom' => '', // Custom HTML
|
24 |
+
);
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Display for options and meta
|
28 |
+
*/
|
29 |
+
public function display() {
|
30 |
+
if ( ! empty( $this->settings['name'] ) ) {
|
31 |
+
|
32 |
+
$this->echoOptionHeader();
|
33 |
+
echo $this->settings['custom'];
|
34 |
+
$this->echoOptionFooter( false );
|
35 |
+
|
36 |
+
} else {
|
37 |
+
|
38 |
+
$this->echoOptionHeaderBare();
|
39 |
+
echo $this->settings['custom'];
|
40 |
+
$this->echoOptionFooterBare( false );
|
41 |
+
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
}
|
options-framework/{titan-framework/lib → lib}/class-option-date.php
RENAMED
@@ -41,7 +41,6 @@ class TitanFrameworkOptionDate extends TitanFrameworkOption {
|
|
41 |
}
|
42 |
}
|
43 |
|
44 |
-
|
45 |
/**
|
46 |
* Cleans up the serialized value before saving
|
47 |
*
|
@@ -59,7 +58,6 @@ class TitanFrameworkOptionDate extends TitanFrameworkOption {
|
|
59 |
return strtotime( $value );
|
60 |
}
|
61 |
|
62 |
-
|
63 |
/**
|
64 |
* Cleans the value for getOption
|
65 |
*
|
@@ -74,7 +72,6 @@ class TitanFrameworkOptionDate extends TitanFrameworkOption {
|
|
74 |
return $value;
|
75 |
}
|
76 |
|
77 |
-
|
78 |
/**
|
79 |
* Enqueues the jQuery UI scripts
|
80 |
*
|
@@ -139,7 +136,6 @@ class TitanFrameworkOptionDate extends TitanFrameworkOption {
|
|
139 |
<?php
|
140 |
}
|
141 |
|
142 |
-
|
143 |
/**
|
144 |
* Displays the option for admin pages and meta boxes
|
145 |
*
|
@@ -169,77 +165,4 @@ class TitanFrameworkOptionDate extends TitanFrameworkOption {
|
|
169 |
);
|
170 |
$this->echoOptionFooter( false );
|
171 |
}
|
172 |
-
|
173 |
-
|
174 |
-
/**
|
175 |
-
* Registers the theme customizer control, for displaying the option
|
176 |
-
*
|
177 |
-
* @param WP_Customize $wp_enqueue_script The customize object
|
178 |
-
* @param TitanFrameworkCustomizerSection $section The section where this option will be placed
|
179 |
-
* @param int $priority The order of this control in the section
|
180 |
-
* @return void
|
181 |
-
* @since 1.7
|
182 |
-
*/
|
183 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
184 |
-
$wp_customize->add_control( new TitanFrameworkOptionDateControl( $wp_customize, $this->getID(), array(
|
185 |
-
'label' => $this->settings['name'],
|
186 |
-
'section' => $section->settings['id'],
|
187 |
-
'settings' => $this->getID(),
|
188 |
-
'description' => $this->settings['desc'],
|
189 |
-
'priority' => $priority,
|
190 |
-
'date' => $this->settings['date'],
|
191 |
-
'time' => $this->settings['time'],
|
192 |
-
) ) );
|
193 |
-
}
|
194 |
-
}
|
195 |
-
|
196 |
-
|
197 |
-
/*
|
198 |
-
* We create a new control for the theme customizer
|
199 |
-
*/
|
200 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionDateControl', 1 );
|
201 |
-
|
202 |
-
|
203 |
-
/**
|
204 |
-
* Creates the option for the theme customizer
|
205 |
-
*
|
206 |
-
* @return void
|
207 |
-
* @since 1.3
|
208 |
-
*/
|
209 |
-
function registerTitanFrameworkOptionDateControl() {
|
210 |
-
class TitanFrameworkOptionDateControl extends WP_Customize_Control {
|
211 |
-
public $description;
|
212 |
-
public $date;
|
213 |
-
public $time;
|
214 |
-
|
215 |
-
public function render_content() {
|
216 |
-
|
217 |
-
TitanFrameworkOptionDate::createCalendarScript();
|
218 |
-
|
219 |
-
$dateFormat = 'Y-m-d H:i';
|
220 |
-
$placeholder = 'YYYY-MM-DD HH:MM';
|
221 |
-
if ( $this->date && ! $this->time ) {
|
222 |
-
$dateFormat = 'Y-m-d';
|
223 |
-
$placeholder = 'YYYY-MM-DD';
|
224 |
-
} else if ( ! $this->date && $this->time ) {
|
225 |
-
$dateFormat = 'H:i';
|
226 |
-
$placeholder = 'HH:MM';
|
227 |
-
}
|
228 |
-
|
229 |
-
$class = $this->date ? ' date' : '';
|
230 |
-
$class .= $this->time ? ' time' : ''
|
231 |
-
?>
|
232 |
-
<label class='tf-date'>
|
233 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
234 |
-
<input class="input-date<?php echo $class ?>" <?php $this->link(); ?> placeholder="<?php echo $placeholder ?>" type="text" value="<?php echo $this->value() ?>" />
|
235 |
-
|
236 |
-
<?php
|
237 |
-
if ( ! empty( $this->description ) ) {
|
238 |
-
echo "<p class='description'>{$this->description}</p>";
|
239 |
-
}
|
240 |
-
?>
|
241 |
-
</label>
|
242 |
-
<?php
|
243 |
-
}
|
244 |
-
}
|
245 |
}
|
41 |
}
|
42 |
}
|
43 |
|
|
|
44 |
/**
|
45 |
* Cleans up the serialized value before saving
|
46 |
*
|
58 |
return strtotime( $value );
|
59 |
}
|
60 |
|
|
|
61 |
/**
|
62 |
* Cleans the value for getOption
|
63 |
*
|
72 |
return $value;
|
73 |
}
|
74 |
|
|
|
75 |
/**
|
76 |
* Enqueues the jQuery UI scripts
|
77 |
*
|
136 |
<?php
|
137 |
}
|
138 |
|
|
|
139 |
/**
|
140 |
* Displays the option for admin pages and meta boxes
|
141 |
*
|
165 |
);
|
166 |
$this->echoOptionFooter( false );
|
167 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-editor.php
RENAMED
@@ -39,18 +39,4 @@ class TitanFrameworkOptionEditor extends TitanFrameworkOption {
|
|
39 |
}
|
40 |
return stripslashes( $value );
|
41 |
}
|
42 |
-
|
43 |
-
|
44 |
-
/*
|
45 |
-
* Display for theme customizer
|
46 |
-
*/
|
47 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
48 |
-
$wp_customize->add_control( new TitanFrameworkCustomizeControl( $wp_customize, $this->getID(), array(
|
49 |
-
'label' => $this->settings['name'],
|
50 |
-
'section' => $section->settings['id'],
|
51 |
-
'settings' => $this->getID(),
|
52 |
-
'description' => $this->settings['desc'],
|
53 |
-
'priority' => $priority,
|
54 |
-
) ) );
|
55 |
-
}
|
56 |
}
|
39 |
}
|
40 |
return stripslashes( $value );
|
41 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-enable.php
RENAMED
@@ -107,74 +107,4 @@ class TitanFrameworkOptionEnable extends TitanFrameworkOption {
|
|
107 |
|
108 |
return $value == '1' ? true : false;
|
109 |
}
|
110 |
-
|
111 |
-
/*
|
112 |
-
* Display for theme customizer
|
113 |
-
*/
|
114 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
115 |
-
$wp_customize->add_control( new TitanFrameworkOptionEnableControl( $wp_customize, $this->getID(), array(
|
116 |
-
'label' => $this->settings['name'],
|
117 |
-
'section' => $section->settings['id'],
|
118 |
-
'settings' => $this->getID(),
|
119 |
-
'description' => $this->settings['desc'],
|
120 |
-
'priority' => $priority,
|
121 |
-
'options' => $this->settings,
|
122 |
-
) ) );
|
123 |
-
}
|
124 |
-
}
|
125 |
-
|
126 |
-
|
127 |
-
/*
|
128 |
-
* We create a new control for the theme customizer
|
129 |
-
*/
|
130 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionEnableControl', 1 );
|
131 |
-
function registerTitanFrameworkOptionEnableControl() {
|
132 |
-
class TitanFrameworkOptionEnableControl extends WP_Customize_Control {
|
133 |
-
public $description;
|
134 |
-
public $options;
|
135 |
-
|
136 |
-
private static $firstLoad = true;
|
137 |
-
|
138 |
-
public function render_content() {
|
139 |
-
|
140 |
-
if ( empty( $this->options['enabled'] ) ) {
|
141 |
-
$this->options['enabled'] = __( 'Enabled', TF_I18NDOMAIN );
|
142 |
-
}
|
143 |
-
if ( empty( $this->options['disabled'] ) ) {
|
144 |
-
$this->options['disabled'] = __( 'Disabled', TF_I18NDOMAIN );
|
145 |
-
}
|
146 |
-
?>
|
147 |
-
<div class='tf-enable'>
|
148 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
149 |
-
<input type="checkbox" value="1" <?php $this->link(); ?>>
|
150 |
-
<span class="button button-<?php echo checked( $this->value(), 1, false ) ? 'primary' : 'secondary' ?>"><?php echo $this->options['enabled'] ?></span><span class="button button-<?php echo checked( $this->value(), 1, false ) ? 'secondary' : 'primary' ?>"><?php echo $this->options['disabled'] ?></span>
|
151 |
-
</div>
|
152 |
-
<?php
|
153 |
-
|
154 |
-
echo "<p class='description'>{$this->description}</p>";
|
155 |
-
|
156 |
-
// load the javascript to init the colorpicker
|
157 |
-
if ( self::$firstLoad ) :
|
158 |
-
?>
|
159 |
-
<script>
|
160 |
-
jQuery(document).ready(function($) {
|
161 |
-
"use strict";
|
162 |
-
$('body').on('click', '.tf-enable .button-secondary', function() {
|
163 |
-
$(this).parent().find('.button').toggleClass('button-primary button-secondary');
|
164 |
-
var checkBox = $(this).parents('.tf-enable').find('input');
|
165 |
-
if ( checkBox.is(':checked') ) {
|
166 |
-
checkBox.removeAttr('checked');
|
167 |
-
} else {
|
168 |
-
checkBox.attr('checked', 'checked');
|
169 |
-
}
|
170 |
-
checkBox.trigger('change');
|
171 |
-
});
|
172 |
-
});
|
173 |
-
</script>
|
174 |
-
<?php
|
175 |
-
endif;
|
176 |
-
|
177 |
-
self::$firstLoad = false;
|
178 |
-
}
|
179 |
-
}
|
180 |
}
|
107 |
|
108 |
return $value == '1' ? true : false;
|
109 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-file.php
RENAMED
@@ -137,20 +137,6 @@ class TitanFrameworkOptionFile extends TitanFrameworkOption {
|
|
137 |
$this->echoOptionFooter();
|
138 |
}
|
139 |
|
140 |
-
/*
|
141 |
-
* Display for theme customizer.
|
142 |
-
*/
|
143 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
144 |
-
$wp_customize->add_control( new TitanFrameworkOptionFileUploadControl( $wp_customize, $this->getID(), array(
|
145 |
-
'label' => $this->settings['name'],
|
146 |
-
'section' => $section->getID(),
|
147 |
-
'settings' => $this->getID(),
|
148 |
-
'description' => $this->settings['desc'],
|
149 |
-
'priority' => $priority,
|
150 |
-
'caption' => $this->settings['label'],
|
151 |
-
) ) );
|
152 |
-
}
|
153 |
-
|
154 |
public static function createUploaderScript() {
|
155 |
if ( ! self::$firstLoad ) {
|
156 |
return;
|
@@ -238,75 +224,3 @@ class TitanFrameworkOptionFile extends TitanFrameworkOption {
|
|
238 |
<?php
|
239 |
}
|
240 |
}
|
241 |
-
|
242 |
-
/*
|
243 |
-
* We create a new control for the theme customizer.
|
244 |
-
*/
|
245 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionFileUploadControl', 1 );
|
246 |
-
function registerTitanFrameworkOptionFileUploadControl() {
|
247 |
-
class TitanFrameworkOptionFileUploadControl extends WP_Customize_Control {
|
248 |
-
public $description;
|
249 |
-
public $caption;
|
250 |
-
|
251 |
-
public function render_content() {
|
252 |
-
TitanFrameworkOptionFile::createUploaderScript();
|
253 |
-
|
254 |
-
$previewFile = '';
|
255 |
-
$value = $this->value();
|
256 |
-
if ( ! is_array( $value ) ) {
|
257 |
-
$value = $this->value();
|
258 |
-
}
|
259 |
-
|
260 |
-
if ( ! empty( $value ) ) {
|
261 |
-
$previewFile = "<i class='dashicons dashicons-no-alt remove'></i><p>" . basename( get_attached_file( $value ) ) . "</p>";
|
262 |
-
} else {
|
263 |
-
$previewFile = $this->caption;
|
264 |
-
}
|
265 |
-
|
266 |
-
?>
|
267 |
-
<div class='tf-file'>
|
268 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
269 |
-
<div class='tf-file-upload'><?php echo $previewFile ?></div>
|
270 |
-
<input type='hidden' value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); ?>/>
|
271 |
-
</div>
|
272 |
-
<?php
|
273 |
-
|
274 |
-
if ( ! empty( $this->description ) ) {
|
275 |
-
echo "<p class='description'>{$this->description}</p>";
|
276 |
-
}
|
277 |
-
}
|
278 |
-
}
|
279 |
-
}
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
if ( ! function_exists( 'tf_file_upload_option_customizer_get_value' ) ) {
|
284 |
-
|
285 |
-
add_action( 'wp_ajax_tf_file_upload_option_customizer_get_value', 'tf_file_upload_option_customizer_get_value' );
|
286 |
-
|
287 |
-
/**
|
288 |
-
* Returns the image URL from an attachment ID & size.
|
289 |
-
*
|
290 |
-
* @see TitanFrameworkOptionUpload->preLivePreview().
|
291 |
-
*/
|
292 |
-
function tf_file_upload_option_customizer_get_value() {
|
293 |
-
|
294 |
-
if ( ! empty( $_POST['nonce'] ) && ! empty( $_POST['id'] ) ) {
|
295 |
-
|
296 |
-
$nonce = sanitize_text_field( $_POST['nonce'] );
|
297 |
-
$attachmentID = sanitize_text_field( $_POST['id'] );
|
298 |
-
// $size = sanitize_text_field( $_POST['size'] );
|
299 |
-
|
300 |
-
if ( wp_verify_nonce( $nonce, 'tf_file_upload_option_nonce' ) ) {
|
301 |
-
$attachment = $attachmentID;
|
302 |
-
if ( ! empty( $attachment ) ) {
|
303 |
-
wp_send_json_success( $attachment );
|
304 |
-
}
|
305 |
-
}
|
306 |
-
}
|
307 |
-
|
308 |
-
// Instead of doing a wp_send_json_error, send a blank value instead so.
|
309 |
-
// Javascript adjustments still get executed.
|
310 |
-
wp_send_json_success( '' );
|
311 |
-
}
|
312 |
-
}
|
137 |
$this->echoOptionFooter();
|
138 |
}
|
139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
public static function createUploaderScript() {
|
141 |
if ( ! self::$firstLoad ) {
|
142 |
return;
|
224 |
<?php
|
225 |
}
|
226 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/{titan-framework/lib → lib}/class-option-font.php
RENAMED
@@ -109,7 +109,6 @@ class TitanFrameworkOptionFont extends TitanFrameworkOption {
|
|
109 |
*
|
110 |
* @return void
|
111 |
*
|
112 |
-
* @see TitanFrameworkCustomizer->livePreviewMainScript()
|
113 |
*/
|
114 |
public function generateCustomizerPreviewJS() {
|
115 |
?>
|
@@ -951,422 +950,4 @@ class TitanFrameworkOptionFont extends TitanFrameworkOption {
|
|
951 |
return $value;
|
952 |
}
|
953 |
|
954 |
-
|
955 |
-
/**
|
956 |
-
* Registers the theme customizer control, for displaying the option
|
957 |
-
*
|
958 |
-
* @param WP_Customize $wp_enqueue_script The customize object
|
959 |
-
* @param TitanFrameworkCustomizerSection $section The section where this option will be placed
|
960 |
-
* @param int $priority The order of this control in the section
|
961 |
-
* @return void
|
962 |
-
* @since 1.4
|
963 |
-
*/
|
964 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
965 |
-
$wp_customize->add_control( new TitanFrameworkOptionFontControl( $wp_customize, $this->getID(), array(
|
966 |
-
'label' => $this->settings['name'],
|
967 |
-
'section' => $section->settings['id'],
|
968 |
-
'settings' => $this->getID(),
|
969 |
-
'description' => $this->settings['desc'],
|
970 |
-
'priority' => $priority,
|
971 |
-
'params' => $this->settings,
|
972 |
-
) ) );
|
973 |
-
}
|
974 |
-
}
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
/*
|
979 |
-
* We create a new control for the theme customizer
|
980 |
-
*/
|
981 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionFontControl', 1 );
|
982 |
-
|
983 |
-
|
984 |
-
/**
|
985 |
-
* Creates the option for the theme customizer
|
986 |
-
*
|
987 |
-
* @return void
|
988 |
-
* @since 1.4
|
989 |
-
*/
|
990 |
-
function registerTitanFrameworkOptionFontControl() {
|
991 |
-
class TitanFrameworkOptionFontControl extends WP_Customize_Control {
|
992 |
-
public $description;
|
993 |
-
public $params;
|
994 |
-
|
995 |
-
public function render_content() {
|
996 |
-
$this->params['show_preview'] = false;
|
997 |
-
TitanFrameworkOptionFont::createFontScript();
|
998 |
-
|
999 |
-
?>
|
1000 |
-
<div class='tf-font'>
|
1001 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
1002 |
-
<?php
|
1003 |
-
|
1004 |
-
// Get the current value and merge with defaults
|
1005 |
-
$value = $this->value();
|
1006 |
-
if ( is_serialized( $value ) ) {
|
1007 |
-
$value = unserialize( $value );
|
1008 |
-
}
|
1009 |
-
if ( ! is_array( $value ) ) {
|
1010 |
-
$value = array();
|
1011 |
-
}
|
1012 |
-
$value = array_merge( TitanFrameworkOptionFont::$defaultStyling, $value );
|
1013 |
-
|
1014 |
-
/*
|
1015 |
-
* Create all the fields
|
1016 |
-
*/
|
1017 |
-
$visibilityAttrs = '';
|
1018 |
-
if ( ! $this->params['show_font_family'] ) {
|
1019 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1020 |
-
}
|
1021 |
-
?>
|
1022 |
-
<div>
|
1023 |
-
<label <?php echo $visibilityAttrs ?>>
|
1024 |
-
Font Family
|
1025 |
-
<select class='tf-font-sel-family'>
|
1026 |
-
<option value='inherit'>inherit</option>
|
1027 |
-
<?php
|
1028 |
-
|
1029 |
-
if( $this->params['fonts'] ) {
|
1030 |
-
?>
|
1031 |
-
<optgroup label="Custom Fonts" class='customf-fonts'>
|
1032 |
-
<?php
|
1033 |
-
|
1034 |
-
foreach ( $this->params['fonts'] as $family => $label ) {
|
1035 |
-
printf( "<option value='%s'%s>%s</option>",
|
1036 |
-
$family,
|
1037 |
-
selected( $value['font-family'], $family, false ),
|
1038 |
-
$label
|
1039 |
-
);
|
1040 |
-
}
|
1041 |
-
|
1042 |
-
?>
|
1043 |
-
</optgroup>
|
1044 |
-
<?php
|
1045 |
-
}
|
1046 |
-
|
1047 |
-
if ( $this->params['show_websafe_fonts'] ) {
|
1048 |
-
?>
|
1049 |
-
<optgroup label="Web Safe Fonts" class='safe'>
|
1050 |
-
<?php
|
1051 |
-
foreach ( TitanFrameworkOptionFont::$webSafeFonts as $family => $label ) {
|
1052 |
-
printf( "<option value='%s'%s>%s</option>",
|
1053 |
-
$family,
|
1054 |
-
selected( $value['font-family'], $family, false ),
|
1055 |
-
$label
|
1056 |
-
);
|
1057 |
-
}
|
1058 |
-
?>
|
1059 |
-
</optgroup>
|
1060 |
-
<?php
|
1061 |
-
}
|
1062 |
-
?>
|
1063 |
-
|
1064 |
-
<?php
|
1065 |
-
if ( $this->params['show_google_fonts'] ) {
|
1066 |
-
?>
|
1067 |
-
<optgroup label="Google WebFonts" class='google'>
|
1068 |
-
<?php
|
1069 |
-
$allFonts = titan_get_googlefonts();
|
1070 |
-
foreach ( $allFonts as $key => $fontStuff ) {
|
1071 |
-
|
1072 |
-
// Show only the include_fonts (font names) if provided, uses regex.
|
1073 |
-
if ( ! empty( $this->params['include_fonts'] ) ) {
|
1074 |
-
if ( is_array( $this->params['include_fonts'] ) ) {
|
1075 |
-
$fontNameMatch = false;
|
1076 |
-
foreach ( $this->params['include_fonts'] as $fontNamePattern ) {
|
1077 |
-
if ( ! is_string( $fontNamePattern ) ) {
|
1078 |
-
continue;
|
1079 |
-
}
|
1080 |
-
$fontNamePattern = '/' . trim( $fontNamePattern, '/' ) . '/';
|
1081 |
-
if ( preg_match( $fontNamePattern . 'i', $fontStuff['name'] ) ) {
|
1082 |
-
$fontNameMatch = true;
|
1083 |
-
break;
|
1084 |
-
}
|
1085 |
-
}
|
1086 |
-
if ( ! $fontNameMatch ) {
|
1087 |
-
continue;
|
1088 |
-
}
|
1089 |
-
} else if ( is_string( $this->params['include_fonts'] ) ) {
|
1090 |
-
$fontNamePattern = '/' . trim( $this->params['include_fonts'], '/' ) . '/';
|
1091 |
-
if ( ! preg_match( $fontNamePattern . 'i', $fontStuff['name'] ) ) {
|
1092 |
-
continue;
|
1093 |
-
}
|
1094 |
-
}
|
1095 |
-
}
|
1096 |
-
|
1097 |
-
printf( "<option value='%s'%s>%s</option>",
|
1098 |
-
esc_attr( $fontStuff['name'] ),
|
1099 |
-
selected( $value['font-family'], $fontStuff['name'], false ),
|
1100 |
-
$fontStuff['name']
|
1101 |
-
);
|
1102 |
-
}
|
1103 |
-
?>
|
1104 |
-
</optgroup>
|
1105 |
-
<?php
|
1106 |
-
// End the show_google_fonts conditional
|
1107 |
-
}
|
1108 |
-
?>
|
1109 |
-
</select>
|
1110 |
-
</label>
|
1111 |
-
<?php
|
1112 |
-
|
1113 |
-
$visibilityAttrs = '';
|
1114 |
-
if ( ! $this->params['show_color'] ) {
|
1115 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1116 |
-
}
|
1117 |
-
?>
|
1118 |
-
<label <?php echo $visibilityAttrs ?>>
|
1119 |
-
Color
|
1120 |
-
<input class='tf-font-sel-color' type="text" value="<?php echo esc_attr( $value['color'] ) ?>" data-default-color="<?php echo esc_attr( $value['color'] ) ?>"/>
|
1121 |
-
</label>
|
1122 |
-
<?php
|
1123 |
-
|
1124 |
-
$visibilityAttrs = '';
|
1125 |
-
if ( ! $this->params['show_font_size'] ) {
|
1126 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1127 |
-
}
|
1128 |
-
?>
|
1129 |
-
<label <?php echo $visibilityAttrs ?>>
|
1130 |
-
Font Size
|
1131 |
-
<select class='tf-font-sel-size'>
|
1132 |
-
<option value='inherit'>inherit</option>
|
1133 |
-
<?php
|
1134 |
-
for ( $i = 1; $i <= 150; $i++ ) {
|
1135 |
-
printf( "<option value='%s'%s>%s</option>",
|
1136 |
-
esc_attr( $i . 'px' ),
|
1137 |
-
selected( $value['font-size'], $i . 'px', false ),
|
1138 |
-
$i . 'px'
|
1139 |
-
);
|
1140 |
-
}
|
1141 |
-
?>
|
1142 |
-
</select>
|
1143 |
-
</label>
|
1144 |
-
<?php
|
1145 |
-
|
1146 |
-
$visibilityAttrs = '';
|
1147 |
-
if ( ! $this->params['show_font_weight'] ) {
|
1148 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1149 |
-
}
|
1150 |
-
?>
|
1151 |
-
<label <?php echo $visibilityAttrs ?>>
|
1152 |
-
Font Weight
|
1153 |
-
<select class='tf-font-sel-weight'>
|
1154 |
-
<option value='inherit'>inherit</option>
|
1155 |
-
<?php
|
1156 |
-
$options = array( 'normal', 'bold', 'bolder', 'lighter', '100', '200', '300', '400', '500', '600', '700', '800', '900' );
|
1157 |
-
foreach ( $options as $option ) {
|
1158 |
-
printf( "<option value='%s'%s>%s</option>",
|
1159 |
-
esc_attr( $option ),
|
1160 |
-
selected( $value['font-weight'], $option, false ),
|
1161 |
-
$option
|
1162 |
-
);
|
1163 |
-
}
|
1164 |
-
?>
|
1165 |
-
</select>
|
1166 |
-
</label>
|
1167 |
-
<?php
|
1168 |
-
|
1169 |
-
$visibilityAttrs = '';
|
1170 |
-
if ( ! $this->params['show_font_style'] ) {
|
1171 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1172 |
-
}
|
1173 |
-
?>
|
1174 |
-
<label <?php echo $visibilityAttrs ?>>
|
1175 |
-
Font Style
|
1176 |
-
<select class='tf-font-sel-style'>
|
1177 |
-
<?php
|
1178 |
-
$options = array( 'normal', 'italic' );
|
1179 |
-
foreach ( $options as $option ) {
|
1180 |
-
printf( "<option value='%s'%s>%s</option>",
|
1181 |
-
esc_attr( $option ),
|
1182 |
-
selected( $value['font-style'], $option, false ),
|
1183 |
-
$option
|
1184 |
-
);
|
1185 |
-
}
|
1186 |
-
?>
|
1187 |
-
</select>
|
1188 |
-
</label>
|
1189 |
-
<?php
|
1190 |
-
|
1191 |
-
$visibilityAttrs = '';
|
1192 |
-
if ( ! $this->params['show_line_height'] ) {
|
1193 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1194 |
-
}
|
1195 |
-
?>
|
1196 |
-
<label <?php echo $visibilityAttrs ?>>
|
1197 |
-
Line Height
|
1198 |
-
<select class='tf-font-sel-height'>
|
1199 |
-
<?php
|
1200 |
-
for ( $i = .5; $i <= 3; $i += 0.1 ) {
|
1201 |
-
printf( "<option value='%s'%s>%s</option>",
|
1202 |
-
esc_attr( $i . 'em' ),
|
1203 |
-
selected( $value['line-height'], $i . 'em', false ),
|
1204 |
-
$i . 'em'
|
1205 |
-
);
|
1206 |
-
}
|
1207 |
-
?>
|
1208 |
-
</select>
|
1209 |
-
</label>
|
1210 |
-
<?php
|
1211 |
-
|
1212 |
-
$visibilityAttrs = '';
|
1213 |
-
if ( ! $this->params['show_letter_spacing'] ) {
|
1214 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1215 |
-
}
|
1216 |
-
?>
|
1217 |
-
<label <?php echo $visibilityAttrs ?>>
|
1218 |
-
Letter Spacing
|
1219 |
-
<select class='tf-font-sel-spacing'>
|
1220 |
-
<option value='normal'>normal</option>
|
1221 |
-
<?php
|
1222 |
-
for ( $i = -20; $i <= 20; $i++ ) {
|
1223 |
-
printf( "<option value='%s'%s>%s</option>",
|
1224 |
-
esc_attr( $i . 'px' ),
|
1225 |
-
selected( $value['letter-spacing'], $i . 'px', false ),
|
1226 |
-
$i . 'px'
|
1227 |
-
);
|
1228 |
-
}
|
1229 |
-
?>
|
1230 |
-
</select>
|
1231 |
-
</label>
|
1232 |
-
<?php
|
1233 |
-
|
1234 |
-
$visibilityAttrs = '';
|
1235 |
-
if ( ! $this->params['show_text_transform'] ) {
|
1236 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1237 |
-
}
|
1238 |
-
?>
|
1239 |
-
<label <?php echo $visibilityAttrs ?>>
|
1240 |
-
Text Transform
|
1241 |
-
<select class='tf-font-sel-transform'>
|
1242 |
-
<?php
|
1243 |
-
$options = array( 'none', 'capitalize', 'uppercase', 'lowercase' );
|
1244 |
-
foreach ( $options as $option ) {
|
1245 |
-
printf( "<option value='%s'%s>%s</option>",
|
1246 |
-
esc_attr( $option ),
|
1247 |
-
selected( $value['text-transform'], $option, false ),
|
1248 |
-
$option
|
1249 |
-
);
|
1250 |
-
}
|
1251 |
-
?>
|
1252 |
-
</select>
|
1253 |
-
</label>
|
1254 |
-
<?php
|
1255 |
-
|
1256 |
-
$visibilityAttrs = '';
|
1257 |
-
if ( ! $this->params['show_font_variant'] ) {
|
1258 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1259 |
-
}
|
1260 |
-
?>
|
1261 |
-
<label <?php echo $visibilityAttrs ?>>
|
1262 |
-
Font Variant
|
1263 |
-
<select class='tf-font-sel-variant'>
|
1264 |
-
<?php
|
1265 |
-
$options = array( 'normal', 'small-caps' );
|
1266 |
-
foreach ( $options as $option ) {
|
1267 |
-
printf( "<option value='%s'%s>%s</option>",
|
1268 |
-
esc_attr( $option ),
|
1269 |
-
selected( $value['font-variant'], $option, false ),
|
1270 |
-
$option
|
1271 |
-
);
|
1272 |
-
}
|
1273 |
-
?>
|
1274 |
-
</select>
|
1275 |
-
</label>
|
1276 |
-
<?php
|
1277 |
-
|
1278 |
-
$visibilityAttrs = '';
|
1279 |
-
if ( ! $this->params['show_text_shadow'] ) {
|
1280 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1281 |
-
}
|
1282 |
-
?>
|
1283 |
-
<label <?php echo $visibilityAttrs ?>>
|
1284 |
-
Shadow Location
|
1285 |
-
<select class='tf-font-sel-location'>
|
1286 |
-
<?php
|
1287 |
-
$options = array( 'none', 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right' );
|
1288 |
-
foreach ( $options as $option ) {
|
1289 |
-
printf( "<option value='%s'%s>%s</option>",
|
1290 |
-
esc_attr( $option ),
|
1291 |
-
selected( $value['text-shadow-location'], $option, false ),
|
1292 |
-
$option
|
1293 |
-
);
|
1294 |
-
}
|
1295 |
-
?>
|
1296 |
-
</select>
|
1297 |
-
</label>
|
1298 |
-
<label style='display: none'>
|
1299 |
-
Shadow Distance
|
1300 |
-
<select class='tf-font-sel-distance'>
|
1301 |
-
<?php
|
1302 |
-
for ( $i = 0; $i <= 10; $i++ ) {
|
1303 |
-
printf( "<option value='%s'%s>%s</option>",
|
1304 |
-
esc_attr( $i . 'px' ),
|
1305 |
-
selected( $value['text-shadow-distance'], $i . 'px', false ),
|
1306 |
-
$i . 'px'
|
1307 |
-
);
|
1308 |
-
}
|
1309 |
-
?>
|
1310 |
-
</select>
|
1311 |
-
</label>
|
1312 |
-
<label style='display: none'>
|
1313 |
-
Shadow Blur
|
1314 |
-
<select class='tf-font-sel-blur'>
|
1315 |
-
<?php
|
1316 |
-
$options = array( '0px', '1px', '2px', '3px', '4px', '5px', '10px', '20px' );
|
1317 |
-
foreach ( $options as $option ) {
|
1318 |
-
printf( "<option value='%s'%s>%s</option>",
|
1319 |
-
esc_attr( $option ),
|
1320 |
-
selected( $value['text-shadow-blur'], $option, false ),
|
1321 |
-
$option
|
1322 |
-
);
|
1323 |
-
}
|
1324 |
-
?>
|
1325 |
-
</select>
|
1326 |
-
</label>
|
1327 |
-
<label style='display: none'>
|
1328 |
-
Shadow Color
|
1329 |
-
<input class="tf-font-sel-shadow-color" type="text" value="<?php echo esc_attr( $value['text-shadow-color'] ) ?>" data-default-color="<?php echo esc_attr( $value['text-shadow-color'] ) ?>"/>
|
1330 |
-
</label>
|
1331 |
-
<label style='display: none'>
|
1332 |
-
Shadow Opacity
|
1333 |
-
<select class='tf-font-sel-opacity'>
|
1334 |
-
<?php
|
1335 |
-
$options = array( '1', '0.9', '0.8', '0.7', '0.6', '0.5', '0.4', '0.3', '0.2', '0.1', '0' );
|
1336 |
-
foreach ( $options as $option ) {
|
1337 |
-
printf( "<option value='%s'%s>%s</option>",
|
1338 |
-
esc_attr( $option ),
|
1339 |
-
selected( $value['text-shadow-opacity'], $option, false ),
|
1340 |
-
$option
|
1341 |
-
);
|
1342 |
-
}
|
1343 |
-
?>
|
1344 |
-
</select>
|
1345 |
-
</label>
|
1346 |
-
</div>
|
1347 |
-
<?php
|
1348 |
-
|
1349 |
-
$visibilityAttrs = '';
|
1350 |
-
if ( ! $this->params['show_preview'] ) {
|
1351 |
-
$visibilityAttrs = "data-visible='false' style='display: none'";
|
1352 |
-
}
|
1353 |
-
?>
|
1354 |
-
<div <?php echo $visibilityAttrs ?>>
|
1355 |
-
<iframe></iframe>
|
1356 |
-
<i class='dashicons dashicons-admin-appearance btn-dark'></i>
|
1357 |
-
<input type='hidden' class='tf-font-sel-dark' value='<?php echo esc_attr( $value['dark'] ? 'dark' : '' ) ?>'/>
|
1358 |
-
</div>
|
1359 |
-
<?php
|
1360 |
-
|
1361 |
-
if ( ! is_serialized( $value ) ) {
|
1362 |
-
$value = serialize( $value );
|
1363 |
-
}
|
1364 |
-
|
1365 |
-
?>
|
1366 |
-
<input type='hidden' class='tf-for-saving' <?php $this->link() ?> value='<?php echo esc_attr( $value ) ?>'/>
|
1367 |
-
</div>
|
1368 |
-
<?php
|
1369 |
-
echo "<p class='description'>{$this->description}</p>";
|
1370 |
-
}
|
1371 |
-
}
|
1372 |
}
|
109 |
*
|
110 |
* @return void
|
111 |
*
|
|
|
112 |
*/
|
113 |
public function generateCustomizerPreviewJS() {
|
114 |
?>
|
950 |
return $value;
|
951 |
}
|
952 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
953 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-gallery.php
RENAMED
File without changes
|
options-framework/{titan-framework/lib → lib}/class-option-group.php
RENAMED
File without changes
|
options-framework/lib/class-option-heading.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Heading option
|
4 |
+
*
|
5 |
+
* @package Titan Framework
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly.
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Heading Option
|
13 |
+
*
|
14 |
+
* A heading for separating your options in an admin page or meta box
|
15 |
+
*
|
16 |
+
* <strong>Creating a heading option with a description:</strong>
|
17 |
+
* <pre>$adminPage->createOption( array(
|
18 |
+
* 'name' => __( 'General Settings', 'default' ),
|
19 |
+
* 'type' => 'heading',
|
20 |
+
* 'desc' => __( 'Settings for the general usage of the plugin', 'default' ),
|
21 |
+
* ) );</pre>
|
22 |
+
*
|
23 |
+
* @since 1.0
|
24 |
+
* @type heading
|
25 |
+
* @availability Admin Pages|Meta Boxes|Customizer
|
26 |
+
* @no id,default,livepreview,css,hidden
|
27 |
+
*/
|
28 |
+
class TitanFrameworkOptionHeading extends TitanFrameworkOption {
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Display for options and meta
|
32 |
+
*/
|
33 |
+
public function display() {
|
34 |
+
$headingID = str_replace( ' ', '-', strtolower( $this->settings['name'] ) );
|
35 |
+
?>
|
36 |
+
<tr valign="top" class="even first tf-heading">
|
37 |
+
<th scope="row" class="first last" colspan="2">
|
38 |
+
<h3 id="<?php echo esc_attr( $headingID ) ?>"><?php echo $this->settings['name'] ?></h3>
|
39 |
+
<?php
|
40 |
+
if ( ! empty( $this->settings['desc'] ) ) {
|
41 |
+
?><p class='description'><?php echo $this->settings['desc'] ?></p><?php
|
42 |
+
}
|
43 |
+
?>
|
44 |
+
</th>
|
45 |
+
</tr>
|
46 |
+
<?php
|
47 |
+
}
|
48 |
+
|
49 |
+
}
|
options-framework/lib/class-option-iframe.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Iframe option
|
4 |
+
*
|
5 |
+
* @package Titan Framework
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly.
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Iframe option class
|
13 |
+
*
|
14 |
+
* @since 1.0
|
15 |
+
*/
|
16 |
+
class TitanFrameworkOptionIframe extends TitanFrameworkOption {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Default settings specific to this option
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
public $defaultSecondarySettings = array(
|
23 |
+
'url' => '',
|
24 |
+
'height' => '400', // In pixels.
|
25 |
+
);
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Display for options and meta
|
29 |
+
*/
|
30 |
+
public function display() {
|
31 |
+
|
32 |
+
$this->echoOptionHeader();
|
33 |
+
|
34 |
+
printf( '<iframe frameborder="0" src="%s" style="height: %spx; width:100%%;"></iframe>',
|
35 |
+
$this->settings['url'],
|
36 |
+
$this->settings['height']
|
37 |
+
);
|
38 |
+
$this->echoOptionFooter();
|
39 |
+
|
40 |
+
}
|
41 |
+
|
42 |
+
}
|
options-framework/lib/class-option-multicheck-categories.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
class TitanFrameworkOptionMulticheckCategories extends TitanFrameworkOptionMulticheck {
|
6 |
+
|
7 |
+
public $defaultSecondarySettings = array(
|
8 |
+
'options' => array(),
|
9 |
+
'orderby' => 'name',
|
10 |
+
'order' => 'ASC',
|
11 |
+
'taxonomy' => 'category',
|
12 |
+
'hide_empty' => false,
|
13 |
+
'show_count' => false,
|
14 |
+
'select_all' => false
|
15 |
+
);
|
16 |
+
|
17 |
+
/*
|
18 |
+
* Display for options and meta
|
19 |
+
*/
|
20 |
+
public function display() {
|
21 |
+
$args = array(
|
22 |
+
'orderby' => $this->settings['orderby'],
|
23 |
+
'order' => $this->settings['order'],
|
24 |
+
'taxonomy' => $this->settings['taxonomy'],
|
25 |
+
'hide_empty' => $this->settings['hide_empty'] ? '1' : '0',
|
26 |
+
);
|
27 |
+
|
28 |
+
$categories = get_categories( $args );
|
29 |
+
|
30 |
+
$this->settings['options'] = array();
|
31 |
+
foreach ( $categories as $category ) {
|
32 |
+
$this->settings['options'][ $category->term_id ] = $category->name . ( $this->settings['show_count'] ? ' (' . $category->count . ')' : '' );
|
33 |
+
}
|
34 |
+
|
35 |
+
parent::display();
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
options-framework/lib/class-option-multicheck-pages.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
class TitanFrameworkOptionMulticheckPages extends TitanFrameworkOptionMulticheck {
|
6 |
+
|
7 |
+
public $defaultSecondarySettings = array(
|
8 |
+
'options' => array(),
|
9 |
+
'select_all' => false
|
10 |
+
);
|
11 |
+
|
12 |
+
private static $allPages;
|
13 |
+
|
14 |
+
/*
|
15 |
+
* Display for options and meta
|
16 |
+
*/
|
17 |
+
public function display() {
|
18 |
+
|
19 |
+
// Remember the pages so as not to perform any more lookups
|
20 |
+
if ( ! isset( self::$allPages ) ) {
|
21 |
+
self::$allPages = get_pages();
|
22 |
+
}
|
23 |
+
|
24 |
+
$this->settings['options'] = array();
|
25 |
+
foreach ( self::$allPages as $page ) {
|
26 |
+
$title = $page->post_title;
|
27 |
+
if ( empty( $title ) ) {
|
28 |
+
$title = sprintf( __( 'Untitled %s', TF_I18NDOMAIN ), '(ID #' . $page->ID . ')' );
|
29 |
+
}
|
30 |
+
$this->settings['options'][ $page->ID ] = $title;
|
31 |
+
}
|
32 |
+
|
33 |
+
parent::display();
|
34 |
+
}
|
35 |
+
|
36 |
+
}
|
options-framework/lib/class-option-multicheck-post-types.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
class TitanFrameworkOptionMulticheckPostTypes extends TitanFrameworkOptionMulticheck {
|
6 |
+
|
7 |
+
public $defaultSecondarySettings = array(
|
8 |
+
'options' => array(),
|
9 |
+
'public' => true,
|
10 |
+
'value' => 'all',
|
11 |
+
'slug' => true,
|
12 |
+
'select_all' => false
|
13 |
+
);
|
14 |
+
|
15 |
+
/*
|
16 |
+
* Display for options and meta
|
17 |
+
*/
|
18 |
+
public function display() {
|
19 |
+
|
20 |
+
// Fetch post types.
|
21 |
+
$post_types = tf_get_post_types( $this->settings['public'], $this->settings['value'] );
|
22 |
+
|
23 |
+
$this->settings['options'] = array();
|
24 |
+
foreach ( $post_types as $post_type ) {
|
25 |
+
|
26 |
+
$slug = $post_type->name;
|
27 |
+
|
28 |
+
$slugname = true == $this->settings['slug'] ? ' (' . $slug . ')' : '';
|
29 |
+
|
30 |
+
$name = $post_type->name;
|
31 |
+
if ( ! empty( $post_type->labels->singular_name ) ) {
|
32 |
+
$name = $post_type->labels->singular_name . $slugname;
|
33 |
+
}
|
34 |
+
|
35 |
+
$this->settings['options'][ $slug ] = $name;
|
36 |
+
}
|
37 |
+
|
38 |
+
parent::display();
|
39 |
+
}
|
40 |
+
|
41 |
+
}
|
options-framework/lib/class-option-multicheck-posts.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
class TitanFrameworkOptionMulticheckPosts extends TitanFrameworkOptionMulticheck {
|
6 |
+
|
7 |
+
public $defaultSecondarySettings = array(
|
8 |
+
'options' => array(),
|
9 |
+
'post_type' => 'post',
|
10 |
+
'num' => -1,
|
11 |
+
'post_status' => 'any',
|
12 |
+
'orderby' => 'post_date',
|
13 |
+
'order' => 'DESC',
|
14 |
+
'select_all' => false
|
15 |
+
);
|
16 |
+
|
17 |
+
/*
|
18 |
+
* Display for options and meta
|
19 |
+
*/
|
20 |
+
public function display() {
|
21 |
+
$args = array(
|
22 |
+
'post_type' => $this->settings['post_type'],
|
23 |
+
'posts_per_page' => $this->settings['num'],
|
24 |
+
'post_status' => $this->settings['post_status'],
|
25 |
+
'orderby' => $this->settings['orderby'],
|
26 |
+
'order' => $this->settings['order'],
|
27 |
+
);
|
28 |
+
|
29 |
+
$posts = get_posts( $args );
|
30 |
+
|
31 |
+
$this->settings['options'] = array();
|
32 |
+
foreach ( $posts as $post ) {
|
33 |
+
$title = $post->post_title;
|
34 |
+
if ( empty( $title ) ) {
|
35 |
+
$title = sprintf( __( 'Untitled %s', TF_I18NDOMAIN ), '(ID #' . $post->ID . ')' );
|
36 |
+
}
|
37 |
+
$this->settings['options'][ $post->ID ] = $title;
|
38 |
+
}
|
39 |
+
|
40 |
+
parent::display();
|
41 |
+
}
|
42 |
+
|
43 |
+
}
|
options-framework/lib/class-option-multicheck.php
ADDED
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
class TitanFrameworkOptionMulticheck extends TitanFrameworkOption {
|
6 |
+
|
7 |
+
public $defaultSecondarySettings = array(
|
8 |
+
'options' => array(),
|
9 |
+
'select_all' => false,
|
10 |
+
);
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Constructor
|
14 |
+
*
|
15 |
+
* @param array $settings Option settings
|
16 |
+
* @param string $owner Namespace
|
17 |
+
*
|
18 |
+
* @since 1.11
|
19 |
+
*/
|
20 |
+
function __construct( $settings, $owner ) {
|
21 |
+
parent::__construct( $settings, $owner );
|
22 |
+
|
23 |
+
tf_add_action_once( 'admin_enqueue_scripts', array( $this, 'load_select_scripts' ) );
|
24 |
+
tf_add_action_once( 'customize_controls_enqueue_scripts', array( $this, 'load_select_scripts' ) );
|
25 |
+
|
26 |
+
}
|
27 |
+
|
28 |
+
|
29 |
+
/*
|
30 |
+
* Display for options and meta
|
31 |
+
*/
|
32 |
+
public function display() {
|
33 |
+
$this->echoOptionHeader( true );
|
34 |
+
|
35 |
+
echo '<fieldset>';
|
36 |
+
|
37 |
+
$savedValue = $this->getValue();
|
38 |
+
|
39 |
+
if ( ! empty( $this->settings['select_all'] ) ) {
|
40 |
+
$select_all_label = __( 'Select All' );
|
41 |
+
if ( is_string( $this->settings['select_all'] ) ) {
|
42 |
+
$select_all_label = $this->settings['select_all'];
|
43 |
+
}
|
44 |
+
printf('<label style="margin-bottom: 1em !important;"><input class="tf_checkbox_selectall" type="checkbox" /> %s </label><br>',
|
45 |
+
esc_html( $select_all_label )
|
46 |
+
);
|
47 |
+
}
|
48 |
+
|
49 |
+
foreach ( $this->settings['options'] as $value => $label ) {
|
50 |
+
|
51 |
+
printf('<label for="%s"><input id="%s" type="checkbox" name="%s[]" value="%s" %s/> %s</label><br>',
|
52 |
+
$this->getID() . $value,
|
53 |
+
$this->getID() . $value,
|
54 |
+
$this->getID(),
|
55 |
+
esc_attr( $value ),
|
56 |
+
checked( in_array( $value, $savedValue ), true, false ),
|
57 |
+
$label
|
58 |
+
);
|
59 |
+
}
|
60 |
+
|
61 |
+
echo '</fieldset>';
|
62 |
+
|
63 |
+
$this->echoOptionFooter( false );
|
64 |
+
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Load the multicheck-selectall script
|
69 |
+
*
|
70 |
+
* @since 1.11
|
71 |
+
* @return void
|
72 |
+
*/
|
73 |
+
public function load_select_scripts() {
|
74 |
+
|
75 |
+
wp_enqueue_script( 'tf-multicheck-select-all', TitanFramework::getURL( '../js/multicheck-select-all.js', __FILE__ ), array( 'jquery' ), TF_VERSION, true );
|
76 |
+
|
77 |
+
}
|
78 |
+
|
79 |
+
public function cleanValueForSaving( $value ) {
|
80 |
+
if ( empty( $value ) ) {
|
81 |
+
return array();
|
82 |
+
}
|
83 |
+
if ( is_serialized( $value ) ) {
|
84 |
+
return $value;
|
85 |
+
}
|
86 |
+
// CSV
|
87 |
+
if ( is_string( $value ) ) {
|
88 |
+
$value = explode( ',', $value );
|
89 |
+
}
|
90 |
+
return serialize( $value );
|
91 |
+
}
|
92 |
+
|
93 |
+
public function cleanValueForGetting( $value ) {
|
94 |
+
if ( empty( $value ) ) {
|
95 |
+
return array();
|
96 |
+
}
|
97 |
+
if ( is_array( $value ) ) {
|
98 |
+
return $value;
|
99 |
+
}
|
100 |
+
if ( is_serialized( $value ) ) {
|
101 |
+
return unserialize( $value );
|
102 |
+
}
|
103 |
+
if ( is_string( $value ) ) {
|
104 |
+
return explode( ',', $value );
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
}
|
options-framework/{titan-framework/lib → lib}/class-option-note.php
RENAMED
@@ -14,6 +14,7 @@ class TitanFrameworkOptionNote extends TitanFrameworkOption {
|
|
14 |
* Display for options and meta
|
15 |
*/
|
16 |
public function display() {
|
|
|
17 |
$this->echoOptionHeader();
|
18 |
|
19 |
$color = $this->settings['color'] == 'green' ? '' : 'error';
|
@@ -36,35 +37,16 @@ class TitanFrameworkOptionNote extends TitanFrameworkOption {
|
|
36 |
?></div><?php
|
37 |
}
|
38 |
|
39 |
-
$this->
|
40 |
-
}
|
41 |
-
|
42 |
-
/*
|
43 |
-
* Display for theme customizer
|
44 |
-
*/
|
45 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
46 |
-
$wp_customize->add_control( new TitanFrameworkOptionNoteControl( $wp_customize, $this->getID(), array(
|
47 |
-
'label' => $this->settings['name'],
|
48 |
-
'section' => $section->getID(),
|
49 |
-
'settings' => $this->getID(),
|
50 |
-
'description' => $this->settings['desc'],
|
51 |
-
'priority' => $priority,
|
52 |
-
) ) );
|
53 |
-
}
|
54 |
-
}
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
*/
|
59 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionNoteControl', 1 );
|
60 |
-
function registerTitanFrameworkOptionNoteControl() {
|
61 |
-
class TitanFrameworkOptionNoteControl extends WP_Customize_Control {
|
62 |
-
public $description;
|
63 |
-
|
64 |
-
public function render_content() {
|
65 |
-
if ( ! empty( $this->description ) ) {
|
66 |
-
echo "<p class='description'>" . $this->description . '</p>';
|
67 |
}
|
|
|
68 |
}
|
|
|
|
|
|
|
69 |
}
|
|
|
70 |
}
|
14 |
* Display for options and meta
|
15 |
*/
|
16 |
public function display() {
|
17 |
+
|
18 |
$this->echoOptionHeader();
|
19 |
|
20 |
$color = $this->settings['color'] == 'green' ? '' : 'error';
|
37 |
?></div><?php
|
38 |
}
|
39 |
|
40 |
+
if ( $this->settings['name'] == 'Alerts' ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
+
foreach ( $this->owner->owner->get_alert_messages() as $message ) {
|
43 |
+
echo '<p class="mm-alert-message"> - ' . $message . '</p>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
+
|
46 |
}
|
47 |
+
|
48 |
+
$this->echoOptionFooter( false );
|
49 |
+
|
50 |
}
|
51 |
+
|
52 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-number.php
RENAMED
@@ -155,76 +155,4 @@ class TitanFrameworkOptionNumber extends TitanFrameworkOption {
|
|
155 |
);
|
156 |
$this->echoOptionFooter( false );
|
157 |
}
|
158 |
-
|
159 |
-
|
160 |
-
/**
|
161 |
-
* Registers the theme customizer control, for displaying the option
|
162 |
-
*
|
163 |
-
* @param WP_Customize $wp_enqueue_script The customize object
|
164 |
-
* @param TitanFrameworkCustomizerSection $section The section where this option will be placed
|
165 |
-
* @param int $priority The order of this control in the section
|
166 |
-
* @return void
|
167 |
-
* @since 1.0
|
168 |
-
*/
|
169 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
170 |
-
$wp_customize->add_control( new TitanFrameworkOptionNumberControl( $wp_customize, $this->getID(), array(
|
171 |
-
'label' => $this->settings['name'],
|
172 |
-
'section' => $section->getID(),
|
173 |
-
'settings' => $this->getID(),
|
174 |
-
'description' => $this->settings['desc'],
|
175 |
-
'priority' => $priority,
|
176 |
-
'size' => $this->settings['size'],
|
177 |
-
'min' => $this->settings['min'],
|
178 |
-
'max' => $this->settings['max'],
|
179 |
-
'step' => $this->settings['step'],
|
180 |
-
'unit' => $this->settings['unit'],
|
181 |
-
) ) );
|
182 |
-
}
|
183 |
-
}
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
/*
|
188 |
-
* We create a new control for the theme customizer
|
189 |
-
*/
|
190 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionNumberControl', 1 );
|
191 |
-
|
192 |
-
|
193 |
-
/**
|
194 |
-
* Creates the option for the theme customizer
|
195 |
-
*
|
196 |
-
* @return void
|
197 |
-
* @since 1.0
|
198 |
-
*/
|
199 |
-
function registerTitanFrameworkOptionNumberControl() {
|
200 |
-
class TitanFrameworkOptionNumberControl extends WP_Customize_Control {
|
201 |
-
public $description;
|
202 |
-
public $size;
|
203 |
-
public $min;
|
204 |
-
public $max;
|
205 |
-
public $step;
|
206 |
-
public $unit;
|
207 |
-
|
208 |
-
private static $firstLoad = true;
|
209 |
-
|
210 |
-
public function render_content() {
|
211 |
-
// Print out the jQuery slider initializer
|
212 |
-
if ( self::$firstLoad ) {
|
213 |
-
TitanFrameworkOptionNumber::createSliderScript();
|
214 |
-
}
|
215 |
-
self::$firstLoad = false;
|
216 |
-
|
217 |
-
?>
|
218 |
-
<label class='tf-number'>
|
219 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
220 |
-
<span class='number-slider'></span>
|
221 |
-
<input class="<?php echo esc_attr( $this->size ) ?>-text" min="<?php echo esc_attr( $this->min ) ?>" max="<?php echo esc_attr( $this->max ) ?>" step="<?php echo esc_attr( $this->step ) ?>" type="number" value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); ?> />
|
222 |
-
<?php echo esc_html( $this->unit ) ?>
|
223 |
-
</label>
|
224 |
-
<?php
|
225 |
-
if ( ! empty( $this->description ) ) {
|
226 |
-
echo "<p class='description'>{$this->description}</p>";
|
227 |
-
}
|
228 |
-
}
|
229 |
-
}
|
230 |
}
|
155 |
);
|
156 |
$this->echoOptionFooter( false );
|
157 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-radio-image.php
RENAMED
@@ -74,62 +74,4 @@ class TitanFrameworkOptionRadioImage extends TitanFrameworkOption {
|
|
74 |
return $value;
|
75 |
}
|
76 |
|
77 |
-
/*
|
78 |
-
* Display for theme customizer
|
79 |
-
*/
|
80 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
81 |
-
$wp_customize->add_control( new TitanFrameworkOptionRadioImageControl( $wp_customize, $this->getID(), array(
|
82 |
-
'label' => $this->settings['name'],
|
83 |
-
'section' => $section->settings['id'],
|
84 |
-
'type' => 'select',
|
85 |
-
'choices' => $this->settings['options'],
|
86 |
-
'settings' => $this->getID(),
|
87 |
-
'description' => $this->settings['desc'],
|
88 |
-
'priority' => $priority,
|
89 |
-
'is_font_icon' => $this->settings['is_font_icon']
|
90 |
-
) ) );
|
91 |
-
}
|
92 |
-
}
|
93 |
-
|
94 |
-
|
95 |
-
/*
|
96 |
-
* We create a new control for the theme customizer
|
97 |
-
*/
|
98 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionRadioImageControl', 1 );
|
99 |
-
function registerTitanFrameworkOptionRadioImageControl() {
|
100 |
-
class TitanFrameworkOptionRadioImageControl extends WP_Customize_Control {
|
101 |
-
public $description;
|
102 |
-
public $is_font_icon;
|
103 |
-
|
104 |
-
public function render_content() {
|
105 |
-
|
106 |
-
?><span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span><?php
|
107 |
-
|
108 |
-
if ( ! empty( $this->description ) ) {
|
109 |
-
echo "<p class='description'>" . $this->description . '</p>';
|
110 |
-
}
|
111 |
-
|
112 |
-
// print the images
|
113 |
-
$value = $this->value();
|
114 |
-
foreach ( $this->choices as $key => $imageURL ) {
|
115 |
-
// Get the correct value, we might get a blank if index / value is 0
|
116 |
-
if ( $value === '' ) {
|
117 |
-
$value = $key;
|
118 |
-
}
|
119 |
-
?>
|
120 |
-
<span class='tf-radio-image'>
|
121 |
-
<label>
|
122 |
-
<input type="radio" name="<?php echo esc_attr( $this->id ) ?>" value="<?php echo esc_attr( $key ) ?>" <?php $this->link(); checked( $value, $key ); ?>/>
|
123 |
-
<?php if ($this->is_font_icon){ ?>
|
124 |
-
<span class="tf-radio-image-font-icon <?php echo esc_attr( $imageURL ) ?>"></span>
|
125 |
-
<?php } else { ?>
|
126 |
-
<img src="<?php echo esc_attr( $imageURL ) ?>"/>
|
127 |
-
<?php } ?>
|
128 |
-
</input>
|
129 |
-
</label>
|
130 |
-
</span>
|
131 |
-
<?php
|
132 |
-
}
|
133 |
-
}
|
134 |
-
}
|
135 |
}
|
74 |
return $value;
|
75 |
}
|
76 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-radio-palette.php
RENAMED
@@ -81,21 +81,6 @@ class TitanFrameworkOptionRadioPalette extends TitanFrameworkOption {
|
|
81 |
return $value;
|
82 |
}
|
83 |
|
84 |
-
/*
|
85 |
-
* Display for theme customizer
|
86 |
-
*/
|
87 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
88 |
-
$wp_customize->add_control( new TitanFrameworkOptionRadioPaletteControl( $wp_customize, $this->getID(), array(
|
89 |
-
'label' => $this->settings['name'],
|
90 |
-
'section' => $section->settings['id'],
|
91 |
-
'type' => 'select',
|
92 |
-
'choices' => $this->settings['options'],
|
93 |
-
'settings' => $this->getID(),
|
94 |
-
'description' => $this->settings['desc'],
|
95 |
-
'priority' => $priority,
|
96 |
-
) ) );
|
97 |
-
}
|
98 |
-
|
99 |
// For live previews, we need to give our options to javascript and then get the proper value from it
|
100 |
public function preLivePreview( $optionID, $optionType, $option ) {
|
101 |
if ( $optionID != $this->settings['id'] || empty( $this->settings['options'] ) ) {
|
@@ -112,49 +97,3 @@ class TitanFrameworkOptionRadioPalette extends TitanFrameworkOption {
|
|
112 |
<?php
|
113 |
}
|
114 |
}
|
115 |
-
|
116 |
-
|
117 |
-
/*
|
118 |
-
* We create a new control for the theme customizer
|
119 |
-
*/
|
120 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionRadioPaletteControl', 1 );
|
121 |
-
function registerTitanFrameworkOptionRadioPaletteControl() {
|
122 |
-
class TitanFrameworkOptionRadioPaletteControl extends WP_Customize_Control {
|
123 |
-
public $description;
|
124 |
-
|
125 |
-
public function render_content() {
|
126 |
-
// Get the correct value, we might get a blank if index / value is 0
|
127 |
-
$value = $this->value();
|
128 |
-
if ( $value == '' ) {
|
129 |
-
$value = 0;
|
130 |
-
}
|
131 |
-
|
132 |
-
?><span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span><?php
|
133 |
-
|
134 |
-
if ( ! empty( $this->description ) ) {
|
135 |
-
echo "<p class='description'>" . $this->description . '</p>';
|
136 |
-
}
|
137 |
-
|
138 |
-
// print the palettes
|
139 |
-
foreach ( $this->choices as $key => $colorSet ) {
|
140 |
-
if ( ! is_array( $colorSet ) ) {
|
141 |
-
continue;
|
142 |
-
}
|
143 |
-
?>
|
144 |
-
<span class='tf-radio-palette'>
|
145 |
-
<label>
|
146 |
-
<input type="radio" name="<?php echo $this->id ?>" value="<?php echo esc_attr( $key ) ?>" <?php $this->link(); checked( $value, $key ); ?>/>
|
147 |
-
<span>
|
148 |
-
<?php
|
149 |
-
foreach ( $colorSet as $color ) {
|
150 |
-
echo "<span style='background: {$color}'></span>";
|
151 |
-
}
|
152 |
-
?>
|
153 |
-
</span>
|
154 |
-
</label>
|
155 |
-
</span>
|
156 |
-
<?php
|
157 |
-
}
|
158 |
-
}
|
159 |
-
}
|
160 |
-
}
|
81 |
return $value;
|
82 |
}
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
// For live previews, we need to give our options to javascript and then get the proper value from it
|
85 |
public function preLivePreview( $optionID, $optionType, $option ) {
|
86 |
if ( $optionID != $this->settings['id'] || empty( $this->settings['options'] ) ) {
|
97 |
<?php
|
98 |
}
|
99 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/{titan-framework/lib → lib}/class-option-radio.php
RENAMED
@@ -31,19 +31,4 @@ class TitanFrameworkOptionRadio extends TitanFrameworkOption {
|
|
31 |
|
32 |
$this->echoOptionFooter( false );
|
33 |
}
|
34 |
-
|
35 |
-
/*
|
36 |
-
* Display for theme customizer
|
37 |
-
*/
|
38 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
39 |
-
$wp_customize->add_control( new TitanFrameworkCustomizeControl( $wp_customize, $this->getID(), array(
|
40 |
-
'label' => $this->settings['name'],
|
41 |
-
'section' => $section->settings['id'],
|
42 |
-
'settings' => $this->getID(),
|
43 |
-
'choices' => $this->settings['options'],
|
44 |
-
'type' => 'radio',
|
45 |
-
'description' => $this->settings['desc'],
|
46 |
-
'priority' => $priority,
|
47 |
-
) ) );
|
48 |
-
}
|
49 |
}
|
31 |
|
32 |
$this->echoOptionFooter( false );
|
33 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
options-framework/lib/class-option-save.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
class TitanFrameworkOptionSave extends TitanFrameworkOption {
|
6 |
+
|
7 |
+
public $defaultSecondarySettings = array(
|
8 |
+
'save' => '',
|
9 |
+
'action' => 'save',
|
10 |
+
);
|
11 |
+
|
12 |
+
public function display() {
|
13 |
+
if ( ! empty( $this->owner->postID ) ) {
|
14 |
+
return;
|
15 |
+
}
|
16 |
+
|
17 |
+
if ( empty( $this->settings['save'] ) ) {
|
18 |
+
$this->settings['save'] = __( 'Save Changes', TF_I18NDOMAIN );
|
19 |
+
}
|
20 |
+
|
21 |
+
?>
|
22 |
+
</tbody>
|
23 |
+
</table>
|
24 |
+
|
25 |
+
<p class='submit'>
|
26 |
+
<button name="action" value="<?php echo $this->settings['action'] ?>" class="button button-primary">
|
27 |
+
<?php echo $this->settings['save'] ?>
|
28 |
+
</button>
|
29 |
+
</p>
|
30 |
+
|
31 |
+
<table class='form-table'>
|
32 |
+
<tbody>
|
33 |
+
<?php
|
34 |
+
}
|
35 |
+
}
|
options-framework/{titan-framework/lib → lib}/class-option-select-categories.php
RENAMED
@@ -42,7 +42,6 @@ class TitanFrameworkOptionSelectCategories extends TitanFrameworkOptionSelect {
|
|
42 |
}
|
43 |
}
|
44 |
|
45 |
-
|
46 |
/**
|
47 |
* Display for options and meta
|
48 |
*/
|
@@ -51,13 +50,4 @@ class TitanFrameworkOptionSelectCategories extends TitanFrameworkOptionSelect {
|
|
51 |
parent::display();
|
52 |
}
|
53 |
|
54 |
-
|
55 |
-
/**
|
56 |
-
* Display for theme customizer
|
57 |
-
*/
|
58 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
59 |
-
$this->create_select_options();
|
60 |
-
parent::registerCustomizerControl( $wp_customize, $section, $priority );
|
61 |
-
|
62 |
-
}
|
63 |
}
|
42 |
}
|
43 |
}
|
44 |
|
|
|
45 |
/**
|
46 |
* Display for options and meta
|
47 |
*/
|
50 |
parent::display();
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-select-pages.php
RENAMED
@@ -45,13 +45,4 @@ class TitanFrameworkOptionSelectPages extends TitanFrameworkOptionSelect {
|
|
45 |
parent::display();
|
46 |
}
|
47 |
|
48 |
-
|
49 |
-
/*
|
50 |
-
* Display for theme customizer
|
51 |
-
*/
|
52 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
53 |
-
$this->create_select_options();
|
54 |
-
parent::registerCustomizerControl( $wp_customize, $section, $priority );
|
55 |
-
}
|
56 |
-
|
57 |
}
|
45 |
parent::display();
|
46 |
}
|
47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-select-post-types.php
RENAMED
@@ -41,7 +41,6 @@ class TitanFrameworkOptionSelectPostTypes extends TitanFrameworkOptionSelect {
|
|
41 |
}
|
42 |
}
|
43 |
|
44 |
-
|
45 |
/*
|
46 |
* Display for options and meta
|
47 |
*/
|
@@ -50,13 +49,4 @@ class TitanFrameworkOptionSelectPostTypes extends TitanFrameworkOptionSelect {
|
|
50 |
parent::display();
|
51 |
}
|
52 |
|
53 |
-
|
54 |
-
/*
|
55 |
-
* Display for theme customizer
|
56 |
-
*/
|
57 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
58 |
-
$this->create_select_options();
|
59 |
-
parent::registerCustomizerControl( $wp_customize, $section, $priority );
|
60 |
-
}
|
61 |
-
|
62 |
}
|
41 |
}
|
42 |
}
|
43 |
|
|
|
44 |
/*
|
45 |
* Display for options and meta
|
46 |
*/
|
49 |
parent::display();
|
50 |
}
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-select-posts.php
RENAMED
@@ -54,13 +54,4 @@ class TitanFrameworkOptionSelectPosts extends TitanFrameworkOptionSelect {
|
|
54 |
parent::display();
|
55 |
}
|
56 |
|
57 |
-
|
58 |
-
/*
|
59 |
-
* Display for theme customizer
|
60 |
-
*/
|
61 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
62 |
-
$this->create_select_options();
|
63 |
-
parent::registerCustomizerControl( $wp_customize, $section, $priority );
|
64 |
-
}
|
65 |
-
|
66 |
}
|
54 |
parent::display();
|
55 |
}
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-select.php
RENAMED
@@ -28,10 +28,10 @@ class TitanFrameworkOptionSelect extends TitanFrameworkOption {
|
|
28 |
parent::__construct( $settings, $owner );
|
29 |
|
30 |
tf_add_action_once( 'admin_enqueue_scripts', array( $this, 'load_select_scripts' ) );
|
31 |
-
tf_add_action_once( 'customize_controls_enqueue_scripts', array( $this, 'load_select_scripts' ) );
|
32 |
|
33 |
tf_add_action_once( 'admin_head', array( $this, 'init_select_script' ) );
|
34 |
-
tf_add_action_once( 'customize_controls_print_footer_scripts', array( $this, 'init_select_script' ) );
|
35 |
}
|
36 |
|
37 |
|
@@ -56,25 +56,6 @@ class TitanFrameworkOptionSelect extends TitanFrameworkOption {
|
|
56 |
$this->echoOptionFooter();
|
57 |
}
|
58 |
|
59 |
-
|
60 |
-
/*
|
61 |
-
* Display for theme customizer
|
62 |
-
*/
|
63 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
64 |
-
|
65 |
-
$wp_customize->add_control( new TitanFrameworkOptionSelectControl( $wp_customize, $this->getID(), array(
|
66 |
-
'label' => $this->settings['name'],
|
67 |
-
'section' => $section->settings['id'],
|
68 |
-
'type' => 'select',
|
69 |
-
'choices' => $this->settings['options'],
|
70 |
-
'settings' => $this->getID(),
|
71 |
-
'description' => $this->settings['desc'],
|
72 |
-
'priority' => $priority,
|
73 |
-
) ) );
|
74 |
-
|
75 |
-
}
|
76 |
-
|
77 |
-
|
78 |
/**
|
79 |
* Register and load the select2 script
|
80 |
*
|
@@ -84,7 +65,6 @@ class TitanFrameworkOptionSelect extends TitanFrameworkOption {
|
|
84 |
public function load_select_scripts() {
|
85 |
|
86 |
wp_enqueue_script( 'tf-select2', TitanFramework::getURL( '../js/select2/select2.min.js', __FILE__ ), array( 'jquery' ), TF_VERSION, true );
|
87 |
-
|
88 |
wp_enqueue_style( 'tf-select2-style', TitanFramework::getURL( '../css/select2/select2.min.css', __FILE__ ), null, TF_VERSION, 'all' );
|
89 |
wp_enqueue_style( 'tf-select-option-style', TitanFramework::getURL( '../css/class-option-select.css', __FILE__ ), null, TF_VERSION, 'all' );
|
90 |
|
@@ -125,32 +105,6 @@ class TitanFrameworkOptionSelect extends TitanFrameworkOption {
|
|
125 |
}
|
126 |
|
127 |
|
128 |
-
/*
|
129 |
-
* We create a new control for the theme customizer (for the grouped options only)
|
130 |
-
*/
|
131 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionSelectControl', 1 );
|
132 |
-
function registerTitanFrameworkOptionSelectControl() {
|
133 |
-
class TitanFrameworkOptionSelectControl extends WP_Customize_Control {
|
134 |
-
public $description;
|
135 |
-
|
136 |
-
public function render_content() {
|
137 |
-
?>
|
138 |
-
<label>
|
139 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
140 |
-
<select class="tf-select" <?php $this->link(); ?>>
|
141 |
-
<?php tf_parse_select_options( $this->choices, (array) $this->value() ); ?>
|
142 |
-
?></select>
|
143 |
-
</select>
|
144 |
-
</label>
|
145 |
-
<?php
|
146 |
-
if ( ! empty( $this->description ) ) {
|
147 |
-
echo "<p class='description'>{$this->description}</p>";
|
148 |
-
}
|
149 |
-
}
|
150 |
-
}
|
151 |
-
}
|
152 |
-
|
153 |
-
|
154 |
/**
|
155 |
* Helper function for parsing select options
|
156 |
*
|
28 |
parent::__construct( $settings, $owner );
|
29 |
|
30 |
tf_add_action_once( 'admin_enqueue_scripts', array( $this, 'load_select_scripts' ) );
|
31 |
+
//tf_add_action_once( 'customize_controls_enqueue_scripts', array( $this, 'load_select_scripts' ) );
|
32 |
|
33 |
tf_add_action_once( 'admin_head', array( $this, 'init_select_script' ) );
|
34 |
+
//tf_add_action_once( 'customize_controls_print_footer_scripts', array( $this, 'init_select_script' ) );
|
35 |
}
|
36 |
|
37 |
|
56 |
$this->echoOptionFooter();
|
57 |
}
|
58 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
/**
|
60 |
* Register and load the select2 script
|
61 |
*
|
65 |
public function load_select_scripts() {
|
66 |
|
67 |
wp_enqueue_script( 'tf-select2', TitanFramework::getURL( '../js/select2/select2.min.js', __FILE__ ), array( 'jquery' ), TF_VERSION, true );
|
|
|
68 |
wp_enqueue_style( 'tf-select2-style', TitanFramework::getURL( '../css/select2/select2.min.css', __FILE__ ), null, TF_VERSION, 'all' );
|
69 |
wp_enqueue_style( 'tf-select-option-style', TitanFramework::getURL( '../css/class-option-select.css', __FILE__ ), null, TF_VERSION, 'all' );
|
70 |
|
105 |
}
|
106 |
|
107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
/**
|
109 |
* Helper function for parsing select options
|
110 |
*
|
options-framework/{titan-framework/lib → lib}/class-option-separator.php
RENAMED
File without changes
|
options-framework/{titan-framework/lib → lib}/class-option-sortable.php
RENAMED
@@ -234,112 +234,4 @@ class TitanFrameworkOptionSortable extends TitanFrameworkOption {
|
|
234 |
}
|
235 |
|
236 |
|
237 |
-
/**
|
238 |
-
* Registers the theme customizer control, for displaying the option
|
239 |
-
*
|
240 |
-
* @param WP_Customize $wp_enqueue_script The customize object
|
241 |
-
* @param TitanFrameworkCustomizerSection $section The section where this option will be placed
|
242 |
-
* @param int $priority The order of this control in the section
|
243 |
-
* @return void
|
244 |
-
* @since 1.4
|
245 |
-
*/
|
246 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
247 |
-
$wp_customize->add_control( new TitanFrameworkOptionSortableControl( $wp_customize, $this->getID(), array(
|
248 |
-
'label' => $this->settings['name'],
|
249 |
-
'section' => $section->settings['id'],
|
250 |
-
'settings' => $this->getID(),
|
251 |
-
'description' => $this->settings['desc'],
|
252 |
-
'orientation' => $this->settings['orientation'],
|
253 |
-
'priority' => $priority,
|
254 |
-
'options' => $this->settings['options'],
|
255 |
-
'visible_button' => $this->settings['visible_button'],
|
256 |
-
) ) );
|
257 |
-
}
|
258 |
-
}
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
/*
|
263 |
-
* We create a new control for the theme customizer
|
264 |
-
*/
|
265 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionSortableControl', 1 );
|
266 |
-
|
267 |
-
|
268 |
-
/**
|
269 |
-
* Creates the option for the theme customizer
|
270 |
-
*
|
271 |
-
* @return void
|
272 |
-
* @since 1.4
|
273 |
-
*/
|
274 |
-
function registerTitanFrameworkOptionSortableControl() {
|
275 |
-
class TitanFrameworkOptionSortableControl extends WP_Customize_Control {
|
276 |
-
public $description;
|
277 |
-
public $options;
|
278 |
-
public $visible_button;
|
279 |
-
|
280 |
-
public function render_content() {
|
281 |
-
TitanFrameworkOptionSortable::createSortableScript();
|
282 |
-
|
283 |
-
if ( ! is_array( $this->options ) ) {
|
284 |
-
return;
|
285 |
-
}
|
286 |
-
if ( ! count( $this->options ) ) {
|
287 |
-
return;
|
288 |
-
}
|
289 |
-
|
290 |
-
?>
|
291 |
-
<label class='tf-sortable'>
|
292 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
293 |
-
<?php
|
294 |
-
|
295 |
-
$values = $this->value();
|
296 |
-
if ( $values == '' ) {
|
297 |
-
$values = array_keys( $this->options );
|
298 |
-
}
|
299 |
-
if ( is_serialized( $values ) ) {
|
300 |
-
$values = unserialize( $values );
|
301 |
-
}
|
302 |
-
if ( count( $values ) != count( $this->options ) ) {
|
303 |
-
$this->visible_button = true;
|
304 |
-
}
|
305 |
-
|
306 |
-
$visibleButton = '';
|
307 |
-
if ( $this->visible_button == true ) {
|
308 |
-
$visibleButton = "<i class='dashicons dashicons-visibility visibility'></i>";
|
309 |
-
}
|
310 |
-
?>
|
311 |
-
<ul>
|
312 |
-
<?php
|
313 |
-
foreach ( $values as $dummy => $value ) {
|
314 |
-
printf( "<li data-value='%s'><i class='dashicons dashicons-menu'></i>%s%s</li>",
|
315 |
-
esc_attr( $value ),
|
316 |
-
$visibleButton,
|
317 |
-
$this->options[ $value ]
|
318 |
-
);
|
319 |
-
}
|
320 |
-
|
321 |
-
$invisibleKeys = array_diff( array_keys( $this->options ), $values );
|
322 |
-
foreach ( $invisibleKeys as $dummy => $value ) {
|
323 |
-
printf( "<li data-value='%s'><i class='dashicons dashicons-menu'></i>%s%s</li>",
|
324 |
-
esc_attr( $value ),
|
325 |
-
$visibleButton,
|
326 |
-
$this->options[ $value ]
|
327 |
-
);
|
328 |
-
}
|
329 |
-
?>
|
330 |
-
</ul>
|
331 |
-
<div class='clear: both'></div>
|
332 |
-
<?php
|
333 |
-
|
334 |
-
if ( ! is_serialized( $values ) ) {
|
335 |
-
$values = serialize( $values );
|
336 |
-
}
|
337 |
-
|
338 |
-
?>
|
339 |
-
<input type='hidden' <?php $this->link(); ?> value='<?php echo esc_attr( $values ) ?>'/>
|
340 |
-
</label>
|
341 |
-
<?php
|
342 |
-
echo "<p class='description'>{$this->description}</p>";
|
343 |
-
}
|
344 |
-
}
|
345 |
}
|
234 |
}
|
235 |
|
236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
}
|
options-framework/{titan-framework/lib → lib}/class-option-text.php
RENAMED
@@ -132,20 +132,4 @@ class TitanFrameworkOptionText extends TitanFrameworkOption {
|
|
132 |
return $value;
|
133 |
}
|
134 |
|
135 |
-
/**
|
136 |
-
* Display for theme customizer
|
137 |
-
*
|
138 |
-
* @param WP_Customize $wp_customize The customizer object.
|
139 |
-
* @param TitanFrameworkCustomizer $section The customizer section.
|
140 |
-
* @param int $priority The display priority of the control.
|
141 |
-
*/
|
142 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
143 |
-
$wp_customize->add_control( new TitanFrameworkCustomizeControl( $wp_customize, $this->getID(), array(
|
144 |
-
'label' => $this->settings['name'],
|
145 |
-
'section' => $section->settings['id'],
|
146 |
-
'settings' => $this->getID(),
|
147 |
-
'description' => $this->settings['desc'],
|
148 |
-
'priority' => $priority,
|
149 |
-
) ) );
|
150 |
-
}
|
151 |
}
|
132 |
return $value;
|
133 |
}
|
134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
}
|
options-framework/lib/class-option-textarea.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
class TitanFrameworkOptionTextarea extends TitanFrameworkOption {
|
6 |
+
|
7 |
+
public $defaultSecondarySettings = array(
|
8 |
+
'placeholder' => '', // show this when blank
|
9 |
+
'is_code' => false, // if true, a more code-like font will be used
|
10 |
+
'sanitize_callbacks' => array(),
|
11 |
+
);
|
12 |
+
|
13 |
+
/*
|
14 |
+
* Display for options and meta
|
15 |
+
*/
|
16 |
+
public function display() {
|
17 |
+
$this->echoOptionHeader( true );
|
18 |
+
printf("<textarea class='large-text %s' name=\"%s\" placeholder=\"%s\" id=\"%s\" rows='10' cols='50'>%s</textarea>",
|
19 |
+
$this->settings['is_code'] ? 'code' : '',
|
20 |
+
$this->getID(),
|
21 |
+
$this->settings['placeholder'],
|
22 |
+
$this->getID(),
|
23 |
+
esc_textarea( stripslashes( $this->getValue() ) )
|
24 |
+
);
|
25 |
+
$this->echoOptionFooter( false );
|
26 |
+
}
|
27 |
+
|
28 |
+
public function cleanValueForSaving( $value ) {
|
29 |
+
if ( ! empty( $this->settings['sanitize_callbacks'] ) ) {
|
30 |
+
foreach ( $this->settings['sanitize_callbacks'] as $callback ) {
|
31 |
+
$value = call_user_func_array( $callback, array( $value, $this ) );
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
return $value;
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
options-framework/{titan-framework/lib → lib}/class-option-upload.php
RENAMED
@@ -145,10 +145,15 @@ class TitanFrameworkOptionUpload extends TitanFrameworkOption {
|
|
145 |
// Gives us an array with the first element as the src or false on fail.
|
146 |
$value = wp_get_attachment_image_src( $value, array( 150, 150 ) );
|
147 |
}
|
148 |
-
|
149 |
-
|
|
|
150 |
} else {
|
151 |
-
$value
|
|
|
|
|
|
|
|
|
152 |
}
|
153 |
|
154 |
$previewImage = '';
|
@@ -166,19 +171,6 @@ class TitanFrameworkOptionUpload extends TitanFrameworkOption {
|
|
166 |
$this->echoOptionFooter();
|
167 |
}
|
168 |
|
169 |
-
/*
|
170 |
-
* Display for theme customizer.
|
171 |
-
*/
|
172 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
173 |
-
$wp_customize->add_control( new TitanFrameworkOptionUploadControl( $wp_customize, $this->getID(), array(
|
174 |
-
'label' => $this->settings['name'],
|
175 |
-
'section' => $section->getID(),
|
176 |
-
'settings' => $this->getID(),
|
177 |
-
'description' => $this->settings['desc'],
|
178 |
-
'priority' => $priority,
|
179 |
-
) ) );
|
180 |
-
}
|
181 |
-
|
182 |
public static function createUploaderScript() {
|
183 |
if ( ! self::$firstLoad ) {
|
184 |
return;
|
@@ -336,78 +328,3 @@ class TitanFrameworkOptionUpload extends TitanFrameworkOption {
|
|
336 |
<?php
|
337 |
}
|
338 |
}
|
339 |
-
|
340 |
-
/*
|
341 |
-
* We create a new control for the theme customizer.
|
342 |
-
*/
|
343 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionUploadControl', 1 );
|
344 |
-
function registerTitanFrameworkOptionUploadControl() {
|
345 |
-
class TitanFrameworkOptionUploadControl extends WP_Customize_Control {
|
346 |
-
public $description;
|
347 |
-
|
348 |
-
public function render_content() {
|
349 |
-
TitanFrameworkOptionUpload::createUploaderScript();
|
350 |
-
|
351 |
-
$previewImage = '';
|
352 |
-
$value = $this->value();
|
353 |
-
if ( is_numeric( $value ) ) {
|
354 |
-
// Gives us an array with the first element as the src or false on fail.
|
355 |
-
$value = wp_get_attachment_image_src( $value, array( 150, 150 ) );
|
356 |
-
}
|
357 |
-
if ( ! is_array( $value ) ) {
|
358 |
-
$value = $this->value();
|
359 |
-
} else {
|
360 |
-
$value = $value[0];
|
361 |
-
}
|
362 |
-
|
363 |
-
if ( ! empty( $value ) ) {
|
364 |
-
$previewImage = "<i class='dashicons dashicons-no-alt remove'></i><img src='" . esc_url( $value ) . "' style='display: none'/>";
|
365 |
-
}
|
366 |
-
|
367 |
-
?>
|
368 |
-
<div class='tf-upload'>
|
369 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
370 |
-
<div class='thumbnail tf-image-preview'><?php echo $previewImage ?></div>
|
371 |
-
<input type='hidden' value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); ?>/>
|
372 |
-
</div>
|
373 |
-
<?php
|
374 |
-
|
375 |
-
if ( ! empty( $this->description ) ) {
|
376 |
-
echo "<p class='description'>{$this->description}</p>";
|
377 |
-
}
|
378 |
-
}
|
379 |
-
}
|
380 |
-
}
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
if ( ! function_exists( 'tf_upload_option_customizer_get_value' ) ) {
|
385 |
-
|
386 |
-
add_action( 'wp_ajax_tf_upload_option_customizer_get_value', 'tf_upload_option_customizer_get_value' );
|
387 |
-
|
388 |
-
/**
|
389 |
-
* Returns the image URL from an attachment ID & size.
|
390 |
-
*
|
391 |
-
* @see TitanFrameworkOptionUpload->preLivePreview().
|
392 |
-
*/
|
393 |
-
function tf_upload_option_customizer_get_value() {
|
394 |
-
|
395 |
-
if ( ! empty( $_POST['nonce'] ) && ! empty( $_POST['id'] ) && ! empty( $_POST['size'] ) ) {
|
396 |
-
|
397 |
-
$nonce = sanitize_text_field( $_POST['nonce'] );
|
398 |
-
$attachmentID = sanitize_text_field( $_POST['id'] );
|
399 |
-
$size = sanitize_text_field( $_POST['size'] );
|
400 |
-
|
401 |
-
if ( wp_verify_nonce( $nonce, 'tf_upload_option_nonce' ) ) {
|
402 |
-
$attachment = wp_get_attachment_image_src( $attachmentID, $size );
|
403 |
-
if ( ! empty( $attachment ) ) {
|
404 |
-
wp_send_json_success( $attachment[0] );
|
405 |
-
}
|
406 |
-
}
|
407 |
-
}
|
408 |
-
|
409 |
-
// Instead of doing a wp_send_json_error, send a blank value instead so.
|
410 |
-
// Javascript adjustments still get executed.
|
411 |
-
wp_send_json_success( '' );
|
412 |
-
}
|
413 |
-
}
|
145 |
// Gives us an array with the first element as the src or false on fail.
|
146 |
$value = wp_get_attachment_image_src( $value, array( 150, 150 ) );
|
147 |
}
|
148 |
+
|
149 |
+
if ( !$value ) {
|
150 |
+
$value = "";
|
151 |
} else {
|
152 |
+
if ( ! is_array( $value ) ) {
|
153 |
+
$value = $this->getValue();
|
154 |
+
} else {
|
155 |
+
$value = $value[0];
|
156 |
+
}
|
157 |
}
|
158 |
|
159 |
$previewImage = '';
|
171 |
$this->echoOptionFooter();
|
172 |
}
|
173 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
public static function createUploaderScript() {
|
175 |
if ( ! self::$firstLoad ) {
|
176 |
return;
|
328 |
<?php
|
329 |
}
|
330 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/{titan-framework/lib → lib}/class-option.php
RENAMED
@@ -113,14 +113,6 @@ class TitanFrameworkOption {
|
|
113 |
|
114 |
$className = 'TitanFrameworkOption' . str_replace( ' ', '', ucwords( str_replace( '-', ' ', $settings['type'] ) ) );
|
115 |
|
116 |
-
// assume all the classes are already required
|
117 |
-
if ( ! class_exists( $className ) && ! class_exists( $settings['type'] ) ) {
|
118 |
-
TitanFramework::displayFrameworkError(
|
119 |
-
sprintf( __( 'Option type or extended class %s does not exist.', TF_I18NDOMAIN ), '<code>' . $settings['type'] . '</code>', $settings ),
|
120 |
-
$settings );
|
121 |
-
return null;
|
122 |
-
}
|
123 |
-
|
124 |
if ( class_exists( $className ) ) {
|
125 |
$obj = new $className( $settings, $owner );
|
126 |
return $obj;
|
@@ -138,7 +130,6 @@ class TitanFrameworkOption {
|
|
138 |
$this->settings = array_merge( $this->settings, $settings );
|
139 |
|
140 |
$this->type = is_a( $owner, 'TitanFrameworkMetaBox' ) ? self::TYPE_META : self::TYPE_ADMIN;
|
141 |
-
$this->type = is_a( $owner, 'TitanFrameworkCustomizer' ) ? self::TYPE_CUSTOMIZER : $this->type;
|
142 |
|
143 |
// Generate a unique ID depending on the settings for those without IDs
|
144 |
if ( empty( $this->settings['id'] ) && $this->settings['type'] != 'save' ) {
|
@@ -146,6 +137,14 @@ class TitanFrameworkOption {
|
|
146 |
}
|
147 |
}
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
|
150 |
public function getValue( $postID = null ) {
|
151 |
|
@@ -179,22 +178,10 @@ class TitanFrameworkOption {
|
|
179 |
$value = get_theme_mod( $this->getID(), $this->settings['default'] );
|
180 |
}
|
181 |
|
182 |
-
/**
|
183 |
-
* Allow others to change the value of the option before it gets cleaned
|
184 |
-
*
|
185 |
-
* @since 1.9.2
|
186 |
-
*/
|
187 |
-
$value = apply_filters( 'tf_pre_get_value_' . $this->getOptionNamespace(), $value, $postID, $this );
|
188 |
-
|
189 |
// Apply cleaning method for the value (for serialized data, slashes, etc).
|
190 |
$value = $this->cleanValueForGetting( $value );
|
191 |
|
192 |
-
|
193 |
-
* Allow others to change the value of the option after it gets cleaned
|
194 |
-
*
|
195 |
-
* @since 1.9
|
196 |
-
*/
|
197 |
-
return apply_filters( 'tf_get_value_' . $this->settings['type'] . '_' . $this->getOptionNamespace(), $value, $postID, $this );
|
198 |
}
|
199 |
|
200 |
|
@@ -228,8 +215,6 @@ class TitanFrameworkOption {
|
|
228 |
|
229 |
}
|
230 |
|
231 |
-
do_action( 'tf_set_value_' . $this->settings['type'] . '_' . $this->getOptionNamespace(), $value, $postID, $this );
|
232 |
-
|
233 |
return true;
|
234 |
}
|
235 |
|
@@ -297,12 +282,13 @@ class TitanFrameworkOption {
|
|
297 |
|
298 |
$id = $this->getID();
|
299 |
$name = $this->getName();
|
|
|
300 |
$evenOdd = self::$rowIndex++ % 2 == 0 ? 'odd' : 'even';
|
301 |
|
302 |
$style = $this->getHidden() == true ? 'style="display: none"' : '';
|
303 |
|
304 |
?>
|
305 |
-
<tr valign="top" class="row-<?php echo self::$rowIndex ?> <?php echo $evenOdd ?>" <?php echo $style ?>>
|
306 |
<th scope="row" class="first">
|
307 |
<label for="<?php echo ! empty( $id ) ? $id : '' ?>"><?php echo ! empty( $name ) ? $name : '' ?></label>
|
308 |
</th>
|
@@ -429,8 +415,4 @@ class TitanFrameworkOption {
|
|
429 |
return stripslashes( $value );
|
430 |
}
|
431 |
|
432 |
-
/* overridden */
|
433 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
434 |
-
|
435 |
-
}
|
436 |
}
|
113 |
|
114 |
$className = 'TitanFrameworkOption' . str_replace( ' ', '', ucwords( str_replace( '-', ' ', $settings['type'] ) ) );
|
115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
if ( class_exists( $className ) ) {
|
117 |
$obj = new $className( $settings, $owner );
|
118 |
return $obj;
|
130 |
$this->settings = array_merge( $this->settings, $settings );
|
131 |
|
132 |
$this->type = is_a( $owner, 'TitanFrameworkMetaBox' ) ? self::TYPE_META : self::TYPE_ADMIN;
|
|
|
133 |
|
134 |
// Generate a unique ID depending on the settings for those without IDs
|
135 |
if ( empty( $this->settings['id'] ) && $this->settings['type'] != 'save' ) {
|
137 |
}
|
138 |
}
|
139 |
|
140 |
+
|
141 |
+
public function getClass( $postID = null ) {
|
142 |
+
|
143 |
+
if ( ! empty( $this->settings['class'] ) ) {
|
144 |
+
return $this->settings['class'];
|
145 |
+
}
|
146 |
+
return '';
|
147 |
+
}
|
148 |
|
149 |
public function getValue( $postID = null ) {
|
150 |
|
178 |
$value = get_theme_mod( $this->getID(), $this->settings['default'] );
|
179 |
}
|
180 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
// Apply cleaning method for the value (for serialized data, slashes, etc).
|
182 |
$value = $this->cleanValueForGetting( $value );
|
183 |
|
184 |
+
return $value;
|
|
|
|
|
|
|
|
|
|
|
185 |
}
|
186 |
|
187 |
|
215 |
|
216 |
}
|
217 |
|
|
|
|
|
218 |
return true;
|
219 |
}
|
220 |
|
282 |
|
283 |
$id = $this->getID();
|
284 |
$name = $this->getName();
|
285 |
+
$optionClass = $this->getClass();
|
286 |
$evenOdd = self::$rowIndex++ % 2 == 0 ? 'odd' : 'even';
|
287 |
|
288 |
$style = $this->getHidden() == true ? 'style="display: none"' : '';
|
289 |
|
290 |
?>
|
291 |
+
<tr valign="top" class="row-<?php echo self::$rowIndex ?> <?php echo $evenOdd ?> <?php echo $optionClass; ?>" <?php echo $style ?>>
|
292 |
<th scope="row" class="first">
|
293 |
<label for="<?php echo ! empty( $id ) ? $id : '' ?>"><?php echo ! empty( $name ) ? $name : '' ?></label>
|
294 |
</th>
|
415 |
return stripslashes( $value );
|
416 |
}
|
417 |
|
|
|
|
|
|
|
|
|
418 |
}
|
options-framework/{titan-framework/lib → lib}/class-titan-css.php
RENAMED
@@ -95,13 +95,10 @@ class TitanFrameworkCSS
|
|
95 |
$mobmenu_options = TitanFramework::getInstance( 'mobmenu' );
|
96 |
$is_mobile_only = $mobmenu_options->getOption( 'only_mobile_devices' );
|
97 |
$is_testing_mode = $mobmenu_options->getOption( 'only_testing_mode' );
|
98 |
-
|
99 |
$mobmenu_action = '';
|
100 |
-
|
101 |
-
|
102 |
-
$mobmenu_action = $_GET['mobmenu-action'];
|
103 |
}
|
104 |
-
|
105 |
if ( $mobmenu_action == 'find-element' || $is_testing_mode && current_user_can( 'administrator' ) || !$is_testing_mode && (!$is_mobile_only || $is_mobile_only && wp_is_mobile()) ) {
|
106 |
// Only enqueue the generated css if we have the settings for it.
|
107 |
|
95 |
$mobmenu_options = TitanFramework::getInstance( 'mobmenu' );
|
96 |
$is_mobile_only = $mobmenu_options->getOption( 'only_mobile_devices' );
|
97 |
$is_testing_mode = $mobmenu_options->getOption( 'only_testing_mode' );
|
|
|
98 |
$mobmenu_action = '';
|
99 |
+
if ( isset( $_GET['mobmenu-action'] ) ) {
|
100 |
+
$mobmenu_action = $_GET['mobmenu-action'];
|
|
|
101 |
}
|
|
|
102 |
if ( $mobmenu_action == 'find-element' || $is_testing_mode && current_user_can( 'administrator' ) || !$is_testing_mode && (!$is_mobile_only || $is_mobile_only && wp_is_mobile()) ) {
|
103 |
// Only enqueue the generated css if we have the settings for it.
|
104 |
|
options-framework/{titan-framework/lib → lib}/class-titan-framework.php
RENAMED
@@ -41,7 +41,7 @@ class TitanFramework {
|
|
41 |
/**
|
42 |
* All main containers (admin pages, meta boxes, customizer section)
|
43 |
*
|
44 |
-
* @var array of TitanFrameworkAdminPage, TitanFrameworkMetaBox
|
45 |
*/
|
46 |
private $mainContainers = array();
|
47 |
|
@@ -163,7 +163,7 @@ class TitanFramework {
|
|
163 |
|
164 |
add_action( 'admin_enqueue_scripts', array( $this, 'loadAdminScripts' ) );
|
165 |
add_action( 'tf_create_option_' . $this->optionNamespace, array( $this, 'rememberAllOptions' ) );
|
166 |
-
add_filter( 'tf_create_option_continue_' . $this->optionNamespace, array( $this, 'removeChildThemeOptions' ), 10, 2 );
|
167 |
|
168 |
// Create a save option filter for customizer options.
|
169 |
add_filter( 'pre_update_option', array( $this, 'addCustomizerSaveFilter' ), 10, 3 );
|
@@ -347,23 +347,6 @@ class TitanFramework {
|
|
347 |
return $this->createAdminPage( $settings );
|
348 |
}
|
349 |
|
350 |
-
|
351 |
-
/**
|
352 |
-
* Create a sample content only.
|
353 |
-
* Use createSampleContent() with 'type' => 'sample-panel' or createSamplePanel() instead.
|
354 |
-
*
|
355 |
-
* @since 1.11
|
356 |
-
*
|
357 |
-
* @param array $settings The arguments for creating the sample conent page.
|
358 |
-
*
|
359 |
-
* @return TitanFrameworkAdminPage The created sample coennt page.
|
360 |
-
*/
|
361 |
-
public function createSampleContentPage( $settings ) {
|
362 |
-
$settings['type'] = 'sample-panel';
|
363 |
-
return $this->createContainer( $settings );
|
364 |
-
}
|
365 |
-
|
366 |
-
|
367 |
/**
|
368 |
* Create a admin page
|
369 |
*
|
@@ -395,40 +378,6 @@ class TitanFramework {
|
|
395 |
return $this->createContainer( $settings );
|
396 |
}
|
397 |
|
398 |
-
|
399 |
-
/**
|
400 |
-
* Create a customizer section
|
401 |
-
*
|
402 |
-
* @deprecated 1.9 Use createContainer() with 'type' => 'customizer' or createCustomizer instead.
|
403 |
-
* @since 1.0
|
404 |
-
*
|
405 |
-
* @param array $settings The arguments for creating a customizer section.
|
406 |
-
*
|
407 |
-
* @return TitanFrameworkCustomizer The created section
|
408 |
-
*/
|
409 |
-
public function createThemeCustomizerSection( $settings ) {
|
410 |
-
// _deprecated_function( __FUNCTION__, '1.9', 'createContainer' );
|
411 |
-
return $this->createCustomizer( $settings );
|
412 |
-
}
|
413 |
-
|
414 |
-
|
415 |
-
/**
|
416 |
-
* Create a customizer section
|
417 |
-
*
|
418 |
-
* @since 1.9
|
419 |
-
*
|
420 |
-
* @param array $settings The arguments for creating a customizer section.
|
421 |
-
*
|
422 |
-
* @return TitanFrameworkCustomizer The created section
|
423 |
-
*/
|
424 |
-
public function createCustomizer( $settings ) {
|
425 |
-
$settings['type'] = 'customizer';
|
426 |
-
$container = $this->createContainer( $settings );
|
427 |
-
do_action( 'tf_theme_customizer_created_' . $this->optionNamespace, $container );
|
428 |
-
return $container;
|
429 |
-
}
|
430 |
-
|
431 |
-
|
432 |
/**
|
433 |
* Creates a container (e.g. admin page, meta box, customizer section) depending
|
434 |
* on the `type` parameter given in $settings
|
@@ -437,7 +386,7 @@ class TitanFramework {
|
|
437 |
*
|
438 |
* @param array $settings The arguments for creating the container.
|
439 |
*
|
440 |
-
* @return
|
441 |
*/
|
442 |
public function createContainer( $settings ) {
|
443 |
if ( empty( $settings['type'] ) ) {
|
@@ -532,7 +481,7 @@ class TitanFramework {
|
|
532 |
$value = $option->getValue( $postID );
|
533 |
}
|
534 |
|
535 |
-
return
|
536 |
} else {
|
537 |
$value = $this->getInternalAdminPageOption( $optionName );
|
538 |
|
41 |
/**
|
42 |
* All main containers (admin pages, meta boxes, customizer section)
|
43 |
*
|
44 |
+
* @var array of TitanFrameworkAdminPage, TitanFrameworkMetaBox
|
45 |
*/
|
46 |
private $mainContainers = array();
|
47 |
|
163 |
|
164 |
add_action( 'admin_enqueue_scripts', array( $this, 'loadAdminScripts' ) );
|
165 |
add_action( 'tf_create_option_' . $this->optionNamespace, array( $this, 'rememberAllOptions' ) );
|
166 |
+
//add_filter( 'tf_create_option_continue_' . $this->optionNamespace, array( $this, 'removeChildThemeOptions' ), 10, 2 );
|
167 |
|
168 |
// Create a save option filter for customizer options.
|
169 |
add_filter( 'pre_update_option', array( $this, 'addCustomizerSaveFilter' ), 10, 3 );
|
347 |
return $this->createAdminPage( $settings );
|
348 |
}
|
349 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
/**
|
351 |
* Create a admin page
|
352 |
*
|
378 |
return $this->createContainer( $settings );
|
379 |
}
|
380 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
381 |
/**
|
382 |
* Creates a container (e.g. admin page, meta box, customizer section) depending
|
383 |
* on the `type` parameter given in $settings
|
386 |
*
|
387 |
* @param array $settings The arguments for creating the container.
|
388 |
*
|
389 |
+
* @return TitanFrameworkAdminPage|TitanFrameworkMetaBox The created container
|
390 |
*/
|
391 |
public function createContainer( $settings ) {
|
392 |
if ( empty( $settings['type'] ) ) {
|
481 |
$value = $option->getValue( $postID );
|
482 |
}
|
483 |
|
484 |
+
return $value;
|
485 |
} else {
|
486 |
$value = $this->getInternalAdminPageOption( $optionName );
|
487 |
|
options-framework/{titan-framework/lib → lib}/functions-googlefonts.php
RENAMED
File without changes
|
options-framework/{titan-framework/lib → lib}/functions-utils.php
RENAMED
File without changes
|
options-framework/{titan-framework/lib → lib}/iframe-font-preview.php
RENAMED
File without changes
|
options-framework/{titan-framework/titan-framework.php → option-framework.php}
RENAMED
@@ -35,7 +35,6 @@ defined( 'TF_PLUGIN_BASENAME' ) or define( 'TF_PLUGIN_BASENAME', plugin_basename
|
|
35 |
require_once( TF_PATH . 'lib/class-admin-notification.php' );
|
36 |
require_once( TF_PATH . 'lib/class-admin-page.php' );
|
37 |
require_once( TF_PATH . 'lib/class-admin-tab.php' );
|
38 |
-
require_once( TF_PATH . 'lib/class-customizer.php' );
|
39 |
require_once( TF_PATH . 'lib/class-meta-box.php' );
|
40 |
require_once( TF_PATH . 'lib/class-option.php' );
|
41 |
require_once( TF_PATH . 'lib/class-option-ajax-button.php' );
|
@@ -75,16 +74,15 @@ require_once( TF_PATH . 'lib/class-option-upload.php' );
|
|
75 |
require_once( TF_PATH . 'lib/class-option-file.php' );
|
76 |
require_once( TF_PATH . 'lib/class-titan-css.php' );
|
77 |
require_once( TF_PATH . 'lib/class-titan-framework.php' );
|
78 |
-
require_once( TF_PATH . 'lib/class-wp-customize-control.php' );
|
79 |
require_once( TF_PATH . 'lib/functions-googlefonts.php' );
|
80 |
require_once( TF_PATH . 'lib/functions-utils.php' );
|
81 |
|
82 |
/**
|
83 |
-
*
|
84 |
*
|
85 |
* @since 1.0
|
86 |
*/
|
87 |
-
class
|
88 |
|
89 |
|
90 |
/**
|
@@ -94,7 +92,6 @@ class TitanFrameworkPlugin {
|
|
94 |
*/
|
95 |
function __construct() {
|
96 |
add_action( 'plugins_loaded', array( $this, 'force_load_first' ), 10, 1 );
|
97 |
-
add_filter( 'plugin_row_meta', array( $this, 'plugin_links' ), 10, 2 );
|
98 |
|
99 |
// Create the options.
|
100 |
add_action( 'init', array( $this, 'trigger_option_creation' ), 1 );
|
@@ -154,36 +151,6 @@ class TitanFrameworkPlugin {
|
|
154 |
|
155 |
return $plugins;
|
156 |
}
|
157 |
-
|
158 |
-
|
159 |
-
/**
|
160 |
-
* Adds links to the docs and GitHub
|
161 |
-
*
|
162 |
-
* @since 1.1.1
|
163 |
-
* @access public
|
164 |
-
*
|
165 |
-
* @param array $plugin_meta The current array of links.
|
166 |
-
* @param string $plugin_file The plugin file.
|
167 |
-
* @return array The current array of links together with our additions
|
168 |
-
**/
|
169 |
-
public function plugin_links( $plugin_meta, $plugin_file ) {
|
170 |
-
if ( TF_PLUGIN_BASENAME === $plugin_file ) {
|
171 |
-
$plugin_meta[] = sprintf( "<a href='%s' target='_blank'>%s</a>",
|
172 |
-
'http://www.titanframework.net/docs',
|
173 |
-
__( 'Documentation', TF_I18NDOMAIN )
|
174 |
-
);
|
175 |
-
$plugin_meta[] = sprintf( "<a href='%s' target='_blank'>%s</a>",
|
176 |
-
'https://github.com/gambitph/Titan-Framework',
|
177 |
-
__( 'GitHub Repo', TF_I18NDOMAIN )
|
178 |
-
);
|
179 |
-
$plugin_meta[] = sprintf( "<a href='%s' target='_blank'>%s</a>",
|
180 |
-
'https://github.com/gambitph/Titan-Framework/issues',
|
181 |
-
__( 'Issue Tracker', TF_I18NDOMAIN )
|
182 |
-
);
|
183 |
-
}
|
184 |
-
return $plugin_meta;
|
185 |
-
}
|
186 |
}
|
187 |
|
188 |
-
|
189 |
-
new TitanFrameworkPlugin();
|
35 |
require_once( TF_PATH . 'lib/class-admin-notification.php' );
|
36 |
require_once( TF_PATH . 'lib/class-admin-page.php' );
|
37 |
require_once( TF_PATH . 'lib/class-admin-tab.php' );
|
|
|
38 |
require_once( TF_PATH . 'lib/class-meta-box.php' );
|
39 |
require_once( TF_PATH . 'lib/class-option.php' );
|
40 |
require_once( TF_PATH . 'lib/class-option-ajax-button.php' );
|
74 |
require_once( TF_PATH . 'lib/class-option-file.php' );
|
75 |
require_once( TF_PATH . 'lib/class-titan-css.php' );
|
76 |
require_once( TF_PATH . 'lib/class-titan-framework.php' );
|
|
|
77 |
require_once( TF_PATH . 'lib/functions-googlefonts.php' );
|
78 |
require_once( TF_PATH . 'lib/functions-utils.php' );
|
79 |
|
80 |
/**
|
81 |
+
* Option Framework Plugin Class
|
82 |
*
|
83 |
* @since 1.0
|
84 |
*/
|
85 |
+
class OptionFrameworkPlugin {
|
86 |
|
87 |
|
88 |
/**
|
92 |
*/
|
93 |
function __construct() {
|
94 |
add_action( 'plugins_loaded', array( $this, 'force_load_first' ), 10, 1 );
|
|
|
95 |
|
96 |
// Create the options.
|
97 |
add_action( 'init', array( $this, 'trigger_option_creation' ), 1 );
|
151 |
|
152 |
return $plugins;
|
153 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
}
|
155 |
|
156 |
+
new OptionFrameworkPlugin();
|
|
options-framework/titan-framework/.jshintrc
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* WordPress standards from https://develop.svn.wordpress.org/trunk/.jshintrc
|
3 |
-
*/
|
4 |
-
|
5 |
-
{
|
6 |
-
"boss": true,
|
7 |
-
"curly": true,
|
8 |
-
"eqeqeq": true,
|
9 |
-
"eqnull": true,
|
10 |
-
"es3": true,
|
11 |
-
"expr": true,
|
12 |
-
"immed": true,
|
13 |
-
"noarg": true,
|
14 |
-
"onevar": true,
|
15 |
-
"quotmark": "single",
|
16 |
-
"trailing": true,
|
17 |
-
"undef": true, // This reports `console` in `console.log()` as an error
|
18 |
-
"unused": true,
|
19 |
-
|
20 |
-
"browser": true,
|
21 |
-
|
22 |
-
"globals": {
|
23 |
-
"_": false,
|
24 |
-
"Backbone": false,
|
25 |
-
"jQuery": false,
|
26 |
-
"JSON": false,
|
27 |
-
"wp": false
|
28 |
-
}
|
29 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/.scrutinizer.yml
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
checks:
|
2 |
-
php:
|
3 |
-
custom_coding_standard:
|
4 |
-
git_repository: 'https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards'
|
5 |
-
ruleset_path: 'WordPress-Core/ruleset.xml'
|
6 |
-
tools:
|
7 |
-
external_code_coverage: true
|
8 |
-
php_code_sniffer:
|
9 |
-
config:
|
10 |
-
standard: "WordPress"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/.tm_properties
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
# Inspired from https://github.com/hmans/homedir/blob/master/.tm_properties
|
2 |
-
|
3 |
-
# Extra files to include
|
4 |
-
#
|
5 |
-
myExtraIncludes = ".tm_properties,.htaccess,.gitignore,.jshintrc,.travis.yml,.scrutinizer.yml"
|
6 |
-
fileBrowserGlob = "{*,$myExtraIncludes}"
|
7 |
-
include = "{$include,$myExtraIncludes}"
|
8 |
-
|
9 |
-
# Hide log, vendor and tmp directories from search popups.
|
10 |
-
#
|
11 |
-
myExtraExcludes = "coverage,node_modules,vendor,bower_components"
|
12 |
-
excludeInFileChooser = "{$excludeInFileChooser,$myExtraExcludes}"
|
13 |
-
excludeInFolderSearch = "{$excludeInFolderSearch,$myExtraExcludes}"
|
14 |
-
|
15 |
-
# Default editing configuration
|
16 |
-
#
|
17 |
-
softWrap = false
|
18 |
-
softTabs = false
|
19 |
-
tabSize = 4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/.travis.yml
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
# Tell Travis CI we're using PHP
|
2 |
-
language: php
|
3 |
-
|
4 |
-
# PHP version used in first build configuration.
|
5 |
-
php:
|
6 |
-
- "hhvm"
|
7 |
-
- "7.0"
|
8 |
-
- "5.6"
|
9 |
-
- "5.5"
|
10 |
-
- "5.4"
|
11 |
-
- "5.3"
|
12 |
-
# - "5.2"
|
13 |
-
|
14 |
-
# WordPress version used in first build configuration.
|
15 |
-
env:
|
16 |
-
- WP_VERSION=latest WP_MULTISITE=0
|
17 |
-
- WP_VERSION=4.2 WP_MULTISITE=0
|
18 |
-
- WP_VERSION=4.1 WP_MULTISITE=0
|
19 |
-
- WP_VERSION=latest WP_MULTISITE=1
|
20 |
-
- WP_VERSION=4.2 WP_MULTISITE=1
|
21 |
-
- WP_VERSION=4.1 WP_MULTISITE=1
|
22 |
-
|
23 |
-
# Clones WordPress and configures our testing environment.
|
24 |
-
before_script:
|
25 |
-
- bash bin/install-wp-tests.sh wordpress_test root '' localhost $WP_VERSION
|
26 |
-
- export PLUGIN_SLUG=$(basename $(pwd))
|
27 |
-
- cd ..
|
28 |
-
- mv $PLUGIN_SLUG "/tmp/wordpress/wp-content/plugins/$PLUGIN_SLUG"
|
29 |
-
- cd "/tmp/wordpress/wp-content/plugins/$PLUGIN_SLUG"
|
30 |
-
|
31 |
-
script:
|
32 |
-
- phpunit --coverage-text --coverage-clover=coverage.clover
|
33 |
-
|
34 |
-
after_success:
|
35 |
-
- wget https://scrutinizer-ci.com/ocular.phar
|
36 |
-
- php ocular.phar code-coverage:upload --format=php-clover coverage.clover
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-admin-page.php
DELETED
@@ -1,484 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkAdminPage {
|
6 |
-
|
7 |
-
private $defaultSettings = array(
|
8 |
-
'name' => '', // Name of the menu item
|
9 |
-
'title' => '', // Title displayed on the top of the admin panel
|
10 |
-
'parent' => null, // id of parent, if blank, then this is a top level menu
|
11 |
-
'id' => '', // Unique ID of the menu item
|
12 |
-
'capability' => 'manage_options', // User role
|
13 |
-
'icon' => 'dashicons-admin-generic', // Menu icon for top level menus only http://melchoyce.github.io/dashicons/
|
14 |
-
'position' => null, // Menu position. Can be used for both top and sub level menus
|
15 |
-
'use_form' => true, // If false, options will not be wrapped in a form
|
16 |
-
'desc' => '', // Description displayed below the title
|
17 |
-
);
|
18 |
-
|
19 |
-
public $settings;
|
20 |
-
public $options = array();
|
21 |
-
public $tabs = array();
|
22 |
-
public $owner;
|
23 |
-
|
24 |
-
public $panelID;
|
25 |
-
|
26 |
-
private $activeTab = null;
|
27 |
-
private static $idsUsed = array();
|
28 |
-
|
29 |
-
function __construct( $settings, $owner ) {
|
30 |
-
$this->owner = $owner;
|
31 |
-
|
32 |
-
if ( ! is_admin() ) {
|
33 |
-
return;
|
34 |
-
}
|
35 |
-
|
36 |
-
$this->settings = array_merge( $this->defaultSettings, $settings );
|
37 |
-
// $this->options = $options;
|
38 |
-
if ( empty( $this->settings['name'] ) ) {
|
39 |
-
return;
|
40 |
-
}
|
41 |
-
|
42 |
-
if ( empty( $this->settings['title'] ) ) {
|
43 |
-
$this->settings['title'] = $this->settings['name'];
|
44 |
-
}
|
45 |
-
|
46 |
-
if ( empty( $this->settings['id'] ) ) {
|
47 |
-
$prefix = '';
|
48 |
-
if ( ! empty( $this->settings['parent'] ) ) {
|
49 |
-
$prefix = str_replace( ' ', '-', trim( strtolower( $this->settings['parent'] ) ) ) . '-';
|
50 |
-
}
|
51 |
-
$this->settings['id'] = $prefix . str_replace( ' ', '-', trim( strtolower( $this->settings['name'] ) ) );
|
52 |
-
$this->settings['id'] = str_replace( '&', '-', $this->settings['id'] );
|
53 |
-
}
|
54 |
-
|
55 |
-
// make sure all our IDs are unique
|
56 |
-
$suffix = '';
|
57 |
-
while ( in_array( $this->settings['id'] . $suffix, self::$idsUsed ) ) {
|
58 |
-
if ( $suffix == '' ) {
|
59 |
-
$suffix = 2;
|
60 |
-
} else {
|
61 |
-
$suffix++;
|
62 |
-
}
|
63 |
-
}
|
64 |
-
$this->settings['id'] .= $suffix;
|
65 |
-
|
66 |
-
// keep track of all IDs used
|
67 |
-
self::$idsUsed[] = $this->settings['id'];
|
68 |
-
|
69 |
-
$priority = -1;
|
70 |
-
if ( $this->settings['parent'] ) {
|
71 |
-
$priority = intval( $this->settings['position'] );
|
72 |
-
}
|
73 |
-
|
74 |
-
add_action( 'admin_menu', array( $this, 'register' ), $priority );
|
75 |
-
}
|
76 |
-
|
77 |
-
public function createAdminPanel( $settings ) {
|
78 |
-
$settings['parent'] = $this->settings['id'];
|
79 |
-
return $this->owner->createAdminPanel( $settings );
|
80 |
-
}
|
81 |
-
|
82 |
-
public function createSampleContentPage( $settings ) {
|
83 |
-
$settings['parent'] = $this->settings['id'];
|
84 |
-
return $this->owner->createSampleContentPage( $settings );
|
85 |
-
}
|
86 |
-
|
87 |
-
public function register() {
|
88 |
-
// Parent menu
|
89 |
-
if ( empty( $this->settings['parent'] ) ) {
|
90 |
-
$this->panelID = add_menu_page( $this->settings['name'],
|
91 |
-
$this->settings['title'],
|
92 |
-
$this->settings['capability'],
|
93 |
-
$this->settings['id'],
|
94 |
-
array( $this, 'createAdminPage' ),
|
95 |
-
$this->settings['icon'],
|
96 |
-
$this->settings['position'] );
|
97 |
-
// Sub menu
|
98 |
-
} else {
|
99 |
-
$this->panelID = add_submenu_page( $this->settings['parent'],
|
100 |
-
$this->settings['name'],
|
101 |
-
$this->settings['title'],
|
102 |
-
$this->settings['capability'],
|
103 |
-
$this->settings['id'],
|
104 |
-
array( $this, 'createAdminPage' ) );
|
105 |
-
}
|
106 |
-
|
107 |
-
add_action( 'load-' . $this->panelID, array( $this, 'saveOptions' ) );
|
108 |
-
|
109 |
-
}
|
110 |
-
|
111 |
-
public function getOptionNamespace() {
|
112 |
-
return $this->owner->optionNamespace;
|
113 |
-
}
|
114 |
-
|
115 |
-
|
116 |
-
public function save_single_option( $option ) {
|
117 |
-
if ( empty( $option->settings['id'] ) ) {
|
118 |
-
return;
|
119 |
-
}
|
120 |
-
|
121 |
-
if ( isset( $_POST[ $this->getOptionNamespace() . '_' . $option->settings['id'] ] ) ) {
|
122 |
-
$value = $_POST[ $this->getOptionNamespace() . '_' . $option->settings['id'] ];
|
123 |
-
} else {
|
124 |
-
$value = '';
|
125 |
-
}
|
126 |
-
|
127 |
-
$option->setValue( $value );
|
128 |
-
}
|
129 |
-
|
130 |
-
|
131 |
-
public function saveOptions() {
|
132 |
-
if ( ! $this->verifySecurity() ) {
|
133 |
-
return;
|
134 |
-
}
|
135 |
-
|
136 |
-
$message = '';
|
137 |
-
$activeTab = $this->getActiveTab();
|
138 |
-
|
139 |
-
/*
|
140 |
-
* Save
|
141 |
-
*/
|
142 |
-
|
143 |
-
if ( 'save' === $_POST['action'] ) {
|
144 |
-
|
145 |
-
// we are in a tab.
|
146 |
-
if ( ! empty( $activeTab ) ) {
|
147 |
-
foreach ( $activeTab->options as $option ) {
|
148 |
-
$this->save_single_option( $option );
|
149 |
-
|
150 |
-
if ( ! empty( $option->options ) ) {
|
151 |
-
foreach ( $option->options as $group_option ) {
|
152 |
-
$this->save_single_option( $group_option );
|
153 |
-
}
|
154 |
-
}
|
155 |
-
}
|
156 |
-
}
|
157 |
-
|
158 |
-
foreach ( $this->options as $option ) {
|
159 |
-
$this->save_single_option( $option );
|
160 |
-
|
161 |
-
if ( ! empty( $option->options ) ) {
|
162 |
-
foreach ( $option->options as $group_option ) {
|
163 |
-
$this->save_single_option( $group_option );
|
164 |
-
}
|
165 |
-
}
|
166 |
-
}
|
167 |
-
|
168 |
-
// Hook 'tf_pre_save_options_{namespace}' - action pre-saving.
|
169 |
-
/**
|
170 |
-
* Fired right before options are saved.
|
171 |
-
*
|
172 |
-
* @since 1.0
|
173 |
-
*
|
174 |
-
* @param TitanFrameworkAdminPage|TitanFrameworkCustomizer|TitanFrameworkMetaBox $this The container currently being saved.
|
175 |
-
*/
|
176 |
-
$namespace = $this->getOptionNamespace();
|
177 |
-
do_action( "tf_pre_save_options_{$namespace}", $this );
|
178 |
-
do_action( "tf_pre_save_admin_{$namespace}", $this, $activeTab, $this->options );
|
179 |
-
|
180 |
-
$this->owner->saveInternalAdminPageOptions();
|
181 |
-
|
182 |
-
do_action( 'tf_save_admin_' . $this->getOptionNamespace(), $this, $activeTab, $this->options );
|
183 |
-
|
184 |
-
$message = 'saved';
|
185 |
-
|
186 |
-
/*
|
187 |
-
* Reset
|
188 |
-
*/
|
189 |
-
|
190 |
-
} else if ( 'reset' === $_POST['action'] ) {
|
191 |
-
|
192 |
-
// We are in a tab.
|
193 |
-
if ( ! empty( $activeTab ) ) {
|
194 |
-
foreach ( $activeTab->options as $option ) {
|
195 |
-
|
196 |
-
if ( ! empty( $option->options ) ) {
|
197 |
-
foreach ( $option->options as $group_option ) {
|
198 |
-
|
199 |
-
if ( ! empty( $group_option->settings['id'] ) ) {
|
200 |
-
$group_option->setValue( $group_option->settings['default'] );
|
201 |
-
}
|
202 |
-
}
|
203 |
-
}
|
204 |
-
|
205 |
-
if ( empty( $option->settings['id'] ) ) {
|
206 |
-
continue;
|
207 |
-
}
|
208 |
-
|
209 |
-
$option->setValue( $option->settings['default'] );
|
210 |
-
}
|
211 |
-
}
|
212 |
-
|
213 |
-
foreach ( $this->options as $option ) {
|
214 |
-
|
215 |
-
if ( ! empty( $option->options ) ) {
|
216 |
-
foreach ( $option->options as $group_option ) {
|
217 |
-
|
218 |
-
if ( ! empty( $group_option->settings['id'] ) ) {
|
219 |
-
$group_option->setValue( $group_option->settings['default'] );
|
220 |
-
}
|
221 |
-
}
|
222 |
-
}
|
223 |
-
|
224 |
-
if ( empty( $option->settings['id'] ) ) {
|
225 |
-
continue;
|
226 |
-
}
|
227 |
-
|
228 |
-
$option->setValue( $option->settings['default'] );
|
229 |
-
}
|
230 |
-
|
231 |
-
// Hook 'tf_pre_reset_options_{namespace}' - action pre-saving.
|
232 |
-
do_action( 'tf_pre_reset_options_' . $this->getOptionNamespace(), $this );
|
233 |
-
do_action( 'tf_pre_reset_admin_' . $this->getOptionNamespace(), $this, $activeTab, $this->options );
|
234 |
-
|
235 |
-
$this->owner->saveInternalAdminPageOptions();
|
236 |
-
|
237 |
-
do_action( 'tf_reset_admin_' . $this->getOptionNamespace(), $this, $activeTab, $this->options );
|
238 |
-
|
239 |
-
$message = 'reset';
|
240 |
-
}
|
241 |
-
|
242 |
-
if ( 'import_mobmenu_settings' !== sanitize_text_field( $_POST['action'] ) ) {
|
243 |
-
|
244 |
-
// urlencode to allow special characters in the url
|
245 |
-
$url = wp_get_referer();
|
246 |
-
$activeTab = $this->getActiveTab();
|
247 |
-
$url = add_query_arg( 'page', urlencode( $this->settings['id'] ), $url );
|
248 |
-
if ( ! empty( $activeTab ) ) {
|
249 |
-
$url = add_query_arg( 'tab', urlencode( $activeTab->settings['id'] ), $url );
|
250 |
-
}
|
251 |
-
if ( ! empty( $message ) ) {
|
252 |
-
$url = add_query_arg( 'message', $message, $url );
|
253 |
-
}
|
254 |
-
|
255 |
-
do_action( 'tf_admin_options_saved_' . $this->getOptionNamespace() );
|
256 |
-
|
257 |
-
wp_redirect( esc_url_raw( $url ) );
|
258 |
-
}
|
259 |
-
}
|
260 |
-
|
261 |
-
private function verifySecurity() {
|
262 |
-
if ( empty( $_POST ) || empty( $_POST['action'] ) ) {
|
263 |
-
return false;
|
264 |
-
}
|
265 |
-
|
266 |
-
$screen = get_current_screen();
|
267 |
-
if ( $screen->id != $this->panelID ) {
|
268 |
-
return false;
|
269 |
-
}
|
270 |
-
|
271 |
-
if ( ! current_user_can( $this->settings['capability'] ) ) {
|
272 |
-
return false;
|
273 |
-
}
|
274 |
-
|
275 |
-
if ( ! check_admin_referer( $this->settings['id'], TF . '_nonce' ) ) {
|
276 |
-
return false;
|
277 |
-
}
|
278 |
-
|
279 |
-
return true;
|
280 |
-
}
|
281 |
-
|
282 |
-
public function getActiveTab() {
|
283 |
-
if ( ! count( $this->tabs ) ) {
|
284 |
-
return '';
|
285 |
-
}
|
286 |
-
if ( ! empty( $this->activeTab ) ) {
|
287 |
-
return $this->activeTab;
|
288 |
-
}
|
289 |
-
|
290 |
-
if ( empty( $_GET['tab'] ) ) {
|
291 |
-
$this->activeTab = $this->tabs[0];
|
292 |
-
return $this->activeTab;
|
293 |
-
}
|
294 |
-
|
295 |
-
foreach ( $this->tabs as $tab ) {
|
296 |
-
if ( $tab->settings['id'] == $_GET['tab'] ) {
|
297 |
-
$this->activeTab = $tab;
|
298 |
-
return $this->activeTab;
|
299 |
-
}
|
300 |
-
}
|
301 |
-
|
302 |
-
$this->activeTab = $this->tabs[0];
|
303 |
-
return $this->activeTab;
|
304 |
-
}
|
305 |
-
|
306 |
-
public function createAdminPage() {
|
307 |
-
do_action( 'tf_admin_page_before_' . $this->getOptionNamespace() );
|
308 |
-
|
309 |
-
?>
|
310 |
-
<div class="wrap">
|
311 |
-
<h2><?php echo $this->settings['title']; ?></h2>
|
312 |
-
<?php
|
313 |
-
if ( ! empty( $this->settings['desc'] ) ) {
|
314 |
-
?>
|
315 |
-
<p class='description'><?php echo $this->settings['desc']; ?></p>
|
316 |
-
<?php
|
317 |
-
}
|
318 |
-
?>
|
319 |
-
|
320 |
-
<div class='mm-panel-search-bar'>
|
321 |
-
<input type="text" name="mm_search_settings" id="mm_search_settings" placeholder="Search Settings">
|
322 |
-
<label> <- Type here to find the desired settings</label>
|
323 |
-
<div class="mm-search-settings-results"></div>
|
324 |
-
<div class="mm-version-holder">
|
325 |
-
<span><?php _e( "WP Mobile Menu Version " . WP_MOBILE_MENU_VERSION . " </br>", 'mobile-menu' ); ?></span>
|
326 |
-
<a href="https://www.wpmobilemenu.com/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=changelog_details" target="_blank">View version details</a>
|
327 |
-
</div>
|
328 |
-
</div>
|
329 |
-
<style>
|
330 |
-
.tf-sortable .mm-lang-selector {
|
331 |
-
background: url(<?php echo WP_MOBILE_MENU_PLUGIN_URL;?>/includes/assets/language-icon.png) no-repeat center top;
|
332 |
-
}
|
333 |
-
.tf-sortable .mm-cart-selector {
|
334 |
-
background: url(<?php echo WP_MOBILE_MENU_PLUGIN_URL;?>/includes/assets/cart-icon.png) no-repeat center top;
|
335 |
-
}
|
336 |
-
.tf-sortable .mm-search-selector {
|
337 |
-
background: url(<?php echo WP_MOBILE_MENU_PLUGIN_URL;?>/includes/assets/search-icon.png) no-repeat center top;
|
338 |
-
}
|
339 |
-
.tf-sortable .mm-left-menu-selector {
|
340 |
-
background: url(<?php echo WP_MOBILE_MENU_PLUGIN_URL;?>/includes/assets/left-menu-icon.png) no-repeat center top;
|
341 |
-
}
|
342 |
-
.tf-sortable .mm-right-menu-selector {
|
343 |
-
background: url(<?php echo WP_MOBILE_MENU_PLUGIN_URL;?>/includes/assets/right-menu-icon.png) no-repeat center top;
|
344 |
-
}
|
345 |
-
.tf-sortable .mm-logo-selector {
|
346 |
-
background: url(<?php echo WP_MOBILE_MENU_PLUGIN_URL;?>/includes/assets/logo-icon.png) no-repeat center top;
|
347 |
-
}
|
348 |
-
.tf-sortable .mm-shop-filter-selector {
|
349 |
-
background: url(<?php echo WP_MOBILE_MENU_PLUGIN_URL;?>/includes/assets/product-filter-icon.png) no-repeat center top;
|
350 |
-
}
|
351 |
-
</style>
|
352 |
-
<div class='titan-framework-panel-wrap'>
|
353 |
-
|
354 |
-
<?php
|
355 |
-
|
356 |
-
if ( count( $this->tabs ) ) :
|
357 |
-
?>
|
358 |
-
<h2 class="nav-tab-wrapper">
|
359 |
-
<?php
|
360 |
-
|
361 |
-
foreach ( $this->tabs as $tab ) {
|
362 |
-
$tab->displayTab();
|
363 |
-
}
|
364 |
-
|
365 |
-
?>
|
366 |
-
</h2>
|
367 |
-
<?php
|
368 |
-
endif;
|
369 |
-
|
370 |
-
if ( ! isset( $_GET['mobmenu-action'] ) || ( isset( $_GET['mobmenu-action'] ) && 'import-settings' !== $_GET['mobmenu-action'] ) ) {
|
371 |
-
$activeTab = $this->getActiveTab();
|
372 |
-
?>
|
373 |
-
|
374 |
-
<div class='options-container active-tab-<?php echo $activeTab->settings['id']; ?>'>
|
375 |
-
<?php
|
376 |
-
|
377 |
-
// Display notification if we did something.
|
378 |
-
if ( ! empty( $_GET['message'] ) ) {
|
379 |
-
if ( 'saved' === $_GET['message'] ) {
|
380 |
-
echo TitanFrameworkAdminNotification::formNotification( __( 'Settings saved.', TF_I18NDOMAIN ), esc_html( $_GET['message'] ) );
|
381 |
-
} else if ( 'reset' === $_GET['message'] ) {
|
382 |
-
echo TitanFrameworkAdminNotification::formNotification( __( 'Settings reset to default.', TF_I18NDOMAIN ), esc_html( $_GET['message'] ) );
|
383 |
-
}
|
384 |
-
}
|
385 |
-
|
386 |
-
if ( $this->settings['use_form'] ) :
|
387 |
-
?>
|
388 |
-
<form method='post'>
|
389 |
-
<?php
|
390 |
-
endif;
|
391 |
-
|
392 |
-
if ( $this->settings['use_form'] ) {
|
393 |
-
// Security nonce verification.
|
394 |
-
wp_nonce_field( $this->settings['id'], TF . '_nonce' );
|
395 |
-
}
|
396 |
-
|
397 |
-
?>
|
398 |
-
<table class='form-table'>
|
399 |
-
<tbody>
|
400 |
-
<?php
|
401 |
-
|
402 |
-
do_action( 'tf_admin_page_table_start_' . $this->getOptionNamespace() );
|
403 |
-
|
404 |
-
$activeTab = $this->getActiveTab();
|
405 |
-
if ( ! empty( $activeTab ) ) {
|
406 |
-
|
407 |
-
if ( ! empty( $activeTab->settings['desc'] ) ) {
|
408 |
-
?>
|
409 |
-
<p class='description'><?php echo $activeTab->settings['desc']; ?></p>
|
410 |
-
<?php
|
411 |
-
}
|
412 |
-
|
413 |
-
$activeTab->displayOptions();
|
414 |
-
}
|
415 |
-
|
416 |
-
foreach ( $this->options as $option ) {
|
417 |
-
$option->display();
|
418 |
-
}
|
419 |
-
|
420 |
-
do_action( 'tf_admin_page_table_end_' . $this->getOptionNamespace() );
|
421 |
-
|
422 |
-
?>
|
423 |
-
</tbody>
|
424 |
-
</table>
|
425 |
-
<?php
|
426 |
-
|
427 |
-
if ( $this->settings['use_form'] ) :
|
428 |
-
?>
|
429 |
-
</form>
|
430 |
-
<?php
|
431 |
-
endif;
|
432 |
-
|
433 |
-
// Reset form. We use JS to trigger a reset from other buttons within the main form.
|
434 |
-
// This is used by class-option-save.php.
|
435 |
-
if ( $this->settings['use_form'] ) :
|
436 |
-
?>
|
437 |
-
<form method='post' id='tf-reset-form'>
|
438 |
-
<?php
|
439 |
-
// security
|
440 |
-
wp_nonce_field( $this->settings['id'], TF . '_nonce' );
|
441 |
-
?>
|
442 |
-
<input type='hidden' name='action' value='reset'/>
|
443 |
-
</form>
|
444 |
-
<?php
|
445 |
-
endif;
|
446 |
-
|
447 |
-
do_action( 'tf_admin_page_end_' . $this->getOptionNamespace() );
|
448 |
-
|
449 |
-
?>
|
450 |
-
<div class='options-container active-tab-<?php echo $activeTab->settings['id']; ?>'>
|
451 |
-
</div>
|
452 |
-
</div>
|
453 |
-
</div>
|
454 |
-
</div>
|
455 |
-
<?php
|
456 |
-
|
457 |
-
do_action( 'tf_admin_page_after_' . $this->getOptionNamespace() );
|
458 |
-
} else {
|
459 |
-
do_action( 'mobile_menu_importer_page', $this->settings['id'] );
|
460 |
-
}
|
461 |
-
}
|
462 |
-
|
463 |
-
public function createTab( $settings ) {
|
464 |
-
$obj = new TitanFrameworkAdminTab( $settings, $this );
|
465 |
-
$this->tabs[] = $obj;
|
466 |
-
|
467 |
-
do_action( 'tf_admin_tab_created_' . $this->getOptionNamespace(), $obj );
|
468 |
-
|
469 |
-
return $obj;
|
470 |
-
}
|
471 |
-
|
472 |
-
public function createOption( $settings ) {
|
473 |
-
if ( ! apply_filters( 'tf_create_option_continue_' . $this->getOptionNamespace(), true, $settings ) ) {
|
474 |
-
return null;
|
475 |
-
}
|
476 |
-
|
477 |
-
$obj = TitanFrameworkOption::factory( $settings, $this );
|
478 |
-
$this->options[] = $obj;
|
479 |
-
|
480 |
-
do_action( 'tf_create_option_' . $this->getOptionNamespace(), $obj );
|
481 |
-
|
482 |
-
return $obj;
|
483 |
-
}
|
484 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-customizer.php
DELETED
@@ -1,403 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkCustomizer {
|
6 |
-
|
7 |
-
private $defaultSettings = array(
|
8 |
-
'name' => '', // Name of the menu item
|
9 |
-
// 'parent' => null, // slug of parent, if blank, then this is a top level menu
|
10 |
-
'id' => '', // Unique ID of the menu item
|
11 |
-
'panel' => '', // The Name of the panel to create
|
12 |
-
'panel_desc' => '', // The description to display on the panel
|
13 |
-
'panel_id' => '', // The panel ID to create / add to. If this is blank & `panel` is given, this will be generated
|
14 |
-
'capability' => 'edit_theme_options', // User role
|
15 |
-
// 'icon' => 'dashicons-admin-generic', // Menu icon for top level menus only
|
16 |
-
'desc' => '', // Description
|
17 |
-
'position' => 30,// Menu position for top level menus only
|
18 |
-
);
|
19 |
-
|
20 |
-
public $settings;
|
21 |
-
public $options = array();
|
22 |
-
public $owner;
|
23 |
-
|
24 |
-
// Makes sure we only load live previewing CSS only once
|
25 |
-
private static $namespacesWithPrintedPreviewCSS = array();
|
26 |
-
|
27 |
-
function __construct( $settings, $owner ) {
|
28 |
-
$this->owner = $owner;
|
29 |
-
|
30 |
-
$this->settings = array_merge( $this->defaultSettings, $settings );
|
31 |
-
|
32 |
-
if ( empty( $this->settings['name'] ) ) {
|
33 |
-
$this->settings['name'] = __( 'More Options', TF_I18NDOMAIN );
|
34 |
-
}
|
35 |
-
|
36 |
-
if ( empty( $this->settings['id'] ) ) {
|
37 |
-
$this->settings['id'] = $this->owner->optionNamespace . '_' . str_replace( ' ', '-', trim( strtolower( $this->settings['name'] ) ) );
|
38 |
-
}
|
39 |
-
|
40 |
-
if ( empty( $this->settings['panel_id'] ) && ! empty( $this->settings['panel'] ) ) {
|
41 |
-
$this->settings['panel_id'] = $this->owner->optionNamespace . '_' . str_replace( ' ', '-', trim( strtolower( $this->settings['panel'] ) ) );
|
42 |
-
}
|
43 |
-
|
44 |
-
// Register the customizer control.
|
45 |
-
add_action( 'customize_register', array( $this, 'register' ) );
|
46 |
-
|
47 |
-
// Enqueue required customizer styles & scripts.
|
48 |
-
tf_add_action_once( 'customize_controls_enqueue_scripts', array( $this, 'loadUploaderScript' ) );
|
49 |
-
|
50 |
-
// Clear local storage, we use it for remembering modified customizer values.
|
51 |
-
tf_add_action_once( 'customize_controls_print_footer_scripts', array( $this, 'initLocalStorage' ) );
|
52 |
-
|
53 |
-
// Generate the custom CSS for live previews.
|
54 |
-
tf_add_action_once( 'wp_ajax_tf_generate_customizer_css', array( $this, 'ajaxGenerateCustomizerCSS' ) );
|
55 |
-
|
56 |
-
// Modify the values of the options for the generation of CSS with the values from the customizer $_POST.
|
57 |
-
global $wp_customize;
|
58 |
-
if ( isset( $wp_customize ) ) {
|
59 |
-
tf_add_filter_once( 'tf_pre_get_value_' . $this->owner->optionNamespace, array( $this, 'useCustomizerModifiedValue' ), 10, 3 );
|
60 |
-
}
|
61 |
-
}
|
62 |
-
|
63 |
-
public function loadUploaderScript() {
|
64 |
-
wp_enqueue_media();
|
65 |
-
wp_enqueue_script( 'tf-theme-customizer-serialize', TitanFramework::getURL( '../js/min/serialize-min.js', __FILE__ ) );
|
66 |
-
wp_enqueue_style( 'tf-admin-theme-customizer-styles', TitanFramework::getURL( '../css/admin-theme-customizer-styles.css', __FILE__ ) );
|
67 |
-
}
|
68 |
-
|
69 |
-
public function getID() {
|
70 |
-
return $this->settings['id'];
|
71 |
-
}
|
72 |
-
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Ajax handler for generating CSS based on the existing options with values changed to
|
76 |
-
* match the customizer modified values.
|
77 |
-
*
|
78 |
-
* @since 1.9.2
|
79 |
-
*
|
80 |
-
* @return void
|
81 |
-
*/
|
82 |
-
public function ajaxGenerateCustomizerCSS() {
|
83 |
-
|
84 |
-
// This value is passed back to the live preview ajax handler in $this->livePreviewMainScript()
|
85 |
-
$generated = array(
|
86 |
-
'css' => '',
|
87 |
-
);
|
88 |
-
|
89 |
-
foreach ( TitanFramework::getAllInstances() as $framework ) {
|
90 |
-
|
91 |
-
// Modify the values of the options for the generation of CSS with the values from the customizer $_POST.
|
92 |
-
$namespace = $framework->optionNamespace;
|
93 |
-
add_filter( "tf_pre_get_value_{$namespace}", array( $this, 'useCustomizerModifiedValue' ), 10, 3 );
|
94 |
-
|
95 |
-
// Generate our new CSS based on the customizer values
|
96 |
-
$css = $framework->cssInstance->generateCSS();
|
97 |
-
|
98 |
-
$generated['css'] .= $css;
|
99 |
-
|
100 |
-
/**
|
101 |
-
* Allow options to add customizer live preview parameters. The tf_generate_customizer_preview_js hook allows for manipulating these values.
|
102 |
-
*
|
103 |
-
* @since 1.9.2
|
104 |
-
*
|
105 |
-
* @see tf_generate_customizer_preview_js
|
106 |
-
*/
|
107 |
-
$generated = apply_filters( "tf_generate_customizer_preview_css_{$namespace}", $generated );
|
108 |
-
|
109 |
-
}
|
110 |
-
|
111 |
-
wp_send_json_success( $generated );
|
112 |
-
}
|
113 |
-
|
114 |
-
|
115 |
-
/**
|
116 |
-
* Override the getOption value with the customizer value which comes from the $_POST array
|
117 |
-
*
|
118 |
-
* @since 1.9.2
|
119 |
-
*
|
120 |
-
* @param mixed $value The value of the option.
|
121 |
-
* @param int $postID The post ID if there is one (always null in this case).
|
122 |
-
* @param TitanFrameworkOption $option The option being parsed.
|
123 |
-
*
|
124 |
-
* @return mixed The new value
|
125 |
-
*
|
126 |
-
* @see tf_pre_get_value_{namespace}
|
127 |
-
*/
|
128 |
-
public function useCustomizerModifiedValue( $value, $postID, $option ) {
|
129 |
-
if ( empty( $_POST ) ) {
|
130 |
-
return $value;
|
131 |
-
}
|
132 |
-
if ( ! is_array( $_POST ) ) {
|
133 |
-
return $value;
|
134 |
-
}
|
135 |
-
if ( array_key_exists( $option->getID(), $_POST ) ) {
|
136 |
-
return $_POST[ $option->getID() ];
|
137 |
-
}
|
138 |
-
|
139 |
-
if ( ! empty( $_POST['customized'] ) ) {
|
140 |
-
$customizedSettings = (array) json_decode( stripslashes( $_POST['customized'] ) );
|
141 |
-
if ( is_array( $customizedSettings ) && ! empty( $customizedSettings ) ) {
|
142 |
-
if ( array_key_exists( $option->getID(), $customizedSettings ) ) {
|
143 |
-
return $customizedSettings[ $option->getID() ];
|
144 |
-
}
|
145 |
-
}
|
146 |
-
}
|
147 |
-
return $value;
|
148 |
-
}
|
149 |
-
|
150 |
-
|
151 |
-
/**
|
152 |
-
* Prints the script that clears the JS local storage when customizer loads, this ensures we start fresh.
|
153 |
-
* Use localStorage so we can still use values when the customizer refreshes.
|
154 |
-
*
|
155 |
-
* @since 1.9.2
|
156 |
-
*
|
157 |
-
* @return void
|
158 |
-
*/
|
159 |
-
public function initLocalStorage() {
|
160 |
-
?>
|
161 |
-
<script>
|
162 |
-
if ( typeof localStorage !== 'undefined' ) {
|
163 |
-
localStorage.clear();
|
164 |
-
}
|
165 |
-
</script>
|
166 |
-
<?php
|
167 |
-
}
|
168 |
-
|
169 |
-
|
170 |
-
/**
|
171 |
-
* Prints the script that uses ajax to adjust the live customizer CSS.
|
172 |
-
* Use localStorage so we can still use values when the customizer refreshes.
|
173 |
-
*
|
174 |
-
* @since 1.9.2
|
175 |
-
*
|
176 |
-
* @return void
|
177 |
-
*/
|
178 |
-
public function livePreviewMainScript() {
|
179 |
-
?>
|
180 |
-
<script>
|
181 |
-
window.tf_refresh_css = function() {
|
182 |
-
if ( typeof localStorage !== 'undefined' ) {
|
183 |
-
|
184 |
-
// Using localStorage directly as an object-value dictionary doesn't work in FF, create a new object
|
185 |
-
var localStorageData = {}, keys = Object.keys( localStorage );
|
186 |
-
for ( var i in keys ) {
|
187 |
-
localStorageData[ keys[ i ] ] = localStorage.getItem( keys[ i ] );
|
188 |
-
}
|
189 |
-
|
190 |
-
wp.ajax.send( 'tf_generate_customizer_css', {
|
191 |
-
success: function( data ) {
|
192 |
-
|
193 |
-
// Add the modified CSS Titan has generated from the preview values.
|
194 |
-
var style = document.querySelector('style#tf_live_preview');
|
195 |
-
if ( ! style ) {
|
196 |
-
var style = document.createElement('STYLE');
|
197 |
-
style.setAttribute( 'id', 'tf_live_preview' );
|
198 |
-
style.innerHTML = data.css;
|
199 |
-
document.head.appendChild( style );
|
200 |
-
} else {
|
201 |
-
style.innerHTML = data.css;
|
202 |
-
}
|
203 |
-
|
204 |
-
<?php
|
205 |
-
/**
|
206 |
-
* Render additional Javascript code for handling different data received for
|
207 |
-
* live previewing
|
208 |
-
*
|
209 |
-
* @since 1.9.2
|
210 |
-
*
|
211 |
-
* @see $this->ajaxGenerateCustomizerCSS()
|
212 |
-
*/
|
213 |
-
do_action( 'tf_generate_customizer_preview_js' );
|
214 |
-
?>
|
215 |
-
},
|
216 |
-
data: localStorageData
|
217 |
-
});
|
218 |
-
|
219 |
-
}
|
220 |
-
};
|
221 |
-
</script>
|
222 |
-
<?php
|
223 |
-
}
|
224 |
-
|
225 |
-
|
226 |
-
/**
|
227 |
-
* Prints the script PER option that handles customizer option changes for live previews
|
228 |
-
*
|
229 |
-
* @since 1.0
|
230 |
-
*
|
231 |
-
* @return void
|
232 |
-
*/
|
233 |
-
public function livePreview() {
|
234 |
-
|
235 |
-
$printStart = false;
|
236 |
-
foreach ( $this->options as $option ) {
|
237 |
-
|
238 |
-
if ( empty( $option->settings['css'] ) && empty( $option->settings['livepreview'] ) ) {
|
239 |
-
continue;
|
240 |
-
}
|
241 |
-
|
242 |
-
// Print the starting script tag.
|
243 |
-
if ( ! $printStart ) {
|
244 |
-
$printStart = true;
|
245 |
-
?>
|
246 |
-
<script>
|
247 |
-
jQuery(document).ready(function($) {
|
248 |
-
<?php
|
249 |
-
}
|
250 |
-
|
251 |
-
?>
|
252 |
-
wp.customize( '<?php echo $option->getID() ?>', function( v ) {
|
253 |
-
v.bind( function( value ) {
|
254 |
-
<?php
|
255 |
-
|
256 |
-
if ( empty( $option->settings['livepreview'] ) ) {
|
257 |
-
|
258 |
-
/**
|
259 |
-
* If css parameter is given and there is no custom livepreview,
|
260 |
-
* we can simulate live previewing using just the css parameter.
|
261 |
-
*/
|
262 |
-
?>
|
263 |
-
if ( typeof localStorage !== 'undefined' ) {
|
264 |
-
localStorage.setItem( '<?php echo $option->getID() ?>', value );
|
265 |
-
}
|
266 |
-
window.tf_refresh_css();
|
267 |
-
<?php
|
268 |
-
|
269 |
-
} else {
|
270 |
-
|
271 |
-
/**
|
272 |
-
* If the livepreview parameter is given, use that. This is the original behavior.
|
273 |
-
*/
|
274 |
-
// Some options may want to insert custom jQuery code before manipulation of live preview/
|
275 |
-
if ( ! empty( $option->settings['id'] ) ) {
|
276 |
-
do_action( 'tf_livepreview_pre_' . $this->owner->optionNamespace, $option->settings['id'], $option->settings['type'], $option );
|
277 |
-
}
|
278 |
-
|
279 |
-
echo $option->settings['livepreview'];
|
280 |
-
|
281 |
-
// Some options may want to insert custom jQuery code after manipulation of live preview.
|
282 |
-
if ( ! empty( $option->settings['id'] ) ) {
|
283 |
-
do_action( 'tf_livepreview_post_' . $this->owner->optionNamespace, $option->settings['id'], $option->settings['type'], $option );
|
284 |
-
}
|
285 |
-
}
|
286 |
-
|
287 |
-
?>
|
288 |
-
} );
|
289 |
-
} );
|
290 |
-
<?php
|
291 |
-
|
292 |
-
}
|
293 |
-
|
294 |
-
// Print the ending script tag.
|
295 |
-
if ( $printStart ) {
|
296 |
-
?>
|
297 |
-
});
|
298 |
-
</script>
|
299 |
-
<?php
|
300 |
-
}
|
301 |
-
}
|
302 |
-
|
303 |
-
|
304 |
-
/**
|
305 |
-
* Prints out CSS styles for the current namespace refresh previewing
|
306 |
-
*
|
307 |
-
* @since 1.3
|
308 |
-
*
|
309 |
-
* @return void
|
310 |
-
*
|
311 |
-
* @see self::$namespacesWithPrintedPreviewCSS
|
312 |
-
*/
|
313 |
-
public function printPreviewCSS() {
|
314 |
-
|
315 |
-
// Only print the styles once per namespace
|
316 |
-
if ( ! in_array( $this->owner->optionNamespace, self::$namespacesWithPrintedPreviewCSS ) ) {
|
317 |
-
self::$namespacesWithPrintedPreviewCSS[] = $this->owner->optionNamespace;
|
318 |
-
|
319 |
-
echo '<style id="titan-preview-' . esc_attr( $this->owner->optionNamespace ) . '">';
|
320 |
-
echo $this->owner->cssInstance->generateCSS();
|
321 |
-
echo '</style>';
|
322 |
-
}
|
323 |
-
}
|
324 |
-
|
325 |
-
public function register( $wp_customize ) {
|
326 |
-
add_action( 'wp_head', array( $this, 'printPreviewCSS' ), 1000 );
|
327 |
-
|
328 |
-
// Create the panel
|
329 |
-
if ( ! empty( $this->settings['panel_id'] ) ) {
|
330 |
-
$existingPanels = $wp_customize->panels();
|
331 |
-
|
332 |
-
if ( ! array_key_exists( $this->settings['panel_id'], $existingPanels ) ) {
|
333 |
-
$wp_customize->add_panel( $this->settings['panel_id'], array(
|
334 |
-
'title' => $this->settings['panel'],
|
335 |
-
'priority' => $this->settings['position'],
|
336 |
-
'capability' => $this->settings['capability'],
|
337 |
-
'description' => ! empty( $this->settings['panel_desc'] ) ? $this->settings['panel_desc'] : '',
|
338 |
-
) );
|
339 |
-
}
|
340 |
-
}
|
341 |
-
|
342 |
-
// Create the section
|
343 |
-
$existingSections = $wp_customize->sections();
|
344 |
-
|
345 |
-
if ( ! array_key_exists( $this->settings['id'], $existingSections ) ) {
|
346 |
-
$wp_customize->add_section( $this->settings['id'], array(
|
347 |
-
'title' => $this->settings['name'],
|
348 |
-
'priority' => $this->settings['position'],
|
349 |
-
'description' => $this->settings['desc'],
|
350 |
-
'capability' => $this->settings['capability'],
|
351 |
-
'panel' => empty( $this->settings['panel_id'] ) ? '' : $this->settings['panel_id'],
|
352 |
-
) );
|
353 |
-
}
|
354 |
-
|
355 |
-
// Unfortunately we have to call each option's register from here
|
356 |
-
foreach ( $this->options as $index => $option ) {
|
357 |
-
if ( ! empty( $option->settings['id'] ) ) {
|
358 |
-
|
359 |
-
$namespace = $this->owner->optionNamespace;
|
360 |
-
$option_type = $option->settings['type'];
|
361 |
-
$transport = empty( $option->settings['livepreview'] ) && empty( $option->settings['css'] ) ? 'refresh' : 'postMessage';
|
362 |
-
|
363 |
-
// Allow options to override the transport parameter
|
364 |
-
if ( ! empty( $option->settings['transport'] ) ) {
|
365 |
-
$transport = $option->settings['transport'];
|
366 |
-
}
|
367 |
-
|
368 |
-
/**
|
369 |
-
* Allow options to override the transport mode of an option in the customizer
|
370 |
-
*
|
371 |
-
* @since 1.9.2
|
372 |
-
*/
|
373 |
-
$transport = apply_filters( "tf_customizer_transport_{$option_type}_{$namespace}", $transport, $option );
|
374 |
-
|
375 |
-
$wp_customize->add_setting( $option->getID(), array(
|
376 |
-
'default' => $option->settings['default'],
|
377 |
-
'transport' => $transport,
|
378 |
-
'sanitize_callback' => $option->settings['sanitize_callback'], // Sanitize callback function can be used before storing to DB
|
379 |
-
) );
|
380 |
-
}
|
381 |
-
|
382 |
-
// We add the index here, this will be used to order the controls because of this minor bug:
|
383 |
-
// https://core.trac.wordpress.org/ticket/20733
|
384 |
-
$option->registerCustomizerControl( $wp_customize, $this, $index + 100 );
|
385 |
-
}
|
386 |
-
|
387 |
-
add_action( 'wp_footer', array( $this, 'livePreview' ) );
|
388 |
-
tf_add_action_once( 'wp_footer', array( $this, 'livePreviewMainScript' ) );
|
389 |
-
}
|
390 |
-
|
391 |
-
public function createOption( $settings ) {
|
392 |
-
if ( ! apply_filters( 'tf_create_option_continue_' . $this->owner->optionNamespace, true, $settings ) ) {
|
393 |
-
return null;
|
394 |
-
}
|
395 |
-
|
396 |
-
$obj = TitanFrameworkOption::factory( $settings, $this );
|
397 |
-
$this->options[] = $obj;
|
398 |
-
|
399 |
-
do_action( 'tf_create_option_' . $this->owner->optionNamespace, $obj );
|
400 |
-
|
401 |
-
return $obj;
|
402 |
-
}
|
403 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-color.php
DELETED
@@ -1,177 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkOptionColor extends TitanFrameworkOption {
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Default settings
|
9 |
-
* @var array
|
10 |
-
*/
|
11 |
-
public $defaultSecondarySettings = array(
|
12 |
-
|
13 |
-
/**
|
14 |
-
* (Optional) If true, an additional control will become available in the color picker for adjusting the alpha/opacity value of the color. You can get rgba colors with the option.
|
15 |
-
*
|
16 |
-
* @since 1.9
|
17 |
-
* @var boolean
|
18 |
-
*/
|
19 |
-
'alpha' => false,
|
20 |
-
);
|
21 |
-
|
22 |
-
function __construct( $settings, $owner ) {
|
23 |
-
parent::__construct( $settings, $owner );
|
24 |
-
tf_add_action_once( 'admin_enqueue_scripts', array( $this, 'enqueueColorPickerScript' ) );
|
25 |
-
tf_add_action_once( 'admin_footer', array( $this, 'startColorPicker' ) );
|
26 |
-
}
|
27 |
-
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Display for options and meta
|
31 |
-
*
|
32 |
-
* @since 1.0
|
33 |
-
*
|
34 |
-
* @return void
|
35 |
-
*/
|
36 |
-
public function display() {
|
37 |
-
|
38 |
-
$this->echoOptionHeader();
|
39 |
-
|
40 |
-
printf( '<input class="tf-colorpicker" type="text" name="%s" id="%s" value="%s" data-default-color="%s" data-custom-width="0" %s/>',
|
41 |
-
esc_attr( $this->getID() ),
|
42 |
-
esc_attr( $this->getID() ),
|
43 |
-
esc_attr( $this->getValue() ),
|
44 |
-
esc_attr( $this->getValue() ),
|
45 |
-
! empty( $this->settings['alpha'] ) ? "data-alpha='true'" : '' // Used by wp-color-picker-alpha
|
46 |
-
);
|
47 |
-
|
48 |
-
$this->echoOptionFooter();
|
49 |
-
}
|
50 |
-
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Enqueue the colorpicker scripts
|
54 |
-
*
|
55 |
-
* @since 1.9
|
56 |
-
*
|
57 |
-
* @return void
|
58 |
-
*/
|
59 |
-
public function enqueueColorPickerScript($hook) {
|
60 |
-
|
61 |
-
if ( $hook == 'toplevel_page_mobile-menu-options' ) {
|
62 |
-
wp_enqueue_script( 'wp-color-picker' );
|
63 |
-
wp_enqueue_style( 'wp-color-picker' );
|
64 |
-
wp_enqueue_script( 'wp-color-picker-alpha', TitanFramework::getURL( '../js/min/wp-color-picker-alpha-min.js', __FILE__ ), array( 'wp-color-picker' ), TF_VERSION );
|
65 |
-
}
|
66 |
-
}
|
67 |
-
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Load the javascript to init the colorpicker
|
71 |
-
*
|
72 |
-
* @since 1.9
|
73 |
-
*
|
74 |
-
* @return void
|
75 |
-
*/
|
76 |
-
public function startColorPicker($hook) {
|
77 |
-
|
78 |
-
|
79 |
-
?>
|
80 |
-
<script>
|
81 |
-
|
82 |
-
wpColorPicker_i18n = {"clear":"Clear","defaultString":"Default","pick":"Select Color","current":"Current Color"};
|
83 |
-
wpColorPickerL10n = wpColorPicker_i18n;
|
84 |
-
|
85 |
-
jQuery(document).ready(function() {
|
86 |
-
'use strict';
|
87 |
-
if ( typeof jQuery.fn.wpColorPicker !== 'undefined' ) {
|
88 |
-
jQuery('.tf-colorpicker').wpColorPicker();
|
89 |
-
}
|
90 |
-
});
|
91 |
-
</script>
|
92 |
-
|
93 |
-
<?php
|
94 |
-
}
|
95 |
-
|
96 |
-
|
97 |
-
/**
|
98 |
-
* Display for theme customizer
|
99 |
-
*
|
100 |
-
* @since 1.0
|
101 |
-
*
|
102 |
-
* @param WP_Customize $wp_customize
|
103 |
-
* @param TitanFrameworkCustomizer $section
|
104 |
-
* @param int $priority The location/priority of this option inside the section.
|
105 |
-
*
|
106 |
-
* @return void
|
107 |
-
*/
|
108 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
109 |
-
$wp_customize->add_control( new TitanFrameworkOptionColorControl( $wp_customize, $this->getID(), array(
|
110 |
-
'label' => $this->settings['name'],
|
111 |
-
'section' => $section->getID(),
|
112 |
-
'settings' => $this->getID(),
|
113 |
-
'description' => $this->settings['desc'],
|
114 |
-
'priority' => $priority,
|
115 |
-
'alpha' => $this->settings['alpha'],
|
116 |
-
) ) );
|
117 |
-
}
|
118 |
-
}
|
119 |
-
|
120 |
-
|
121 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionColorControl', 1 );
|
122 |
-
|
123 |
-
|
124 |
-
function registerTitanFrameworkOptionColorControl() {
|
125 |
-
class TitanFrameworkOptionColorControl extends WP_Customize_Color_Control {
|
126 |
-
|
127 |
-
public $alpha;
|
128 |
-
|
129 |
-
function __construct( $manager, $id, $args = array() ) {
|
130 |
-
parent::__construct( $manager, $id, $args );
|
131 |
-
tf_add_action_once( 'customize_controls_print_footer_scripts', array( $this, 'printOpacityOverrideTemplate' ) );
|
132 |
-
}
|
133 |
-
|
134 |
-
public function enqueue() {
|
135 |
-
parent::enqueue();
|
136 |
-
wp_enqueue_script( 'wp-color-picker-alpha', TitanFramework::getURL( '../js/min/wp-color-picker-alpha-min.js', __FILE__ ), array( 'wp-color-picker' ), TF_VERSION );
|
137 |
-
}
|
138 |
-
|
139 |
-
public function to_json() {
|
140 |
-
parent::to_json();
|
141 |
-
$this->json['alpha'] = $this->alpha;
|
142 |
-
}
|
143 |
-
|
144 |
-
public function printOpacityOverrideTemplate() {
|
145 |
-
|
146 |
-
// Get the template for the color control, don't print it out.
|
147 |
-
ob_start();
|
148 |
-
$this->content_template();
|
149 |
-
$contents = ob_get_contents();
|
150 |
-
ob_end_clean();
|
151 |
-
|
152 |
-
// Modify the template to include our alpha parameter.
|
153 |
-
$contents = str_replace( '<input', '<input {{ alpha }} data-custom-width="0"', $contents );
|
154 |
-
?>
|
155 |
-
<script type="text/html" id="tmpl-customize-control-color-content-tf">
|
156 |
-
<#
|
157 |
-
var alpha = '';
|
158 |
-
if ( data.alpha ) {
|
159 |
-
alpha = ' data-alpha=true'; // Quotes added automatically.
|
160 |
-
}
|
161 |
-
#>
|
162 |
-
<?php echo $contents ?>
|
163 |
-
</script>
|
164 |
-
<?php
|
165 |
-
|
166 |
-
// Override the original color content template. Don't use jQuery here since it will be too late
|
167 |
-
// We're sure that the templates have already been printed out
|
168 |
-
// We can't modify the original output, so we just adjust the ID so that we won't use the original one
|
169 |
-
?>
|
170 |
-
<script>
|
171 |
-
document.querySelector("#tmpl-customize-control-color-content").setAttribute("id", "tmpl-customize-control-color-content-old");
|
172 |
-
document.querySelector("#tmpl-customize-control-color-content-tf").setAttribute("id", "tmpl-customize-control-color-content");
|
173 |
-
</script>
|
174 |
-
<?php
|
175 |
-
}
|
176 |
-
}
|
177 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-custom.php
DELETED
@@ -1,94 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Custom option
|
4 |
-
*
|
5 |
-
* @package Titan Framework
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly.
|
9 |
-
}
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Custom option class
|
13 |
-
*
|
14 |
-
* @since 1.0
|
15 |
-
*/
|
16 |
-
class TitanFrameworkOptionCustom extends TitanFrameworkOption {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Default settings specific to this option
|
20 |
-
* @var array
|
21 |
-
*/
|
22 |
-
public $defaultSecondarySettings = array(
|
23 |
-
'custom' => '', // Custom HTML
|
24 |
-
);
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Display for options and meta
|
28 |
-
*/
|
29 |
-
public function display() {
|
30 |
-
if ( ! empty( $this->settings['name'] ) ) {
|
31 |
-
|
32 |
-
$this->echoOptionHeader();
|
33 |
-
echo $this->settings['custom'];
|
34 |
-
$this->echoOptionFooter( false );
|
35 |
-
|
36 |
-
} else {
|
37 |
-
|
38 |
-
$this->echoOptionHeaderBare();
|
39 |
-
echo $this->settings['custom'];
|
40 |
-
$this->echoOptionFooterBare( false );
|
41 |
-
|
42 |
-
}
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Display for theme customizer
|
47 |
-
*
|
48 |
-
* @param WP_Customize $wp_customize The customizer object.
|
49 |
-
* @param TitanFrameworkCustomizer $section The customizer section.
|
50 |
-
* @param int $priority The display priority of the control.
|
51 |
-
*/
|
52 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
53 |
-
$wp_customize->add_control( new TitanFrameworkOptionCustomControl( $wp_customize, $this->getID(), array(
|
54 |
-
'label' => $this->settings['name'],
|
55 |
-
'section' => $section->settings['id'],
|
56 |
-
'type' => 'select',
|
57 |
-
'settings' => $this->getID(),
|
58 |
-
'priority' => $priority,
|
59 |
-
'custom' => $this->settings['custom'],
|
60 |
-
) ) );
|
61 |
-
}
|
62 |
-
}
|
63 |
-
|
64 |
-
|
65 |
-
// We create a new control for the theme customizer.
|
66 |
-
add_action( 'customize_register', 'register_titan_framework_option_custom_control', 1 );
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Register the customizer control
|
70 |
-
*/
|
71 |
-
function register_titan_framework_option_custom_control() {
|
72 |
-
|
73 |
-
/**
|
74 |
-
* Custom option class
|
75 |
-
*
|
76 |
-
* @since 1.0
|
77 |
-
*/
|
78 |
-
class TitanFrameworkOptionCustomControl extends WP_Customize_Control {
|
79 |
-
|
80 |
-
/**
|
81 |
-
* The custom content control
|
82 |
-
*
|
83 |
-
* @var bool
|
84 |
-
*/
|
85 |
-
public $custom;
|
86 |
-
|
87 |
-
/**
|
88 |
-
* Renders the control
|
89 |
-
*/
|
90 |
-
public function render_content() {
|
91 |
-
echo $this->custom;
|
92 |
-
}
|
93 |
-
}
|
94 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-edd-license.php
DELETED
@@ -1,489 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* EDD License Activation.
|
4 |
-
*
|
5 |
-
* This class is meant to handle Easy Digital Downloads licenses.
|
6 |
-
* When a license is entered, it's checked with the server through
|
7 |
-
* the EDD API. If the license is valid it is activated and
|
8 |
-
* the activation result is saved as a transient.
|
9 |
-
*
|
10 |
-
* As the licensed can be deactivated directly from the server,
|
11 |
-
* a regular check needs to be done on the license in order to make sure
|
12 |
-
* that the status is up to date.
|
13 |
-
*
|
14 |
-
* The required option parameters for the activator to work are:
|
15 |
-
*
|
16 |
-
* - (string) $server URL of the shop where the license was generated
|
17 |
-
* - (string) $item_name The name of the item as set in the shop
|
18 |
-
*
|
19 |
-
* @author Julien Liabeuf <julien@liabeuf.fr>
|
20 |
-
* @link http://julienliabeuf.com
|
21 |
-
*/
|
22 |
-
|
23 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
24 |
-
}
|
25 |
-
if ( class_exists( 'TitanFrameworkOption' ) ) {
|
26 |
-
|
27 |
-
class TitanFrameworkOptionEddLicense extends TitanFrameworkOption {
|
28 |
-
|
29 |
-
public $defaultSecondarySettings = array(
|
30 |
-
'placeholder' => '',
|
31 |
-
'is_password' => false,
|
32 |
-
'server' => false,
|
33 |
-
// Whether or not a license number is mandatory for checking for new version. Without license number it still won't be possible to update though. Users will just see that there is a new version available.
|
34 |
-
'update_check_license_required' => false,
|
35 |
-
'wp_override' => false,
|
36 |
-
);
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Constructor
|
40 |
-
*
|
41 |
-
* @since 1.7.1
|
42 |
-
*
|
43 |
-
* @param array $settings Option settings
|
44 |
-
* @param string $owner
|
45 |
-
*/
|
46 |
-
function __construct( $settings, $owner ) {
|
47 |
-
parent::__construct( $settings, $owner );
|
48 |
-
|
49 |
-
add_action( 'admin_init', array( $this, 'checkUpdates' ), 10, 0 );
|
50 |
-
add_action( 'tf_create_option_' . $this->getOptionNamespace(), array( $this, 'activateLicense' ) );
|
51 |
-
}
|
52 |
-
|
53 |
-
/**
|
54 |
-
* Activated the given EDD license.
|
55 |
-
*
|
56 |
-
* @return void
|
57 |
-
* @since 1.7.1
|
58 |
-
*/
|
59 |
-
public function activateLicense( $option ) {
|
60 |
-
if ( $this->settings['id'] != $option->settings['id'] ) {
|
61 |
-
return;
|
62 |
-
}
|
63 |
-
|
64 |
-
/* Get the license */
|
65 |
-
$license = esc_attr( $this->getValue() );
|
66 |
-
|
67 |
-
/* License ID */
|
68 |
-
$key = substr( md5( $license ), 0, 10 );
|
69 |
-
|
70 |
-
/* If the license is set we can handle activation. */
|
71 |
-
if ( strlen( $license ) > 0 ) {
|
72 |
-
|
73 |
-
/* First of all we check if the user requested a manual activation */
|
74 |
-
if ( isset( $_GET['eddactivate'] ) && '1' == $_GET['eddactivate'] ) {
|
75 |
-
|
76 |
-
global $pagenow;
|
77 |
-
|
78 |
-
if ( isset( $_GET ) ) {
|
79 |
-
$get = (array) $_GET;
|
80 |
-
}
|
81 |
-
|
82 |
-
if ( isset( $get['eddactivate'] ) ) {
|
83 |
-
unset( $get['eddactivate'] );
|
84 |
-
}
|
85 |
-
|
86 |
-
$this->check( $license, 'activate_license' );
|
87 |
-
|
88 |
-
/* Redirect to the settings page without the eddactivate parameter (otherwise it's used in all tabs links) */
|
89 |
-
wp_redirect( wp_sanitize_redirect( add_query_arg( $get, admin_url( $pagenow ) ) ) );
|
90 |
-
}
|
91 |
-
|
92 |
-
/* First activation of the license. */
|
93 |
-
if ( false == get_transient( "tf_edd_license_try_$key" ) ) {
|
94 |
-
$this->check( $license, 'activate_license' );
|
95 |
-
}
|
96 |
-
}
|
97 |
-
|
98 |
-
}
|
99 |
-
|
100 |
-
/**
|
101 |
-
* Display for options and meta
|
102 |
-
*/
|
103 |
-
public function display() {
|
104 |
-
|
105 |
-
/* Get the license */
|
106 |
-
$license = esc_attr( $this->getValue() );
|
107 |
-
|
108 |
-
/* License ID */
|
109 |
-
$key = substr( md5( $license ), 0, 10 );
|
110 |
-
|
111 |
-
$this->echoOptionHeader();
|
112 |
-
|
113 |
-
printf( '<input class="regular-text" name="%s" placeholder="%s" id="%s" type="%s" value="%s" />',
|
114 |
-
$this->getID(),
|
115 |
-
$this->settings['placeholder'],
|
116 |
-
$this->getID(),
|
117 |
-
$this->settings['is_password'] ? 'password' : 'text',
|
118 |
-
$license );
|
119 |
-
|
120 |
-
/* If the license is set, we display its status and check it if necessary. */
|
121 |
-
if ( strlen( $license ) > 0 ) {
|
122 |
-
|
123 |
-
/* Get the license activation status */
|
124 |
-
$status = get_transient( "tf_edd_license_status_$key" );
|
125 |
-
|
126 |
-
/* If no transient is found or it is expired to check the license again. */
|
127 |
-
if ( false == $status ) {
|
128 |
-
$status = $this->check( $license );
|
129 |
-
}
|
130 |
-
|
131 |
-
switch ( $status ) {
|
132 |
-
|
133 |
-
case 'valid':
|
134 |
-
?><p class="description"><?php esc_html_e( 'Your license is valid and active.', TF_I18NDOMAIN ); ?></p><?php
|
135 |
-
break;
|
136 |
-
|
137 |
-
case 'invalid':
|
138 |
-
?><p class="description"><?php esc_html_e( 'Your license is invalid.', TF_I18NDOMAIN ); ?></p><?php
|
139 |
-
break;
|
140 |
-
|
141 |
-
case 'inactive':
|
142 |
-
|
143 |
-
global $pagenow;
|
144 |
-
|
145 |
-
if ( isset( $_GET ) ) {
|
146 |
-
$get = (array) $_GET;
|
147 |
-
}
|
148 |
-
|
149 |
-
$get['eddactivate'] = true;
|
150 |
-
$url = esc_url( add_query_arg( $get, admin_url( $pagenow ) ) );
|
151 |
-
?>
|
152 |
-
<a href="<?php echo $url; ?>" class="button-secondary"><?php esc_html_e( 'Activate', TF_I18NDOMAIN ); ?></a>
|
153 |
-
<p class="description"><?php esc_html_e( 'Your license is valid but inactive. Click the button above to activate it.', TF_I18NDOMAIN ); ?></p><?php
|
154 |
-
|
155 |
-
break;
|
156 |
-
|
157 |
-
case 'no_response':
|
158 |
-
?><p class="description"><?php esc_html_e( 'The remote server did not return a valid response. You can retry by hitting the «Save» button again.', TF_I18NDOMAIN ); ?></p><?php
|
159 |
-
break;
|
160 |
-
|
161 |
-
}
|
162 |
-
} else {
|
163 |
-
?><p class="description"><?php esc_html_e( 'Entering your license key is mandatory to get the product updates.', TF_I18NDOMAIN ); ?></p><?php
|
164 |
-
}
|
165 |
-
|
166 |
-
$this->echoOptionFooter();
|
167 |
-
|
168 |
-
}
|
169 |
-
|
170 |
-
/*
|
171 |
-
* Display for theme customizer
|
172 |
-
*/
|
173 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
174 |
-
/**
|
175 |
-
* @var WP_Customize_Manager $wp_customize
|
176 |
-
*/
|
177 |
-
$wp_customize->add_control( new TitanFrameworkCustomizeControl( $wp_customize, $this->getID(), array(
|
178 |
-
'label' => $this->settings['name'],
|
179 |
-
'section' => $section->settings['id'],
|
180 |
-
'settings' => $this->getID(),
|
181 |
-
'description' => $this->settings['desc'],
|
182 |
-
'priority' => $priority,
|
183 |
-
) ) );
|
184 |
-
}
|
185 |
-
|
186 |
-
/**
|
187 |
-
* Check license status.
|
188 |
-
*
|
189 |
-
* The function makes an API call to the remote server and
|
190 |
-
* requests the license status.
|
191 |
-
*
|
192 |
-
* This function check (only) the license status or activate it
|
193 |
-
* depending on the $action parameter. The license status is then
|
194 |
-
* stored as a transient, and if an activation was made, an activation
|
195 |
-
* transient is also set in order to avoid activating when
|
196 |
-
* checking only is required.
|
197 |
-
*
|
198 |
-
* @param string $license License key
|
199 |
-
* @param string $action Action to take (check_license or activate_license)
|
200 |
-
* @return string Current license status
|
201 |
-
*/
|
202 |
-
public function check( $license = '', $action = 'check_license' ) {
|
203 |
-
|
204 |
-
if ( empty( $license ) ) {
|
205 |
-
return false;
|
206 |
-
}
|
207 |
-
|
208 |
-
/* Sanitize the key. */
|
209 |
-
$license = trim( sanitize_key( $license ) );
|
210 |
-
|
211 |
-
/* Set the transients lifetime. */
|
212 |
-
$status_lifetime = apply_filters( 'tf_edd_license_status_lifetime', 48 * 60 * 60 ); // Default is set to two days
|
213 |
-
$activation_lifetime = apply_filters( 'tf_edd_license_activation_lifetime', 365 * 24 * 60 * 60 ); // Default is set to one year
|
214 |
-
|
215 |
-
/* Prepare the data to send with the API request. */
|
216 |
-
$api_params = array(
|
217 |
-
'edd_action' => $action,
|
218 |
-
'license' => $license,
|
219 |
-
'url' => home_url(),
|
220 |
-
);
|
221 |
-
|
222 |
-
/**
|
223 |
-
* Set the item ID or name. ID has the highest priority
|
224 |
-
*
|
225 |
-
* @since 1.7.4
|
226 |
-
*/
|
227 |
-
if ( isset( $this->settings['item_id'] ) ) {
|
228 |
-
$api_params['item_id'] = urlencode( $this->settings['item_id'] );
|
229 |
-
} elseif ( isset( $this->settings['item_name'] ) ) {
|
230 |
-
$api_params['item_name'] = urlencode( $this->settings['item_name'] );
|
231 |
-
}
|
232 |
-
|
233 |
-
if ( ! isset( $api_params['item_id'] ) && ! isset( $api_params['item_name'] ) ) {
|
234 |
-
return false;
|
235 |
-
}
|
236 |
-
|
237 |
-
/* Call the API. */
|
238 |
-
$response = wp_remote_get( add_query_arg( $api_params, $this->settings['server'] ), array( 'timeout' => 15, 'sslverify' => false ) );
|
239 |
-
|
240 |
-
/* Check for request error. */
|
241 |
-
if ( is_wp_error( $response ) ) {
|
242 |
-
return false;
|
243 |
-
}
|
244 |
-
|
245 |
-
/* Decode license data. */
|
246 |
-
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
|
247 |
-
|
248 |
-
/* If the remote server didn't return a valid response we just return an error and don't set any transients so that activation will be tried again next time the option is saved */
|
249 |
-
if ( ! is_object( $license_data ) || empty( $license_data ) || ! isset( $license_data->license ) ) {
|
250 |
-
return 'no_response';
|
251 |
-
}
|
252 |
-
|
253 |
-
/* License ID */
|
254 |
-
$key = substr( md5( $license ), 0, 10 );
|
255 |
-
|
256 |
-
if ( 'activate_license' == $action ) {
|
257 |
-
|
258 |
-
/**
|
259 |
-
* If the license is invalid we can set all transients right away.
|
260 |
-
* The user will need to modify its license anyways so there is no risk
|
261 |
-
* of preventing further activation attempts.
|
262 |
-
*/
|
263 |
-
if ( 'invalid' == $license_data->license ) {
|
264 |
-
set_transient( "tf_edd_license_status_$key", 'invalid', $status_lifetime );
|
265 |
-
set_transient( "tf_edd_license_try_$key", true, $activation_lifetime );
|
266 |
-
return 'invalid';
|
267 |
-
}
|
268 |
-
|
269 |
-
/**
|
270 |
-
* Because sometimes EDD returns a "success" status even though the license hasn't been activated,
|
271 |
-
* we need to check the license status after activating it. Only then we can safely set the
|
272 |
-
* transients and avoid further activation attempts issues.
|
273 |
-
*
|
274 |
-
* @link https://github.com/gambitph/Titan-Framework/issues/203
|
275 |
-
*/
|
276 |
-
$status = $this->check( $license );
|
277 |
-
|
278 |
-
if ( in_array( $status, array( 'valid', 'inactive' ) ) ) {
|
279 |
-
|
280 |
-
/* We set the "try" transient only as the status will be set by the second instance of this method when we check the license status */
|
281 |
-
set_transient( "tf_edd_license_try_$key", true, $activation_lifetime );
|
282 |
-
|
283 |
-
}
|
284 |
-
} else {
|
285 |
-
|
286 |
-
/* Set the status transient. */
|
287 |
-
set_transient( "tf_edd_license_status_$key", $license_data->license, $status_lifetime );
|
288 |
-
|
289 |
-
}
|
290 |
-
|
291 |
-
/* Return the license status. */
|
292 |
-
return $license_data->license;
|
293 |
-
|
294 |
-
}
|
295 |
-
|
296 |
-
/**
|
297 |
-
* Check for plugin updates.
|
298 |
-
*
|
299 |
-
* This method is called throughout the entire WordPress admin
|
300 |
-
* and uses the EDD plugin updater class to check for new updates.
|
301 |
-
*
|
302 |
-
* @since 1.7.2
|
303 |
-
* @return boolean True if an update check was done, false otherwise
|
304 |
-
*/
|
305 |
-
public function checkUpdates() {
|
306 |
-
|
307 |
-
/* Check if we have all the required parameters. */
|
308 |
-
if ( ! isset( $this->settings['server'] ) || ! isset( $this->settings['name'] ) || ! isset( $this->settings['file'] ) ) {
|
309 |
-
return false;
|
310 |
-
}
|
311 |
-
|
312 |
-
/* Make sure the file actually exists. */
|
313 |
-
if ( ! file_exists( $this->settings['file'] ) ) {
|
314 |
-
return false;
|
315 |
-
}
|
316 |
-
|
317 |
-
/* Retrieve license key */
|
318 |
-
$license_key = trim( esc_attr( $this->getValue() ) );
|
319 |
-
|
320 |
-
// Abort if license key is empty and one is required for update check
|
321 |
-
if ( empty( $license_key ) && true === $this->settings['update_check_license_required'] ) {
|
322 |
-
return false;
|
323 |
-
}
|
324 |
-
|
325 |
-
/* Check what type of item the file is */
|
326 |
-
$item_is = $this->item_is( $this->settings['file'] );
|
327 |
-
|
328 |
-
/* Item name */
|
329 |
-
$item_name = isset( $this->settings['item_name'] ) ? sanitize_text_field( $this->settings['item_name'] ) : false;
|
330 |
-
$item_id = isset( $this->settings['item_id'] ) ? (int) $this->settings['item_id'] : false;
|
331 |
-
|
332 |
-
/* Prepare updater arguments */
|
333 |
-
$args = array(
|
334 |
-
'license' => $license_key, // Item license key
|
335 |
-
);
|
336 |
-
|
337 |
-
/* Add license ID or name for identification */
|
338 |
-
if ( false != $item_id ) {
|
339 |
-
$args['item_id'] = $item_id;
|
340 |
-
} elseif ( false != $item_name ) {
|
341 |
-
$args['item_name'] = $item_name;
|
342 |
-
}
|
343 |
-
|
344 |
-
/* Load the plugin updater class and add required parameters. */
|
345 |
-
if ( 'plugin' == $item_is ) {
|
346 |
-
|
347 |
-
if ( ! class_exists( 'TITAN_EDD_SL_Plugin_Updater' ) ) {
|
348 |
-
include( TF_PATH . 'inc/edd-licensing/EDD_SL_Plugin_Updater.php' );
|
349 |
-
}
|
350 |
-
|
351 |
-
$plugin = get_plugin_data( $this->settings['file'] );
|
352 |
-
$args['version'] = $plugin['Version'];
|
353 |
-
$args['author'] = $plugin['Author'];
|
354 |
-
$args['wp_override'] = $this->settings['wp_override'];
|
355 |
-
|
356 |
-
} /* Load the theme updater class and add required parameters. */
|
357 |
-
elseif ( in_array( $item_is, array( 'theme-parent', 'theme-child' ) ) ) {
|
358 |
-
|
359 |
-
if ( ! class_exists( 'TITAN_EDD_Theme_Updater' ) ) {
|
360 |
-
include( TF_PATH . 'inc/edd-licensing/theme-updater-class.php' );
|
361 |
-
}
|
362 |
-
|
363 |
-
add_filter( 'http_request_args', array( $this, 'disable_wporg_request' ), 5, 2 );
|
364 |
-
|
365 |
-
$theme_dir = explode( '/', substr( str_replace( get_theme_root(), '', $this->settings['file'] ), 1 ) );
|
366 |
-
$theme = wp_get_theme( $theme_dir[0], get_theme_root() );
|
367 |
-
|
368 |
-
/* Make sure the theme exists. */
|
369 |
-
if ( ! $theme->exists() ) {
|
370 |
-
return false;
|
371 |
-
}
|
372 |
-
|
373 |
-
$args['version'] = $theme->get( 'Version' );
|
374 |
-
$args['author'] = $theme->get( 'Author' );
|
375 |
-
$args['remote_api_url'] = esc_url( $this->settings['server'] );
|
376 |
-
|
377 |
-
/* Set the update messages. */
|
378 |
-
$strings = array(
|
379 |
-
'theme-license' => __( 'Theme License', 'edd-theme-updater' ),
|
380 |
-
'enter-key' => __( 'Enter your theme license key.', 'edd-theme-updater' ),
|
381 |
-
'license-key' => __( 'License Key', 'edd-theme-updater' ),
|
382 |
-
'license-action' => __( 'License Action', 'edd-theme-updater' ),
|
383 |
-
'deactivate-license' => __( 'Deactivate License', 'edd-theme-updater' ),
|
384 |
-
'activate-license' => __( 'Activate License', 'edd-theme-updater' ),
|
385 |
-
'status-unknown' => __( 'License status is unknown.', 'edd-theme-updater' ),
|
386 |
-
'renew' => __( 'Renew?', 'edd-theme-updater' ),
|
387 |
-
'unlimited' => __( 'unlimited', 'edd-theme-updater' ),
|
388 |
-
'license-key-is-active' => __( 'License key is active.', 'edd-theme-updater' ),
|
389 |
-
'expires%s' => __( 'Expires %s.', 'edd-theme-updater' ),
|
390 |
-
'%1$s/%2$-sites' => __( 'You have %1$s / %2$s sites activated.', 'edd-theme-updater' ),
|
391 |
-
'license-key-expired-%s' => __( 'License key expired %s.', 'edd-theme-updater' ),
|
392 |
-
'license-key-expired' => __( 'License key has expired.', 'edd-theme-updater' ),
|
393 |
-
'license-keys-do-not-match' => __( 'License keys do not match.', 'edd-theme-updater' ),
|
394 |
-
'license-is-inactive' => __( 'License is inactive.', 'edd-theme-updater' ),
|
395 |
-
'license-key-is-disabled' => __( 'License key is disabled.', 'edd-theme-updater' ),
|
396 |
-
'site-is-inactive' => __( 'Site is inactive.', 'edd-theme-updater' ),
|
397 |
-
'license-status-unknown' => __( 'License status is unknown.', 'edd-theme-updater' ),
|
398 |
-
'update-notice' => __( "Updating this theme will lose any customizations you have made. 'Cancel' to stop, 'OK' to update.", 'edd-theme-updater' ),
|
399 |
-
'update-available' => __( '<strong>%1$s %2$s</strong> is available. <a href="%3$s" class="thickbox" title="%4s">Check out what\'s new</a> or <a href="%5$s"%6$s>update now</a>.', 'edd-theme-updater' ),
|
400 |
-
);
|
401 |
-
|
402 |
-
} /* What the hell is this?? */
|
403 |
-
else {
|
404 |
-
return false;
|
405 |
-
}
|
406 |
-
|
407 |
-
/* Update server URL */
|
408 |
-
$endpoint = esc_url( $this->settings['server'] );
|
409 |
-
|
410 |
-
/* Setup updater */
|
411 |
-
if ( 'plugin' == $item_is ) {
|
412 |
-
$edd_updater = new TITAN_EDD_SL_Plugin_Updater( $endpoint, $this->settings['file'], $args );
|
413 |
-
} else {
|
414 |
-
new TITAN_EDD_Theme_Updater( $args, $strings );
|
415 |
-
}
|
416 |
-
|
417 |
-
return true;
|
418 |
-
|
419 |
-
}
|
420 |
-
|
421 |
-
/**
|
422 |
-
* Check if $file is a theme or a plugin.
|
423 |
-
*
|
424 |
-
* @since 1.7.2
|
425 |
-
* @param string $file Path to the file to check
|
426 |
-
* @return string What type of file this is (parent theme, child theme or plugin)
|
427 |
-
*/
|
428 |
-
public function item_is( $file ) {
|
429 |
-
|
430 |
-
$parentTheme = trailingslashit( get_template_directory() );
|
431 |
-
$childTheme = trailingslashit( get_stylesheet_directory() );
|
432 |
-
|
433 |
-
/**
|
434 |
-
* Windows sometimes mixes up forward and back slashes, ensure forward slash for
|
435 |
-
* correct URL output.
|
436 |
-
*
|
437 |
-
* @see TitanFramework::getURL()
|
438 |
-
*/
|
439 |
-
$parentTheme = str_replace( '\\', '/', $parentTheme );
|
440 |
-
$childTheme = str_replace( '\\', '/', $childTheme );
|
441 |
-
$file = str_replace( '\\', '/', $file );
|
442 |
-
|
443 |
-
/* Make sure the file exists. */
|
444 |
-
if ( ! file_exists( $file ) ) {
|
445 |
-
return false;
|
446 |
-
}
|
447 |
-
|
448 |
-
/* The $file is in a parent theme */
|
449 |
-
if ( stripos( $file, $parentTheme ) != false ) {
|
450 |
-
return 'theme-parent';
|
451 |
-
} /* The $file is in a child theme */
|
452 |
-
else if ( stripos( $file, $childTheme ) != false ) {
|
453 |
-
return 'theme-child';
|
454 |
-
} /* The $file is in a plugin */
|
455 |
-
else {
|
456 |
-
return 'plugin';
|
457 |
-
}
|
458 |
-
|
459 |
-
}
|
460 |
-
|
461 |
-
/**
|
462 |
-
* Disable requests to wp.org repository for this theme.
|
463 |
-
*
|
464 |
-
* @since 1.7.2
|
465 |
-
*/
|
466 |
-
function disable_wporg_request( $r, $url ) {
|
467 |
-
|
468 |
-
// If it's not a theme update request, bail.
|
469 |
-
if ( 0 != strpos( $url, 'https://api.wordpress.org/themes/update-check/1.1/' ) ) {
|
470 |
-
return $r;
|
471 |
-
}
|
472 |
-
|
473 |
-
// Decode the JSON response
|
474 |
-
$themes = json_decode( $r['body']['themes'] );
|
475 |
-
|
476 |
-
// Remove the active parent and child themes from the check
|
477 |
-
$parent = get_option( 'template' );
|
478 |
-
$child = get_option( 'stylesheet' );
|
479 |
-
unset( $themes->themes->$parent );
|
480 |
-
unset( $themes->themes->$child );
|
481 |
-
|
482 |
-
// Encode the updated JSON response
|
483 |
-
$r['body']['themes'] = json_encode( $themes );
|
484 |
-
|
485 |
-
return $r;
|
486 |
-
}
|
487 |
-
}
|
488 |
-
}
|
489 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-heading.php
DELETED
@@ -1,108 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Heading option
|
4 |
-
*
|
5 |
-
* @package Titan Framework
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly.
|
9 |
-
}
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Heading Option
|
13 |
-
*
|
14 |
-
* A heading for separating your options in an admin page or meta box
|
15 |
-
*
|
16 |
-
* <strong>Creating a heading option with a description:</strong>
|
17 |
-
* <pre>$adminPage->createOption( array(
|
18 |
-
* 'name' => __( 'General Settings', 'default' ),
|
19 |
-
* 'type' => 'heading',
|
20 |
-
* 'desc' => __( 'Settings for the general usage of the plugin', 'default' ),
|
21 |
-
* ) );</pre>
|
22 |
-
*
|
23 |
-
* @since 1.0
|
24 |
-
* @type heading
|
25 |
-
* @availability Admin Pages|Meta Boxes|Customizer
|
26 |
-
* @no id,default,livepreview,css,hidden
|
27 |
-
*/
|
28 |
-
class TitanFrameworkOptionHeading extends TitanFrameworkOption {
|
29 |
-
|
30 |
-
/**
|
31 |
-
* Display for options and meta
|
32 |
-
*/
|
33 |
-
public function display() {
|
34 |
-
$headingID = str_replace( ' ', '-', strtolower( $this->settings['name'] ) );
|
35 |
-
?>
|
36 |
-
<tr valign="top" class="even first tf-heading">
|
37 |
-
<th scope="row" class="first last" colspan="2">
|
38 |
-
<h3 id="<?php echo esc_attr( $headingID ) ?>"><?php echo $this->settings['name'] ?></h3>
|
39 |
-
<?php
|
40 |
-
if ( ! empty( $this->settings['desc'] ) ) {
|
41 |
-
?><p class='description'><?php echo $this->settings['desc'] ?></p><?php
|
42 |
-
}
|
43 |
-
?>
|
44 |
-
</th>
|
45 |
-
</tr>
|
46 |
-
<?php
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Display for theme customizer
|
51 |
-
*
|
52 |
-
* @param WP_Customize $wp_customize The customizer object.
|
53 |
-
* @param TitanFrameworkCustomizer $section The customizer section.
|
54 |
-
* @param int $priority The display priority of the control.
|
55 |
-
*/
|
56 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
57 |
-
$wp_customize->add_control( new TitanFrameworkOptionHeadingControl( $wp_customize, $this->getID(), array(
|
58 |
-
'label' => $this->settings['name'],
|
59 |
-
'section' => $section->settings['id'],
|
60 |
-
'type' => 'select',
|
61 |
-
'settings' => $this->getID(),
|
62 |
-
'description' => $this->settings['desc'],
|
63 |
-
'priority' => $priority,
|
64 |
-
) ) );
|
65 |
-
}
|
66 |
-
}
|
67 |
-
|
68 |
-
|
69 |
-
// We create a new control for the theme customizer.
|
70 |
-
add_action( 'customize_register', 'register_titan_framework_option_heading_control', 1 );
|
71 |
-
|
72 |
-
/**
|
73 |
-
* Register the customizer control
|
74 |
-
*/
|
75 |
-
function register_titan_framework_option_heading_control() {
|
76 |
-
|
77 |
-
/**
|
78 |
-
* Heading option class
|
79 |
-
*
|
80 |
-
* @since 1.0
|
81 |
-
*/
|
82 |
-
class TitanFrameworkOptionHeadingControl extends WP_Customize_Control {
|
83 |
-
|
84 |
-
/**
|
85 |
-
* The description of this control
|
86 |
-
*
|
87 |
-
* @var bool
|
88 |
-
*/
|
89 |
-
public $description;
|
90 |
-
|
91 |
-
/**
|
92 |
-
* Renders the control
|
93 |
-
*/
|
94 |
-
public function render_content() {
|
95 |
-
|
96 |
-
?>
|
97 |
-
<h3 class="customize-control-title tf-heading">
|
98 |
-
<?php echo esc_html( $this->label ) ?>
|
99 |
-
<?php
|
100 |
-
if ( ! empty( $this->description ) ) {
|
101 |
-
echo "<p class='description'>" . wp_kses_post( $this->description ) . '</p>';
|
102 |
-
}
|
103 |
-
?>
|
104 |
-
</h3>
|
105 |
-
<?php
|
106 |
-
}
|
107 |
-
}
|
108 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-iframe.php
DELETED
@@ -1,105 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Iframe option
|
4 |
-
*
|
5 |
-
* @package Titan Framework
|
6 |
-
*/
|
7 |
-
|
8 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly.
|
9 |
-
}
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Iframe option class
|
13 |
-
*
|
14 |
-
* @since 1.0
|
15 |
-
*/
|
16 |
-
class TitanFrameworkOptionIframe extends TitanFrameworkOption {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Default settings specific to this option
|
20 |
-
* @var array
|
21 |
-
*/
|
22 |
-
public $defaultSecondarySettings = array(
|
23 |
-
'url' => '',
|
24 |
-
'height' => '400', // In pixels.
|
25 |
-
);
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Display for options and meta
|
29 |
-
*/
|
30 |
-
public function display() {
|
31 |
-
|
32 |
-
$this->echoOptionHeader();
|
33 |
-
|
34 |
-
printf( '<iframe frameborder="0" src="%s" style="height: %spx; width:100%%;"></iframe>',
|
35 |
-
$this->settings['url'],
|
36 |
-
$this->settings['height']
|
37 |
-
);
|
38 |
-
$this->echoOptionFooter();
|
39 |
-
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* Display for theme customizer
|
44 |
-
*
|
45 |
-
* @param WP_Customize $wp_customize The customizer object.
|
46 |
-
* @param TitanFrameworkCustomizer $section The customizer section.
|
47 |
-
* @param int $priority The display priority of the control.
|
48 |
-
*/
|
49 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
50 |
-
$wp_customize->add_control( new TitanFrameworkOptionIframeControl( $wp_customize, $this->getID(), array(
|
51 |
-
'label' => $this->settings['name'],
|
52 |
-
'section' => $section->settings['id'],
|
53 |
-
'type' => 'select',
|
54 |
-
'settings' => $this->getID(),
|
55 |
-
'priority' => $priority,
|
56 |
-
'optionSettings' => $this->settings,
|
57 |
-
) ) );
|
58 |
-
}
|
59 |
-
}
|
60 |
-
|
61 |
-
|
62 |
-
// We create a new control for the theme customizer.
|
63 |
-
add_action( 'customize_register', 'register_titan_framework_option_iframe_control', 1 );
|
64 |
-
|
65 |
-
/**
|
66 |
-
* Register the customizer control
|
67 |
-
*/
|
68 |
-
function register_titan_framework_option_iframe_control() {
|
69 |
-
|
70 |
-
/**
|
71 |
-
* Iframe option class
|
72 |
-
*
|
73 |
-
* @since 1.0
|
74 |
-
*/
|
75 |
-
class TitanFrameworkOptionIframeControl extends WP_Customize_Control {
|
76 |
-
|
77 |
-
/**
|
78 |
-
* The iframe content control
|
79 |
-
*
|
80 |
-
* @var bool
|
81 |
-
*/
|
82 |
-
public $optionSettings;
|
83 |
-
|
84 |
-
/**
|
85 |
-
* Renders the control
|
86 |
-
*/
|
87 |
-
public function render_content() {
|
88 |
-
?>
|
89 |
-
<label>
|
90 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
91 |
-
<?php
|
92 |
-
printf( '<iframe frameborder="0" src="%s" style="height: %spx; width:100%%;"></iframe>',
|
93 |
-
$this->optionSettings['url'],
|
94 |
-
$this->optionSettings['height']
|
95 |
-
);
|
96 |
-
|
97 |
-
if ( ! empty( $this->optionSettings['desc'] ) ) {
|
98 |
-
echo "<p class='description'>{$this->optionSettings['desc']}</p>";
|
99 |
-
}
|
100 |
-
?>
|
101 |
-
</label>
|
102 |
-
<?php
|
103 |
-
}
|
104 |
-
}
|
105 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-multicheck-categories.php
DELETED
@@ -1,66 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkOptionMulticheckCategories extends TitanFrameworkOptionMulticheck {
|
6 |
-
|
7 |
-
public $defaultSecondarySettings = array(
|
8 |
-
'options' => array(),
|
9 |
-
'orderby' => 'name',
|
10 |
-
'order' => 'ASC',
|
11 |
-
'taxonomy' => 'category',
|
12 |
-
'hide_empty' => false,
|
13 |
-
'show_count' => false,
|
14 |
-
'select_all' => false
|
15 |
-
);
|
16 |
-
|
17 |
-
/*
|
18 |
-
* Display for options and meta
|
19 |
-
*/
|
20 |
-
public function display() {
|
21 |
-
$args = array(
|
22 |
-
'orderby' => $this->settings['orderby'],
|
23 |
-
'order' => $this->settings['order'],
|
24 |
-
'taxonomy' => $this->settings['taxonomy'],
|
25 |
-
'hide_empty' => $this->settings['hide_empty'] ? '1' : '0',
|
26 |
-
);
|
27 |
-
|
28 |
-
$categories = get_categories( $args );
|
29 |
-
|
30 |
-
$this->settings['options'] = array();
|
31 |
-
foreach ( $categories as $category ) {
|
32 |
-
$this->settings['options'][ $category->term_id ] = $category->name . ( $this->settings['show_count'] ? ' (' . $category->count . ')' : '' );
|
33 |
-
}
|
34 |
-
|
35 |
-
parent::display();
|
36 |
-
}
|
37 |
-
|
38 |
-
/*
|
39 |
-
* Display for theme customizer
|
40 |
-
*/
|
41 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
42 |
-
$args = array(
|
43 |
-
'orderby' => $this->settings['orderby'],
|
44 |
-
'order' => $this->settings['order'],
|
45 |
-
'taxonomy' => $this->settings['taxonomy'],
|
46 |
-
'hide_empty' => $this->settings['hide_empty'] ? '1' : '0',
|
47 |
-
);
|
48 |
-
|
49 |
-
$categories = get_categories( $args );
|
50 |
-
|
51 |
-
$this->settings['options'] = array();
|
52 |
-
foreach ( $categories as $category ) {
|
53 |
-
$this->settings['options'][ $category->term_id ] = $category->name . ( $this->settings['show_count'] ? ' (' . $category->count . ')' : '' );
|
54 |
-
}
|
55 |
-
|
56 |
-
$wp_customize->add_control( new TitanFrameworkOptionMulticheckControl( $wp_customize, $this->getID(), array(
|
57 |
-
'label' => $this->settings['name'],
|
58 |
-
'section' => $section->settings['id'],
|
59 |
-
'settings' => $this->getID(),
|
60 |
-
'description' => $this->settings['desc'],
|
61 |
-
'options' => $this->settings['options'],
|
62 |
-
'select_all' => $this->settings['select_all'],
|
63 |
-
'priority' => $priority,
|
64 |
-
) ) );
|
65 |
-
}
|
66 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-multicheck-pages.php
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkOptionMulticheckPages extends TitanFrameworkOptionMulticheck {
|
6 |
-
|
7 |
-
public $defaultSecondarySettings = array(
|
8 |
-
'options' => array(),
|
9 |
-
'select_all' => false
|
10 |
-
);
|
11 |
-
|
12 |
-
private static $allPages;
|
13 |
-
|
14 |
-
/*
|
15 |
-
* Display for options and meta
|
16 |
-
*/
|
17 |
-
public function display() {
|
18 |
-
|
19 |
-
// Remember the pages so as not to perform any more lookups
|
20 |
-
if ( ! isset( self::$allPages ) ) {
|
21 |
-
self::$allPages = get_pages();
|
22 |
-
}
|
23 |
-
|
24 |
-
$this->settings['options'] = array();
|
25 |
-
foreach ( self::$allPages as $page ) {
|
26 |
-
$title = $page->post_title;
|
27 |
-
if ( empty( $title ) ) {
|
28 |
-
$title = sprintf( __( 'Untitled %s', TF_I18NDOMAIN ), '(ID #' . $page->ID . ')' );
|
29 |
-
}
|
30 |
-
$this->settings['options'][ $page->ID ] = $title;
|
31 |
-
}
|
32 |
-
|
33 |
-
parent::display();
|
34 |
-
}
|
35 |
-
|
36 |
-
/*
|
37 |
-
* Display for theme customizer
|
38 |
-
*/
|
39 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
40 |
-
// Remember the pages so as not to perform any more lookups
|
41 |
-
if ( ! isset( self::$allPages ) ) {
|
42 |
-
self::$allPages = get_pages();
|
43 |
-
}
|
44 |
-
|
45 |
-
$this->settings['options'] = array();
|
46 |
-
foreach ( self::$allPages as $page ) {
|
47 |
-
$title = $page->post_title;
|
48 |
-
if ( empty( $title ) ) {
|
49 |
-
$title = sprintf( __( 'Untitled %s', TF_I18NDOMAIN ), '(ID #' . $page->ID . ')' );
|
50 |
-
}
|
51 |
-
$this->settings['options'][ $page->ID ] = $title;
|
52 |
-
}
|
53 |
-
|
54 |
-
$wp_customize->add_control( new TitanFrameworkOptionMulticheckControl( $wp_customize, $this->getID(), array(
|
55 |
-
'label' => $this->settings['name'],
|
56 |
-
'section' => $section->settings['id'],
|
57 |
-
'settings' => $this->getID(),
|
58 |
-
'description' => $this->settings['desc'],
|
59 |
-
'options' => $this->settings['options'],
|
60 |
-
'select_all' => $this->settings['select_all'],
|
61 |
-
'priority' => $priority,
|
62 |
-
) ) );
|
63 |
-
}
|
64 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-multicheck-post-types.php
DELETED
@@ -1,77 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkOptionMulticheckPostTypes extends TitanFrameworkOptionMulticheck {
|
6 |
-
|
7 |
-
public $defaultSecondarySettings = array(
|
8 |
-
'options' => array(),
|
9 |
-
'public' => true,
|
10 |
-
'value' => 'all',
|
11 |
-
'slug' => true,
|
12 |
-
'select_all' => false
|
13 |
-
);
|
14 |
-
|
15 |
-
/*
|
16 |
-
* Display for options and meta
|
17 |
-
*/
|
18 |
-
public function display() {
|
19 |
-
|
20 |
-
// Fetch post types.
|
21 |
-
$post_types = tf_get_post_types( $this->settings['public'], $this->settings['value'] );
|
22 |
-
|
23 |
-
$this->settings['options'] = array();
|
24 |
-
foreach ( $post_types as $post_type ) {
|
25 |
-
|
26 |
-
$slug = $post_type->name;
|
27 |
-
|
28 |
-
$slugname = true == $this->settings['slug'] ? ' (' . $slug . ')' : '';
|
29 |
-
|
30 |
-
$name = $post_type->name;
|
31 |
-
if ( ! empty( $post_type->labels->singular_name ) ) {
|
32 |
-
$name = $post_type->labels->singular_name . $slugname;
|
33 |
-
}
|
34 |
-
|
35 |
-
$this->settings['options'][ $slug ] = $name;
|
36 |
-
}
|
37 |
-
|
38 |
-
parent::display();
|
39 |
-
}
|
40 |
-
|
41 |
-
/*
|
42 |
-
* Display for theme customizer
|
43 |
-
*/
|
44 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
45 |
-
|
46 |
-
// Fetch post types.
|
47 |
-
$post_types = tf_get_post_types( $this->settings['public'], $this->settings['value'] );
|
48 |
-
|
49 |
-
$this->settings['options'] = array();
|
50 |
-
foreach ( $post_types as $post_type ) {
|
51 |
-
|
52 |
-
$slug = $post_type->name;
|
53 |
-
|
54 |
-
$slugname = true == $this->settings['slug'] ? ' (' . $slug . ')' : '';
|
55 |
-
|
56 |
-
$name = $post_type->name;
|
57 |
-
if ( ! empty( $post_type->labels->singular_name ) ) {
|
58 |
-
$name = $post_type->labels->singular_name . $slugname;
|
59 |
-
}
|
60 |
-
|
61 |
-
$this->settings['options'][ $slug ] = $name;
|
62 |
-
}
|
63 |
-
|
64 |
-
$wp_customize->add_control( new TitanFrameworkOptionMulticheckControl( $wp_customize, $this->getID(), array(
|
65 |
-
'label' => $this->settings['name'],
|
66 |
-
'section' => $section->settings['id'],
|
67 |
-
'settings' => $this->getID(),
|
68 |
-
'description' => $this->settings['desc'],
|
69 |
-
'public' => $this->settings['public'],
|
70 |
-
'value' => $this->settings['value'],
|
71 |
-
'slug' => $this->settings['slug'],
|
72 |
-
'options' => $this->settings['options'],
|
73 |
-
'select_all' => $this->settings['select_all'],
|
74 |
-
'priority' => $priority,
|
75 |
-
) ) );
|
76 |
-
}
|
77 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-multicheck-posts.php
DELETED
@@ -1,76 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkOptionMulticheckPosts extends TitanFrameworkOptionMulticheck {
|
6 |
-
|
7 |
-
public $defaultSecondarySettings = array(
|
8 |
-
'options' => array(),
|
9 |
-
'post_type' => 'post',
|
10 |
-
'num' => -1,
|
11 |
-
'post_status' => 'any',
|
12 |
-
'orderby' => 'post_date',
|
13 |
-
'order' => 'DESC',
|
14 |
-
'select_all' => false
|
15 |
-
);
|
16 |
-
|
17 |
-
/*
|
18 |
-
* Display for options and meta
|
19 |
-
*/
|
20 |
-
public function display() {
|
21 |
-
$args = array(
|
22 |
-
'post_type' => $this->settings['post_type'],
|
23 |
-
'posts_per_page' => $this->settings['num'],
|
24 |
-
'post_status' => $this->settings['post_status'],
|
25 |
-
'orderby' => $this->settings['orderby'],
|
26 |
-
'order' => $this->settings['order'],
|
27 |
-
);
|
28 |
-
|
29 |
-
$posts = get_posts( $args );
|
30 |
-
|
31 |
-
$this->settings['options'] = array();
|
32 |
-
foreach ( $posts as $post ) {
|
33 |
-
$title = $post->post_title;
|
34 |
-
if ( empty( $title ) ) {
|
35 |
-
$title = sprintf( __( 'Untitled %s', TF_I18NDOMAIN ), '(ID #' . $post->ID . ')' );
|
36 |
-
}
|
37 |
-
$this->settings['options'][ $post->ID ] = $title;
|
38 |
-
}
|
39 |
-
|
40 |
-
parent::display();
|
41 |
-
}
|
42 |
-
|
43 |
-
/*
|
44 |
-
* Display for theme customizer
|
45 |
-
*/
|
46 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
47 |
-
$args = array(
|
48 |
-
'post_type' => $this->settings['post_type'],
|
49 |
-
'posts_per_page' => $this->settings['num'],
|
50 |
-
'post_status' => $this->settings['post_status'],
|
51 |
-
'orderby' => $this->settings['orderby'],
|
52 |
-
'order' => $this->settings['order'],
|
53 |
-
);
|
54 |
-
|
55 |
-
$posts = get_posts( $args );
|
56 |
-
|
57 |
-
$this->settings['options'] = array();
|
58 |
-
foreach ( $posts as $post ) {
|
59 |
-
$title = $post->post_title;
|
60 |
-
if ( empty( $title ) ) {
|
61 |
-
$title = sprintf( __( 'Untitled %s', TF_I18NDOMAIN ), '(ID #' . $post->ID . ')' );
|
62 |
-
}
|
63 |
-
$this->settings['options'][ $post->ID ] = $title;
|
64 |
-
}
|
65 |
-
|
66 |
-
$wp_customize->add_control( new TitanFrameworkOptionMulticheckControl( $wp_customize, $this->getID(), array(
|
67 |
-
'label' => $this->settings['name'],
|
68 |
-
'section' => $section->settings['id'],
|
69 |
-
'settings' => $this->getID(),
|
70 |
-
'description' => $this->settings['desc'],
|
71 |
-
'options' => $this->settings['options'],
|
72 |
-
'select_all' => $this->settings['select_all'],
|
73 |
-
'priority' => $priority,
|
74 |
-
) ) );
|
75 |
-
}
|
76 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-multicheck.php
DELETED
@@ -1,213 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkOptionMulticheck extends TitanFrameworkOption {
|
6 |
-
|
7 |
-
public $defaultSecondarySettings = array(
|
8 |
-
'options' => array(),
|
9 |
-
'select_all' => false,
|
10 |
-
);
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Constructor
|
14 |
-
*
|
15 |
-
* @param array $settings Option settings
|
16 |
-
* @param string $owner Namespace
|
17 |
-
*
|
18 |
-
* @since 1.11
|
19 |
-
*/
|
20 |
-
function __construct( $settings, $owner ) {
|
21 |
-
parent::__construct( $settings, $owner );
|
22 |
-
|
23 |
-
tf_add_action_once( 'admin_enqueue_scripts', array( $this, 'load_select_scripts' ) );
|
24 |
-
tf_add_action_once( 'customize_controls_enqueue_scripts', array( $this, 'load_select_scripts' ) );
|
25 |
-
|
26 |
-
}
|
27 |
-
|
28 |
-
|
29 |
-
/*
|
30 |
-
* Display for options and meta
|
31 |
-
*/
|
32 |
-
public function display() {
|
33 |
-
$this->echoOptionHeader( true );
|
34 |
-
|
35 |
-
echo '<fieldset>';
|
36 |
-
|
37 |
-
$savedValue = $this->getValue();
|
38 |
-
|
39 |
-
if ( ! empty( $this->settings['select_all'] ) ) {
|
40 |
-
$select_all_label = __( 'Select All' );
|
41 |
-
if ( is_string( $this->settings['select_all'] ) ) {
|
42 |
-
$select_all_label = $this->settings['select_all'];
|
43 |
-
}
|
44 |
-
printf('<label style="margin-bottom: 1em !important;"><input class="tf_checkbox_selectall" type="checkbox" /> %s </label><br>',
|
45 |
-
esc_html( $select_all_label )
|
46 |
-
);
|
47 |
-
}
|
48 |
-
|
49 |
-
foreach ( $this->settings['options'] as $value => $label ) {
|
50 |
-
|
51 |
-
printf('<label for="%s"><input id="%s" type="checkbox" name="%s[]" value="%s" %s/> %s</label><br>',
|
52 |
-
$this->getID() . $value,
|
53 |
-
$this->getID() . $value,
|
54 |
-
$this->getID(),
|
55 |
-
esc_attr( $value ),
|
56 |
-
checked( in_array( $value, $savedValue ), true, false ),
|
57 |
-
$label
|
58 |
-
);
|
59 |
-
}
|
60 |
-
|
61 |
-
echo '</fieldset>';
|
62 |
-
|
63 |
-
$this->echoOptionFooter( false );
|
64 |
-
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* Load the multicheck-selectall script
|
69 |
-
*
|
70 |
-
* @since 1.11
|
71 |
-
* @return void
|
72 |
-
*/
|
73 |
-
public function load_select_scripts() {
|
74 |
-
|
75 |
-
wp_enqueue_script( 'tf-multicheck-select-all', TitanFramework::getURL( '../js/multicheck-select-all.js', __FILE__ ), array( 'jquery' ), TF_VERSION, true );
|
76 |
-
|
77 |
-
}
|
78 |
-
|
79 |
-
public function cleanValueForSaving( $value ) {
|
80 |
-
if ( empty( $value ) ) {
|
81 |
-
return array();
|
82 |
-
}
|
83 |
-
if ( is_serialized( $value ) ) {
|
84 |
-
return $value;
|
85 |
-
}
|
86 |
-
// CSV
|
87 |
-
if ( is_string( $value ) ) {
|
88 |
-
$value = explode( ',', $value );
|
89 |
-
}
|
90 |
-
return serialize( $value );
|
91 |
-
}
|
92 |
-
|
93 |
-
public function cleanValueForGetting( $value ) {
|
94 |
-
if ( empty( $value ) ) {
|
95 |
-
return array();
|
96 |
-
}
|
97 |
-
if ( is_array( $value ) ) {
|
98 |
-
return $value;
|
99 |
-
}
|
100 |
-
if ( is_serialized( $value ) ) {
|
101 |
-
return unserialize( $value );
|
102 |
-
}
|
103 |
-
if ( is_string( $value ) ) {
|
104 |
-
return explode( ',', $value );
|
105 |
-
}
|
106 |
-
}
|
107 |
-
|
108 |
-
/*
|
109 |
-
* Display for theme customizer
|
110 |
-
*/
|
111 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
112 |
-
$wp_customize->add_control( new TitanFrameworkOptionMulticheckControl( $wp_customize, $this->getID(), array(
|
113 |
-
'label' => $this->settings['name'],
|
114 |
-
'section' => $section->settings['id'],
|
115 |
-
'settings' => $this->getID(),
|
116 |
-
'description' => $this->settings['desc'],
|
117 |
-
'options' => $this->settings['options'],
|
118 |
-
'select_all' => $this->settings['select_all'],
|
119 |
-
'priority' => $priority,
|
120 |
-
) ) );
|
121 |
-
}
|
122 |
-
}
|
123 |
-
|
124 |
-
|
125 |
-
/*
|
126 |
-
* WP_Customize_Control with description
|
127 |
-
*/
|
128 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionMulticheckControl', 1 );
|
129 |
-
function registerTitanFrameworkOptionMulticheckControl() {
|
130 |
-
class TitanFrameworkOptionMulticheckControl extends WP_Customize_Control {
|
131 |
-
public $description;
|
132 |
-
public $options;
|
133 |
-
public $select_all;
|
134 |
-
|
135 |
-
private static $firstLoad = true;
|
136 |
-
|
137 |
-
// Since theme_mod cannot handle multichecks, we will do it with some JS
|
138 |
-
public function render_content() {
|
139 |
-
// the saved value is an array. convert it to csv
|
140 |
-
if ( is_array( $this->value() ) ) {
|
141 |
-
$savedValueCSV = implode( ',', $this->value() );
|
142 |
-
$values = $this->value();
|
143 |
-
} else {
|
144 |
-
$savedValueCSV = $this->value();
|
145 |
-
$values = explode( ',', $this->value() );
|
146 |
-
}
|
147 |
-
|
148 |
-
if ( self::$firstLoad ) {
|
149 |
-
self::$firstLoad = false;
|
150 |
-
|
151 |
-
?>
|
152 |
-
<script>
|
153 |
-
jQuery(document).ready(function($) {
|
154 |
-
"use strict";
|
155 |
-
|
156 |
-
$('input.tf-multicheck').change(function(event) {
|
157 |
-
event.preventDefault();
|
158 |
-
var csv = '';
|
159 |
-
|
160 |
-
$(this).parents('li:eq(0)').find('input[type=checkbox]').each(function() {
|
161 |
-
if ($(this).is(':checked')) {
|
162 |
-
csv += $(this).attr('value') + ',';
|
163 |
-
}
|
164 |
-
});
|
165 |
-
|
166 |
-
csv = csv.replace(/,+$/, "");
|
167 |
-
|
168 |
-
$(this).parents('li:eq(0)').find('input[type=hidden]').val(csv)
|
169 |
-
// we need to trigger the field afterwards to enable the save button
|
170 |
-
.trigger('change');
|
171 |
-
return true;
|
172 |
-
});
|
173 |
-
});
|
174 |
-
</script>
|
175 |
-
<?php
|
176 |
-
}
|
177 |
-
|
178 |
-
$description = '';
|
179 |
-
if ( ! empty( $this->description ) ) {
|
180 |
-
$description = "<p class='description'>" . $this->description . '</p>';
|
181 |
-
}
|
182 |
-
?>
|
183 |
-
<label class='tf-multicheck-container'>
|
184 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
185 |
-
<?php
|
186 |
-
echo $description;
|
187 |
-
|
188 |
-
if ( ! empty( $this->select_all ) ) {
|
189 |
-
$select_all_label = __( 'Select All' );
|
190 |
-
if ( is_string( $this->select_all ) ) {
|
191 |
-
$select_all_label = $this->select_all;
|
192 |
-
}
|
193 |
-
printf('<label style="margin-bottom: 1em !important; display: inline-block;"><input class="tf_checkbox_selectall" type="checkbox" /> %s </label><br>',
|
194 |
-
esc_html( $select_all_label )
|
195 |
-
);
|
196 |
-
}
|
197 |
-
|
198 |
-
foreach ( $this->options as $value => $label ) {
|
199 |
-
printf('<label for="%s"><input class="tf-multicheck" id="%s" type="checkbox" value="%s" %s/> %s</label><br>',
|
200 |
-
$this->id . $value,
|
201 |
-
$this->id . $value,
|
202 |
-
esc_attr( $value ),
|
203 |
-
checked( in_array( $value, $values ), true, false ),
|
204 |
-
$label
|
205 |
-
);
|
206 |
-
}
|
207 |
-
?>
|
208 |
-
<input type="hidden" value="<?php echo esc_attr( $savedValueCSV ); ?>" <?php $this->link(); ?> />
|
209 |
-
</label>
|
210 |
-
<?php
|
211 |
-
}
|
212 |
-
}
|
213 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-save.php
DELETED
@@ -1,55 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkOptionSave extends TitanFrameworkOption {
|
6 |
-
|
7 |
-
public $defaultSecondarySettings = array(
|
8 |
-
'save' => '',
|
9 |
-
'reset' => '',
|
10 |
-
'use_reset' => true,
|
11 |
-
'reset_question' => '',
|
12 |
-
'action' => 'save',
|
13 |
-
);
|
14 |
-
|
15 |
-
public function display() {
|
16 |
-
if ( ! empty( $this->owner->postID ) ) {
|
17 |
-
return;
|
18 |
-
}
|
19 |
-
|
20 |
-
if ( empty( $this->settings['save'] ) ) {
|
21 |
-
$this->settings['save'] = __( 'Save Changes', TF_I18NDOMAIN );
|
22 |
-
}
|
23 |
-
if ( empty( $this->settings['reset'] ) ) {
|
24 |
-
$this->settings['reset'] = __( 'Reset to Defaults', TF_I18NDOMAIN );
|
25 |
-
}
|
26 |
-
if ( empty( $this->settings['reset_question'] ) ) {
|
27 |
-
$this->settings['reset_question'] = __( 'Are you sure you want to reset ALL options to their default values?', TF_I18NDOMAIN );
|
28 |
-
}
|
29 |
-
|
30 |
-
?>
|
31 |
-
</tbody>
|
32 |
-
</table>
|
33 |
-
|
34 |
-
<p class='submit'>
|
35 |
-
<button name="action" value="<?php echo $this->settings['action'] ?>" class="button button-primary">
|
36 |
-
<?php echo $this->settings['save'] ?>
|
37 |
-
</button>
|
38 |
-
|
39 |
-
<?php
|
40 |
-
if ( $this->settings['use_reset'] ) :
|
41 |
-
?>
|
42 |
-
<button name="action" class="button button-secondary"
|
43 |
-
onclick="javascript: if ( confirm( '<?php echo htmlentities( esc_attr( $this->settings['reset_question'] ) ) ?>' ) ) { jQuery( '#tf-reset-form' ).submit(); } jQuery(this).blur(); return false;">
|
44 |
-
<?php echo $this->settings['reset'] ?>
|
45 |
-
</button>
|
46 |
-
<?php
|
47 |
-
endif;
|
48 |
-
?>
|
49 |
-
</p>
|
50 |
-
|
51 |
-
<table class='form-table'>
|
52 |
-
<tbody>
|
53 |
-
<?php
|
54 |
-
}
|
55 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-option-textarea.php
DELETED
@@ -1,72 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
class TitanFrameworkOptionTextarea extends TitanFrameworkOption {
|
6 |
-
|
7 |
-
public $defaultSecondarySettings = array(
|
8 |
-
'placeholder' => '', // show this when blank
|
9 |
-
'is_code' => false, // if true, a more code-like font will be used
|
10 |
-
'sanitize_callbacks' => array(),
|
11 |
-
);
|
12 |
-
|
13 |
-
/*
|
14 |
-
* Display for options and meta
|
15 |
-
*/
|
16 |
-
public function display() {
|
17 |
-
$this->echoOptionHeader( true );
|
18 |
-
printf("<textarea class='large-text %s' name=\"%s\" placeholder=\"%s\" id=\"%s\" rows='10' cols='50'>%s</textarea>",
|
19 |
-
$this->settings['is_code'] ? 'code' : '',
|
20 |
-
$this->getID(),
|
21 |
-
$this->settings['placeholder'],
|
22 |
-
$this->getID(),
|
23 |
-
esc_textarea( stripslashes( $this->getValue() ) )
|
24 |
-
);
|
25 |
-
$this->echoOptionFooter( false );
|
26 |
-
}
|
27 |
-
|
28 |
-
public function cleanValueForSaving( $value ) {
|
29 |
-
if ( ! empty( $this->settings['sanitize_callbacks'] ) ) {
|
30 |
-
foreach ( $this->settings['sanitize_callbacks'] as $callback ) {
|
31 |
-
$value = call_user_func_array( $callback, array( $value, $this ) );
|
32 |
-
}
|
33 |
-
}
|
34 |
-
|
35 |
-
return $value;
|
36 |
-
}
|
37 |
-
|
38 |
-
/*
|
39 |
-
* Display for theme customizer
|
40 |
-
*/
|
41 |
-
public function registerCustomizerControl( $wp_customize, $section, $priority = 1 ) {
|
42 |
-
$wp_customize->add_control( new TitanFrameworkOptionTextareaControl( $wp_customize, $this->getID(), array(
|
43 |
-
'label' => $this->settings['name'],
|
44 |
-
'section' => $section->getID(),
|
45 |
-
'settings' => $this->getID(),
|
46 |
-
'description' => $this->settings['desc'],
|
47 |
-
'is_code' => $this->settings['is_code'],
|
48 |
-
'priority' => $priority,
|
49 |
-
) ) );
|
50 |
-
}
|
51 |
-
}
|
52 |
-
|
53 |
-
/*
|
54 |
-
* WP_Customize_Control with description
|
55 |
-
*/
|
56 |
-
add_action( 'customize_register', 'registerTitanFrameworkOptionTextareaControl', 1 );
|
57 |
-
function registerTitanFrameworkOptionTextareaControl() {
|
58 |
-
class TitanFrameworkOptionTextareaControl extends WP_Customize_Control {
|
59 |
-
public $description;
|
60 |
-
public $is_code;
|
61 |
-
|
62 |
-
public function render_content() {
|
63 |
-
?>
|
64 |
-
<label>
|
65 |
-
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
66 |
-
<textarea class='large-text <?php echo $this->is_code ? 'code' : '' ?>' rows='7' cols='50' <?php $this->link(); ?>><?php echo esc_textarea( stripslashes( $this->value() ) ) ?></textarea>
|
67 |
-
</label>
|
68 |
-
<?php
|
69 |
-
echo "<p class='description'>{$this->description}</p>";
|
70 |
-
}
|
71 |
-
}
|
72 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/lib/class-wp-customize-control.php
DELETED
@@ -1,18 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly
|
4 |
-
}
|
5 |
-
/*
|
6 |
-
* WP_Customize_Control with description
|
7 |
-
*/
|
8 |
-
add_action( 'customize_register', 'registerTitanFrameworkCustomizeControl', 1 );
|
9 |
-
function registerTitanFrameworkCustomizeControl() {
|
10 |
-
class TitanFrameworkCustomizeControl extends WP_Customize_Control {
|
11 |
-
public $description;
|
12 |
-
|
13 |
-
public function render_content() {
|
14 |
-
parent::render_content();
|
15 |
-
// echo "<p class='description'>{$this->description}</p>";
|
16 |
-
}
|
17 |
-
}
|
18 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/readme.txt
DELETED
@@ -1,383 +0,0 @@
|
|
1 |
-
=== Plugin Name ===
|
2 |
-
Contributors: bfintal
|
3 |
-
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=D2MK28E7BDLHC
|
4 |
-
Tags: framework, options, admin, admin panel, meta box, theme customizer, option framework, library, sdk, edd, settings, api, theme creator, theme framework
|
5 |
-
Requires at least: 4.1
|
6 |
-
Tested up to: 4.6.1
|
7 |
-
Stable tag: 1.11
|
8 |
-
License: GPLv2 or later
|
9 |
-
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
-
|
11 |
-
Create Settings for Your WordPress Themes & Plugins with Just a Few Lines of Code.
|
12 |
-
|
13 |
-
== Description ==
|
14 |
-
|
15 |
-
Titan Framework allows theme and plugin developers to create admin pages, options, meta boxes, and theme customizer options with just a few simple lines of code.
|
16 |
-
|
17 |
-
This means faster theme & plugin creation for everyone.
|
18 |
-
|
19 |
-
[What is Titan Framework and how does it work?](http://www.titanframework.net/what/)
|
20 |
-
|
21 |
-
= The Goal =
|
22 |
-
|
23 |
-
Titan Framework aims to be easily used by everyone. The goal is to make it plug and play - just activate the plugin and start creating your options.
|
24 |
-
|
25 |
-
[How to start developing with Titan Framework](http://www.titanframework.net/how/)
|
26 |
-
|
27 |
-
* [Join the Community in Slack](https://gambit-slackin.herokuapp.com/)
|
28 |
-
* [Documentation and Tutorials for Developers](http://www.titanframework.net/docs)
|
29 |
-
* [Titan Framework GitHub Repository](https://github.com/gambitph/Titan-Framework)
|
30 |
-
* [Issue Tracker](https://github.com/gambitph/Titan-Framework/issues)
|
31 |
-
|
32 |
-
= Start Creating Your Theme =
|
33 |
-
|
34 |
-
[You can generate your own Underscores based theme with Titan Framework through our site](http://www.titanframework.net/)
|
35 |
-
|
36 |
-
The generated theme comes with sample pre-created options in the admin and theme customizer along with code documentation.
|
37 |
-
|
38 |
-
= Features =
|
39 |
-
|
40 |
-
* Makes development unbelievably easy
|
41 |
-
* Built with optimization in mind
|
42 |
-
* Does NOT clutter the database
|
43 |
-
* Integrates with your project seamlessly
|
44 |
-
* Theme customizer live preview integration
|
45 |
-
* Supports child themes
|
46 |
-
* Automatic CSS generation with SCSS support
|
47 |
-
* Full font style fields
|
48 |
-
* Easy Digital Download activation integration
|
49 |
-
|
50 |
-
= Easy creation of: =
|
51 |
-
|
52 |
-
* Admin menus and submenus
|
53 |
-
* Admin pages
|
54 |
-
* Admin options and tabs
|
55 |
-
* Meta boxes and options
|
56 |
-
* Theme customizer sections and options
|
57 |
-
|
58 |
-
= Options available in admin pages, meta boxes and theme customizer: =
|
59 |
-
|
60 |
-
* Ajax button
|
61 |
-
* Checkbox
|
62 |
-
* Code (using [Ace](http://ace.c9.io/#nav=about))
|
63 |
-
* Color picker
|
64 |
-
* Custom
|
65 |
-
* Date
|
66 |
-
* EDD License (Easy Digital Downloads license)
|
67 |
-
* Editor (WYSIWYG)
|
68 |
-
* Enable
|
69 |
-
* File upload
|
70 |
-
* Font Style (Web safe fonts and Google WebFonts)
|
71 |
-
* Gallery
|
72 |
-
* Group
|
73 |
-
* Heading
|
74 |
-
* Iframe
|
75 |
-
* Media uploader
|
76 |
-
* Multicheck
|
77 |
-
* Multicheck categories and taxonomies
|
78 |
-
* Multicheck pages and posts
|
79 |
-
* Multicheck post types
|
80 |
-
* Note
|
81 |
-
* Number
|
82 |
-
* Radio buttons
|
83 |
-
* Radio palette picker
|
84 |
-
* Radio image
|
85 |
-
* Save and reset buttons
|
86 |
-
* Select (drop down)
|
87 |
-
* Select Google WebFont
|
88 |
-
* Select categories and taxonomies
|
89 |
-
* Select pages and posts
|
90 |
-
* Select post types
|
91 |
-
* Sortable
|
92 |
-
* Text
|
93 |
-
* Textarea
|
94 |
-
|
95 |
-
= Supporting the Framework =
|
96 |
-
|
97 |
-
Titan is super new, so far the framework has been getting good feedback from the community. Help out and spread the word by starring this repo, sending tweets, writing blog posts about what you think about Titan, and [review the plugin](http://wordpress.org/support/view/plugin-reviews/titan-framework).
|
98 |
-
|
99 |
-
= Help Translate =
|
100 |
-
|
101 |
-
We want Titan Framework to be used by everyone, and since not everyone speaks or reads english, we would appreciate it if you can [help translate the framework to your language](https://www.transifex.com/projects/p/titan-framework/).
|
102 |
-
|
103 |
-
= Currently translated to =
|
104 |
-
|
105 |
-
* French (thanks @PunKeel)
|
106 |
-
* German (thanks @jascha)
|
107 |
-
* Italian (thanks @DavideVogliotti & Giuseppe Pignataro)
|
108 |
-
* Portuguese (thanks @pagelab)
|
109 |
-
* Spanish (thanks @maperezotero)
|
110 |
-
* Turkish (thanks @gurkankara)
|
111 |
-
|
112 |
-
= Donate to the Development =
|
113 |
-
|
114 |
-
If Titan Framework has helped you in any way, we would appreciate any amount of donations that you give us. Donations would mean more development time for the framework as I am continuously developing it during my free time.
|
115 |
-
|
116 |
-
[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9X7HJBGJ37VH6)
|
117 |
-
|
118 |
-
= Special Thanks to all the Contributors =
|
119 |
-
|
120 |
-
@ahansson89, @ahmadawais, @ardallan, @BrazenlyGeek, @csloisel, @DavideVogliotti, @davidossahdez, @desaiuditd, @dovy, @fabiorphp, @iografica, @jaeh, @kevinlangleyjr, @manishsongirkar, @mendezcode, @MickeyKay, @nemke, @sagarjadhav, @smccafferty, @tojibon
|
121 |
-
|
122 |
-
and to everyone else in the GitHub repo!
|
123 |
-
|
124 |
-
== Installation ==
|
125 |
-
|
126 |
-
1. Upload `plugin-name.php` to the `/wp-content/plugins/` directory
|
127 |
-
2. Activate the plugin through the 'Plugins' menu in WordPress
|
128 |
-
3. Use the provided classes and functions in your theme or plugin. Read our guide on how to [Get Started with Titan Framework](http://www.titanframework.net/how/)
|
129 |
-
|
130 |
-
== Frequently Asked Questions ==
|
131 |
-
|
132 |
-
* [Site FAQs](http://www.titanframework.net/faqs/)
|
133 |
-
* [Documentation and Tutorials for Developers](http://titanframework.net)
|
134 |
-
* [Titan Framework GitHub Repository](https://github.com/gambitph/Titan-Framework)
|
135 |
-
* [Issue Tracker](https://github.com/gambitph/Titan-Framework/issues)
|
136 |
-
|
137 |
-
== Upgrade Notice ==
|
138 |
-
|
139 |
-
== Screenshots ==
|
140 |
-
|
141 |
-
1. An admin page with tabs and options created using Titan Framework
|
142 |
-
2. Supports theme customizer sections, options and live previewing
|
143 |
-
3. Meta box support for pages, posts and custom post types
|
144 |
-
4. Sample code on how to create admin pages and options
|
145 |
-
|
146 |
-
== Changelog ==
|
147 |
-
|
148 |
-
= 1.11 =
|
149 |
-
* New: Added custom font in Theme Customizer
|
150 |
-
* New: Added File Upload option
|
151 |
-
* New: Added select_all in multicheck option
|
152 |
-
* New: Added em in font size
|
153 |
-
* New: Sample Content Extension support
|
154 |
-
* Enhanced: Tabs color is changed, and the gap between tabs and panel is removed
|
155 |
-
* Enhanced: Allow svg file in upload option
|
156 |
-
* Fixed: Gallery option
|
157 |
-
|
158 |
-
= 1.10 =
|
159 |
-
* New: Added new options multicheck-post-types and select-post-types
|
160 |
-
* New: Added Group option
|
161 |
-
* New: Added include_fonts in Theme Customizer.
|
162 |
-
* Enhanced: Generated inline CSS now has an ID attribute.
|
163 |
-
* Enhanced: Easy Digital Downloads product checking revised.
|
164 |
-
* Enhanced: Timepicker styles.
|
165 |
-
* Enhanced: EDD option.
|
166 |
-
* Change: Footer Text should be returned not echoed.
|
167 |
-
* Change: class_exists to function_exists of googlefonts function.
|
168 |
-
* Fixed: Input tag.
|
169 |
-
|
170 |
-
= 1.9.3 =
|
171 |
-
* New: Transport parameter for overriding the Customizer transport parameter
|
172 |
-
* New: Added `enqueue` parameter for the code option
|
173 |
-
* New: Added `size` parameter to the Text option
|
174 |
-
* Change: Removed `title` parameter in admin tabs
|
175 |
-
* Fixed: Fixed bug where a blank panel was being created
|
176 |
-
* Fixed: Removed seconds, and other more precise controls in the date option.
|
177 |
-
|
178 |
-
= 1.9.2 =
|
179 |
-
* New: `tf_css_get_css_file_path_{$namespace}` filter
|
180 |
-
* Enhanced: Heading options in Customizer now look great
|
181 |
-
* Enhanced: The `css` parameter now performs live preview changes instead of reloading the page
|
182 |
-
* Enhanced: Added `inherit` values for some styles in the font option
|
183 |
-
* Enhanced: Changed some default style values in the font option to `inherit`
|
184 |
-
* Fixed: Options with a value of zero do not generate CSS properly (they wrongly reset to their default value before)
|
185 |
-
* Fixed: `getOptions` function turned non-existent keys to false
|
186 |
-
* Fixed: Existing panel names (not panel IDs) across different namespaces that match get shown in the wrong section
|
187 |
-
* Fixed: Removed remnance of a checkbox in the enable option while in the Customizer in Firefox
|
188 |
-
|
189 |
-
= 1.9.1 =
|
190 |
-
* Fixed: in some setups, saving options in a tab resets other tabs
|
191 |
-
|
192 |
-
= 1.9 =
|
193 |
-
* Major performance and speed optimizations, now is less process & memory intensive
|
194 |
-
* New `iframe` option
|
195 |
-
* New `custom` option
|
196 |
-
* New `multiple` attribute in select options for selecting multiple values
|
197 |
-
* New `desc` attribute in heading options for displaying short descriptions
|
198 |
-
* New `alpha` attribute in color options for picking rgba colors
|
199 |
-
* New `editor_options` attribute in editor options for specifying editor settings
|
200 |
-
* New `tf_admin_tab_created_{namespace}` action
|
201 |
-
* New `$titan->getOptions()` function for getting multiple options at once
|
202 |
-
* Updated Google Font list
|
203 |
-
* Heading options now generate an `id` attribute
|
204 |
-
* Now using Gulp for development and building
|
205 |
-
* Started using WordPress PHP Coding Standards
|
206 |
-
* Started unit testing. Coverage currently at 8%
|
207 |
-
* Removed initializing state which could cause duplication problems
|
208 |
-
* Bumped minimum version to 4.1
|
209 |
-
* Simplified Titan Framework checker code
|
210 |
-
* Fixed: notice for newly added options
|
211 |
-
* Fixed: upload option now uses attachment url in `livePreview` attribute
|
212 |
-
* Fixed: meta boxes now save properly for attachment post_types
|
213 |
-
* Fixed: font text-shadows
|
214 |
-
* Fixed: meta box css & js code from showing up in non-singular pages
|
215 |
-
* Fixed: stray border in enable options in the customizer
|
216 |
-
* Fixed: upload images misalign after saving in the customizer
|
217 |
-
* Removed: references to old select-google-font option
|
218 |
-
|
219 |
-
= 1.8.1 =
|
220 |
-
* Duplicated CSS rules #271
|
221 |
-
* Generated css contains duplicated declarations #232
|
222 |
-
* Add support for checking item ID #267
|
223 |
-
* Removed missing gallery since we still need to work on it bd23623
|
224 |
-
|
225 |
-
= 1.8 =
|
226 |
-
* New option: ajax-button
|
227 |
-
* Added new hooks:
|
228 |
-
* tf_done
|
229 |
-
* tf_pre_save_admin_{namespace}
|
230 |
-
* tf_save_admin_{namespace}
|
231 |
-
* tf_pre_reset_admin_{namespace}
|
232 |
-
* tf_reset_admin_{namespace}
|
233 |
-
* Added `desc` option for headers
|
234 |
-
* Removed unused tracking code
|
235 |
-
* Tweaked customizer font css
|
236 |
-
* Updated SCSSPHP to v0.0.15
|
237 |
-
* Added label for blank page/post titles for page/post options
|
238 |
-
* Updated & namespaced SCSSPHP
|
239 |
-
* Saving '0' values now work (e.g. in select options)
|
240 |
-
* Additional check to prevent scss compile of empty string
|
241 |
-
* Fixed bug where sometimes options without IDs (e.g. note) produce errors in the Customizer
|
242 |
-
* Fixed possible JS running in iframe-font-preview + empty checks for CWE-200
|
243 |
-
* getOption no longer throws a "called too early" warning and can now be called anywhere
|
244 |
-
* #240 Update class-option-font.php
|
245 |
-
* #235 Update class-option-checkbox.php
|
246 |
-
* #262 Namespace invisible class
|
247 |
-
* #264 Switch to strpos instead of preg_match
|
248 |
-
* #253 Remove timepicker from requirements
|
249 |
-
|
250 |
-
= 1.7.6 =
|
251 |
-
* The Note option can now be placed in the Customizer
|
252 |
-
* Prefixing a select value with `!` now displays the drop down value as disabled
|
253 |
-
* Added new argument `panel_desc` for panel descriptions
|
254 |
-
* Updated & namespaced EDD updater files
|
255 |
-
* Fixed bug where options with the value 0 were not properly returned
|
256 |
-
* Fixed bug where double descriptions showed up in the Customizer
|
257 |
-
* Minor XSS security fixes, shouldn't be affected really, but it's better to be safe
|
258 |
-
|
259 |
-
= 1.7.5 =
|
260 |
-
* Added `hidden` parameter for all options
|
261 |
-
* Fixed 4.1 display issues with the upload option
|
262 |
-
* Fixed an undefined notice that sometimes appears
|
263 |
-
|
264 |
-
= 1.7.4 =
|
265 |
-
* Faster SCSS parsing
|
266 |
-
* Faster loading time
|
267 |
-
* Unit parameter for number options now supported in the Theme Customizer
|
268 |
-
* Better font color option handling in Theme Customizer
|
269 |
-
* Now prevents SCSS errors from showing up
|
270 |
-
* Fixed name label issues with the enable option
|
271 |
-
* Better plugin checking method
|
272 |
-
* Plugin checker now integrates with TGM Plugin Activation
|
273 |
-
* Updated Ace
|
274 |
-
|
275 |
-
= 1.7.3 =
|
276 |
-
* Fixed bug introduced in 1.7.2 where admin options sometimes were not being saved
|
277 |
-
|
278 |
-
= 1.7.2 =
|
279 |
-
* EDD option can now check for updates all by itself (thank you julien731)
|
280 |
-
* `get_post_types` function now callable from `tf_create_options`
|
281 |
-
* Now passes theme-check (ignored `add_menu_page` error)
|
282 |
-
|
283 |
-
= 1.7.1 =
|
284 |
-
* Bug fixes for the Easy Digital Download License option
|
285 |
-
* Enhanced date option parameters
|
286 |
-
* New parameters for Theme Customizer for creating panels
|
287 |
-
|
288 |
-
= 1.7 =
|
289 |
-
* New Easy Digital Download License option (thank you julien731)
|
290 |
-
* New date option (thank you ardalann)
|
291 |
-
* Added new action tf_save_options_{namespace} which is called after saving options
|
292 |
-
* Fixed display issue with the font option in the theme customizer
|
293 |
-
* Fixed bug where empty multicheck returned an array
|
294 |
-
* Fix: customizer show_font_size & show_color
|
295 |
-
|
296 |
-
= 1.6.1 =
|
297 |
-
* Added missing files in the SVN
|
298 |
-
|
299 |
-
= 1.6 =
|
300 |
-
* New embed method (check the getting started section)
|
301 |
-
* New tf_create_options hook for creating options
|
302 |
-
* New number unit parameter
|
303 |
-
* Removed font awesome, now uses dashicons
|
304 |
-
* Added desc params to panels, tabs and meta boxes
|
305 |
-
* Added size attribute for the upload option
|
306 |
-
* Deleted Uncommon Ace Extensions
|
307 |
-
* Improve load script to meta boxes
|
308 |
-
* Lots of bug fixes
|
309 |
-
|
310 |
-
= 1.5 =
|
311 |
-
* Added German, Portuguese, Turkish and updated Italian translations
|
312 |
-
* Added `notification` and `paragraph` paramaters to the note option
|
313 |
-
* Added `include_fonts` parameter to the font option for specifying the selectable fonts
|
314 |
-
* Added `show_websafe_fonts` and `show_google_fonts` parameters to the font option
|
315 |
-
* Added `maxlength` parameter to the the text option
|
316 |
-
* Fixed Titan plugin detection code
|
317 |
-
* New more WordPress-centric styling of admin panels (special thanks to @sagarjadhav)
|
318 |
-
* A Lot of stabilization bug fixes
|
319 |
-
|
320 |
-
= 1.4.3 =
|
321 |
-
* Added a few global hooks
|
322 |
-
* Fixed missing hooks that prevented the Shortcode Extension from working
|
323 |
-
* Fixed missing HTML tags
|
324 |
-
|
325 |
-
= 1.4.2 =
|
326 |
-
* Fixed a typo
|
327 |
-
|
328 |
-
= 1.4.1 =
|
329 |
-
* Added some new hooks
|
330 |
-
* Added namespaces to all hooks
|
331 |
-
* Added meta links
|
332 |
-
* Fixed bug where font drop downs closed immediately in Firefox
|
333 |
-
* Fixed bug where getInstance did not return the same instance sometimes
|
334 |
-
* Fixed bug where the font option did not generate CSS correctly
|
335 |
-
* Fixed bug where only one Titan instance generated CSS files
|
336 |
-
* Fixed bug where CSS were being generated multiple times
|
337 |
-
* Fixed bug where option IDs in different instances caused an error
|
338 |
-
* Fixed bug where the live preview lagged a lot
|
339 |
-
|
340 |
-
= 1.4 =
|
341 |
-
* Added new Font option
|
342 |
-
* Added new Sortable option
|
343 |
-
* Fixed bug where generated CSS values aren't showing up (thanks @ardalann)
|
344 |
-
|
345 |
-
= 1.3 =
|
346 |
-
* Added Spanish translations (thanks @maperezotero)
|
347 |
-
* Added Code option that uses Ace
|
348 |
-
* No need to use the post ID when getting getOption
|
349 |
-
* createMetaBox can now accept an array in the post_type parameter
|
350 |
-
* Now using Travis CI
|
351 |
-
* Tons of bug fixes
|
352 |
-
|
353 |
-
= 1.2.1 =
|
354 |
-
* Added French translations (thanks @PunKeel)
|
355 |
-
* Added removeOption function
|
356 |
-
* Fixed bug where fonts sometimes cannot be changed
|
357 |
-
* Fixed fatal error encountered sometimes when generating CSS
|
358 |
-
* Fixed bug where other post types are unable to be saved
|
359 |
-
|
360 |
-
= 1.2 =
|
361 |
-
* Better embedding handling
|
362 |
-
* Automatic CSS generation
|
363 |
-
|
364 |
-
= 1.1.1 =
|
365 |
-
* Titan can now be embedded into themes and plugins
|
366 |
-
* Added Radio Image option
|
367 |
-
* Better layout for Google WebFont option
|
368 |
-
* Now enforcing unique option ids
|
369 |
-
* Fixed bug that shows up in fresh WP installs
|
370 |
-
|
371 |
-
= 1.1 =
|
372 |
-
* Added WYSIWYG editor option
|
373 |
-
* Added Radio Palette option
|
374 |
-
* Fixed bug where special characters in admin pages and tabs were not redirecting correctly
|
375 |
-
* Fixed minor bug where customizer options become reordered
|
376 |
-
* Minor bug fixes
|
377 |
-
|
378 |
-
= 1.0.1 - 1.0.2 =
|
379 |
-
* Added styling to the admin options
|
380 |
-
* Fixed minor debug error in options (Thanks to @Dovy)
|
381 |
-
|
382 |
-
= 1.0 =
|
383 |
-
First release
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/titan-framework-checker.php
DELETED
@@ -1,146 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This script is not used within Titan Framework itself.
|
4 |
-
*
|
5 |
-
* This script is meant to be used with your Titan Framework-dependent theme or plugin,
|
6 |
-
* so that your theme/plugin can verify whether the framework is installed.
|
7 |
-
*
|
8 |
-
* If Titan is not installed, then the script will display a notice with a link to
|
9 |
-
* Titan. If Titan is installed but not activated, it will display the appropriate notice as well.
|
10 |
-
*
|
11 |
-
* To use this script, just copy it into your theme/plugin directory then add this in the main file of your project:
|
12 |
-
*
|
13 |
-
* require_once( 'titan-framework-checker.php' );
|
14 |
-
*
|
15 |
-
* Changelog:
|
16 |
-
* v1.9
|
17 |
-
* * Simplified class
|
18 |
-
* v1.7.4
|
19 |
-
* * Now integrates with TGM Plugin Activation - uses TGM instead of displaying
|
20 |
-
* our own admin notice
|
21 |
-
* v1.7.7
|
22 |
-
* * Added filters to notices
|
23 |
-
*
|
24 |
-
* @package Titan Framework
|
25 |
-
*/
|
26 |
-
|
27 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly.
|
28 |
-
}
|
29 |
-
|
30 |
-
if ( ! class_exists( 'TitanFrameworkChecker' ) ) {
|
31 |
-
|
32 |
-
/**
|
33 |
-
* Titan Framework Checker.
|
34 |
-
*
|
35 |
-
* @since 1.6
|
36 |
-
*/
|
37 |
-
class TitanFrameworkChecker {
|
38 |
-
|
39 |
-
|
40 |
-
const SEARCH_REGEX = '/titan-framework.php/i';
|
41 |
-
const TITAN_CLASS = 'TitanFramework';
|
42 |
-
const PLUGIN_SLUG = 'titan-framework';
|
43 |
-
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Constructor, add hooks for checking for Titan Framework.
|
47 |
-
*
|
48 |
-
* @since 1.6
|
49 |
-
*/
|
50 |
-
function __construct() {
|
51 |
-
add_action( 'admin_notices', array( $this, 'display_install_or_active_notice' ), 2 );
|
52 |
-
add_action( 'tgmpa_register', array( $this, 'tgm_plugin_activation_include' ) );
|
53 |
-
}
|
54 |
-
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Checks the existence of Titan Framework and prompts the display of a notice.
|
58 |
-
*
|
59 |
-
* @since 1.6
|
60 |
-
*/
|
61 |
-
public function display_install_or_active_notice() {
|
62 |
-
|
63 |
-
// Check for TGM use, if used, let TGM do the notice.
|
64 |
-
// We do this here since perform_check() is too early.
|
65 |
-
if ( function_exists( 'tgmpa' ) ) {
|
66 |
-
return;
|
67 |
-
}
|
68 |
-
|
69 |
-
// If the plugin does not exist, throw admin notice to install.
|
70 |
-
if ( ! $this->plugin_exists() ) {
|
71 |
-
echo "<div class='error'><p><strong>"
|
72 |
-
. esc_html( apply_filters( 'titan_checker_installation_notice', __( 'Titan Framework needs to be installed.', 'default' ) ) )
|
73 |
-
. sprintf( " <a href='%s'>%s</a>",
|
74 |
-
esc_url( admin_url( 'plugin-install.php?tab=search&type=term&s=titan+framework' ) ),
|
75 |
-
esc_html( apply_filters( 'titan_checker_search_plugin_notice', __( 'Click here to search for the plugin.', 'default' ) ) )
|
76 |
-
)
|
77 |
-
. '</strong></p></div>';
|
78 |
-
|
79 |
-
// If the class doesn't exist, the plugin is inactive. Throw admin notice to activate plugin.
|
80 |
-
} else if ( ! class_exists( apply_filters( 'tf_framework_checker_titan_class', self::TITAN_CLASS ) ) ) {
|
81 |
-
echo "<div class='error'><p><strong>"
|
82 |
-
. esc_html( apply_filters( 'titan_checker_activation_notice', __( 'Titan Framework needs to be activated.', 'default' ) ) )
|
83 |
-
. sprintf( " <a href='%s'>%s</a>",
|
84 |
-
esc_url( admin_url( 'plugins.php' ) ),
|
85 |
-
esc_html( apply_filters( 'titan_checker_activate_plugin_notice', __( 'Click here to go to the plugins page and activate it.', 'default' ) ) )
|
86 |
-
)
|
87 |
-
. '</strong></p></div>';
|
88 |
-
}
|
89 |
-
}
|
90 |
-
|
91 |
-
|
92 |
-
/**
|
93 |
-
* Checks the existence of Titan Framework in the list of plugins.
|
94 |
-
* It uses the slug path of the plugin for checking.
|
95 |
-
*
|
96 |
-
* @since 1.6
|
97 |
-
*
|
98 |
-
* @return boolean True if Titan Framework is installed (even if not activated).
|
99 |
-
*/
|
100 |
-
public function plugin_exists() {
|
101 |
-
// Required function as it is only loaded in admin pages.
|
102 |
-
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
103 |
-
|
104 |
-
// Get all plugins, activated or not.
|
105 |
-
$plugins = get_plugins();
|
106 |
-
|
107 |
-
// Check plugin existence by checking if the name is registered as an array key. get_plugins collects all plugin path into arrays.
|
108 |
-
foreach ( $plugins as $slug => $plugin ) {
|
109 |
-
$search_regex = apply_filters( 'tf_framework_checker_regex', self::SEARCH_REGEX );
|
110 |
-
if ( preg_match( $search_regex, $slug, $matches ) ) {
|
111 |
-
return true;
|
112 |
-
}
|
113 |
-
}
|
114 |
-
|
115 |
-
return false;
|
116 |
-
}
|
117 |
-
|
118 |
-
|
119 |
-
/**
|
120 |
-
* Includes Titan Framework in TGM Plugin Activation if it's available.
|
121 |
-
*
|
122 |
-
* @since 1.7.4
|
123 |
-
*
|
124 |
-
* @return void
|
125 |
-
*
|
126 |
-
* @see http://tgmpluginactivation.com/
|
127 |
-
*
|
128 |
-
* @codeCoverageIgnore
|
129 |
-
*/
|
130 |
-
public function tgm_plugin_activation_include() {
|
131 |
-
if ( function_exists( 'tgmpa' ) ) {
|
132 |
-
tgmpa( array(
|
133 |
-
array(
|
134 |
-
'name' => 'Titan Framework',
|
135 |
-
'slug' => self::PLUGIN_SLUG,
|
136 |
-
'required' => true,
|
137 |
-
),
|
138 |
-
) );
|
139 |
-
}
|
140 |
-
}
|
141 |
-
}
|
142 |
-
|
143 |
-
new TitanFrameworkChecker();
|
144 |
-
|
145 |
-
|
146 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options-framework/titan-framework/titan-framework-embedder.php
DELETED
@@ -1,68 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This script is not used within Titan Framework itself.
|
4 |
-
*
|
5 |
-
* This script is meant to be used when embedding Titan Framework into your
|
6 |
-
* theme or plugin.
|
7 |
-
*
|
8 |
-
* To embed Titan Framework into your project, copy the whole Titan Framework folder
|
9 |
-
* into your project, then in your functions.php or main plugin script, do a
|
10 |
-
* require_once( 'Titan-Framework/titan-framework-embedder.php' );
|
11 |
-
*
|
12 |
-
* When done, your project will use the embedded copy of Titan Framework. When the plugin
|
13 |
-
* version is activated, that one will be used instead.
|
14 |
-
*
|
15 |
-
* For more details on embedding, read our docs:
|
16 |
-
* http://www.titanframework.net/embedding-titan-framework-in-your-project/
|
17 |
-
*
|
18 |
-
* @package Titan Framework
|
19 |
-
*/
|
20 |
-
|
21 |
-
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly.
|
22 |
-
}
|
23 |
-
|
24 |
-
if ( ! class_exists( 'TitanFrameworkEmbedder' ) ) {
|
25 |
-
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Titan Framework Embedder
|
29 |
-
*
|
30 |
-
* @since 1.6
|
31 |
-
*/
|
32 |
-
class TitanFrameworkEmbedder {
|
33 |
-
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Constructor, add hooks for embedding for Titan Framework
|
37 |
-
*
|
38 |
-
* @since 1.6
|
39 |
-
*/
|
40 |
-
function __construct() {
|
41 |
-
// Don't do anything when we're activating a plugin to prevent errors
|
42 |
-
// on redeclaring Titan classes.
|
43 |
-
if ( is_admin() ) {
|
44 |
-
if ( ! empty( $_GET['action'] ) && ! empty( $_GET['plugin'] ) ) { // Input var: okay.
|
45 |
-
if ( 'activate' === $_GET['action'] ) { // Input var: okay.
|
46 |
-
return;
|
47 |
-
}
|
48 |
-
}
|
49 |
-
}
|
50 |
-
add_action( 'after_setup_theme', array( $this, 'perform_check' ), 1 );
|
51 |
-
}
|
52 |
-
|
53 |
-
|
54 |
-
/**
|
55 |
-
* Uses Titan Framework
|
56 |
-
*
|
57 |
-
* @since 1.6
|
58 |
-
*/
|
59 |
-
public function perform_check() {
|
60 |
-
if ( class_exists( 'TitanFramework' ) ) {
|
61 |
-
return;
|
62 |
-
}
|
63 |
-
require_once( 'titan-framework.php' );
|
64 |
-
}
|
65 |
-
}
|
66 |
-
|
67 |
-
new TitanFrameworkEmbedder();
|
68 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: takanakui, freemius
|
|
3 |
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.
|
7 |
-
Stable tag: 2.8.
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
@@ -132,6 +132,14 @@ Not available at the moment
|
|
132 |
|
133 |
== Changelog ==
|
134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
= 2.8.1.8.1 =
|
136 |
* Fix! - Remove piece of premium option
|
137 |
|
@@ -142,7 +150,6 @@ Not available at the moment
|
|
142 |
= 2.8.1.7 =
|
143 |
* New! - Visual tool to identify menus and other elements to hide
|
144 |
|
145 |
-
|
146 |
= 2.8.1.6.1 =
|
147 |
* Fix! - Fix error on function that doesn't exist
|
148 |
|
3 |
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.7
|
7 |
+
Stable tag: 2.8.2
|
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 |
+
|
136 |
+
= 2.8.2 =
|
137 |
+
* Fix! - Remove metabox upgrade
|
138 |
+
* New! - New Settings Design/UX
|
139 |
+
* Improvment! - Remove metabox upgrade
|
140 |
+
* Improvment! - Initial process of removing TitanFramework
|
141 |
+
* Improvment! - Update Freemius SDK
|
142 |
+
|
143 |
= 2.8.1.8.1 =
|
144 |
* Fix! - Remove piece of premium option
|
145 |
|
150 |
= 2.8.1.7 =
|
151 |
* New! - Visual tool to identify menus and other elements to hide
|
152 |
|
|
|
153 |
= 2.8.1.6.1 =
|
154 |
* Fix! - Fix error on function that doesn't exist
|
155 |
|