Version Description
- Added: Select Image sizes for Automatic Layout.
- Fix: Some servers limit how many images can be inserted at a time.
- Fix: Various minor bug fixes.
Download this release
Release Info
Developer | chrisakelley |
Plugin | Photo Gallery by Envira – Responsive Image Gallery for WordPress |
Version | 1.5.5 |
Comparing to | |
See all releases |
Code changes from version 1.5.4 to 1.5.5
- assets/css/admin.css +598 -1
- assets/css/fancybox.css +1 -1
- assets/css/images/blank.gif +0 -0
- assets/css/images/envirabox_buttons.png +0 -0
- assets/css/images/envirabox_loading.gif +0 -0
- assets/css/images/envirabox_overlay.png +0 -0
- assets/css/images/envirabox_sprite.png +0 -0
- assets/css/images/holder.gif +0 -0
- assets/css/images/preloader.gif +0 -0
- assets/css/table.css +178 -1
- assets/fonts/envira.eot +0 -0
- assets/fonts/envira.svg +0 -0
- assets/fonts/envira.ttf +0 -0
- assets/fonts/envira.woff +0 -0
- assets/js/clipboard.js +0 -0
- assets/js/conditional-fields.js +302 -129
- assets/js/conditions.js +212 -0
- assets/js/envira.js +0 -0
- assets/js/lib/fancybox.js +1 -1
- assets/js/list.js +0 -0
- assets/js/media-edit.js +1 -1
- assets/js/media-insert.js +2 -1
- assets/js/metabox.js +10 -27
- assets/js/min/conditional-fields-min.js +8 -1
- assets/js/min/metabox-min.js +1 -1
- assets/scss/_fonts.scss +42 -0
- assets/scss/_mixins.scss +63 -0
- assets/scss/_vars.scss +34 -0
- assets/scss/addons.scss +597 -0
- assets/scss/admin.scss +678 -0
- assets/scss/editor.scss +42 -0
- assets/scss/envira.scss +1344 -0
- assets/scss/metabox.scss +1598 -0
- assets/scss/settings.scss +252 -0
- assets/scss/table.scss +181 -0
- envira-gallery-lite.php +21 -4
- includes/admin/addons.php +2 -2
- includes/admin/ajax.php +43 -66
- includes/admin/common.php +2 -10
- includes/admin/editor.php +1 -1
- includes/admin/media-view.php +4 -61
- includes/admin/media.php +1 -1
- includes/admin/metaboxes.php +65 -707
- includes/admin/partials/metabox-gallery-settings.php +1 -0
- includes/admin/partials/metabox-gallery-type.php +19 -57
- includes/admin/posttype.php +1 -1
- includes/admin/table.php +2 -9
- includes/global/Mobile_Detect.php +1458 -0
- includes/global/common.php +15 -12
- includes/global/posttype.php +1 -27
- includes/global/shortcode.php +49 -61
- languages/envira-gallery-es_ES.mo +0 -0
- languages/envira-gallery-es_ES.po +0 -0
- readme.txt +20 -15
- themes/base_dark/css/style.css +1 -0
- themes/base_dark/images/close@2x.png +0 -0
- themes/base_dark/images/left-nav.png +0 -0
- themes/base_dark/images/right-nav.png +0 -0
- themes/base_dark/scss/style.scss +400 -0
assets/css/admin.css
CHANGED
@@ -1 +1,598 @@
|
|
1 |
-
body.post-type-envira #wpcontent,body.post-type-envira_album #wpcontent{padding-left:0}body.post-type-envira .update-nag,body.post-type-envira_album .update-nag{margin-left:20px;margin-bottom:20px}body.post-type-envira .subheading,body.post-type-envira_album .subheading{background-color:#fff;height:45px;margin-left:-20px}@media (min-width: 600px) and (max-width: 767px){body.post-type-envira .subheading,body.post-type-envira_album .subheading{height:auto;padding-bottom:20px}}body.post-type-envira .subheading h1,body.post-type-envira_album .subheading h1{font-size:20px;font-weight:400;line-height:45px;margin:0 0 0 20px;padding-left:20px}body.post-type-envira div.wrap,body.post-type-envira_album div.wrap{margin:0}body.post-type-envira div.wrap>h1,body.post-type-envira div.wrap>h2,body.post-type-envira_album div.wrap>h1,body.post-type-envira_album div.wrap>h2{margin:0 0 20px 0;padding:15px 20px 10px 20px;background:#fff;font-weight:600;font-size:20px}body.post-type-envira div.wrap>h1 a.page-title-action:hover,body.post-type-envira div.wrap>h2 a.page-title-action:hover,body.post-type-envira_album div.wrap>h1 a.page-title-action:hover,body.post-type-envira_album div.wrap>h2 a.page-title-action:hover{background:#95dc5e;border-color:#95dc5e;color:#fff}body.post-type-envira div.wrap>h1 span.subtitle,body.post-type-envira div.wrap>h2 span.subtitle,body.post-type-envira_album div.wrap>h1 span.subtitle,body.post-type-envira_album div.wrap>h2 span.subtitle{float:right}body.post-type-envira div.wrap .envira-tab,body.post-type-envira_album div.wrap .envira-tab{display:none}body.post-type-envira div.wrap .envira-tab.envira-active,body.post-type-envira_album div.wrap .envira-tab.envira-active{display:block}body.post-type-envira div.wrap div.envira-code,body.post-type-envira_album div.wrap div.envira-code{position:relative;margin:0 0 10px 0}body.post-type-envira div.wrap div.envira-code:after,body.post-type-envira_album div.wrap div.envira-code:after{content:"";display:table;clear:both}body.post-type-envira div.wrap div.envira-code code,body.post-type-envira_album div.wrap div.envira-code code{display:block;font-size:11px;padding:5px 20px 5px 5px}body.post-type-envira div.wrap div.envira-code a.envira-clipboard,body.post-type-envira_album div.wrap div.envira-code a.envira-clipboard{position:absolute;top:5px;right:5px;color:#23282d}body.post-type-envira div.wrap div.envira-code a.envira-clipboard span,body.post-type-envira_album div.wrap div.envira-code a.envira-clipboard span{display:block;text-indent:-9999px}body.post-type-envira .button,body.post-type-envira_album .button{-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border-radius:2px;padding:0 16px 1px;height:33px;line-height:30px;text-decoration:none;text-shadow:none;font-weight:600;-webkit-box-shadow:none;box-shadow:none}body.post-type-envira .button.button-small,body.post-type-envira_album .button.button-small{padding:0 8px 1px;line-height:22px;height:24px}body.post-type-envira .button.button-x-large,body.post-type-envira_album .button.button-x-large{padding:0 32px 1px;line-height:48px;height:50px;font-size:18px;text-transform:uppercase}@media (min-width: 600px) and (max-width: 767px){body.post-type-envira .button,body.post-type-envira_album .button{margin-top:10px}}body.post-type-envira .button.show-settings,body.post-type-envira_album .button.show-settings{height:auto}body.post-type-envira .button.button-primary,body.post-type-envira_album .button.button-primary{background:#7cc048;border-color:#7cc048;-webkit-box-shadow:none;box-shadow:none;color:#fff}body.post-type-envira .button.button-primary:hover,body.post-type-envira_album .button.button-primary:hover{background:#95dc5e;border-color:#95dc5e;color:#fff}body.post-type-envira .button.button-danger,body.post-type-envira_album .button.button-danger{background:#e02626;border-color:#e02626;-webkit-box-shadow:none;box-shadow:none;color:#fff}body.post-type-envira .button.button-danger:hover,body.post-type-envira_album .button.button-danger:hover{background:#f85959;border-color:#f85959;color:#fff}body.post-type-envira div#TB_window div.wrap,body.post-type-envira_album div#TB_window div.wrap{margin:10px 20px 0 2px}#envira-header-temp{position:relative}#envira-header{background-color:#7cc048;height:120px}@media (max-width: 599px){#envira-header{padding-top:46px}}#envira-header h1.envira-logo{margin:0;line-height:120px;margin-left:20px}#envira-header h1.envira-logo img{max-width:339px;height:auto;width:90%}@media (min-width: 600px) and (max-width: 767px){#envira-header h1.envira-logo img{width:90%}}@media (max-width: 599px){#wpbody{padding-top:0}}.envira-notice{position:relative;margin:0 0 20px 0;padding:20px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border-radius:2px}.envira-notice p.envira-intro{border:none !important;margin:0 0 20px 0 !important;padding:0 !important}.envira-notice .notice-dismiss{top:10px;right:10px;color:#fff}.envira-notice .notice-dismiss:before{color:#fff;width:26px;height:26px;font-size:22px}.envira-notice.success{background:#7cc048;color:#fff;border:none}.envira-notice.success .button.button-primary{background-color:#95dc5e;border-color:#95dc5e}.envira-notice.warning{background:#fcf8e3;border:1px solid #faebcc}.envira-notice.warning .notice-dismiss{color:#000}.envira-notice.warning .notice-dismiss:before{color:#000}.envira-notice.error{border-top:1px solid #dc3232;border-right:1px solid #dc3232;border-bottom:1px solid #dc3232}body.post-type-envira.edit-php div.wrap,body.post-type-envira.post-new-php div.wrap,body.post-type-envira.post-php div.wrap,body.post-type-envira_album.edit-php div.wrap,body.post-type-envira_album.post-new-php div.wrap,body.post-type-envira_album.post-php div.wrap{margin:0}body.post-type-envira.edit-php div.wrap>div.error,body.post-type-envira.edit-php div.wrap>div.notice,body.post-type-envira.edit-php div.wrap>div.updated,body.post-type-envira.post-new-php div.wrap>div.error,body.post-type-envira.post-new-php div.wrap>div.notice,body.post-type-envira.post-new-php div.wrap>div.updated,body.post-type-envira.post-php div.wrap>div.error,body.post-type-envira.post-php div.wrap>div.notice,body.post-type-envira.post-php div.wrap>div.updated,body.post-type-envira_album.edit-php div.wrap>div.error,body.post-type-envira_album.edit-php div.wrap>div.notice,body.post-type-envira_album.edit-php div.wrap>div.updated,body.post-type-envira_album.post-new-php div.wrap>div.error,body.post-type-envira_album.post-new-php div.wrap>div.notice,body.post-type-envira_album.post-new-php div.wrap>div.updated,body.post-type-envira_album.post-php div.wrap>div.error,body.post-type-envira_album.post-php div.wrap>div.notice,body.post-type-envira_album.post-php div.wrap>div.updated{margin-left:20px;margin-right:20px}body.post-type-envira.edit-tags-php div.wrap,body.post-type-envira.taxonomy-envira-tag div.wrap{margin:0}body.post-type-envira.edit-tags-php div.wrap>div.error,body.post-type-envira.edit-tags-php div.wrap>div.notice,body.post-type-envira.edit-tags-php div.wrap>div.updated,body.post-type-envira.taxonomy-envira-tag div.wrap>div.error,body.post-type-envira.taxonomy-envira-tag div.wrap>div.notice,body.post-type-envira.taxonomy-envira-tag div.wrap>div.updated{margin-left:20px;margin-right:20px}body.post-type-envira.edit-tags-php div.wrap form.search-form,body.post-type-envira.edit-tags-php div.wrap form#edittag,body.post-type-envira.edit-tags-php div.wrap #col-container,body.post-type-envira.taxonomy-envira-tag div.wrap form.search-form,body.post-type-envira.taxonomy-envira-tag div.wrap form#edittag,body.post-type-envira.taxonomy-envira-tag div.wrap #col-container{margin:0 20px}body.post-type-envira.edit-tags-php div.wrap .button,body.post-type-envira.taxonomy-envira-tag div.wrap .button{height:28px;line-height:26px}body.post-type-envira div.wrap{margin:0 20px}.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor div.envira-gallery-error{position:absolute;top:50px;left:0;right:300px}.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment{width:20%}.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment div.attachment-preview div.thumbnail img{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;opacity:0.2}.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment div.attachment-preview div.thumbnail strong{position:absolute;z-index:2;height:50%;top:0;left:0;right:0;padding:10px;text-align:center;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:bottom;background:rgba(0,0,0,0.07);text-shadow:1px 1px #ddd}.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment div.attachment-preview div.thumbnail strong span{display:block;position:absolute;bottom:10px;left:0;right:0;padding:0 10px;text-align:center}.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment div.attachment-preview div.thumbnail code{position:absolute;z-index:2;height:50%;bottom:0;left:0;right:0;padding:10px;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:middle;text-shadow:1px 1px #ddd}.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor div.media-sidebar div.settings .name{text-align:left}@media screen and (max-width: 640px){body.post-type-envira div.wrap h1,body.post-type-envira_album div.wrap h1{padding-bottom:40px}body.post-type-envira div.wrap h1 span.subtitle,body.post-type-envira_album div.wrap h1 span.subtitle{clear:both;width:100%;padding:0}}@media screen and (max-width: 340px){body.post-type-envira div.wrap h1,body.post-type-envira_album div.wrap h1{text-align:center}body.post-type-envira div.wrap h1 a.page-title-action,body.post-type-envira_album div.wrap h1 a.page-title-action{display:block;text-align:center;margin:10px 0 0 0}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
admin.css loads on all Envira Administration Screens:
|
3 |
+
- WP_List_Tables
|
4 |
+
- Add New
|
5 |
+
- Albums
|
6 |
+
- Settings
|
7 |
+
- NextGEN Import
|
8 |
+
|
9 |
+
Any styles that will be used by all of the above (or are useful to be included
|
10 |
+
for future use) should be added to this file:
|
11 |
+
- Header and Logo
|
12 |
+
- WordPress Red Button
|
13 |
+
========================================================================== */
|
14 |
+
/* ==========================================================================
|
15 |
+
Imports
|
16 |
+
========================================================================== */
|
17 |
+
/* ==========================================================================
|
18 |
+
Variables SCSS
|
19 |
+
========================================================================== */
|
20 |
+
/* ==========================================================================
|
21 |
+
Mixins
|
22 |
+
========================================================================== */
|
23 |
+
/**
|
24 |
+
* Media Query
|
25 |
+
*/
|
26 |
+
/**
|
27 |
+
* Border-Radius
|
28 |
+
*/
|
29 |
+
body.post-type-envira,
|
30 |
+
body.post-type-envira_album {
|
31 |
+
/**
|
32 |
+
* Subheading
|
33 |
+
*/
|
34 |
+
/**
|
35 |
+
* Wrapper
|
36 |
+
*/
|
37 |
+
/* ==========================================================================
|
38 |
+
Button Styles
|
39 |
+
========================================================================== */
|
40 |
+
/* ==========================================================================
|
41 |
+
Thickbox (used for choosing a Default Gallery/Album)
|
42 |
+
========================================================================== */ }
|
43 |
+
body.post-type-envira #wpcontent,
|
44 |
+
body.post-type-envira_album #wpcontent {
|
45 |
+
padding-left: 0; }
|
46 |
+
body.post-type-envira .update-nag,
|
47 |
+
body.post-type-envira_album .update-nag {
|
48 |
+
margin-left: 20px;
|
49 |
+
margin-bottom: 20px; }
|
50 |
+
body.post-type-envira .subheading,
|
51 |
+
body.post-type-envira_album .subheading {
|
52 |
+
background-color: #ffffff;
|
53 |
+
height: 45px;
|
54 |
+
margin-left: -20px; }
|
55 |
+
@media (min-width: 600px) and (max-width: 767px) {
|
56 |
+
body.post-type-envira .subheading,
|
57 |
+
body.post-type-envira_album .subheading {
|
58 |
+
height: auto;
|
59 |
+
padding-bottom: 20px; } }
|
60 |
+
body.post-type-envira .subheading h1,
|
61 |
+
body.post-type-envira_album .subheading h1 {
|
62 |
+
font-size: 20px;
|
63 |
+
font-weight: 400;
|
64 |
+
line-height: 45px;
|
65 |
+
margin: 0 0 0 20px;
|
66 |
+
padding-left: 20px; }
|
67 |
+
body.post-type-envira div.wrap,
|
68 |
+
body.post-type-envira_album div.wrap {
|
69 |
+
margin: 0;
|
70 |
+
/**
|
71 |
+
* Page Title Action (i.e. Add New)
|
72 |
+
*/
|
73 |
+
/**
|
74 |
+
* Screen Title
|
75 |
+
* - h1 used from WordPress 4.3+
|
76 |
+
* - h2 used in WordPress 4.2-
|
77 |
+
*/
|
78 |
+
/**
|
79 |
+
* Tab Panels
|
80 |
+
* - By default, they're hidden and the .envira-active class displays them
|
81 |
+
*/
|
82 |
+
/**
|
83 |
+
* Code Snippets
|
84 |
+
*/ }
|
85 |
+
body.post-type-envira div.wrap a.page-title-action,
|
86 |
+
body.post-type-envira_album div.wrap a.page-title-action {
|
87 |
+
position: relative;
|
88 |
+
top: -55px;
|
89 |
+
left: 185px;
|
90 |
+
/* display: none; */
|
91 |
+
/* Trying To Prevent The "Shift" Upload Page Load Before JS can move the button */
|
92 |
+
/* margin-left: 10px; */
|
93 |
+
/* Change WordPress 4.7 */ }
|
94 |
+
body.post-type-envira div.wrap a.page-title-action:hover,
|
95 |
+
body.post-type-envira_album div.wrap a.page-title-action:hover {
|
96 |
+
background: #95dc5e;
|
97 |
+
border-color: #95dc5e;
|
98 |
+
color: #ffffff; }
|
99 |
+
body.post-type-envira div.wrap > h1,
|
100 |
+
body.post-type-envira div.wrap > h2,
|
101 |
+
body.post-type-envira_album div.wrap > h1,
|
102 |
+
body.post-type-envira_album div.wrap > h2 {
|
103 |
+
margin: 0 0 20px 0;
|
104 |
+
padding: 15px 20px 10px 20px;
|
105 |
+
background: #ffffff;
|
106 |
+
font-weight: 600;
|
107 |
+
font-size: 20px;
|
108 |
+
width: 100%;
|
109 |
+
/**
|
110 |
+
* Page Title Action (i.e. Add New)
|
111 |
+
*/
|
112 |
+
/**
|
113 |
+
* Subtitle (search results title)
|
114 |
+
*/ }
|
115 |
+
body.post-type-envira div.wrap > h1 a.page-title-action,
|
116 |
+
body.post-type-envira div.wrap > h2 a.page-title-action,
|
117 |
+
body.post-type-envira_album div.wrap > h1 a.page-title-action,
|
118 |
+
body.post-type-envira_album div.wrap > h2 a.page-title-action {
|
119 |
+
top: -3px;
|
120 |
+
left: auto;
|
121 |
+
/* display: none; */
|
122 |
+
/* Trying To Prevent The "Shift" Upload Page Load Before JS can move the button */
|
123 |
+
/* margin-left: 10px; */
|
124 |
+
/* Change WordPress 4.7 */ }
|
125 |
+
body.post-type-envira div.wrap > h1 a.page-title-action:hover,
|
126 |
+
body.post-type-envira div.wrap > h2 a.page-title-action:hover,
|
127 |
+
body.post-type-envira_album div.wrap > h1 a.page-title-action:hover,
|
128 |
+
body.post-type-envira_album div.wrap > h2 a.page-title-action:hover {
|
129 |
+
background: #95dc5e;
|
130 |
+
border-color: #95dc5e;
|
131 |
+
color: #ffffff; }
|
132 |
+
body.post-type-envira div.wrap > h1 span.subtitle,
|
133 |
+
body.post-type-envira div.wrap > h2 span.subtitle,
|
134 |
+
body.post-type-envira_album div.wrap > h1 span.subtitle,
|
135 |
+
body.post-type-envira_album div.wrap > h2 span.subtitle {
|
136 |
+
float: right; }
|
137 |
+
body.post-type-envira div.wrap .envira-tab,
|
138 |
+
body.post-type-envira_album div.wrap .envira-tab {
|
139 |
+
display: none;
|
140 |
+
/**
|
141 |
+
* Active Tab
|
142 |
+
*/ }
|
143 |
+
body.post-type-envira div.wrap .envira-tab.envira-active,
|
144 |
+
body.post-type-envira_album div.wrap .envira-tab.envira-active {
|
145 |
+
display: block; }
|
146 |
+
body.post-type-envira div.wrap div.envira-code,
|
147 |
+
body.post-type-envira_album div.wrap div.envira-code {
|
148 |
+
position: relative;
|
149 |
+
margin: 0 0 10px 0;
|
150 |
+
/**
|
151 |
+
* Clearfix
|
152 |
+
*/
|
153 |
+
/**
|
154 |
+
* Copy to Clipboard
|
155 |
+
*/ }
|
156 |
+
body.post-type-envira div.wrap div.envira-code:after,
|
157 |
+
body.post-type-envira_album div.wrap div.envira-code:after {
|
158 |
+
content: "";
|
159 |
+
display: table;
|
160 |
+
clear: both; }
|
161 |
+
body.post-type-envira div.wrap div.envira-code code,
|
162 |
+
body.post-type-envira_album div.wrap div.envira-code code {
|
163 |
+
display: block;
|
164 |
+
font-size: 11px;
|
165 |
+
padding: 5px 20px 5px 5px; }
|
166 |
+
body.post-type-envira div.wrap div.envira-code a.envira-clipboard,
|
167 |
+
body.post-type-envira_album div.wrap div.envira-code a.envira-clipboard {
|
168 |
+
position: absolute;
|
169 |
+
top: 5px;
|
170 |
+
right: 5px;
|
171 |
+
color: #23282d; }
|
172 |
+
body.post-type-envira div.wrap div.envira-code a.envira-clipboard span,
|
173 |
+
body.post-type-envira_album div.wrap div.envira-code a.envira-clipboard span {
|
174 |
+
display: block;
|
175 |
+
text-indent: -9999px; }
|
176 |
+
body.post-type-envira .button,
|
177 |
+
body.post-type-envira_album .button {
|
178 |
+
-webkit-border-radius: 2px;
|
179 |
+
-moz-border-radius: 2px;
|
180 |
+
-o-border-radius: 2px;
|
181 |
+
border-radius: 2px;
|
182 |
+
padding: 0 16px 1px;
|
183 |
+
height: 33px;
|
184 |
+
line-height: 30px;
|
185 |
+
text-decoration: none;
|
186 |
+
text-shadow: none;
|
187 |
+
font-weight: 600;
|
188 |
+
-webkit-box-shadow: none;
|
189 |
+
box-shadow: none;
|
190 |
+
/**
|
191 |
+
* Small
|
192 |
+
*/
|
193 |
+
/**
|
194 |
+
* Extra Large
|
195 |
+
* (.button-large is used on publish actions in WordPress, so we don't want to affect that)
|
196 |
+
*/
|
197 |
+
/**
|
198 |
+
* Screen Options
|
199 |
+
* - Don't set a height
|
200 |
+
*/
|
201 |
+
/**
|
202 |
+
* Green Button
|
203 |
+
* - Replaces WordPress' default primary button style
|
204 |
+
*/
|
205 |
+
/**
|
206 |
+
* Red Button
|
207 |
+
*/ }
|
208 |
+
body.post-type-envira .button.button-small,
|
209 |
+
body.post-type-envira_album .button.button-small {
|
210 |
+
padding: 0 8px 1px;
|
211 |
+
line-height: 22px;
|
212 |
+
height: 24px; }
|
213 |
+
body.post-type-envira .button.button-x-large,
|
214 |
+
body.post-type-envira_album .button.button-x-large {
|
215 |
+
padding: 0 32px 1px;
|
216 |
+
line-height: 48px;
|
217 |
+
height: 50px;
|
218 |
+
font-size: 18px;
|
219 |
+
text-transform: uppercase; }
|
220 |
+
@media (min-width: 600px) and (max-width: 767px) {
|
221 |
+
body.post-type-envira .button,
|
222 |
+
body.post-type-envira_album .button {
|
223 |
+
margin-top: 10px; } }
|
224 |
+
body.post-type-envira .button.show-settings,
|
225 |
+
body.post-type-envira_album .button.show-settings {
|
226 |
+
height: auto; }
|
227 |
+
body.post-type-envira .button.button-primary,
|
228 |
+
body.post-type-envira_album .button.button-primary {
|
229 |
+
background: #7cc048;
|
230 |
+
border-color: #7cc048;
|
231 |
+
-webkit-box-shadow: none;
|
232 |
+
box-shadow: none;
|
233 |
+
color: #ffffff; }
|
234 |
+
body.post-type-envira .button.button-primary:hover,
|
235 |
+
body.post-type-envira_album .button.button-primary:hover {
|
236 |
+
background: #95dc5e;
|
237 |
+
border-color: #95dc5e;
|
238 |
+
color: #ffffff; }
|
239 |
+
body.post-type-envira .button.button-danger,
|
240 |
+
body.post-type-envira_album .button.button-danger {
|
241 |
+
background: #e02626;
|
242 |
+
border-color: #e02626;
|
243 |
+
-webkit-box-shadow: none;
|
244 |
+
box-shadow: none;
|
245 |
+
color: #ffffff; }
|
246 |
+
body.post-type-envira .button.button-danger:hover,
|
247 |
+
body.post-type-envira_album .button.button-danger:hover {
|
248 |
+
background: #f85959;
|
249 |
+
border-color: #f85959;
|
250 |
+
color: #ffffff; }
|
251 |
+
body.post-type-envira div#TB_window div.wrap,
|
252 |
+
body.post-type-envira_album div#TB_window div.wrap {
|
253 |
+
margin: 10px 20px 0 2px; }
|
254 |
+
|
255 |
+
/* ==========================================================================
|
256 |
+
Header
|
257 |
+
========================================================================== */
|
258 |
+
#envira-header-temp {
|
259 |
+
position: relative; }
|
260 |
+
|
261 |
+
#envira-header {
|
262 |
+
background-color: #7cc048;
|
263 |
+
height: 120px; }
|
264 |
+
@media (max-width: 599px) {
|
265 |
+
#envira-header {
|
266 |
+
padding-top: 46px; } }
|
267 |
+
#envira-header h1.envira-logo {
|
268 |
+
margin: 0;
|
269 |
+
line-height: 120px;
|
270 |
+
margin-left: 20px; }
|
271 |
+
#envira-header h1.envira-logo img {
|
272 |
+
/**
|
273 |
+
* Image width and height (image is 2x so this ensures it displays correctly)
|
274 |
+
*/
|
275 |
+
max-width: 339px;
|
276 |
+
height: auto;
|
277 |
+
width: 90%;
|
278 |
+
/**
|
279 |
+
* Responsive - ensure the logo doesn't exceed the header dimensions
|
280 |
+
*/ }
|
281 |
+
@media (min-width: 600px) and (max-width: 767px) {
|
282 |
+
#envira-header h1.envira-logo img {
|
283 |
+
width: 90%; } }
|
284 |
+
|
285 |
+
@media (max-width: 599px) {
|
286 |
+
#wpbody {
|
287 |
+
padding-top: 0; } }
|
288 |
+
|
289 |
+
body.post-type-envira_album div.wrap {
|
290 |
+
/**
|
291 |
+
* Page Title Action (i.e. Add New)
|
292 |
+
*/ }
|
293 |
+
body.post-type-envira_album div.wrap a.page-title-action {
|
294 |
+
left: 180px !important; }
|
295 |
+
body.post-type-envira_album div.wrap > h1 a.page-title-action,
|
296 |
+
body.post-type-envira_album div.wrap > h2 a.page-title-action {
|
297 |
+
top: -3px !important;
|
298 |
+
left: auto !important; }
|
299 |
+
|
300 |
+
body.post-php.post-type-envira_album div.wrap {
|
301 |
+
/**
|
302 |
+
* Page Title Action (i.e. Add New)
|
303 |
+
*/ }
|
304 |
+
body.post-php.post-type-envira_album div.wrap a.page-title-action {
|
305 |
+
left: 200px !important; }
|
306 |
+
body.post-php.post-type-envira_album div.wrap > h1 a.page-title-action,
|
307 |
+
body.post-php.post-type-envira_album div.wrap > h2 a.page-title-action {
|
308 |
+
top: -3px !important;
|
309 |
+
left: auto !important; }
|
310 |
+
|
311 |
+
body.post-php.post-type-envira div.wrap {
|
312 |
+
/**
|
313 |
+
* Page Title Action (i.e. Add New)
|
314 |
+
*/ }
|
315 |
+
body.post-php.post-type-envira div.wrap a.page-title-action {
|
316 |
+
left: 215px !important; }
|
317 |
+
body.post-php.post-type-envira div.wrap > h1 a.page-title-action,
|
318 |
+
body.post-php.post-type-envira div.wrap > h2 a.page-title-action {
|
319 |
+
top: -3px !important;
|
320 |
+
left: auto !important; }
|
321 |
+
|
322 |
+
/* ==========================================================================
|
323 |
+
Inline Notices
|
324 |
+
- These are Envira-specific notices with custom styling for e.g. Instagram oAuth,
|
325 |
+
upgrade / upsells.
|
326 |
+
========================================================================== */
|
327 |
+
.envira-notice {
|
328 |
+
position: relative;
|
329 |
+
margin: 0 0 20px 0;
|
330 |
+
padding: 20px;
|
331 |
+
-webkit-border-radius: 2px;
|
332 |
+
-moz-border-radius: 2px;
|
333 |
+
-o-border-radius: 2px;
|
334 |
+
border-radius: 2px;
|
335 |
+
/**
|
336 |
+
* Heading
|
337 |
+
*/
|
338 |
+
/**
|
339 |
+
* Close Button
|
340 |
+
*/
|
341 |
+
/**
|
342 |
+
* Success
|
343 |
+
*/
|
344 |
+
/**
|
345 |
+
* Warning
|
346 |
+
*/
|
347 |
+
/**
|
348 |
+
* Error
|
349 |
+
*/ }
|
350 |
+
.envira-notice p.envira-intro {
|
351 |
+
border: none !important;
|
352 |
+
margin: 0 0 20px 0 !important;
|
353 |
+
padding: 0 !important; }
|
354 |
+
.envira-notice .notice-dismiss {
|
355 |
+
top: 10px;
|
356 |
+
right: 10px;
|
357 |
+
color: #ffffff; }
|
358 |
+
.envira-notice .notice-dismiss:before {
|
359 |
+
color: #ffffff;
|
360 |
+
width: 26px;
|
361 |
+
height: 26px;
|
362 |
+
font-size: 22px; }
|
363 |
+
.envira-notice.success {
|
364 |
+
background: #7cc048;
|
365 |
+
color: #ffffff;
|
366 |
+
border: none;
|
367 |
+
/**
|
368 |
+
* Button background color needs to be adjusted so it displays over the green background
|
369 |
+
* of the success message
|
370 |
+
*/ }
|
371 |
+
.envira-notice.success .button.button-primary {
|
372 |
+
background-color: #95dc5e;
|
373 |
+
border-color: #95dc5e; }
|
374 |
+
.envira-notice.warning {
|
375 |
+
background: #fcf8e3;
|
376 |
+
border: 1px solid #faebcc; }
|
377 |
+
.envira-notice.warning .notice-dismiss {
|
378 |
+
color: #000000; }
|
379 |
+
.envira-notice.warning .notice-dismiss:before {
|
380 |
+
color: #000000; }
|
381 |
+
.envira-notice.error {
|
382 |
+
border-top: 1px solid #dc3232;
|
383 |
+
border-right: 1px solid #dc3232;
|
384 |
+
border-bottom: 1px solid #dc3232; }
|
385 |
+
|
386 |
+
/* ==========================================================================
|
387 |
+
Table, Add, Edit Screens
|
388 |
+
========================================================================== */
|
389 |
+
body.post-type-envira.edit-php div.wrap,
|
390 |
+
body.post-type-envira.post-new-php div.wrap,
|
391 |
+
body.post-type-envira.post-php div.wrap,
|
392 |
+
body.post-type-envira_album.edit-php div.wrap,
|
393 |
+
body.post-type-envira_album.post-new-php div.wrap,
|
394 |
+
body.post-type-envira_album.post-php div.wrap {
|
395 |
+
/**
|
396 |
+
* Remove the margin on the wrapper
|
397 |
+
*/
|
398 |
+
margin: 0;
|
399 |
+
/**
|
400 |
+
* Add margin to notices
|
401 |
+
*/ }
|
402 |
+
body.post-type-envira.edit-php div.wrap > div.error,
|
403 |
+
body.post-type-envira.edit-php div.wrap > div.notice,
|
404 |
+
body.post-type-envira.edit-php div.wrap > div.updated,
|
405 |
+
body.post-type-envira.post-new-php div.wrap > div.error,
|
406 |
+
body.post-type-envira.post-new-php div.wrap > div.notice,
|
407 |
+
body.post-type-envira.post-new-php div.wrap > div.updated,
|
408 |
+
body.post-type-envira.post-php div.wrap > div.error,
|
409 |
+
body.post-type-envira.post-php div.wrap > div.notice,
|
410 |
+
body.post-type-envira.post-php div.wrap > div.updated,
|
411 |
+
body.post-type-envira_album.edit-php div.wrap > div.error,
|
412 |
+
body.post-type-envira_album.edit-php div.wrap > div.notice,
|
413 |
+
body.post-type-envira_album.edit-php div.wrap > div.updated,
|
414 |
+
body.post-type-envira_album.post-new-php div.wrap > div.error,
|
415 |
+
body.post-type-envira_album.post-new-php div.wrap > div.notice,
|
416 |
+
body.post-type-envira_album.post-new-php div.wrap > div.updated,
|
417 |
+
body.post-type-envira_album.post-php div.wrap > div.error,
|
418 |
+
body.post-type-envira_album.post-php div.wrap > div.notice,
|
419 |
+
body.post-type-envira_album.post-php div.wrap > div.updated {
|
420 |
+
margin-left: 20px;
|
421 |
+
margin-right: 20px; }
|
422 |
+
|
423 |
+
/* ==========================================================================
|
424 |
+
Taxonomy Screens
|
425 |
+
========================================================================== */
|
426 |
+
body.post-type-envira.edit-tags-php div.wrap,
|
427 |
+
body.post-type-envira.taxonomy-envira-tag div.wrap {
|
428 |
+
margin: 0;
|
429 |
+
/**
|
430 |
+
* Add margin to notices
|
431 |
+
*/
|
432 |
+
/**
|
433 |
+
* Reduce our global custom button sizes so they align with inputs
|
434 |
+
*/ }
|
435 |
+
body.post-type-envira.edit-tags-php div.wrap > div.error,
|
436 |
+
body.post-type-envira.edit-tags-php div.wrap > div.notice,
|
437 |
+
body.post-type-envira.edit-tags-php div.wrap > div.updated,
|
438 |
+
body.post-type-envira.taxonomy-envira-tag div.wrap > div.error,
|
439 |
+
body.post-type-envira.taxonomy-envira-tag div.wrap > div.notice,
|
440 |
+
body.post-type-envira.taxonomy-envira-tag div.wrap > div.updated {
|
441 |
+
margin-left: 20px;
|
442 |
+
margin-right: 20px; }
|
443 |
+
body.post-type-envira.edit-tags-php div.wrap form.search-form,
|
444 |
+
body.post-type-envira.edit-tags-php div.wrap form#edittag,
|
445 |
+
body.post-type-envira.edit-tags-php div.wrap #col-container,
|
446 |
+
body.post-type-envira.taxonomy-envira-tag div.wrap form.search-form,
|
447 |
+
body.post-type-envira.taxonomy-envira-tag div.wrap form#edittag,
|
448 |
+
body.post-type-envira.taxonomy-envira-tag div.wrap #col-container {
|
449 |
+
/**
|
450 |
+
* Re-establish the left and right margins, so there's spacing between the Admin Menu
|
451 |
+
* and the content
|
452 |
+
*/
|
453 |
+
margin: 0 20px; }
|
454 |
+
body.post-type-envira.edit-tags-php div.wrap .button,
|
455 |
+
body.post-type-envira.taxonomy-envira-tag div.wrap .button {
|
456 |
+
height: 28px;
|
457 |
+
line-height: 26px; }
|
458 |
+
|
459 |
+
/* ==========================================================================
|
460 |
+
Third Party Screens
|
461 |
+
========================================================================== */
|
462 |
+
body.post-type-envira div.wrap {
|
463 |
+
/**
|
464 |
+
* Re-establish the left and right margins, so there's spacing between the Admin Menu
|
465 |
+
* and the content for any third party plugins which add sections / pages within Envira
|
466 |
+
*/
|
467 |
+
margin: 0 20px; }
|
468 |
+
|
469 |
+
/* ==========================================================================
|
470 |
+
Gallery / Album Selection Media Modal
|
471 |
+
========================================================================== */
|
472 |
+
.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor {
|
473 |
+
/**
|
474 |
+
* Error
|
475 |
+
* - Position below the search bar
|
476 |
+
*/
|
477 |
+
/**
|
478 |
+
* Grid
|
479 |
+
*/
|
480 |
+
/**
|
481 |
+
* Sidebar
|
482 |
+
*/ }
|
483 |
+
.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor div.envira-gallery-error {
|
484 |
+
position: absolute;
|
485 |
+
top: 50px;
|
486 |
+
left: 0;
|
487 |
+
right: 300px; }
|
488 |
+
.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment {
|
489 |
+
width: 20%; }
|
490 |
+
.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment div.attachment-preview div.thumbnail {
|
491 |
+
/**
|
492 |
+
* Thumbnail Image
|
493 |
+
*/
|
494 |
+
/**
|
495 |
+
* Title
|
496 |
+
*/
|
497 |
+
/**
|
498 |
+
* Shortcode
|
499 |
+
*/ }
|
500 |
+
.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment div.attachment-preview div.thumbnail img {
|
501 |
+
position: absolute;
|
502 |
+
z-index: 1;
|
503 |
+
top: 0;
|
504 |
+
left: 0;
|
505 |
+
width: 100%;
|
506 |
+
height: 100%;
|
507 |
+
opacity: 0.2; }
|
508 |
+
.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment div.attachment-preview div.thumbnail strong {
|
509 |
+
position: absolute;
|
510 |
+
z-index: 2;
|
511 |
+
height: 50%;
|
512 |
+
top: 0;
|
513 |
+
left: 0;
|
514 |
+
right: 0;
|
515 |
+
padding: 10px;
|
516 |
+
text-align: center;
|
517 |
+
overflow: hidden;
|
518 |
+
-webkit-box-sizing: border-box;
|
519 |
+
-moz-box-sizing: border-box;
|
520 |
+
box-sizing: border-box;
|
521 |
+
vertical-align: bottom;
|
522 |
+
background: rgba(0, 0, 0, 0.07);
|
523 |
+
text-shadow: 1px 1px #ddd; }
|
524 |
+
.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment div.attachment-preview div.thumbnail strong span {
|
525 |
+
display: block;
|
526 |
+
position: absolute;
|
527 |
+
bottom: 10px;
|
528 |
+
left: 0;
|
529 |
+
right: 0;
|
530 |
+
padding: 0 10px;
|
531 |
+
text-align: center; }
|
532 |
+
.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor ul.attachments li.attachment div.attachment-preview div.thumbnail code {
|
533 |
+
position: absolute;
|
534 |
+
z-index: 2;
|
535 |
+
height: 50%;
|
536 |
+
bottom: 0;
|
537 |
+
left: 0;
|
538 |
+
right: 0;
|
539 |
+
padding: 10px;
|
540 |
+
text-align: center;
|
541 |
+
-webkit-box-sizing: border-box;
|
542 |
+
-moz-box-sizing: border-box;
|
543 |
+
box-sizing: border-box;
|
544 |
+
vertical-align: middle;
|
545 |
+
text-shadow: 1px 1px #ddd; }
|
546 |
+
.media-modal .media-modal-content .media-frame-content .attachments-browser.envira-gallery-editor div.media-sidebar div.settings .name {
|
547 |
+
text-align: left; }
|
548 |
+
|
549 |
+
/* ==========================================================================
|
550 |
+
Responsive
|
551 |
+
========================================================================== */
|
552 |
+
@media screen and (max-width: 640px) {
|
553 |
+
body.post-type-envira,
|
554 |
+
body.post-type-envira_album {
|
555 |
+
/**
|
556 |
+
* Wrapper
|
557 |
+
*/ }
|
558 |
+
body.post-type-envira div.wrap,
|
559 |
+
body.post-type-envira_album div.wrap {
|
560 |
+
/**
|
561 |
+
* Screen Title
|
562 |
+
*/ }
|
563 |
+
body.post-type-envira div.wrap h1,
|
564 |
+
body.post-type-envira_album div.wrap h1 {
|
565 |
+
/**
|
566 |
+
* Allow space for the "Search results for..." text to display, when searching
|
567 |
+
*/
|
568 |
+
padding-bottom: 40px;
|
569 |
+
/**
|
570 |
+
* Subtitle (search results title)
|
571 |
+
*/ }
|
572 |
+
body.post-type-envira div.wrap h1 span.subtitle,
|
573 |
+
body.post-type-envira_album div.wrap h1 span.subtitle {
|
574 |
+
clear: both;
|
575 |
+
width: 100%;
|
576 |
+
padding: 0; } }
|
577 |
+
@media screen and (max-width: 340px) {
|
578 |
+
body.post-type-envira,
|
579 |
+
body.post-type-envira_album {
|
580 |
+
/**
|
581 |
+
* Wrapper
|
582 |
+
*/ }
|
583 |
+
body.post-type-envira div.wrap,
|
584 |
+
body.post-type-envira_album div.wrap {
|
585 |
+
/**
|
586 |
+
* Screen Title
|
587 |
+
*/ }
|
588 |
+
body.post-type-envira div.wrap h1,
|
589 |
+
body.post-type-envira_album div.wrap h1 {
|
590 |
+
text-align: center;
|
591 |
+
/**
|
592 |
+
* Page Title Action (i.e. Add New)
|
593 |
+
*/ }
|
594 |
+
body.post-type-envira div.wrap h1 a.page-title-action,
|
595 |
+
body.post-type-envira_album div.wrap h1 a.page-title-action {
|
596 |
+
display: block;
|
597 |
+
text-align: center;
|
598 |
+
margin: 10px 0 0 0; } }
|
assets/css/fancybox.css
CHANGED
@@ -37,7 +37,7 @@
|
|
37 |
z-index: 988010;
|
38 |
display: none;
|
39 |
background: url('images/envirabox_overlay.png');
|
40 |
-
background-color: rgba(0,0,0,.9) !important;
|
41 |
}
|
42 |
|
43 |
#envirabox-tmp {
|
37 |
z-index: 988010;
|
38 |
display: none;
|
39 |
background: url('images/envirabox_overlay.png');
|
40 |
+
background-color: rgba(0,0,0,.9); /* !important; */
|
41 |
}
|
42 |
|
43 |
#envirabox-tmp {
|
assets/css/images/blank.gif
CHANGED
File without changes
|
assets/css/images/envirabox_buttons.png
CHANGED
File without changes
|
assets/css/images/envirabox_loading.gif
CHANGED
File without changes
|
assets/css/images/envirabox_overlay.png
CHANGED
File without changes
|
assets/css/images/envirabox_sprite.png
CHANGED
File without changes
|
assets/css/images/holder.gif
CHANGED
File without changes
|
assets/css/images/preloader.gif
CHANGED
File without changes
|
assets/css/table.css
CHANGED
@@ -1 +1,178 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
table.css loads on any Envira WP_List_Table Screen:
|
3 |
+
- Galleries
|
4 |
+
- Albums
|
5 |
+
|
6 |
+
Any styles that will be used by these list tables should be added to this
|
7 |
+
file:
|
8 |
+
- Quick Edit
|
9 |
+
========================================================================== */
|
10 |
+
/* ==========================================================================
|
11 |
+
Imports
|
12 |
+
========================================================================== */
|
13 |
+
/* ==========================================================================
|
14 |
+
Variables SCSS
|
15 |
+
========================================================================== */
|
16 |
+
/* ==========================================================================
|
17 |
+
Mixins
|
18 |
+
========================================================================== */
|
19 |
+
/**
|
20 |
+
* Media Query
|
21 |
+
*/
|
22 |
+
/**
|
23 |
+
* Border-Radius
|
24 |
+
*/
|
25 |
+
body.post-type-envira,
|
26 |
+
body.post-type-envira_album {
|
27 |
+
/* ==========================================================================
|
28 |
+
Post Filters
|
29 |
+
========================================================================== */
|
30 |
+
/* ==========================================================================
|
31 |
+
Post Table Form
|
32 |
+
========================================================================== */
|
33 |
+
/* ==========================================================================
|
34 |
+
Quick Edit
|
35 |
+
========================================================================== */ }
|
36 |
+
body.post-type-envira ul.subsubsub,
|
37 |
+
body.post-type-envira_album ul.subsubsub {
|
38 |
+
/**
|
39 |
+
* Re-establish the left and right margins, so there's spacing between the Admin Menu
|
40 |
+
* and the content
|
41 |
+
*/
|
42 |
+
margin: 0 0 20px 0;
|
43 |
+
padding-left: 20px; }
|
44 |
+
body.post-type-envira .column-image,
|
45 |
+
body.post-type-envira_album .column-image {
|
46 |
+
width: 85px !important; }
|
47 |
+
body.post-type-envira form#posts-filter,
|
48 |
+
body.post-type-envira_album form#posts-filter {
|
49 |
+
/**
|
50 |
+
* Re-establish the left and right margins, so there's spacing between the Admin Menu
|
51 |
+
* and the content
|
52 |
+
*/
|
53 |
+
margin: 0 20px;
|
54 |
+
/**
|
55 |
+
* Table Navigation (Bulk Actions, Dates, SEO Score dropdowns etc)
|
56 |
+
*/
|
57 |
+
/**
|
58 |
+
* Reduce our global custom button sizes so they align with inputs
|
59 |
+
*/ }
|
60 |
+
body.post-type-envira form#posts-filter div.tablenav.top,
|
61 |
+
body.post-type-envira_album form#posts-filter div.tablenav.top {
|
62 |
+
margin: 0 0 8px 0; }
|
63 |
+
body.post-type-envira form#posts-filter .button,
|
64 |
+
body.post-type-envira_album form#posts-filter .button {
|
65 |
+
height: 28px;
|
66 |
+
line-height: 26px; }
|
67 |
+
body.post-type-envira #wpbody-content td.colspanchange,
|
68 |
+
body.post-type-envira_album #wpbody-content td.colspanchange {
|
69 |
+
/**
|
70 |
+
* Left Col (Title, Slug, Date, Password)
|
71 |
+
*/
|
72 |
+
/**
|
73 |
+
* Category Column
|
74 |
+
*/
|
75 |
+
/**
|
76 |
+
* Right Column (Comments + Status)
|
77 |
+
*/
|
78 |
+
/**
|
79 |
+
* Envira Gallery Col
|
80 |
+
*/
|
81 |
+
/**
|
82 |
+
* Submit
|
83 |
+
*/ }
|
84 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-left,
|
85 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-left {
|
86 |
+
width: 40%; }
|
87 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-left fieldset.inline-edit-date,
|
88 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-left fieldset.inline-edit-date {
|
89 |
+
display: none; }
|
90 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-left div.inline-edit-group:last-child,
|
91 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-left div.inline-edit-group:last-child {
|
92 |
+
display: none; }
|
93 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-center.inline-edit-categories,
|
94 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-center.inline-edit-categories {
|
95 |
+
display: none; }
|
96 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-right,
|
97 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-right {
|
98 |
+
margin: 30px 0 0 0; }
|
99 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-right label.inline-edit-status.alignleft,
|
100 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-right label.inline-edit-status.alignleft {
|
101 |
+
width: 100%; }
|
102 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-right,
|
103 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery,
|
104 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-right,
|
105 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery {
|
106 |
+
width: 60%;
|
107 |
+
/* Fill the remainder of the width */ }
|
108 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-right .inline-edit-group,
|
109 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group,
|
110 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-right .inline-edit-group,
|
111 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group {
|
112 |
+
clear: none;
|
113 |
+
float: left;
|
114 |
+
width: 50%;
|
115 |
+
/**
|
116 |
+
* Label
|
117 |
+
*/
|
118 |
+
/**
|
119 |
+
* Inputs
|
120 |
+
*/ }
|
121 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-right .inline-edit-group span.title,
|
122 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group span.title,
|
123 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-right .inline-edit-group span.title,
|
124 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group span.title {
|
125 |
+
width: 40%;
|
126 |
+
padding-right: 0.5em; }
|
127 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-right .inline-edit-group input[type=number],
|
128 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group input[type=number],
|
129 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-right .inline-edit-group input[type=number],
|
130 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group input[type=number] {
|
131 |
+
width: 60px;
|
132 |
+
line-height: normal; }
|
133 |
+
body.post-type-envira #wpbody-content td.colspanchange p.submit.inline-edit-save,
|
134 |
+
body.post-type-envira_album #wpbody-content td.colspanchange p.submit.inline-edit-save {
|
135 |
+
margin-bottom: 20px; }
|
136 |
+
|
137 |
+
/* ==========================================================================
|
138 |
+
Responsive
|
139 |
+
========================================================================== */
|
140 |
+
@media screen and (max-width: 940px) {
|
141 |
+
body.post-type-envira,
|
142 |
+
body.post-type-envira_album {
|
143 |
+
/* ==========================================================================
|
144 |
+
Quick Edit
|
145 |
+
========================================================================== */
|
146 |
+
/* ==========================================================================
|
147 |
+
Search Box
|
148 |
+
========================================================================== */ }
|
149 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-left
|
150 |
+
fieldset.inline-edit-col-right,
|
151 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery,
|
152 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-left
|
153 |
+
fieldset.inline-edit-col-right,
|
154 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery {
|
155 |
+
clear: both;
|
156 |
+
width: 100%; }
|
157 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-left
|
158 |
+
fieldset.inline-edit-col-right .inline-edit-group,
|
159 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group,
|
160 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-left
|
161 |
+
fieldset.inline-edit-col-right .inline-edit-group,
|
162 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group {
|
163 |
+
clear: both;
|
164 |
+
float: left;
|
165 |
+
width: 100%;
|
166 |
+
/**
|
167 |
+
* Label
|
168 |
+
*/ }
|
169 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-col-left
|
170 |
+
fieldset.inline-edit-col-right .inline-edit-group span.title,
|
171 |
+
body.post-type-envira #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group span.title,
|
172 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-col-left
|
173 |
+
fieldset.inline-edit-col-right .inline-edit-group span.title,
|
174 |
+
body.post-type-envira_album #wpbody-content td.colspanchange fieldset.inline-edit-envira-gallery .inline-edit-group span.title {
|
175 |
+
width: 100%; }
|
176 |
+
body.post-type-envira p.search-box,
|
177 |
+
body.post-type-envira_album p.search-box {
|
178 |
+
width: 94%; } }
|
assets/fonts/envira.eot
CHANGED
File without changes
|
assets/fonts/envira.svg
CHANGED
File without changes
|
assets/fonts/envira.ttf
CHANGED
File without changes
|
assets/fonts/envira.woff
CHANGED
File without changes
|
assets/js/clipboard.js
CHANGED
File without changes
|
assets/js/conditional-fields.js
CHANGED
@@ -1,136 +1,309 @@
|
|
|
|
|
|
1 |
/**
|
2 |
-
* Handles showing and hiding fields conditionally
|
3 |
-
* HTML data- attributes
|
4 |
*/
|
5 |
jQuery( document ).ready( function( $ ) {
|
6 |
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
toggle: 'envira-conditional-toggle',
|
11 |
-
value: 'envira-conditional-value',
|
12 |
-
displayOnEnabled: 'envira-conditional-display'
|
13 |
-
} );
|
14 |
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
*
|
20 |
-
* Copyright 2015 n7 Studios
|
21 |
-
* Released under the MIT license.
|
22 |
-
* http://jquery.org/license
|
23 |
-
*/
|
24 |
-
(function( $ ) {
|
25 |
-
"use strict";
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Create .conditional() function
|
29 |
-
*
|
30 |
-
* @param object options Override Default Settings
|
31 |
-
*/
|
32 |
-
$.fn.conditional = function(options) {
|
33 |
-
// Default Settings
|
34 |
-
var settings = $.extend({
|
35 |
-
data: 'conditional',
|
36 |
-
value: 'conditional-value',
|
37 |
-
toggle: 'conditional-toggle',
|
38 |
-
displayOnEnabled: 'conditional-display'
|
39 |
-
}, options);
|
40 |
-
|
41 |
-
// Setup conditionals on each DOM element
|
42 |
-
this.each(function() {
|
43 |
-
|
44 |
-
// Check for conditional elements
|
45 |
-
if ( typeof $( this ).data( settings.data ) === 'undefined' ) {
|
46 |
-
return true;
|
47 |
-
}
|
48 |
-
|
49 |
-
// Setup vars
|
50 |
-
var conditionalElements,
|
51 |
-
displayOnEnabled,
|
52 |
-
value,
|
53 |
-
toggle,
|
54 |
-
displayElements;
|
55 |
-
|
56 |
-
// Toggle + toggle on change
|
57 |
-
$( this ).on( 'change', function() {
|
58 |
-
// List the DOM elements to toggle
|
59 |
-
conditionalElements = $( this ).data( settings.data ).split(',');
|
60 |
-
|
61 |
-
// Determine whether to display DOM elements when the input is 'enabled'
|
62 |
-
displayOnEnabled = $( this ).data( settings.displayOnEnabled );
|
63 |
-
if ( typeof displayOnEnabled === 'undefined' ) {
|
64 |
-
displayOnEnabled = true;
|
65 |
-
}
|
66 |
-
|
67 |
-
// Determine the value required to display elements
|
68 |
-
value = $( this ).data( settings.value );
|
69 |
-
if ( typeof value === 'undefined' ) {
|
70 |
-
value = '';
|
71 |
-
}
|
72 |
-
|
73 |
-
//
|
74 |
-
toggle = $( this ).data( settings.toggle );
|
75 |
-
if ( typeof value === 'undefined' ) {
|
76 |
-
toggle = '';
|
77 |
-
}
|
78 |
-
|
79 |
-
// By default, don't display elements
|
80 |
-
displayElements = false;
|
81 |
-
|
82 |
-
// Determine whether to display relational elements or not
|
83 |
-
switch ( $( this ).attr( 'type' ) ) {
|
84 |
-
case 'checkbox':
|
85 |
-
if ( displayOnEnabled ) {
|
86 |
-
displayElements = $( this ).is( ':checked' );
|
87 |
-
} else {
|
88 |
-
displayElements = ( $( this ).is( ':checked' ) ? false : true );
|
89 |
-
}
|
90 |
-
break;
|
91 |
-
|
92 |
-
default:
|
93 |
-
console.log( $( this ).attr( 'type' ) );
|
94 |
-
console.log( displayOnEnabled );
|
95 |
-
console.log( 'toggle: ' + toggle );
|
96 |
-
if ( displayOnEnabled ) {
|
97 |
-
if ( value !== '' ) {
|
98 |
-
displayElements = ( ( String( $( this ).val() ) !== String( value ) ) ? false : true );
|
99 |
-
} else {
|
100 |
-
displayElements = ( ( $( this ).val() === '' || $( this ).val() === '0' ) ? false : true );
|
101 |
-
}
|
102 |
-
} else {
|
103 |
-
if ( value !== '' ) {
|
104 |
-
displayElements = ( ( $( this ).val() !== value ) ? true : false );
|
105 |
-
} else {
|
106 |
-
displayElements = ( ( $( this ).val() === '' || $( this ).val() === '0' ) ? true : false );
|
107 |
-
}
|
108 |
-
}
|
109 |
-
break;
|
110 |
-
}
|
111 |
-
|
112 |
-
// Show/hide elements
|
113 |
-
for (var i = 0; i < conditionalElements.length; i++) {
|
114 |
-
if ( displayElements ) {
|
115 |
-
$( '#' + conditionalElements[i] ).fadeIn( 300 );
|
116 |
-
if ( toggle ) {
|
117 |
-
$( '#' + toggle ).fadeOut( 300 );
|
118 |
-
}
|
119 |
-
} else {
|
120 |
-
$( '#' + conditionalElements[i] ).fadeOut( 300 );
|
121 |
-
if ( toggle ) {
|
122 |
-
$( '#' + toggle ).fadeIn( 300 );
|
123 |
-
}
|
124 |
-
}
|
125 |
-
}
|
126 |
-
});
|
127 |
-
|
128 |
-
// Trigger a change on init so we run the above routine
|
129 |
-
$ ( this ).trigger( 'change' );
|
130 |
-
});
|
131 |
-
|
132 |
-
// Return DOM elements
|
133 |
-
return this;
|
134 |
-
};
|
135 |
|
136 |
-
})
|
1 |
+
// @codekit-prepend "conditional-fields-legacy.js";
|
2 |
+
// @codekit-prepend "conditions.js";
|
3 |
/**
|
4 |
+
* Handles showing and hiding fields conditionally
|
|
|
5 |
*/
|
6 |
jQuery( document ).ready( function( $ ) {
|
7 |
|
8 |
+
// Show/hide elements as necessary when a conditional field is changed
|
9 |
+
$( '#envira-gallery-settings input:not([type=hidden]), #envira-gallery-settings select' ).conditions(
|
10 |
+
[
|
|
|
|
|
|
|
|
|
11 |
|
12 |
+
{ // Main Theme Elements
|
13 |
+
conditions: {
|
14 |
+
element: '[name="_envira_gallery[lightbox_theme]"]',
|
15 |
+
type: 'value',
|
16 |
+
operator: 'array',
|
17 |
+
condition: [ 'base', 'captioned', 'polaroid', 'showcase', 'sleek', 'subtle' ]
|
18 |
+
},
|
19 |
+
actions: {
|
20 |
+
if: [
|
21 |
+
{
|
22 |
+
element: '#envira-config-lightbox-title-display-box, #envira-config-lightbox-arrows-box, #envira-config-lightbox-toolbar-box, #envira-config-supersize-box',
|
23 |
+
action: 'show'
|
24 |
+
}
|
25 |
+
]
|
26 |
+
}
|
27 |
+
},
|
28 |
+
{
|
29 |
+
conditions: {
|
30 |
+
element: '[name="_envira_gallery[lightbox_theme]"]',
|
31 |
+
type: 'value',
|
32 |
+
operator: 'array',
|
33 |
+
condition: [ 'base_dark' ]
|
34 |
+
},
|
35 |
+
actions: {
|
36 |
+
if: [
|
37 |
+
{
|
38 |
+
element: '#envira-config-lightbox-title-display-box, #envira-config-lightbox-arrows-box, #envira-config-lightbox-toolbar-box, #envira-config-supersize-box',
|
39 |
+
action: 'hide'
|
40 |
+
}
|
41 |
+
]
|
42 |
+
}
|
43 |
+
},
|
44 |
+
{ // Gallery arrows Dependant on Theme
|
45 |
+
conditions: [
|
46 |
+
{
|
47 |
+
element: '[name="_envira_gallery[lightbox_theme]"]',
|
48 |
+
type: 'value',
|
49 |
+
operator: 'array',
|
50 |
+
condition: [ 'base', 'captioned', 'polaroid', 'showcase', 'sleek', 'subtle' ]
|
51 |
+
},
|
52 |
+
{
|
53 |
+
element: '[name="_envira_gallery[arrows]"]',
|
54 |
+
type: 'checked',
|
55 |
+
operator: 'is'
|
56 |
+
}
|
57 |
+
],
|
58 |
+
actions: {
|
59 |
+
if: {
|
60 |
+
element: '#envira-config-lightbox-arrows-position-box',
|
61 |
+
action: 'show'
|
62 |
+
},
|
63 |
+
else: {
|
64 |
+
element: '#envira-config-lightbox-arrows-position-box',
|
65 |
+
action: 'hide'
|
66 |
+
}
|
67 |
+
}
|
68 |
+
},
|
69 |
+
{ // Gallery Toolbar
|
70 |
+
conditions: [
|
71 |
+
{
|
72 |
+
element: '[name="_envira_gallery[toolbar]"]',
|
73 |
+
type: 'checked',
|
74 |
+
operator: 'is'
|
75 |
+
},
|
76 |
+
{
|
77 |
+
element: '[name="_envira_gallery[lightbox_theme]"]',
|
78 |
+
type: 'value',
|
79 |
+
operator: 'array',
|
80 |
+
condition: [ 'base', 'captioned', 'polaroid', 'showcase', 'sleek', 'subtle' ]
|
81 |
+
}
|
82 |
+
],
|
83 |
+
actions: {
|
84 |
+
if: [
|
85 |
+
{
|
86 |
+
element: '#envira-config-lightbox-toolbar-title-box, #envira-config-lightbox-toolbar-position-box',
|
87 |
+
action: 'show'
|
88 |
+
}
|
89 |
+
],
|
90 |
+
else: [
|
91 |
+
{
|
92 |
+
element: '#envira-config-lightbox-toolbar-title-box, #envira-config-lightbox-toolbar-position-box',
|
93 |
+
action: 'hide'
|
94 |
+
}
|
95 |
+
]
|
96 |
+
}
|
97 |
+
},
|
98 |
+
{ // Mobile Elements Dependant on Theme
|
99 |
+
conditions: [
|
100 |
+
{
|
101 |
+
element: '[name="_envira_gallery[lightbox_theme]"]',
|
102 |
+
type: 'value',
|
103 |
+
operator: 'array',
|
104 |
+
condition: [ 'base', 'captioned', 'polaroid', 'showcase', 'sleek', 'subtle' ]
|
105 |
+
},
|
106 |
+
{
|
107 |
+
element: '[name="_envira_gallery[mobile_lightbox]"]',
|
108 |
+
type: 'checked',
|
109 |
+
operator: 'is'
|
110 |
+
}
|
111 |
+
],
|
112 |
+
actions: {
|
113 |
+
if: {
|
114 |
+
element: '#envira-config-mobile-arrows-box, #envira-config-mobile-toolbar-box',
|
115 |
+
action: 'show'
|
116 |
+
},
|
117 |
+
else: {
|
118 |
+
element: '#envira-config-mobile-arrows-box, #envira-config-mobile-toolbar-box',
|
119 |
+
action: 'hide'
|
120 |
+
}
|
121 |
+
}
|
122 |
+
},
|
123 |
+
{ // Thumbnail Elements Dependant on Theme
|
124 |
+
conditions: [
|
125 |
+
{
|
126 |
+
element: '[name="_envira_gallery[lightbox_theme]"]',
|
127 |
+
type: 'value',
|
128 |
+
operator: 'array',
|
129 |
+
condition: [ 'base', 'captioned', 'polaroid', 'showcase', 'sleek', 'subtle' ]
|
130 |
+
},
|
131 |
+
{
|
132 |
+
element: '[name="_envira_gallery[thumbnails]"]',
|
133 |
+
type: 'checked',
|
134 |
+
operator: 'is'
|
135 |
+
}
|
136 |
+
],
|
137 |
+
actions: {
|
138 |
+
if: {
|
139 |
+
element: '#envira-config-thumbnails-position-box',
|
140 |
+
action: 'show'
|
141 |
+
},
|
142 |
+
else: {
|
143 |
+
element: '#envira-config-thumbnails-position-box',
|
144 |
+
action: 'hide'
|
145 |
+
}
|
146 |
+
}
|
147 |
+
},
|
148 |
+
{ // Thumbnail Elements Independant of Theme
|
149 |
+
conditions: [
|
150 |
+
{
|
151 |
+
element: '[name="_envira_gallery[thumbnails]"]',
|
152 |
+
type: 'checked',
|
153 |
+
operator: 'is'
|
154 |
+
}
|
155 |
+
],
|
156 |
+
actions: {
|
157 |
+
if: {
|
158 |
+
element: '#envira-config-thumbnails-height-box, #envira-config-thumbnails-width-box',
|
159 |
+
action: 'show'
|
160 |
+
},
|
161 |
+
else: {
|
162 |
+
element: '#envira-config-thumbnails-height-box, #envira-config-thumbnails-width-box',
|
163 |
+
action: 'hide'
|
164 |
+
}
|
165 |
+
}
|
166 |
+
},
|
167 |
+
{ // Justified Gallery
|
168 |
+
conditions: {
|
169 |
+
element: '[name="_envira_gallery[columns]"]',
|
170 |
+
type: 'value',
|
171 |
+
operator: 'array',
|
172 |
+
condition: [ '0' ]
|
173 |
+
},
|
174 |
+
actions: {
|
175 |
+
if: [
|
176 |
+
{
|
177 |
+
element: '#envira-config-standard-settings-box',
|
178 |
+
action: 'hide'
|
179 |
+
},
|
180 |
+
{
|
181 |
+
element: '#envira-config-justified-settings-box',
|
182 |
+
action: 'show'
|
183 |
+
}
|
184 |
+
],
|
185 |
+
else: [
|
186 |
+
{
|
187 |
+
element: '#envira-config-standard-settings-box',
|
188 |
+
action: 'show'
|
189 |
+
},
|
190 |
+
{
|
191 |
+
element: '#envira-config-justified-settings-box',
|
192 |
+
action: 'hide'
|
193 |
+
}
|
194 |
+
]
|
195 |
+
}
|
196 |
+
},
|
197 |
+
{ // Gallery Description
|
198 |
+
conditions: {
|
199 |
+
element: '[name="_envira_gallery[description_position]"]',
|
200 |
+
type: 'value',
|
201 |
+
operator: 'array',
|
202 |
+
condition: [ '0' ]
|
203 |
+
},
|
204 |
+
actions: {
|
205 |
+
if: [
|
206 |
+
{
|
207 |
+
element: '#envira-config-description-box',
|
208 |
+
action: 'hide'
|
209 |
+
}
|
210 |
+
],
|
211 |
+
else: [
|
212 |
+
{
|
213 |
+
element: '#envira-config-description-box',
|
214 |
+
action: 'show'
|
215 |
+
}
|
216 |
+
]
|
217 |
+
}
|
218 |
+
},
|
219 |
+
{ // Gallery Sorting
|
220 |
+
conditions: {
|
221 |
+
element: '[name="_envira_gallery[random]"]',
|
222 |
+
type: 'value',
|
223 |
+
operator: 'array',
|
224 |
+
condition: [ '0' ]
|
225 |
+
},
|
226 |
+
actions: {
|
227 |
+
if: [
|
228 |
+
{
|
229 |
+
element: '#envira-config-sorting-direction-box',
|
230 |
+
action: 'hide'
|
231 |
+
}
|
232 |
+
],
|
233 |
+
else: [
|
234 |
+
{
|
235 |
+
element: '#envira-config-sorting-direction-box',
|
236 |
+
action: 'show'
|
237 |
+
}
|
238 |
+
]
|
239 |
+
}
|
240 |
+
},
|
241 |
+
{ // Gallery CSS animations
|
242 |
+
conditions: {
|
243 |
+
element: '[name="_envira_gallery[css_animations]"]',
|
244 |
+
type: 'checked',
|
245 |
+
operator: 'is'
|
246 |
+
},
|
247 |
+
actions: {
|
248 |
+
if: [
|
249 |
+
{
|
250 |
+
element: '#envira-config-css-opacity-box',
|
251 |
+
action: 'show'
|
252 |
+
}
|
253 |
+
],
|
254 |
+
else: [
|
255 |
+
{
|
256 |
+
element: '#envira-config-css-opacity-box',
|
257 |
+
action: 'hide'
|
258 |
+
}
|
259 |
+
]
|
260 |
+
}
|
261 |
+
},
|
262 |
+
{ // Gallery image size
|
263 |
+
conditions: {
|
264 |
+
element: '[name="_envira_gallery[image_size]"]',
|
265 |
+
type: 'value',
|
266 |
+
operator: 'array',
|
267 |
+
condition: [ 'default' ]
|
268 |
+
},
|
269 |
+
actions: {
|
270 |
+
if: [
|
271 |
+
{
|
272 |
+
element: '#envira-config-crop-size-box, #envira-config-crop-box',
|
273 |
+
action: 'show'
|
274 |
+
}
|
275 |
+
],
|
276 |
+
else: [
|
277 |
+
{
|
278 |
+
element: '#envira-config-crop-size-box, #envira-config-crop-box',
|
279 |
+
action: 'hide'
|
280 |
+
}
|
281 |
+
]
|
282 |
+
}
|
283 |
+
},
|
284 |
+
{ // Gallery Lightbox
|
285 |
+
conditions: {
|
286 |
+
element: '[name="_envira_gallery[lightbox_enabled]"]',
|
287 |
+
type: 'checked',
|
288 |
+
operator: 'is'
|
289 |
+
},
|
290 |
+
actions: {
|
291 |
+
if: [
|
292 |
+
{
|
293 |
+
element: '#envira-lightbox-settings',
|
294 |
+
action: 'show'
|
295 |
+
}
|
296 |
+
],
|
297 |
+
else: [
|
298 |
+
{
|
299 |
+
element: '#envira-lightbox-settings',
|
300 |
+
action: 'hide'
|
301 |
+
}
|
302 |
+
]
|
303 |
+
}
|
304 |
+
},
|
305 |
|
306 |
+
]
|
307 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
308 |
|
309 |
+
} );
|
assets/js/conditions.js
ADDED
@@ -0,0 +1,212 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* jQuery Conditions 1.0.0
|
3 |
+
*
|
4 |
+
* Copyright 2016 Bejamin Rojas
|
5 |
+
* @license Released under the MIT license.
|
6 |
+
* http://jquery.org/license
|
7 |
+
*/
|
8 |
+
(function($) {
|
9 |
+
"use strict";
|
10 |
+
|
11 |
+
$.fn.conditions = function(conditions) {
|
12 |
+
return this.each( function(index, element) {
|
13 |
+
var CJS = new ConditionsJS(element, conditions, $.fn.conditions.defaults);
|
14 |
+
CJS.init();
|
15 |
+
});
|
16 |
+
};
|
17 |
+
|
18 |
+
$.fn.conditions.defaults = {
|
19 |
+
condition: null,
|
20 |
+
actions: {},
|
21 |
+
effect: 'fade'
|
22 |
+
};
|
23 |
+
|
24 |
+
var ConditionsJS = function(element, conditions, defaults) {
|
25 |
+
var that = this;
|
26 |
+
|
27 |
+
that.element = $(element);
|
28 |
+
that.defaults = defaults;
|
29 |
+
that.conditions = conditions;
|
30 |
+
that._init = false;
|
31 |
+
|
32 |
+
if(!$.isArray(that.conditions)) {
|
33 |
+
that.conditions = [that.conditions];
|
34 |
+
}
|
35 |
+
|
36 |
+
$.each(that.conditions, function(i, v) {
|
37 |
+
|
38 |
+
v = $.extend({}, that.defaults, v);
|
39 |
+
|
40 |
+
that.conditions[i] = v;
|
41 |
+
|
42 |
+
});
|
43 |
+
|
44 |
+
};
|
45 |
+
|
46 |
+
ConditionsJS.prototype.init = function() {
|
47 |
+
var that = this;
|
48 |
+
that._init = true;
|
49 |
+
// Set up event listener
|
50 |
+
$(that.element).on('change', function() {
|
51 |
+
that.matchConditions();
|
52 |
+
});
|
53 |
+
|
54 |
+
$(that.element).on('keyup', function() {
|
55 |
+
that.matchConditions();
|
56 |
+
});
|
57 |
+
|
58 |
+
//Show based on current value on page load
|
59 |
+
that.matchConditions(true);
|
60 |
+
};
|
61 |
+
|
62 |
+
ConditionsJS.prototype.matchConditions = function(init) {
|
63 |
+
var that = this;
|
64 |
+
|
65 |
+
if(!init) {
|
66 |
+
that._init = false;
|
67 |
+
}
|
68 |
+
|
69 |
+
$.each(that.conditions, function(ind, cond) {
|
70 |
+
|
71 |
+
var condition_matches = false, all_conditions_match = true;
|
72 |
+
|
73 |
+
if(!$.isArray(cond.conditions)) {
|
74 |
+
cond.conditions = [cond.conditions];
|
75 |
+
}
|
76 |
+
|
77 |
+
$.each(cond.conditions, function(i, c) {
|
78 |
+
|
79 |
+
c.element = $(c.element);
|
80 |
+
|
81 |
+
switch(c.type) {
|
82 |
+
case 'value':
|
83 |
+
case 'val':
|
84 |
+
switch(c.operator) {
|
85 |
+
case '===':
|
86 |
+
case '==':
|
87 |
+
case '=':
|
88 |
+
condition_matches = c.element.val() === c.condition;
|
89 |
+
break;
|
90 |
+
case '!==':
|
91 |
+
case '!=':
|
92 |
+
condition_matches = c.element.val() !== c.condition;
|
93 |
+
break;
|
94 |
+
case 'array':
|
95 |
+
condition_matches = $.inArray( c.element.val(), c.condition ) !== -1;
|
96 |
+
break;
|
97 |
+
case '!array':
|
98 |
+
condition_matches = $.inArray( c.element.val(), c.condition ) === -1;
|
99 |
+
break;
|
100 |
+
}
|
101 |
+
break;
|
102 |
+
case 'checked':
|
103 |
+
switch(c.operator) {
|
104 |
+
case 'is':
|
105 |
+
condition_matches = c.element.is(':checked');
|
106 |
+
break;
|
107 |
+
case '!is':
|
108 |
+
condition_matches = !c.element.is(':checked');
|
109 |
+
break;
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
if(!condition_matches && all_conditions_match) {
|
114 |
+
all_conditions_match = false;
|
115 |
+
}
|
116 |
+
|
117 |
+
});
|
118 |
+
|
119 |
+
if(all_conditions_match) {
|
120 |
+
|
121 |
+
if(!$.isEmptyObject(cond.actions.if)) {
|
122 |
+
|
123 |
+
if(!$.isArray(cond.actions.if)) {
|
124 |
+
cond.actions.if = [cond.actions.if];
|
125 |
+
}
|
126 |
+
|
127 |
+
$.each(cond.actions.if, function(i, condition) {
|
128 |
+
that.showAndHide(condition, cond.effect);
|
129 |
+
});
|
130 |
+
|
131 |
+
}
|
132 |
+
|
133 |
+
}
|
134 |
+
else {
|
135 |
+
|
136 |
+
if(!$.isEmptyObject(cond.actions.else)) {
|
137 |
+
|
138 |
+
if(!$.isArray(cond.actions.else)) {
|
139 |
+
cond.actions.else = [cond.actions.else];
|
140 |
+
}
|
141 |
+
|
142 |
+
$.each(cond.actions.else, function(i, condition) {
|
143 |
+
that.showAndHide(condition, cond.effect);
|
144 |
+
});
|
145 |
+
|
146 |
+
}
|
147 |
+
|
148 |
+
}
|
149 |
+
|
150 |
+
});
|
151 |
+
|
152 |
+
};
|
153 |
+
|
154 |
+
ConditionsJS.prototype.showAndHide = function(condition, effect) {
|
155 |
+
var that = this;
|
156 |
+
|
157 |
+
switch(condition.action) {
|
158 |
+
case 'show':
|
159 |
+
that._show($(condition.element), effect);
|
160 |
+
break;
|
161 |
+
case 'hide':
|
162 |
+
that._hide($(condition.element), effect);
|
163 |
+
break;
|
164 |
+
}
|
165 |
+
|
166 |
+
};
|
167 |
+
|
168 |
+
ConditionsJS.prototype._show = function(element, effect) {
|
169 |
+
var that = this;
|
170 |
+
|
171 |
+
if(that._init) {
|
172 |
+
element.show();
|
173 |
+
}
|
174 |
+
else {
|
175 |
+
switch(effect) {
|
176 |
+
case 'appear':
|
177 |
+
element.show();
|
178 |
+
break;
|
179 |
+
case 'slide':
|
180 |
+
element.slideDown();
|
181 |
+
break;
|
182 |
+
case 'fade':
|
183 |
+
element.fadeIn( 300 );
|
184 |
+
break;
|
185 |
+
}
|
186 |
+
}
|
187 |
+
|
188 |
+
};
|
189 |
+
|
190 |
+
ConditionsJS.prototype._hide = function(element, effect) {
|
191 |
+
var that = this;
|
192 |
+
|
193 |
+
if(that._init) {
|
194 |
+
element.hide();
|
195 |
+
}
|
196 |
+
else {
|
197 |
+
switch(effect) {
|
198 |
+
case 'appear':
|
199 |
+
element.hide();
|
200 |
+
break;
|
201 |
+
case 'slide':
|
202 |
+
element.slideUp();
|
203 |
+
break;
|
204 |
+
case 'fade':
|
205 |
+
element.fadeOut( 300 );
|
206 |
+
break;
|
207 |
+
}
|
208 |
+
}
|
209 |
+
|
210 |
+
};
|
211 |
+
|
212 |
+
}(jQuery));
|
assets/js/envira.js
CHANGED
File without changes
|
assets/js/lib/fancybox.js
CHANGED
@@ -806,7 +806,7 @@
|
|
806 |
hideOnOverlayClick: true,
|
807 |
hideOnContentClick: false,
|
808 |
overlayShow: true,
|
809 |
-
overlayOpacity: 0.7
|
810 |
overlayColor: "#777",
|
811 |
titleShow: true,
|
812 |
titlePosition: "float",
|
806 |
hideOnOverlayClick: true,
|
807 |
hideOnContentClick: false,
|
808 |
overlayShow: true,
|
809 |
+
overlayOpacity: 0.9, /* was 0.7 but upped to remove CSS !important */
|
810 |
overlayColor: "#777",
|
811 |
titleShow: true,
|
812 |
titlePosition: "float",
|
assets/js/list.js
CHANGED
File without changes
|
assets/js/media-edit.js
CHANGED
@@ -132,7 +132,7 @@ var EnviraGalleryEditView = wp.Backbone.View.extend( {
|
|
132 |
} );
|
133 |
|
134 |
// Render view within our main view
|
135 |
-
this.$el.find( 'div.addons' ).append( child_view.render().el );
|
136 |
}, this );
|
137 |
}
|
138 |
|
132 |
} );
|
133 |
|
134 |
// Render view within our main view
|
135 |
+
this.$el.find( 'div.envira-addons' ).append( child_view.render().el );
|
136 |
}, this );
|
137 |
}
|
138 |
|
assets/js/media-insert.js
CHANGED
@@ -78,7 +78,8 @@ jQuery( document ).ready( function( $ ) {
|
|
78 |
action: 'envira_gallery_insert_images',
|
79 |
nonce: envira_gallery_metabox.insert_nonce,
|
80 |
post_id: envira_gallery_metabox.id,
|
81 |
-
images
|
|
|
82 |
},
|
83 |
function( response ) {
|
84 |
// Response should be a JSON success with the HTML for the image grid
|
78 |
action: 'envira_gallery_insert_images',
|
79 |
nonce: envira_gallery_metabox.insert_nonce,
|
80 |
post_id: envira_gallery_metabox.id,
|
81 |
+
// make this a JSON string so we can send larger amounts of data (images), otherwise max is around 20 by default for most server configs
|
82 |
+
images: JSON.stringify(images),
|
83 |
},
|
84 |
function( response ) {
|
85 |
// Response should be a JSON success with the HTML for the image grid
|
assets/js/metabox.js
CHANGED
@@ -1,36 +1,19 @@
|
|
1 |
/**
|
2 |
* You'll need to use CodeKit or similar, as this file is a placeholder to combine
|
3 |
* the following JS files into min/metabox-min.js:
|
4 |
-
*
|
5 |
-
* - conditional-fields.js
|
6 |
-
* - gallery-preview.js
|
7 |
-
* - gallery-types.js
|
8 |
-
* - gallery-help.js
|
9 |
-
* - media-bulk-edit.js
|
10 |
-
* - media-delete.js
|
11 |
-
* - media-edit.js
|
12 |
-
* - media-insert.js
|
13 |
-
* - media-manage.js
|
14 |
-
* - media-move.js
|
15 |
-
* - media-upload.js
|
16 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
jQuery( document ).ready( function( $ ) {
|
19 |
|
20 |
-
// Image Size: Random
|
21 |
-
// conditional-fields doesn't support multiple conditions, so we manually show/hide
|
22 |
-
// the Random Image Sizes option depending on the Image Size value
|
23 |
-
$( 'select[name="_envira_gallery[image_size]"]' ).on( 'change', function() {
|
24 |
-
|
25 |
-
if ( $( this ).val() == 'envira_gallery_random' ) {
|
26 |
-
$( 'tr#envira-config-image-sizes-random-box' ).show();
|
27 |
-
} else {
|
28 |
-
$( 'tr#envira-config-image-sizes-random-box' ).hide();
|
29 |
-
}
|
30 |
-
|
31 |
-
} );
|
32 |
-
|
33 |
-
// Run the above conditions on load.
|
34 |
-
$( 'select[name="_envira_gallery[image_size]"]' ).trigger( 'change' );
|
35 |
|
36 |
} );
|
1 |
/**
|
2 |
* You'll need to use CodeKit or similar, as this file is a placeholder to combine
|
3 |
* the following JS files into min/metabox-min.js:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
*/
|
5 |
+
// @codekit-append "gallery-preview.js";
|
6 |
+
// @codekit-append "gallery-types.js";
|
7 |
+
// @codekit-append "gallery-help.js";
|
8 |
+
// @codekit-append "media-bulk-edit.js";
|
9 |
+
// @codekit-append "media-delete.js";
|
10 |
+
// @codekit-append "media-edit.js";
|
11 |
+
// @codekit-append "media-insert.js";
|
12 |
+
// @codekit-append "media-manage.js";
|
13 |
+
// @codekit-append "media-move.js";
|
14 |
+
// @codekit-append "media-upload.js";
|
15 |
|
16 |
jQuery( document ).ready( function( $ ) {
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
} );
|
assets/js/min/conditional-fields-min.js
CHANGED
@@ -1 +1,8 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* jQuery Conditions 1.0.0
|
3 |
+
*
|
4 |
+
* Copyright 2016 Bejamin Rojas
|
5 |
+
* @license Released under the MIT license.
|
6 |
+
* http://jquery.org/license
|
7 |
+
*/
|
8 |
+
!function($){"use strict";$.fn.conditions=function(i){return this.each(function(n,o){var t=new e(o,i,$.fn.conditions.defaults);t.init()})},$.fn.conditions.defaults={condition:null,actions:{},effect:"fade"};var e=function(e,i,n){var o=this;o.element=$(e),o.defaults=n,o.conditions=i,o._init=!1,$.isArray(o.conditions)||(o.conditions=[o.conditions]),$.each(o.conditions,function(e,i){i=$.extend({},o.defaults,i),o.conditions[e]=i})};e.prototype.init=function(){var e=this;e._init=!0,$(e.element).on("change",function(){e.matchConditions()}),$(e.element).on("keyup",function(){e.matchConditions()}),e.matchConditions(!0)},e.prototype.matchConditions=function(e){var i=this;e||(i._init=!1),$.each(i.conditions,function(e,n){var o=!1,t=!0;$.isArray(n.conditions)||(n.conditions=[n.conditions]),$.each(n.conditions,function(e,i){switch(i.element=$(i.element),i.type){case"value":case"val":switch(i.operator){case"===":case"==":case"=":o=i.element.val()===i.condition;break;case"!==":case"!=":o=i.element.val()!==i.condition;break;case"array":o=$.inArray(i.element.val(),i.condition)!==-1;break;case"!array":o=$.inArray(i.element.val(),i.condition)===-1}break;case"checked":switch(i.operator){case"is":o=i.element.is(":checked");break;case"!is":o=!i.element.is(":checked")}}!o&&t&&(t=!1)}),t?$.isEmptyObject(n.actions.if)||($.isArray(n.actions.if)||(n.actions.if=[n.actions.if]),$.each(n.actions.if,function(e,o){i.showAndHide(o,n.effect)})):$.isEmptyObject(n.actions.else)||($.isArray(n.actions.else)||(n.actions.else=[n.actions.else]),$.each(n.actions.else,function(e,o){i.showAndHide(o,n.effect)}))})},e.prototype.showAndHide=function(e,i){var n=this;switch(e.action){case"show":n._show($(e.element),i);break;case"hide":n._hide($(e.element),i)}},e.prototype._show=function(e,i){var n=this;if(n._init)e.show();else switch(i){case"appear":e.show();break;case"slide":e.slideDown();break;case"fade":e.fadeIn(300)}},e.prototype._hide=function(e,i){var n=this;if(n._init)e.hide();else switch(i){case"appear":e.hide();break;case"slide":e.slideUp();break;case"fade":e.fadeOut(300)}}}(jQuery),jQuery(document).ready(function($){$("#envira-gallery-settings input:not([type=hidden]), #envira-gallery-settings select").conditions([{conditions:{element:'[name="_envira_gallery[lightbox_theme]"]',type:"value",operator:"array",condition:["base","captioned","polaroid","showcase","sleek","subtle"]},actions:{if:[{element:"#envira-config-lightbox-title-display-box, #envira-config-lightbox-arrows-box, #envira-config-lightbox-toolbar-box, #envira-config-supersize-box",action:"show"}]}},{conditions:{element:'[name="_envira_gallery[lightbox_theme]"]',type:"value",operator:"array",condition:["base_dark"]},actions:{if:[{element:"#envira-config-lightbox-title-display-box, #envira-config-lightbox-arrows-box, #envira-config-lightbox-toolbar-box, #envira-config-supersize-box",action:"hide"}]}},{conditions:[{element:'[name="_envira_gallery[lightbox_theme]"]',type:"value",operator:"array",condition:["base","captioned","polaroid","showcase","sleek","subtle"]},{element:'[name="_envira_gallery[arrows]"]',type:"checked",operator:"is"}],actions:{if:{element:"#envira-config-lightbox-arrows-position-box",action:"show"},else:{element:"#envira-config-lightbox-arrows-position-box",action:"hide"}}},{conditions:[{element:'[name="_envira_gallery[toolbar]"]',type:"checked",operator:"is"},{element:'[name="_envira_gallery[lightbox_theme]"]',type:"value",operator:"array",condition:["base","captioned","polaroid","showcase","sleek","subtle"]}],actions:{if:[{element:"#envira-config-lightbox-toolbar-title-box, #envira-config-lightbox-toolbar-position-box",action:"show"}],else:[{element:"#envira-config-lightbox-toolbar-title-box, #envira-config-lightbox-toolbar-position-box",action:"hide"}]}},{conditions:[{element:'[name="_envira_gallery[lightbox_theme]"]',type:"value",operator:"array",condition:["base","captioned","polaroid","showcase","sleek","subtle"]},{element:'[name="_envira_gallery[mobile_lightbox]"]',type:"checked",operator:"is"}],actions:{if:{element:"#envira-config-mobile-arrows-box, #envira-config-mobile-toolbar-box",action:"show"},else:{element:"#envira-config-mobile-arrows-box, #envira-config-mobile-toolbar-box",action:"hide"}}},{conditions:[{element:'[name="_envira_gallery[lightbox_theme]"]',type:"value",operator:"array",condition:["base","captioned","polaroid","showcase","sleek","subtle"]},{element:'[name="_envira_gallery[thumbnails]"]',type:"checked",operator:"is"}],actions:{if:{element:"#envira-config-thumbnails-position-box",action:"show"},else:{element:"#envira-config-thumbnails-position-box",action:"hide"}}},{conditions:[{element:'[name="_envira_gallery[thumbnails]"]',type:"checked",operator:"is"}],actions:{if:{element:"#envira-config-thumbnails-height-box, #envira-config-thumbnails-width-box",action:"show"},else:{element:"#envira-config-thumbnails-height-box, #envira-config-thumbnails-width-box",action:"hide"}}},{conditions:{element:'[name="_envira_gallery[columns]"]',type:"value",operator:"array",condition:["0"]},actions:{if:[{element:"#envira-config-standard-settings-box",action:"hide"},{element:"#envira-config-justified-settings-box",action:"show"}],else:[{element:"#envira-config-standard-settings-box",action:"show"},{element:"#envira-config-justified-settings-box",action:"hide"}]}},{conditions:{element:'[name="_envira_gallery[description_position]"]',type:"value",operator:"array",condition:["0"]},actions:{if:[{element:"#envira-config-description-box",action:"hide"}],else:[{element:"#envira-config-description-box",action:"show"}]}},{conditions:{element:'[name="_envira_gallery[random]"]',type:"value",operator:"array",condition:["0"]},actions:{if:[{element:"#envira-config-sorting-direction-box",action:"hide"}],else:[{element:"#envira-config-sorting-direction-box",action:"show"}]}},{conditions:{element:'[name="_envira_gallery[css_animations]"]',type:"checked",operator:"is"},actions:{if:[{element:"#envira-config-css-opacity-box",action:"show"}],else:[{element:"#envira-config-css-opacity-box",action:"hide"}]}},{conditions:{element:'[name="_envira_gallery[image_size]"]',type:"value",operator:"array",condition:["default"]},actions:{if:[{element:"#envira-config-crop-size-box, #envira-config-crop-box",action:"show"}],else:[{element:"#envira-config-crop-size-box, #envira-config-crop-box",action:"hide"}]}},{conditions:{element:'[name="_envira_gallery[lightbox_enabled]"]',type:"checked",operator:"is"},actions:{if:[{element:"#envira-lightbox-settings",action:"show"}],else:[{element:"#envira-lightbox-settings",action:"hide"}]}}])});
|
assets/js/min/metabox-min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
function EnviraGalleryImagesUpdate(e){EnviraGalleryImages.reset();var a="ul#envira-gallery-output li.envira-gallery-image"+(e?".selected":"");jQuery(a).each(function(){var e=jQuery.parseJSON(jQuery(this).attr("data-envira-gallery-image-model"));e.alt=EnviraGalleryStripslashes(e.alt),EnviraGalleryImages.add(new EnviraGalleryImage(e))}),jQuery("#envira-gallery-main span.count").text(jQuery("ul#envira-gallery-output li.envira-gallery-image").length)}function EnviraGalleryStripslashes(e){return(e+"").replace(/\\(.?)/g,function(e,a){switch(a){case"\\":return"\\";case"0":return"\x00";case"":return"";default:return a}})}function envira_gallery_sortable($){$(envira_gallery_output).sortable({containment:envira_gallery_output,items:"li",cursor:"move",forcePlaceholderSize:!0,placeholder:"dropzone",helper:function(e,a){a.hasClass("selected")||a.addClass("selected").siblings().removeClass("selected");var t=a.parent().children(".selected").clone();a.data("multidrag",t).siblings(".selected").remove();var i=$("<li/>");return i.append(t)},stop:function(e,a){var t=a.item.data("multidrag");a.item.after(t).remove(),$("li.selected",$(envira_gallery_output)).removeClass("selected"),$.ajax({url:envira_gallery_metabox.ajax,type:"post",async:!0,cache:!1,dataType:"json",data:{action:"envira_gallery_sort_images",order:$(envira_gallery_output).sortable("toArray").toString(),post_id:envira_gallery_metabox.id,nonce:envira_gallery_metabox.sort},success:function(e){EnviraGalleryImagesUpdate(!1)},error:function(e,a,t){$(envira_gallery_output).before('<div class="error"><p>'+a.responseText+"</p></div>")}})}})}var envira_video_link="p.envira-intro a.envira-video",envira_close_video_link="a.envira-video-close";jQuery(document).ready(function($){$(document).on("click",envira_video_link,function(e){e.preventDefault();var a=$(this).attr("href");-1==a.search("autoplay=1")&&(a+=-1==a.search("rel=")?"?rel=0&autoplay=1":"&autoplay=1"),$("div.envira-video-help").remove();var t=$(this).closest("p.envira-intro");$(t).append('<div class="envira-video-help"><iframe src="'+a+'" /><a href="#" class="envira-video-close dashicons dashicons-no"></a></div>')}),$(document).on("click",envira_close_video_link,function(e){e.preventDefault(),$(this).closest(".envira-video-help").remove()})}),function($){$(function(){var e=!1;"default"==$('input[name="_envira_gallery[type]"]:checked').val()?$("#envira-gallery-preview").hide():$("#envira-gallery-preview").show(),$(document).on("enviraGalleryType enviraGalleryPreview",function(){var a=$('input[name="_envira_gallery[type]"]:checked').val(),t=$("#envira-gallery-preview .spinner"),i=$("#envira-gallery-preview-main");return"default"==a?void $(i).hide():void(e||(e=!0,$(i).html(""),$.ajax({type:"post",url:envira_gallery_metabox.ajax,dataType:"json",data:{action:"envira_gallery_change_preview",post_id:envira_gallery_metabox.id,type:a,data:$("form#post").serializeArray(),nonce:envira_gallery_metabox.preview_nonce},success:function(a){$(i).html(a),$(t).hide(),e=!1},error:function(a,n){$(i).html('<div class="error"><p>'+a.responseText+"</p></div>"),$(t).hide(),e=!1}})))})})}(jQuery),function($){$(function(){$("#envira-gallery-types-nav").on("click","li",function(e){$('input[name="_envira_gallery[type]"]',$(this)).prop("checked",!0).trigger("change")}),$(document).on("change",'input[name="_envira_gallery[type]"]:radio',function(e){var a=$(this).val(),t=$("#envira-tabs #envira-tab-images .spinner"),i=$("#envira-tabs #envira-tab-images #envira-gallery-main");$(t).css("visibility","visible"),$("li",$(this).closest("#envira-gallery-types-nav")).removeClass("envira-active"),$(this).closest("li").addClass("envira-active"),$("a",$("#envira-tabs-nav li").first()).trigger("click"),$(i).html(""),$.ajax({type:"post",url:envira_gallery_metabox.ajax,dataType:"json",data:{action:"envira_gallery_change_type",post_id:envira_gallery_metabox.id,type:a,nonce:envira_gallery_metabox.change_nonce},success:function(e){$(i).html(e.html),$(document).trigger("enviraGalleryType",e),$(t).hide()},error:function(e,a){$(i).html('<div class="error"><p>'+e.responseText+"</p></div>"),$(t).hide()}})})})}(jQuery);var EnviraGalleryBulkEditImageView=wp.Backbone.View.extend({tagName:"li",className:"attachment",template:wp.template("envira-meta-bulk-editor-image"),initialize:function(e){this.model=e.model},render:function(){return this.$el.html(this.template(this.model.attributes)),this}}),EnviraGalleryBulkEditView=wp.Backbone.View.extend({tagName:"div",className:"edit-attachment-frame mode-select hide-menu hide-router",template:wp.template("envira-meta-bulk-editor"),events:{"keyup input":"updateItem","keyup textarea":"updateItem","change input":"updateItem","change textarea":"updateItem","blur textarea":"updateItem","change select":"updateItem","click .actions a.envira-gallery-meta-submit":"saveItem","keyup input#link-search":"searchLinks","click div.query-results li":"insertLink","click button.media-file":"insertMediaFileLink","click button.attachment-page":"insertAttachmentPageLink"},initialize:function(e){this.on("loading",this.loading,this),this.on("loaded",this.loaded,this),this.is_loading=!1,this.collection=e.collection,this.child_views=e.child_views,this.model=new EnviraGalleryImage},render:function(){return this.$el.html(this.template(this.model.toJSON())),this.collection.forEach(function(e){var a=new EnviraGalleryBulkEditImageView({model:e});this.$el.find("ul.attachments").append(a.render().el)},this),this.child_views.length>0&&this.child_views.forEach(function(e){var a=new e({model:this.model});this.$el.find("div.addons").append(a.render().el)},this),setTimeout(function(){quicktags({id:"caption",buttons:"strong,em,link,ul,ol,li,close"}),QTags._buttonsInit()},500),wpLink.init,this},renderError:function(e){var a={};a.error=e;var t=new wp.media.view.EnviraGalleryError({model:a});return t.render().el},loading:function(){this.is_loading=!0,this.$el.find(".spinner").css("visibility","visible")},loaded:function(e){this.is_loading=!1,this.$el.find(".spinner").css("visibility","hidden"),"undefined"!=typeof e&&this.$el.find("ul.attachments").before(this.renderError(e))},updateItem:function(e){""!=e.target.name&&("checkbox"==e.target.type?value=e.target.checked?1:0:value=e.target.value,this.model.set(e.target.name,value))},saveItem:function(e){e.preventDefault(),this.trigger("loading");var a=[];this.collection.forEach(function(e){a.push(e.id)},this),wp.media.ajax("envira_gallery_save_bulk_meta",{context:this,data:{nonce:envira_gallery_metabox.save_nonce,post_id:envira_gallery_metabox.id,meta:this.model.attributes,image_ids:a},success:function(e){this.collection.forEach(function(e){for(var a in this.model.attributes)value=this.model.attributes[a],value.length>0&&e.set(a,value);var t=JSON.stringify(e.attributes);jQuery("ul#envira-gallery-output li#"+e.get("id")).attr("data-envira-gallery-image-model",t),jQuery("ul#envira-gallery-output li#"+e.get("id")+" div.title").text(e.get("title"))},this),jQuery("nav.envira-tab-options input[type=checkbox]").prop("checked",!1).trigger("change"),this.trigger("loaded loaded:success"),EnviraGalleryModalWindow.close()},error:function(e){this.trigger("loaded loaded:error",e)}})},insertMediaFileLink:function(e){this.trigger("loading"),this.model.set("link",response.media_link),this.trigger("loaded loaded:success"),this.render()},insertAttachmentPageLink:function(e){this.trigger("loading"),this.model.set("link",response.media_link),this.trigger("loaded loaded:success"),this.render()}});jQuery(document).ready(function($){$("#envira-gallery-main").on("click","a.envira-gallery-images-edit",function(e){e.preventDefault(),EnviraGalleryImagesUpdate(!0),EnviraGalleryModalWindow.content(new EnviraGalleryBulkEditView({collection:EnviraGalleryImages,child_views:EnviraGalleryChildViews})),EnviraGalleryModalWindow.open()})}),jQuery(document).ready(function($){$(document).on("click","a.envira-gallery-images-delete",function(e){e.preventDefault();var a=confirm(envira_gallery_metabox.remove_multiple);if(!a)return!1;var t=[];$("ul#envira-gallery-output > li.selected").each(function(){t.push($(this).attr("id"))});var i=$(this).parent().attr("id");$.ajax({url:envira_gallery_metabox.ajax,type:"post",dataType:"json",data:{action:"envira_gallery_remove_images",attachment_ids:t,post_id:envira_gallery_metabox.id,nonce:envira_gallery_metabox.remove_nonce},success:function(e){$("ul#envira-gallery-output > li.selected").remove(),$("nav.envira-select-options").fadeOut(),$(".envira-gallery-load-library").attr("data-envira-gallery-offset",0).addClass("has-search").trigger("click"),EnviraGalleryImagesUpdate(!1)},error:function(e,a,t){$(envira_gallery_output).before('<div class="error"><p>'+a.responseText+"</p></div>")}})}),$(document).on("click","#envira-gallery-main .envira-gallery-remove-image",function(e){e.preventDefault();var a=confirm(envira_gallery_metabox.remove);if(a){var t=$(this).parent().attr("id");$.ajax({url:envira_gallery_metabox.ajax,type:"post",dataType:"json",data:{action:"envira_gallery_remove_image",attachment_id:t,post_id:envira_gallery_metabox.id,nonce:envira_gallery_metabox.remove_nonce},success:function(e){$("#"+t).fadeOut("normal",function(){$(this).remove(),$(".envira-gallery-load-library").attr("data-envira-gallery-offset",0).addClass("has-search").trigger("click"),EnviraGalleryImagesUpdate(!1)})},error:function(e,a,t){$(envira_gallery_output).before('<div class="error"><p>'+a.responseText+"</p></div>")}})}})});var EnviraGalleryImage=Backbone.Model.extend({defaults:{id:"",title:"",caption:"",alt:"",link:""}}),EnviraGalleryImages=new Backbone.Collection;if("undefined"==typeof EnviraGalleryModalWindow)var EnviraGalleryModalWindow=new wp.media.view.Modal({controller:{trigger:function(){}}});var EnviraGalleryEditView=wp.Backbone.View.extend({tagName:"div",className:"edit-attachment-frame mode-select hide-menu hide-router",template:wp.template("envira-meta-editor"),events:{"click .edit-media-header .left":"loadPreviousItem","click .edit-media-header .right":"loadNextItem","keyup input":"updateItem","keyup textarea":"updateItem","change input":"updateItem","change textarea":"updateItem","blur textarea":"updateItem","change select":"updateItem","click .actions a.envira-gallery-meta-submit":"saveItem","keyup input#link-search":"searchLinks","click div.query-results li":"insertLink","click button.media-file":"insertMediaFileLink","click button.attachment-page":"insertAttachmentPageLink"},initialize:function(e){this.on("loading",this.loading,this),this.on("loaded",this.loaded,this),this.is_loading=!1,this.collection=e.collection,this.child_views=e.child_views,this.attachment_id=e.attachment_id,this.attachment_index=0,this.search_timer="";var a=0;this.collection.each(function(e){return e.get("id")==this.attachment_id?(this.model=e,this.attachment_index=a,!1):void a++},this)},render:function(){return this.$el.html(this.template(this.model.attributes)),this.child_views.length>0&&this.child_views.forEach(function(e){var a=new e({model:this.model});this.$el.find("div.addons").append(a.render().el)},this),this.$el.find("textarea[name=caption]").val(this.model.get("caption")),setTimeout(function(){quicktags({id:"caption",buttons:"strong,em,link,ul,ol,li,close"}),QTags._buttonsInit()},500),wpLink.init,0==this.attachment_index&&this.$el.find("button.left").addClass("disabled"),this.attachment_index==this.collection.length-1&&this.$el.find("button.right").addClass("disabled"),this},renderError:function(e){var a={};a.error=e;var t=new wp.media.view.EnviraGalleryError({model:a});return t.render().el},loading:function(){this.is_loading=!0,this.$el.find(".spinner").css("visibility","visible")},loaded:function(e){this.is_loading=!1,this.$el.find(".spinner").css("visibility","hidden"),"undefined"!=typeof e&&this.$el.find("div.media-toolbar").after(this.renderError(e))},loadPreviousItem:function(){this.attachment_index--,this.model=this.collection.at(this.attachment_index),this.attachment_id=this.model.get("id"),this.render()},loadNextItem:function(){this.attachment_index++,this.model=this.collection.at(this.attachment_index),this.attachment_id=this.model.get("id"),this.render()},updateItem:function(e){""!=e.target.name&&("checkbox"==e.target.type?value=e.target.checked?e.target.value:0:value=e.target.value,this.model.set(e.target.name,value))},saveItem:function(e){e.preventDefault(),this.trigger("loading"),wp.media.ajax("envira_gallery_save_meta",{context:this,data:{nonce:envira_gallery_metabox.save_nonce,post_id:envira_gallery_metabox.id,attach_id:this.model.get("id"),meta:this.model.attributes},success:function(e){this.trigger("loaded loaded:success");var a=JSON.stringify(this.model.attributes),t=jQuery("ul#envira-gallery-output li#"+this.model.get("id"));jQuery(t).attr("data-envira-gallery-image-model",a),jQuery("div.meta div.title span",t).text(this.model.get("title")),jQuery("div.meta div.title a.hint",t).attr("title",this.model.get("title")),this.model.get("title").length>20?jQuery("div.meta div.title a.hint",t).removeClass("hidden"):jQuery("div.meta div.title a.hint",t).addClass("hidden");var i=this.$el.find(".saved");i.fadeIn(),setTimeout(function(){i.fadeOut()},1500)},error:function(e){this.trigger("loaded loaded:error",e)}})},searchLinks:function(e){},insertLink:function(e){},insertMediaFileLink:function(e){this.trigger("loading"),wp.media.ajax("envira_gallery_get_attachment_links",{context:this,data:{nonce:envira_gallery_metabox.save_nonce,attachment_id:this.model.get("id")},success:function(e){this.model.set("link",e.media_link),this.trigger("loaded loaded:success"),this.render()},error:function(e){this.trigger("loaded loaded:error",e)}})},insertAttachmentPageLink:function(e){this.trigger("loading"),wp.media.ajax("envira_gallery_get_attachment_links",{context:this,data:{nonce:envira_gallery_metabox.save_nonce,attachment_id:this.model.get("id")},success:function(e){this.model.set("link",e.attachment_page),this.trigger("loaded loaded:success"),this.render()},error:function(e){this.trigger("loaded loaded:error",e)}})}}),EnviraGalleryChildViews=[];jQuery(document).ready(function($){$(document).on("click","#envira-gallery-main a.envira-gallery-modify-image",function(e){e.preventDefault(),EnviraGalleryImagesUpdate(!1);var a=$(this).parent().data("envira-gallery-image");EnviraGalleryModalWindow.content(new EnviraGalleryEditView({collection:EnviraGalleryImages,child_views:EnviraGalleryChildViews,attachment_id:a})),EnviraGalleryModalWindow.open()})}),jQuery(document).ready(function($){$("a.envira-media-library").on("click",function(e){return e.preventDefault(),wp.media.frames.envira?void wp.media.frames.envira.open():(wp.media.frames.envira=wp.media({frame:"post",title:wp.media.view.l10n.insertIntoPost,button:{text:wp.media.view.l10n.insertIntoPost},multiple:!0}),wp.media.frames.envira.on("open",function(){var e=wp.media.frames.envira.state().get("selection");$("ul#envira-gallery-output li").each(function(){var a=wp.media.attachment($(this).attr("id"));e.add(a?[a]:[])})}),wp.media.frames.envira.on("insert",function(e){var a=wp.media.frames.envira.state(),t=[];e.each(function(e){var i=a.display(e).toJSON();switch(i.link){case"none":e.set("link",e.get("url"));break;case"file":e.set("link",e.get("url"));break;case"post":break;case"custom":e.set("link",i.linkUrl)}t.push(e.toJSON())},this),$.post(envira_gallery_metabox.ajax,{action:"envira_gallery_insert_images",nonce:envira_gallery_metabox.insert_nonce,post_id:envira_gallery_metabox.id,images:t},function(e){e&&e.success&&($("#envira-gallery-output").html(e.success),EnviraGalleryImagesUpdate(!1))},"json")}),void wp.media.frames.envira.open())})});var envira_gallery_output="#envira-gallery-output",envira_gallery_shift_key_pressed=!1,envira_gallery_last_selected_image=!1;jQuery(document).ready(function($){$(document).on("click","nav.envira-tab-options a",function(e){e.preventDefault();var a=$(this).closest(".envira-tab-options"),t=$(this).data("view"),i=$(this).data("view-style");$(t).hasClass(i)||($(t).removeClass("list").removeClass("grid").addClass(i),$("a",a).removeClass("selected"),$(this).addClass("selected"),$.ajax({url:envira_gallery_metabox.ajax,type:"post",dataType:"json",data:{action:"envira_gallery_set_user_setting",name:"envira_gallery_image_view",value:i,nonce:envira_gallery_metabox.set_user_setting_nonce},success:function(e){},error:function(e,a,t){$(envira_gallery_output).before('<div class="error"><p>'+a.responseText+"</p></div>")}}))}),$(document).on("change","nav.envira-tab-options input",function(e){$(this).prop("checked")?($("li",$(envira_gallery_output)).addClass("selected"),$("nav.envira-select-options").fadeIn()):($("li",$(envira_gallery_output)).removeClass("selected"),$("nav.envira-select-options").fadeOut())}),envira_gallery_sortable($),$(document).on("enviraGalleryType",function(){$(envira_gallery_output).length>0&&envira_gallery_sortable($)}),$(document).on("click","ul#envira-gallery-output li.envira-gallery-image > img, li.envira-gallery-image > div, li.envira-gallery-image > a.check",function(e){e.preventDefault();var a=$(this).parent();if($(a).hasClass("selected"))$(a).removeClass("selected"),envira_gallery_last_selected_image=!1;else{if(envira_gallery_shift_key_pressed&&envira_gallery_last_selected_image!==!1){var t=$("ul#envira-gallery-output li").index($(envira_gallery_last_selected_image)),i=$("ul#envira-gallery-output li").index($(a)),n=0;if(i>t)for(n=t;i>=n;n++)$("ul#envira-gallery-output li:eq( "+n+")").addClass("selected");else for(n=i;t>=n;n++)$("ul#envira-gallery-output li:eq( "+n+")").addClass("selected")}$(a).addClass("selected"),envira_gallery_last_selected_image=$(a)}$("ul#envira-gallery-output > li.selected").length>0?$("nav.envira-select-options").fadeIn():$("nav.envira-select-options").fadeOut()}),$(document).on("keyup keydown",function(e){envira_gallery_shift_key_pressed=e.shiftKey})}),jQuery(document).ready(function($){$("#envira-gallery-main").on("click","a.envira-gallery-images-move",function(e){e.preventDefault();var a=$(this).data("action");EnviraGalleryModalWindow.content(new EnviraGallerySelectionView({action:a,multiple:!1,sidebar_view:"envira-meta-move-media-sidebar",modal_title:envira_gallery_metabox.move_media_modal_title,insert_button_label:envira_gallery_metabox.move_media_insert_button_label,onInsert:function(){EnviraGalleryImagesUpdate(!0);var e=[];EnviraGalleryImages.forEach(function(a){e.push(a.get("id"))}),this.selection.forEach(function(t){wp.media.ajax("envira_"+a+"_move_media",{context:this,data:{nonce:envira_gallery_metabox.move_media_nonce,from_gallery_id:envira_gallery_metabox.id,to_gallery_id:t.id,image_ids:e},success:function(e){$("ul#envira-gallery-output > li.selected").remove(),$("nav.envira-select-options").fadeOut(),EnviraGalleryImagesUpdate(!1),EnviraGalleryModalWindow.close()},error:function(e){alert(e)}})})}})),EnviraGalleryModalWindow.open()})}),function($){$(function(){if("undefined"!=typeof uploader){$("input#plupload-browse-button").val(envira_gallery_metabox.uploader_files_computer);var e=$("#envira-gallery .envira-progress-bar"),a=$("#envira-gallery .envira-progress-bar div.envira-progress-bar-inner"),t=$("#envira-gallery .envira-progress-bar div.envira-progress-bar-status"),i=$("#envira-gallery-output"),n=$("#envira-gallery-upload-error"),r=0;uploader.bind("Init",function(e){$("#drag-drop-area").fadeIn(),$("a.envira-media-library.button").fadeIn()}),uploader.bind("FilesAdded",function(a,i){$(n).html(""),r=i.length,$(".uploading .current",$(t)).text("1"),$(".uploading .total",$(t)).text(r),$(".uploading",$(t)).show(),$(".done",$(t)).hide(),$(e).fadeIn()}),uploader.bind("UploadProgress",function(e,i){$(".uploading .current",$(t)).text(r-e.total.queued+1),$(a).css({width:e.total.percent+"%"})}),uploader.bind("FileUploaded",function(e,a,t){$.post(envira_gallery_metabox.ajax,{action:"envira_gallery_load_image",nonce:envira_gallery_metabox.load_image,id:t.response,post_id:envira_gallery_metabox.id},function(e){switch(envira_gallery_metabox.media_position){case"before":$(i).prepend(e);break;case"after":default:$(i).append(e)}EnviraGalleryImagesUpdate(!1)},"json")}),uploader.bind("UploadComplete",function(){$(".uploading",$(t)).hide(),$(".done",$(t)).show(),setTimeout(function(){$(e).fadeOut()},1e3)}),uploader.bind("Error",function(e,a){$("#envira-gallery-upload-error").html('<div class="error fade"><p>'+a.file.name+": "+a.message+"</p></div>"),e.refresh()})}})}(jQuery),jQuery(document).ready(function($){$('select[name="_envira_gallery[image_size]"]').on("change",function(){"envira_gallery_random"==$(this).val()?$("tr#envira-config-image-sizes-random-box").show():$("tr#envira-config-image-sizes-random-box").hide()}),$('select[name="_envira_gallery[image_size]"]').trigger("change")});
|
1 |
+
function EnviraGalleryImagesUpdate(e){EnviraGalleryImages.reset();var a="ul#envira-gallery-output li.envira-gallery-image"+(e?".selected":"");jQuery(a).each(function(){var e=jQuery.parseJSON(jQuery(this).attr("data-envira-gallery-image-model"));e.alt=EnviraGalleryStripslashes(e.alt),EnviraGalleryImages.add(new EnviraGalleryImage(e))}),jQuery("#envira-gallery-main span.count").text(jQuery("ul#envira-gallery-output li.envira-gallery-image").length)}function EnviraGalleryStripslashes(e){return(e+"").replace(/\\(.?)/g,function(e,a){switch(a){case"\\":return"\\";case"0":return"\0";case"":return"";default:return a}})}function envira_gallery_sortable($){$(envira_gallery_output).sortable({containment:envira_gallery_output,items:"li",cursor:"move",forcePlaceholderSize:!0,placeholder:"dropzone",helper:function(e,a){a.hasClass("selected")||a.addClass("selected").siblings().removeClass("selected");var t=a.parent().children(".selected").clone();a.data("multidrag",t).siblings(".selected").remove();var i=$("<li/>");return i.append(t)},stop:function(e,a){var t=a.item.data("multidrag");a.item.after(t).remove(),$("li.selected",$(envira_gallery_output)).removeClass("selected"),$.ajax({url:envira_gallery_metabox.ajax,type:"post",async:!0,cache:!1,dataType:"json",data:{action:"envira_gallery_sort_images",order:$(envira_gallery_output).sortable("toArray").toString(),post_id:envira_gallery_metabox.id,nonce:envira_gallery_metabox.sort},success:function(e){EnviraGalleryImagesUpdate(!1)},error:function(e,a,t){$(envira_gallery_output).before('<div class="error"><p>'+a.responseText+"</p></div>")}})}})}jQuery(document).ready(function($){});var envira_video_link="p.envira-intro a.envira-video",envira_close_video_link="a.envira-video-close";jQuery(document).ready(function($){$(document).on("click",envira_video_link,function(e){e.preventDefault();var a=$(this).attr("href");a.search("autoplay=1")==-1&&(a+=a.search("rel=")==-1?"?rel=0&autoplay=1":"&autoplay=1"),$("div.envira-video-help").remove();var t=$(this).closest("p.envira-intro");$(t).append('<div class="envira-video-help"><iframe src="'+a+'" /><a href="#" class="envira-video-close dashicons dashicons-no"></a></div>')}),$(document).on("click",envira_close_video_link,function(e){e.preventDefault(),$(this).closest(".envira-video-help").remove()})}),jQuery(document).ready(function($){$(document).on("click","a.envira-gallery-images-delete",function(e){e.preventDefault();var a=confirm(envira_gallery_metabox.remove_multiple);if(!a)return!1;var t=[];$("ul#envira-gallery-output > li.selected").each(function(){t.push($(this).attr("id"))});var i=$(this).parent().attr("id");$.ajax({url:envira_gallery_metabox.ajax,type:"post",dataType:"json",data:{action:"envira_gallery_remove_images",attachment_ids:t,post_id:envira_gallery_metabox.id,nonce:envira_gallery_metabox.remove_nonce},success:function(e){$("ul#envira-gallery-output > li.selected").remove(),$("nav.envira-select-options").fadeOut(),$(".envira-gallery-load-library").attr("data-envira-gallery-offset",0).addClass("has-search").trigger("click"),EnviraGalleryImagesUpdate(!1)},error:function(e,a,t){$(envira_gallery_output).before('<div class="error"><p>'+a.responseText+"</p></div>")}})}),$(document).on("click","#envira-gallery-main .envira-gallery-remove-image",function(e){e.preventDefault();var a=confirm(envira_gallery_metabox.remove);if(a){var t=$(this).parent().attr("id");$.ajax({url:envira_gallery_metabox.ajax,type:"post",dataType:"json",data:{action:"envira_gallery_remove_image",attachment_id:t,post_id:envira_gallery_metabox.id,nonce:envira_gallery_metabox.remove_nonce},success:function(e){$("#"+t).fadeOut("normal",function(){$(this).remove(),$(".envira-gallery-load-library").attr("data-envira-gallery-offset",0).addClass("has-search").trigger("click"),EnviraGalleryImagesUpdate(!1)})},error:function(e,a,t){$(envira_gallery_output).before('<div class="error"><p>'+a.responseText+"</p></div>")}})}})});var EnviraGalleryImage=Backbone.Model.extend({defaults:{id:"",title:"",caption:"",alt:"",link:""}}),EnviraGalleryImages=new Backbone.Collection;if("undefined"==typeof EnviraGalleryModalWindow)var EnviraGalleryModalWindow=new wp.media.view.Modal({controller:{trigger:function(){}}});var EnviraGalleryEditView=wp.Backbone.View.extend({tagName:"div",className:"edit-attachment-frame mode-select hide-menu hide-router",template:wp.template("envira-meta-editor"),events:{"click .edit-media-header .left":"loadPreviousItem","click .edit-media-header .right":"loadNextItem","keyup input":"updateItem","keyup textarea":"updateItem","change input":"updateItem","change textarea":"updateItem","blur textarea":"updateItem","change select":"updateItem","click .actions a.envira-gallery-meta-submit":"saveItem","keyup input#link-search":"searchLinks","click div.query-results li":"insertLink","click button.media-file":"insertMediaFileLink","click button.attachment-page":"insertAttachmentPageLink"},initialize:function(e){this.on("loading",this.loading,this),this.on("loaded",this.loaded,this),this.is_loading=!1,this.collection=e.collection,this.child_views=e.child_views,this.attachment_id=e.attachment_id,this.attachment_index=0,this.search_timer="";var a=0;this.collection.each(function(e){return e.get("id")==this.attachment_id?(this.model=e,this.attachment_index=a,!1):void a++},this)},render:function(){return this.$el.html(this.template(this.model.attributes)),this.child_views.length>0&&this.child_views.forEach(function(e){var a=new e({model:this.model});this.$el.find("div.envira-addons").append(a.render().el)},this),this.$el.find("textarea[name=caption]").val(this.model.get("caption")),setTimeout(function(){quicktags({id:"caption",buttons:"strong,em,link,ul,ol,li,close"}),QTags._buttonsInit()},500),wpLink.init,0==this.attachment_index&&this.$el.find("button.left").addClass("disabled"),this.attachment_index==this.collection.length-1&&this.$el.find("button.right").addClass("disabled"),this},renderError:function(e){var a={};a.error=e;var t=new wp.media.view.EnviraGalleryError({model:a});return t.render().el},loading:function(){this.is_loading=!0,this.$el.find(".spinner").css("visibility","visible")},loaded:function(e){this.is_loading=!1,this.$el.find(".spinner").css("visibility","hidden"),"undefined"!=typeof e&&this.$el.find("div.media-toolbar").after(this.renderError(e))},loadPreviousItem:function(){this.attachment_index--,this.model=this.collection.at(this.attachment_index),this.attachment_id=this.model.get("id"),this.render()},loadNextItem:function(){this.attachment_index++,this.model=this.collection.at(this.attachment_index),this.attachment_id=this.model.get("id"),this.render()},updateItem:function(e){""!=e.target.name&&("checkbox"==e.target.type?value=e.target.checked?e.target.value:0:value=e.target.value,this.model.set(e.target.name,value))},saveItem:function(e){e.preventDefault(),this.trigger("loading"),wp.media.ajax("envira_gallery_save_meta",{context:this,data:{nonce:envira_gallery_metabox.save_nonce,post_id:envira_gallery_metabox.id,attach_id:this.model.get("id"),meta:this.model.attributes},success:function(e){this.trigger("loaded loaded:success");var a=JSON.stringify(this.model.attributes),t=jQuery("ul#envira-gallery-output li#"+this.model.get("id"));jQuery(t).attr("data-envira-gallery-image-model",a),jQuery("div.meta div.title span",t).text(this.model.get("title")),jQuery("div.meta div.title a.hint",t).attr("title",this.model.get("title")),this.model.get("title").length>20?jQuery("div.meta div.title a.hint",t).removeClass("hidden"):jQuery("div.meta div.title a.hint",t).addClass("hidden");var i=this.$el.find(".saved");i.fadeIn(),setTimeout(function(){i.fadeOut()},1500)},error:function(e){this.trigger("loaded loaded:error",e)}})},searchLinks:function(e){},insertLink:function(e){},insertMediaFileLink:function(e){this.trigger("loading"),wp.media.ajax("envira_gallery_get_attachment_links",{context:this,data:{nonce:envira_gallery_metabox.save_nonce,attachment_id:this.model.get("id")},success:function(e){this.model.set("link",e.media_link),this.trigger("loaded loaded:success"),this.render()},error:function(e){this.trigger("loaded loaded:error",e)}})},insertAttachmentPageLink:function(e){this.trigger("loading"),wp.media.ajax("envira_gallery_get_attachment_links",{context:this,data:{nonce:envira_gallery_metabox.save_nonce,attachment_id:this.model.get("id")},success:function(e){this.model.set("link",e.attachment_page),this.trigger("loaded loaded:success"),this.render()},error:function(e){this.trigger("loaded loaded:error",e)}})}}),EnviraGalleryChildViews=[];jQuery(document).ready(function($){$(document).on("click","#envira-gallery-main a.envira-gallery-modify-image",function(e){e.preventDefault(),EnviraGalleryImagesUpdate(!1);var a=$(this).parent().data("envira-gallery-image");EnviraGalleryModalWindow.content(new EnviraGalleryEditView({collection:EnviraGalleryImages,child_views:EnviraGalleryChildViews,attachment_id:a})),EnviraGalleryModalWindow.open()})}),jQuery(document).ready(function($){$("a.envira-media-library").on("click",function(e){return e.preventDefault(),wp.media.frames.envira?void wp.media.frames.envira.open():(wp.media.frames.envira=wp.media({frame:"post",title:wp.media.view.l10n.insertIntoPost,button:{text:wp.media.view.l10n.insertIntoPost},multiple:!0}),wp.media.frames.envira.on("open",function(){var e=wp.media.frames.envira.state().get("selection");$("ul#envira-gallery-output li").each(function(){var a=wp.media.attachment($(this).attr("id"));e.add(a?[a]:[])})}),wp.media.frames.envira.on("insert",function(e){var a=wp.media.frames.envira.state(),t=[];e.each(function(e){var i=a.display(e).toJSON();switch(i.link){case"none":e.set("link",e.get("url"));break;case"file":e.set("link",e.get("url"));break;case"post":break;case"custom":e.set("link",i.linkUrl)}t.push(e.toJSON())},this),$.post(envira_gallery_metabox.ajax,{action:"envira_gallery_insert_images",nonce:envira_gallery_metabox.insert_nonce,post_id:envira_gallery_metabox.id,images:JSON.stringify(t)},function(e){e&&e.success&&($("#envira-gallery-output").html(e.success),EnviraGalleryImagesUpdate(!1))},"json")}),void wp.media.frames.envira.open())})});var envira_gallery_output="#envira-gallery-output",envira_gallery_shift_key_pressed=!1,envira_gallery_last_selected_image=!1;jQuery(document).ready(function($){$(document).on("click","nav.envira-tab-options a",function(e){e.preventDefault();var a=$(this).closest(".envira-tab-options"),t=$(this).data("view"),i=$(this).data("view-style");$(t).hasClass(i)||($(t).removeClass("list").removeClass("grid").addClass(i),$("a",a).removeClass("selected"),$(this).addClass("selected"),$.ajax({url:envira_gallery_metabox.ajax,type:"post",dataType:"json",data:{action:"envira_gallery_set_user_setting",name:"envira_gallery_image_view",value:i,nonce:envira_gallery_metabox.set_user_setting_nonce},success:function(e){},error:function(e,a,t){$(envira_gallery_output).before('<div class="error"><p>'+a.responseText+"</p></div>")}}))}),$(document).on("change","nav.envira-tab-options input",function(e){$(this).prop("checked")?($("li",$(envira_gallery_output)).addClass("selected"),$("nav.envira-select-options").fadeIn()):($("li",$(envira_gallery_output)).removeClass("selected"),$("nav.envira-select-options").fadeOut())}),envira_gallery_sortable($),$(document).on("enviraGalleryType",function(){$(envira_gallery_output).length>0&&envira_gallery_sortable($)}),$(document).on("click","ul#envira-gallery-output li.envira-gallery-image > img, li.envira-gallery-image > div, li.envira-gallery-image > a.check",function(e){e.preventDefault();var a=$(this).parent();if($(a).hasClass("selected"))$(a).removeClass("selected"),envira_gallery_last_selected_image=!1;else{if(envira_gallery_shift_key_pressed&&envira_gallery_last_selected_image!==!1){var t=$("ul#envira-gallery-output li").index($(envira_gallery_last_selected_image)),i=$("ul#envira-gallery-output li").index($(a)),r=0;if(t<i)for(r=t;r<=i;r++)$("ul#envira-gallery-output li:eq( "+r+")").addClass("selected");else for(r=i;r<=t;r++)$("ul#envira-gallery-output li:eq( "+r+")").addClass("selected")}$(a).addClass("selected"),envira_gallery_last_selected_image=$(a)}$("ul#envira-gallery-output > li.selected").length>0?$("nav.envira-select-options").fadeIn():$("nav.envira-select-options").fadeOut()}),$(document).on("keyup keydown",function(e){envira_gallery_shift_key_pressed=e.shiftKey})}),function($){$(function(){if("undefined"!=typeof uploader){$("input#plupload-browse-button").val(envira_gallery_metabox.uploader_files_computer);var e=$("#envira-gallery .envira-progress-bar"),a=$("#envira-gallery .envira-progress-bar div.envira-progress-bar-inner"),t=$("#envira-gallery .envira-progress-bar div.envira-progress-bar-status"),i=$("#envira-gallery-output"),r=$("#envira-gallery-upload-error"),n=0;uploader.bind("Init",function(e){$("#drag-drop-area").fadeIn(),$("a.envira-media-library.button").fadeIn()}),uploader.bind("FilesAdded",function(a,i){$(r).html(""),n=i.length,$(".uploading .current",$(t)).text("1"),$(".uploading .total",$(t)).text(n),$(".uploading",$(t)).show(),$(".done",$(t)).hide(),$(e).fadeIn()}),uploader.bind("UploadProgress",function(e,i){$(".uploading .current",$(t)).text(n-e.total.queued+1),$(a).css({width:e.total.percent+"%"})}),uploader.bind("FileUploaded",function(e,a,t){$.post(envira_gallery_metabox.ajax,{action:"envira_gallery_load_image",nonce:envira_gallery_metabox.load_image,id:t.response,post_id:envira_gallery_metabox.id},function(e){switch(envira_gallery_metabox.media_position){case"before":$(i).prepend(e);break;case"after":default:$(i).append(e)}EnviraGalleryImagesUpdate(!1)},"json")}),uploader.bind("UploadComplete",function(){$(".uploading",$(t)).hide(),$(".done",$(t)).show(),setTimeout(function(){$(e).fadeOut()},1e3)}),uploader.bind("Error",function(e,a){$("#envira-gallery-upload-error").html('<div class="error fade"><p>'+a.file.name+": "+a.message+"</p></div>"),e.refresh()})}})}(jQuery);
|
assets/scss/_fonts.scss
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Generated by Glyphter (http://www.glyphter.com) on Tue Mar 22 2016*/
|
2 |
+
@font-face {
|
3 |
+
font-family: 'envira';
|
4 |
+
src: url('../fonts/envira.eot');
|
5 |
+
src: url('../fonts/envira.eot?#iefix') format('embedded-opentype'),
|
6 |
+
url('../fonts/envira.woff') format('woff'),
|
7 |
+
url('../fonts/envira.ttf') format('truetype'),
|
8 |
+
url('../fonts/envira.svg#envira') format('svg');
|
9 |
+
font-weight: normal;
|
10 |
+
font-style: normal;
|
11 |
+
}
|
12 |
+
[class*='envira-']:before{
|
13 |
+
display: inline-block;
|
14 |
+
font-family: 'envira';
|
15 |
+
font-style: normal;
|
16 |
+
font-weight: normal;
|
17 |
+
line-height: 1;
|
18 |
+
-webkit-font-smoothing: antialiased;
|
19 |
+
-moz-osx-font-smoothing: grayscale
|
20 |
+
}
|
21 |
+
.envira-configuration:before{content:'\0041';}
|
22 |
+
.envira-leaf:before{content:'\0042';}
|
23 |
+
.envira-lightbox:before{content:'\0044';}
|
24 |
+
.envira-misc:before{content:'\0045';}
|
25 |
+
.envira-mobile:before{content:'\0046';}
|
26 |
+
.envira-pagination:before{content:'\0047';}
|
27 |
+
.envira-proofing:before{content:'\0048';}
|
28 |
+
.envira-slideshow:before{content:'\0049';}
|
29 |
+
.envira-tags:before{content:'\004a';}
|
30 |
+
.envira-thumbnails:before{content:'\004b';}
|
31 |
+
.envira-video:before{content:'\004c';}
|
32 |
+
.envira-watermark:before{content:'\004d';}
|
33 |
+
.envira-cloud-download:before{content:'\004e';}
|
34 |
+
.envira-toggle-on:before{content:'\004f';}
|
35 |
+
.envira-plus-circle:before{content:'\0050';}
|
36 |
+
.envira-down-arrow:before{content:'\0051';}
|
37 |
+
.envira-list:before{content:'\0052';}
|
38 |
+
.envira-grid:before{content:'\0053';}
|
39 |
+
.envira-pinterest-p:before{content:'\0054';}
|
40 |
+
.envira-pencil:before{content:'\0055';}
|
41 |
+
.envira-close:before{content:'\0056';}
|
42 |
+
.envira-check:before{content:'\0057';}
|
assets/scss/_mixins.scss
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
Mixins
|
3 |
+
========================================================================== */
|
4 |
+
/**
|
5 |
+
* Media Query
|
6 |
+
*/
|
7 |
+
|
8 |
+
@mixin mq($breakpoint) {
|
9 |
+
|
10 |
+
$mq-xxs: "(max-width: 599px)";
|
11 |
+
$mq-xs: "(min-width: 600px) and (max-width: 767px)";
|
12 |
+
$mq-sm: "(min-width: 768px) and (max-width: 991px)";
|
13 |
+
$mq-md: "(min-width: 992px) and (max-width: 1199px)";
|
14 |
+
$mq-lg: "(min-width: 1200px)";
|
15 |
+
|
16 |
+
@if $breakpoint == xxs {
|
17 |
+
@media #{$mq-xxs} { @content; }
|
18 |
+
}
|
19 |
+
@if $breakpoint == xs {
|
20 |
+
@media #{$mq-xs} { @content; }
|
21 |
+
}
|
22 |
+
@else if $breakpoint == sm {
|
23 |
+
@media #{$mq-sm} { @content; }
|
24 |
+
}
|
25 |
+
@else if $breakpoint == md {
|
26 |
+
@media #{$mq-md} { @content; }
|
27 |
+
}
|
28 |
+
@else if $breakpoint == lg {
|
29 |
+
@media #{$mq-lg} { @content; }
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Border-Radius
|
35 |
+
*/
|
36 |
+
|
37 |
+
$prefixes: -webkit-, -moz-, -o-, "";
|
38 |
+
|
39 |
+
@mixin borderRadius($size...) {
|
40 |
+
@if length($size) == 1 {
|
41 |
+
@each $prefix in $prefixes {
|
42 |
+
#{$prefix}border-radius: $size;
|
43 |
+
}
|
44 |
+
} @else {
|
45 |
+
@include customBorderRadius($size...);
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
@mixin customBorderRadius($topLeft: 0, $topRight: 0, $bottomRight: 0, $bottomLeft: 0) {
|
50 |
+
@each $prefix in $prefixes {
|
51 |
+
@if $prefix == "-moz-" {
|
52 |
+
@if $topLeft != 0 { -moz-border-radius-topleft: $topLeft; }
|
53 |
+
@if $topRight != 0 { -moz-border-radius-topright: $topRight; }
|
54 |
+
@if $bottomRight != 0 { -moz-border-radius-bottomright: $bottomRight; }
|
55 |
+
@if $bottomLeft != 0 { -moz-border-radius-bottomleft: $bottomLeft; }
|
56 |
+
} @else {
|
57 |
+
@if $topLeft != 0 { #{$prefix}border-top-left-radius: $topLeft; }
|
58 |
+
@if $topRight != 0 { #{$prefix}border-top-right-radius: $topRight; }
|
59 |
+
@if $bottomRight != 0 { #{$prefix}border-bottom-right-radius: $bottomRight; }
|
60 |
+
@if $bottomLeft != 0 { #{$prefix}border-bottom-left-radius: $bottomLeft; }
|
61 |
+
}
|
62 |
+
}
|
63 |
+
}
|
assets/scss/_vars.scss
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
Variables SCSS
|
3 |
+
========================================================================== */
|
4 |
+
|
5 |
+
$font__main: sans-serif;
|
6 |
+
$font__code: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
|
7 |
+
$font__pre: "Courier 10 Pitch", Courier, monospace;
|
8 |
+
$font__line-height-body: 1.5;
|
9 |
+
$font__line-height-pre: 1.6;
|
10 |
+
|
11 |
+
$font_size_tab: 13px;
|
12 |
+
|
13 |
+
$white: #ffffff;
|
14 |
+
$beige_light: #f7f7f7;
|
15 |
+
$black: #000000;
|
16 |
+
$green: #7cc048;
|
17 |
+
$green_alt: #95dc5e;
|
18 |
+
$grey: #666666;
|
19 |
+
$grey_dark: #6b6e72;
|
20 |
+
$grey_dark_2: #dddddd;
|
21 |
+
$red: #e02626;
|
22 |
+
$red_alt: #f85959;
|
23 |
+
|
24 |
+
$primary_color: $green;
|
25 |
+
$primary_button_color: $primary_color;
|
26 |
+
$primary_button_color_hover: $green_alt;
|
27 |
+
|
28 |
+
$danger_button_color: $red;
|
29 |
+
$danger_button_color_hover: $red_alt;
|
30 |
+
|
31 |
+
$color_bg: #f1f1f1;
|
32 |
+
|
33 |
+
$header-height: 120px;
|
34 |
+
$navbar-height: 50px;
|
assets/scss/addons.scss
ADDED
@@ -0,0 +1,597 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
addons.css loads on all the Envira Addons Administration Screen
|
3 |
+
|
4 |
+
Any styles that will be used by the Addons section (or are useful to be
|
5 |
+
included for future use) should be added to this file.
|
6 |
+
|
7 |
+
========================================================================== */
|
8 |
+
|
9 |
+
/* ==========================================================================
|
10 |
+
Imports
|
11 |
+
========================================================================== */
|
12 |
+
@import "vars";
|
13 |
+
@import "mixins";
|
14 |
+
@import "fonts";
|
15 |
+
|
16 |
+
/* ==========================================================================
|
17 |
+
Header
|
18 |
+
========================================================================== */
|
19 |
+
|
20 |
+
#addon-heading {
|
21 |
+
/**
|
22 |
+
* Clearfix
|
23 |
+
*/
|
24 |
+
&:after {
|
25 |
+
content: "";
|
26 |
+
display: table;
|
27 |
+
clear: both;
|
28 |
+
}
|
29 |
+
h1 {
|
30 |
+
float: left;
|
31 |
+
@include mq(xs) {
|
32 |
+
float: none;
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Search Addons and Filter
|
38 |
+
*/
|
39 |
+
form {
|
40 |
+
float: right;
|
41 |
+
|
42 |
+
input {
|
43 |
+
border: 1px solid $grey_dark_2;
|
44 |
+
@include borderRadius(3px);
|
45 |
+
background-color: $white;
|
46 |
+
color: $grey;
|
47 |
+
margin: 7px 10px 0 5px;
|
48 |
+
font-size: 14px;
|
49 |
+
padding: 5px 8px;
|
50 |
+
}
|
51 |
+
select {
|
52 |
+
margin: -5px 20px 0 0;
|
53 |
+
}
|
54 |
+
.spinner {
|
55 |
+
float: none;
|
56 |
+
margin: -3px auto auto auto;
|
57 |
+
}
|
58 |
+
@include mq(xs) {
|
59 |
+
float: none;
|
60 |
+
display: table;
|
61 |
+
margin: 10px auto 0 auto;
|
62 |
+
}
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
/* ==========================================================================
|
67 |
+
Addons Styles
|
68 |
+
========================================================================== */
|
69 |
+
|
70 |
+
.envira-gallery {
|
71 |
+
margin: 20px auto;
|
72 |
+
}
|
73 |
+
|
74 |
+
.envira-hideme {
|
75 |
+
display: none;
|
76 |
+
}
|
77 |
+
|
78 |
+
#envira-gallery-addons {
|
79 |
+
padding: 20px 0;
|
80 |
+
}
|
81 |
+
|
82 |
+
#envira-addons {
|
83 |
+
/**
|
84 |
+
* Buttons
|
85 |
+
* - Make buttons beige
|
86 |
+
*/
|
87 |
+
.button,
|
88 |
+
.button-primary {
|
89 |
+
text-shadow: none;
|
90 |
+
background-color: $beige_light;
|
91 |
+
color: #23282d;
|
92 |
+
font-weight: 600;
|
93 |
+
border: 1px solid #ccc;
|
94 |
+
line-height: inherit;
|
95 |
+
height: inherit;
|
96 |
+
padding: 5px 15px;
|
97 |
+
box-shadow: none;
|
98 |
+
cursor: pointer;
|
99 |
+
|
100 |
+
&:hover {
|
101 |
+
color: #23282d;
|
102 |
+
background-color: #fafafa;
|
103 |
+
border-color: #999;
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Action Buttons
|
109 |
+
* - Activate / Deactivate Addon
|
110 |
+
* - Install Addon
|
111 |
+
*/
|
112 |
+
.envira-addon-action-button {
|
113 |
+
padding-left: 20px;
|
114 |
+
padding-right: 20px;
|
115 |
+
.envira-cloud-download {
|
116 |
+
font-size: 19px;
|
117 |
+
float: left;
|
118 |
+
margin-right: 8px;
|
119 |
+
color: #8d8f92;
|
120 |
+
}
|
121 |
+
.envira-toggle-on {
|
122 |
+
font-size: 19px;
|
123 |
+
float: left;
|
124 |
+
margin-right: 8px;
|
125 |
+
margin-top: 1px;
|
126 |
+
color: $green;
|
127 |
+
}
|
128 |
+
}
|
129 |
+
.envira-addon-upgrade-button {
|
130 |
+
background-color: $green;
|
131 |
+
color: $white;
|
132 |
+
float: none !important;
|
133 |
+
margin: 0 auto;
|
134 |
+
display: table;
|
135 |
+
line-height: 25px;
|
136 |
+
&:hover {
|
137 |
+
background-color: #95dc5e;
|
138 |
+
color: $white;
|
139 |
+
border-color: #95dc5e;
|
140 |
+
}
|
141 |
+
}
|
142 |
+
.envira-addon-action-button.envira-activate-addon {
|
143 |
+
.envira-toggle-on {
|
144 |
+
color: #e92c21;
|
145 |
+
-moz-transform: scaleX(-1);
|
146 |
+
-o-transform: scaleX(-1);
|
147 |
+
-webkit-transform: scaleX(-1);
|
148 |
+
transform: scaleX(-1);
|
149 |
+
filter: FlipH;
|
150 |
+
-ms-filter: "FlipH";
|
151 |
+
}
|
152 |
+
}
|
153 |
+
.envira-addon-title {
|
154 |
+
margin-top: 30px;
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Addons Area:
|
159 |
+
* - Licensed
|
160 |
+
* - Unlicensed
|
161 |
+
*/
|
162 |
+
.envira-addons-area {
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Clearfix
|
166 |
+
*/
|
167 |
+
&:after {
|
168 |
+
content: "";
|
169 |
+
display: table;
|
170 |
+
clear: both;
|
171 |
+
}
|
172 |
+
|
173 |
+
&.licensed {
|
174 |
+
margin: 20px 0 40px 0;
|
175 |
+
padding: 0 0 20px 0;
|
176 |
+
border-bottom: 1px solid #ddd;
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* Addon Card
|
181 |
+
*/
|
182 |
+
.envira-addon {
|
183 |
+
border: 1px solid $grey_dark_2;
|
184 |
+
position: relative;
|
185 |
+
background: $white;
|
186 |
+
border-radius: 3px;
|
187 |
+
float: left;
|
188 |
+
margin: 0 2% 2% 0;
|
189 |
+
min-height: 465px;
|
190 |
+
padding: 0px;
|
191 |
+
text-align: center;
|
192 |
+
width: 32%;
|
193 |
+
box-sizing: border-box;
|
194 |
+
-webkit-box-sizing: border-box;
|
195 |
+
-moz-box-sizing: border-box;
|
196 |
+
|
197 |
+
&:nth-child(3n) {
|
198 |
+
margin-right: 0;
|
199 |
+
}
|
200 |
+
&:nth-child(3n+1) {
|
201 |
+
clear: both;
|
202 |
+
}
|
203 |
+
@include mq(md) {
|
204 |
+
min-height: 420px;
|
205 |
+
}
|
206 |
+
@include mq(sm) {
|
207 |
+
width: 100% !important;
|
208 |
+
min-height: 525px;
|
209 |
+
}
|
210 |
+
@include mq(xs) {
|
211 |
+
width: 100% !important;
|
212 |
+
min-height: 525px;
|
213 |
+
}
|
214 |
+
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Thumbnail Image
|
218 |
+
*/
|
219 |
+
.envira-addon-thumb {
|
220 |
+
margin: 20px auto 20px auto;
|
221 |
+
max-width: 100%;
|
222 |
+
@include mq(md) {
|
223 |
+
margin: 10px auto 15px auto;
|
224 |
+
}
|
225 |
+
@include mq(sm) {
|
226 |
+
margin: 10px auto 15px auto;
|
227 |
+
}
|
228 |
+
@include mq(xs) {
|
229 |
+
margin: 10px auto 15px auto;
|
230 |
+
}
|
231 |
+
}
|
232 |
+
|
233 |
+
/**
|
234 |
+
* Paragraph Tag
|
235 |
+
*/
|
236 |
+
.envira-addon-excerpt {
|
237 |
+
margin-top: 0;
|
238 |
+
margin-bottom: 90px; /* 70px height on abs toolbar + 20px */
|
239 |
+
margin-left: 0px;
|
240 |
+
margin-right: 0px;
|
241 |
+
color: #2f2f2f;
|
242 |
+
font-weight: 200;
|
243 |
+
padding: 0 20px;
|
244 |
+
display: table;
|
245 |
+
}
|
246 |
+
|
247 |
+
/**
|
248 |
+
* Success and Error Messages
|
249 |
+
*/
|
250 |
+
.envira-addon-message {
|
251 |
+
background: $beige_light;
|
252 |
+
border-top: 1px solid $grey_dark_2;
|
253 |
+
}
|
254 |
+
|
255 |
+
.envira-addon-message,
|
256 |
+
.envira-addon-error {
|
257 |
+
position: absolute;
|
258 |
+
bottom: 0;
|
259 |
+
float: left;
|
260 |
+
width: 100%;
|
261 |
+
-moz-border-radius: 3px;
|
262 |
+
-webkit-border-radius: 3px;
|
263 |
+
border-radius: 3px;
|
264 |
+
margin: 0;
|
265 |
+
padding: 0;
|
266 |
+
text-align: left;
|
267 |
+
|
268 |
+
/**
|
269 |
+
* Interior
|
270 |
+
*/
|
271 |
+
.interior {
|
272 |
+
padding: 20px;
|
273 |
+
/**
|
274 |
+
* Clearfix
|
275 |
+
*/
|
276 |
+
&:after {
|
277 |
+
content: "";
|
278 |
+
display: table;
|
279 |
+
clear: both;
|
280 |
+
}
|
281 |
+
}
|
282 |
+
|
283 |
+
/**
|
284 |
+
* Active Addon
|
285 |
+
*/
|
286 |
+
&.envira-addon-active {
|
287 |
+
.addon-status span {
|
288 |
+
color: $green;
|
289 |
+
}
|
290 |
+
.interior.envira-addon-active .addon-status span {
|
291 |
+
color: $green;
|
292 |
+
}
|
293 |
+
.interior.envira-addon-inactive .addon-status span {
|
294 |
+
color: #e82c20;
|
295 |
+
}
|
296 |
+
.interior.envira-addon-not-installed .addon-status span {
|
297 |
+
color: #a3a4a5;
|
298 |
+
}
|
299 |
+
}
|
300 |
+
|
301 |
+
/**
|
302 |
+
* Inactive Addon
|
303 |
+
*/
|
304 |
+
&.envira-addon-inactive {
|
305 |
+
.addon-status span {
|
306 |
+
color: #e82c20;
|
307 |
+
}
|
308 |
+
.interior.envira-addon-active .addon-status span {
|
309 |
+
color: $green;
|
310 |
+
}
|
311 |
+
.interior.envira-addon-inactive .addon-status span {
|
312 |
+
color: #e82c20;
|
313 |
+
}
|
314 |
+
.interior.envira-addon-not-installed .addon-status span {
|
315 |
+
color: #a3a4a5;
|
316 |
+
}
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* Not Installed Addon
|
321 |
+
*/
|
322 |
+
&.envira-addon-not-installed {
|
323 |
+
.addon-status span {
|
324 |
+
color: #a3a4a5;
|
325 |
+
}
|
326 |
+
.interior.envira-addon-active .addon-status span {
|
327 |
+
color: $green;
|
328 |
+
}
|
329 |
+
.interior.envira-addon-inactive .addon-status span {
|
330 |
+
color: #e82c20;
|
331 |
+
}
|
332 |
+
.interior.envira-addon-not-installed .addon-status span {
|
333 |
+
color: #a3a4a5;
|
334 |
+
}
|
335 |
+
}
|
336 |
+
|
337 |
+
span.addon-status {
|
338 |
+
float: left;
|
339 |
+
font-weight: bold;
|
340 |
+
}
|
341 |
+
a.button {
|
342 |
+
float: right;
|
343 |
+
/* margin-right: 30px;*/
|
344 |
+
}
|
345 |
+
span.envira-gallery-spinner {
|
346 |
+
position: absolute;
|
347 |
+
bottom: 15px;
|
348 |
+
right: 0;
|
349 |
+
}
|
350 |
+
}
|
351 |
+
|
352 |
+
/**
|
353 |
+
* Action
|
354 |
+
*/
|
355 |
+
.envira-addon-action {
|
356 |
+
display: inline;
|
357 |
+
float: right;
|
358 |
+
|
359 |
+
.button-primary {
|
360 |
+
margin: -5px 0 0 0;
|
361 |
+
@include borderRadius(3px);
|
362 |
+
}
|
363 |
+
.button-primary:hover {
|
364 |
+
color: #23282d;
|
365 |
+
background-color: #fafafa;
|
366 |
+
border-color: #999;
|
367 |
+
}
|
368 |
+
}
|
369 |
+
|
370 |
+
/**
|
371 |
+
* Error
|
372 |
+
*/
|
373 |
+
.envira-addon-error {
|
374 |
+
bottom: 10px;
|
375 |
+
float: none;
|
376 |
+
left: 15px;
|
377 |
+
right: 20px;
|
378 |
+
width: auto;
|
379 |
+
.xinterior {
|
380 |
+
width: 100%;
|
381 |
+
margin: 0;
|
382 |
+
background: #fff;
|
383 |
+
border-left: 4px solid #dc3232;
|
384 |
+
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
385 |
+
}
|
386 |
+
p {
|
387 |
+
padding: 10px;
|
388 |
+
|
389 |
+
margin: 5px 10px;
|
390 |
+
}
|
391 |
+
|
392 |
+
.wrap {
|
393 |
+
margin: 0;
|
394 |
+
}
|
395 |
+
|
396 |
+
.icon32 {
|
397 |
+
display: none;
|
398 |
+
}
|
399 |
+
|
400 |
+
h2 {
|
401 |
+
padding: 0;
|
402 |
+
}
|
403 |
+
|
404 |
+
.form-table th {
|
405 |
+
padding: 10px 0;
|
406 |
+
width: 30% !important;
|
407 |
+
}
|
408 |
+
|
409 |
+
.form-table input[type="text"],
|
410 |
+
.envira-addon .envira-addon-error .form-table input[type="password"] {
|
411 |
+
width: 100% !important;
|
412 |
+
}
|
413 |
+
|
414 |
+
p.submit {
|
415 |
+
padding: 0;
|
416 |
+
}
|
417 |
+
}
|
418 |
+
|
419 |
+
/**
|
420 |
+
* Description
|
421 |
+
*/
|
422 |
+
p {
|
423 |
+
color: #2f2f2f;
|
424 |
+
font-size: 13px;
|
425 |
+
margin: 10px 0 0;
|
426 |
+
text-shadow: 0 1px #fff;
|
427 |
+
}
|
428 |
+
}
|
429 |
+
#envira-addons-unlock-more-area {
|
430 |
+
margin: 40px auto 20px auto;
|
431 |
+
padding-bottom: 0;
|
432 |
+
border-bottom: 0;
|
433 |
+
}
|
434 |
+
}
|
435 |
+
}
|
436 |
+
|
437 |
+
#envira-addons-more-area {
|
438 |
+
.envira-addon .interior {
|
439 |
+
padding: 15px 20px !important;
|
440 |
+
}
|
441 |
+
}
|
442 |
+
|
443 |
+
/**
|
444 |
+
* Forms
|
445 |
+
*/
|
446 |
+
|
447 |
+
#envira-addons-refresh-addons-form {
|
448 |
+
width: 100%;
|
449 |
+
max-width: 850px;
|
450 |
+
float: left;
|
451 |
+
@include mq(md) {
|
452 |
+
max-width: 450px;
|
453 |
+
}
|
454 |
+
@include mq(sm) {
|
455 |
+
max-width: 50%;
|
456 |
+
input.button {
|
457 |
+
display: block;
|
458 |
+
}
|
459 |
+
}
|
460 |
+
@include mq(xs) {
|
461 |
+
width: 100%;
|
462 |
+
float: none;
|
463 |
+
input.button {
|
464 |
+
display: block;
|
465 |
+
}
|
466 |
+
}
|
467 |
+
|
468 |
+
}
|
469 |
+
#envira-filter-form {
|
470 |
+
float: right;
|
471 |
+
input[type='submit'],
|
472 |
+
select {
|
473 |
+
background-color: $beige_light;
|
474 |
+
color: #23282d;
|
475 |
+
border: 1px solid $grey_dark_2;
|
476 |
+
height: 30px;
|
477 |
+
width: 120px;
|
478 |
+
margin-top: -2px;
|
479 |
+
}
|
480 |
+
input {
|
481 |
+
padding: 5px 15px;
|
482 |
+
box-shadow: 0;
|
483 |
+
/*max-height: 30px;*/
|
484 |
+
cursor: pointer;
|
485 |
+
background-color: $beige_light;
|
486 |
+
color: #23282d;
|
487 |
+
&:hover {
|
488 |
+
color: #23282d;
|
489 |
+
background-color: #fafafa;
|
490 |
+
border-color: #999;
|
491 |
+
}
|
492 |
+
}
|
493 |
+
|
494 |
+
.spinner {
|
495 |
+
float: left;
|
496 |
+
}
|
497 |
+
|
498 |
+
}
|
499 |
+
|
500 |
+
/**
|
501 |
+
* Clearfix
|
502 |
+
*/
|
503 |
+
.clearfix {
|
504 |
+
&:after {
|
505 |
+
content: "";
|
506 |
+
display: table;
|
507 |
+
clear: both;
|
508 |
+
}
|
509 |
+
}
|
510 |
+
|
511 |
+
|
512 |
+
|
513 |
+
/* ==========================================================================
|
514 |
+
Responsive Addons Styles
|
515 |
+
========================================================================== */
|
516 |
+
@media only screen and (max-width: 1050px) {
|
517 |
+
#envira-addons-area {
|
518 |
+
/**
|
519 |
+
* Addons - 2 Column
|
520 |
+
*/
|
521 |
+
.envira-addon {
|
522 |
+
width: 49%;
|
523 |
+
/*min-height: 300px;*/
|
524 |
+
|
525 |
+
&:nth-child(2n) {
|
526 |
+
margin-right: 0;
|
527 |
+
}
|
528 |
+
&:nth-child(2n+1) {
|
529 |
+
clear: both;
|
530 |
+
}
|
531 |
+
|
532 |
+
&:nth-child(3n) {
|
533 |
+
margin-right: 2%;
|
534 |
+
}
|
535 |
+
&:nth-child(3n+1) {
|
536 |
+
clear: none;
|
537 |
+
}
|
538 |
+
.envira-addon-excerpt {
|
539 |
+
margin-bottom: 90px;
|
540 |
+
}
|
541 |
+
}
|
542 |
+
}
|
543 |
+
}
|
544 |
+
@media only screen and (max-width: 782px) {
|
545 |
+
#envira-addons-area {
|
546 |
+
.envira-addon {
|
547 |
+
min-height: auto;
|
548 |
+
/**
|
549 |
+
* Action
|
550 |
+
*/
|
551 |
+
.envira-addon-action {
|
552 |
+
.button-primary {
|
553 |
+
margin: -7px 0 0 0;
|
554 |
+
}
|
555 |
+
}
|
556 |
+
}
|
557 |
+
}
|
558 |
+
}
|
559 |
+
@media only screen and (max-width: 600px) {
|
560 |
+
|
561 |
+
#envira-addons-area {
|
562 |
+
|
563 |
+
.envira-addon {
|
564 |
+
width: 99%;
|
565 |
+
/**
|
566 |
+
* Messages
|
567 |
+
*/
|
568 |
+
.envira-addon-message {
|
569 |
+
float: left;
|
570 |
+
width: 100%;
|
571 |
+
/*margin: 0 0 10px 0;*/
|
572 |
+
|
573 |
+
span.addon-status {
|
574 |
+
display: block;
|
575 |
+
width: 100%;
|
576 |
+
margin: 0 0 5px 0;
|
577 |
+
text-align: center;
|
578 |
+
}
|
579 |
+
div.envira-addon-action {
|
580 |
+
clear: both;
|
581 |
+
display: block;
|
582 |
+
width: 100%;
|
583 |
+
text-align: center;
|
584 |
+
|
585 |
+
.button-primary {
|
586 |
+
clear: both;
|
587 |
+
float: none;
|
588 |
+
margin: 0 auto;
|
589 |
+
}
|
590 |
+
}
|
591 |
+
}
|
592 |
+
.envira-addon-excerpt {
|
593 |
+
margin-bottom: 120px;
|
594 |
+
}
|
595 |
+
}
|
596 |
+
}
|
597 |
+
}
|
assets/scss/admin.scss
ADDED
@@ -0,0 +1,678 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
admin.css loads on all Envira Administration Screens:
|
3 |
+
- WP_List_Tables
|
4 |
+
- Add New
|
5 |
+
- Albums
|
6 |
+
- Settings
|
7 |
+
- NextGEN Import
|
8 |
+
|
9 |
+
Any styles that will be used by all of the above (or are useful to be included
|
10 |
+
for future use) should be added to this file:
|
11 |
+
- Header and Logo
|
12 |
+
- WordPress Red Button
|
13 |
+
========================================================================== */
|
14 |
+
|
15 |
+
/* ==========================================================================
|
16 |
+
Imports
|
17 |
+
========================================================================== */
|
18 |
+
@import "vars";
|
19 |
+
@import "mixins";
|
20 |
+
|
21 |
+
body.post-type-envira,
|
22 |
+
body.post-type-envira_album {
|
23 |
+
// Remove left padding on the main content area, so items can be full width e.g. the header
|
24 |
+
#wpcontent {
|
25 |
+
padding-left: 0;
|
26 |
+
}
|
27 |
+
|
28 |
+
// adding some padding/margin around the WordPress update-nag
|
29 |
+
.update-nag {
|
30 |
+
margin-left: 20px;
|
31 |
+
margin-bottom: 20px;
|
32 |
+
}
|
33 |
+
/**
|
34 |
+
* Subheading
|
35 |
+
*/
|
36 |
+
.subheading {
|
37 |
+
background-color: $white;
|
38 |
+
height: 45px;
|
39 |
+
margin-left: -20px;
|
40 |
+
@include mq(xs) {
|
41 |
+
height: auto;
|
42 |
+
padding-bottom: 20px;
|
43 |
+
}
|
44 |
+
|
45 |
+
h1 {
|
46 |
+
font-size: 20px;
|
47 |
+
font-weight: 400;
|
48 |
+
line-height: 45px;
|
49 |
+
margin: 0 0 0 20px;
|
50 |
+
padding-left: 20px;
|
51 |
+
}
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Wrapper
|
56 |
+
*/
|
57 |
+
div.wrap {
|
58 |
+
margin: 0;
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Page Title Action (i.e. Add New)
|
62 |
+
*/
|
63 |
+
a.page-title-action {
|
64 |
+
position: relative;
|
65 |
+
top: -55px;
|
66 |
+
left: 185px;
|
67 |
+
&:hover {
|
68 |
+
background: $primary_button_color_hover;
|
69 |
+
border-color: $primary_button_color_hover;
|
70 |
+
color: $white;
|
71 |
+
}
|
72 |
+
/* display: none; */ /* Trying To Prevent The "Shift" Upload Page Load Before JS can move the button */
|
73 |
+
/* margin-left: 10px; */ /* Change WordPress 4.7 */
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Screen Title
|
78 |
+
* - h1 used from WordPress 4.3+
|
79 |
+
* - h2 used in WordPress 4.2-
|
80 |
+
*/
|
81 |
+
> h1,
|
82 |
+
> h2 {
|
83 |
+
margin: 0 0 20px 0;
|
84 |
+
padding: 15px 20px 10px 20px;
|
85 |
+
background: $white;
|
86 |
+
font-weight: 600;
|
87 |
+
font-size: 20px;
|
88 |
+
width: 100%;
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Page Title Action (i.e. Add New)
|
92 |
+
*/
|
93 |
+
a.page-title-action {
|
94 |
+
top: -3px;
|
95 |
+
left: auto;
|
96 |
+
&:hover {
|
97 |
+
background: $primary_button_color_hover;
|
98 |
+
border-color: $primary_button_color_hover;
|
99 |
+
color: $white;
|
100 |
+
}
|
101 |
+
/* display: none; */ /* Trying To Prevent The "Shift" Upload Page Load Before JS can move the button */
|
102 |
+
/* margin-left: 10px; */ /* Change WordPress 4.7 */
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Subtitle (search results title)
|
107 |
+
*/
|
108 |
+
span.subtitle {
|
109 |
+
float: right;
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Tab Panels
|
116 |
+
* - By default, they're hidden and the .envira-active class displays them
|
117 |
+
*/
|
118 |
+
.envira-tab {
|
119 |
+
display: none;
|
120 |
+
|
121 |
+
/**
|
122 |
+
* Active Tab
|
123 |
+
*/
|
124 |
+
&.envira-active {
|
125 |
+
display: block;
|
126 |
+
}
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Code Snippets
|
131 |
+
*/
|
132 |
+
div.envira-code {
|
133 |
+
position: relative;
|
134 |
+
margin: 0 0 10px 0;
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Clearfix
|
138 |
+
*/
|
139 |
+
&:after {
|
140 |
+
content: "";
|
141 |
+
display: table;
|
142 |
+
clear: both;
|
143 |
+
}
|
144 |
+
|
145 |
+
code {
|
146 |
+
display: block;
|
147 |
+
font-size: 11px;
|
148 |
+
padding: 5px 20px 5px 5px;
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* Copy to Clipboard
|
153 |
+
*/
|
154 |
+
a.envira-clipboard {
|
155 |
+
position: absolute;
|
156 |
+
top: 5px;
|
157 |
+
right: 5px;
|
158 |
+
color: #23282d;
|
159 |
+
|
160 |
+
span {
|
161 |
+
display: block;
|
162 |
+
text-indent: -9999px;
|
163 |
+
}
|
164 |
+
}
|
165 |
+
}
|
166 |
+
}
|
167 |
+
|
168 |
+
/* ==========================================================================
|
169 |
+
Button Styles
|
170 |
+
========================================================================== */
|
171 |
+
.button {
|
172 |
+
@include borderRadius(2px);
|
173 |
+
padding: 0 16px 1px;
|
174 |
+
height: 33px;
|
175 |
+
line-height: 30px;
|
176 |
+
text-decoration: none;
|
177 |
+
text-shadow: none;
|
178 |
+
font-weight: 600;
|
179 |
+
-webkit-box-shadow: none;
|
180 |
+
box-shadow: none;
|
181 |
+
|
182 |
+
/**
|
183 |
+
* Small
|
184 |
+
*/
|
185 |
+
&.button-small {
|
186 |
+
padding: 0 8px 1px;
|
187 |
+
line-height: 22px;
|
188 |
+
height: 24px;
|
189 |
+
}
|
190 |
+
|
191 |
+
/**
|
192 |
+
* Extra Large
|
193 |
+
* (.button-large is used on publish actions in WordPress, so we don't want to affect that)
|
194 |
+
*/
|
195 |
+
&.button-x-large {
|
196 |
+
padding: 0 32px 1px;
|
197 |
+
line-height: 48px;
|
198 |
+
height: 50px;
|
199 |
+
font-size: 18px;
|
200 |
+
text-transform: uppercase;
|
201 |
+
}
|
202 |
+
|
203 |
+
@include mq(xs) {
|
204 |
+
margin-top: 10px;
|
205 |
+
}
|
206 |
+
|
207 |
+
/**
|
208 |
+
* Screen Options
|
209 |
+
* - Don't set a height
|
210 |
+
*/
|
211 |
+
&.show-settings {
|
212 |
+
height: auto;
|
213 |
+
}
|
214 |
+
|
215 |
+
/**
|
216 |
+
* Green Button
|
217 |
+
* - Replaces WordPress' default primary button style
|
218 |
+
*/
|
219 |
+
&.button-primary {
|
220 |
+
background: $primary_button_color;
|
221 |
+
border-color: $primary_button_color;
|
222 |
+
-webkit-box-shadow: none;
|
223 |
+
box-shadow: none;
|
224 |
+
color: $white;
|
225 |
+
|
226 |
+
&:hover{
|
227 |
+
background: $primary_button_color_hover;
|
228 |
+
border-color: $primary_button_color_hover;
|
229 |
+
color: $white;
|
230 |
+
}
|
231 |
+
}
|
232 |
+
|
233 |
+
/**
|
234 |
+
* Red Button
|
235 |
+
*/
|
236 |
+
&.button-danger {
|
237 |
+
background: $danger_button_color;
|
238 |
+
border-color: $danger_button_color;
|
239 |
+
-webkit-box-shadow: none;
|
240 |
+
box-shadow: none;
|
241 |
+
color: $white;
|
242 |
+
|
243 |
+
&:hover{
|
244 |
+
background: $danger_button_color_hover;
|
245 |
+
border-color: $danger_button_color_hover;
|
246 |
+
color: $white;
|
247 |
+
}
|
248 |
+
}
|
249 |
+
}
|
250 |
+
|
251 |
+
/* ==========================================================================
|
252 |
+
Thickbox (used for choosing a Default Gallery/Album)
|
253 |
+
========================================================================== */
|
254 |
+
div#TB_window {
|
255 |
+
div.wrap {
|
256 |
+
margin: 10px 20px 0 2px;
|
257 |
+
}
|
258 |
+
}
|
259 |
+
}
|
260 |
+
|
261 |
+
/* ==========================================================================
|
262 |
+
Header
|
263 |
+
========================================================================== */
|
264 |
+
#envira-header-temp {
|
265 |
+
position: relative;
|
266 |
+
}
|
267 |
+
|
268 |
+
#envira-header {
|
269 |
+
background-color: $green;
|
270 |
+
height: $header-height;
|
271 |
+
@include mq(xxs) {
|
272 |
+
padding-top: 46px;
|
273 |
+
}
|
274 |
+
|
275 |
+
h1.envira-logo {
|
276 |
+
margin: 0;
|
277 |
+
line-height: $header-height;
|
278 |
+
margin-left: 20px;
|
279 |
+
|
280 |
+
img {
|
281 |
+
/**
|
282 |
+
* Image width and height (image is 2x so this ensures it displays correctly)
|
283 |
+
*/
|
284 |
+
max-width: 339px;
|
285 |
+
height: auto;
|
286 |
+
width: 90%;
|
287 |
+
|
288 |
+
/**
|
289 |
+
* Responsive - ensure the logo doesn't exceed the header dimensions
|
290 |
+
*/
|
291 |
+
@include mq(xs) {
|
292 |
+
width: 90%;
|
293 |
+
}
|
294 |
+
}
|
295 |
+
}
|
296 |
+
}
|
297 |
+
#wpbody {
|
298 |
+
@include mq(xxs) {
|
299 |
+
padding-top: 0;
|
300 |
+
}
|
301 |
+
}
|
302 |
+
body.post-type-envira_album {
|
303 |
+
div.wrap {
|
304 |
+
/**
|
305 |
+
* Page Title Action (i.e. Add New)
|
306 |
+
*/
|
307 |
+
a.page-title-action {
|
308 |
+
left: 180px !important;
|
309 |
+
}
|
310 |
+
> h1,
|
311 |
+
> h2 {
|
312 |
+
a.page-title-action {
|
313 |
+
top: -3px !important;
|
314 |
+
left: auto !important;
|
315 |
+
}
|
316 |
+
}
|
317 |
+
}
|
318 |
+
}
|
319 |
+
body.post-php.post-type-envira_album {
|
320 |
+
div.wrap {
|
321 |
+
/**
|
322 |
+
* Page Title Action (i.e. Add New)
|
323 |
+
*/
|
324 |
+
a.page-title-action {
|
325 |
+
left: 200px !important;
|
326 |
+
}
|
327 |
+
> h1,
|
328 |
+
> h2 {
|
329 |
+
a.page-title-action {
|
330 |
+
top: -3px !important;
|
331 |
+
left: auto !important;
|
332 |
+
}
|
333 |
+
}
|
334 |
+
}
|
335 |
+
}
|
336 |
+
body.post-php.post-type-envira {
|
337 |
+
div.wrap {
|
338 |
+
/**
|
339 |
+
* Page Title Action (i.e. Add New)
|
340 |
+
*/
|
341 |
+
a.page-title-action {
|
342 |
+
left: 215px !important;
|
343 |
+
}
|
344 |
+
> h1,
|
345 |
+
> h2 {
|
346 |
+
a.page-title-action {
|
347 |
+
top: -3px !important;
|
348 |
+
left: auto !important;
|
349 |
+
}
|
350 |
+
}
|
351 |
+
}
|
352 |
+
}
|
353 |
+
|
354 |
+
/* ==========================================================================
|
355 |
+
Inline Notices
|
356 |
+
- These are Envira-specific notices with custom styling for e.g. Instagram oAuth,
|
357 |
+
upgrade / upsells.
|
358 |
+
========================================================================== */
|
359 |
+
.envira-notice {
|
360 |
+
position: relative;
|
361 |
+
margin: 0 0 20px 0;
|
362 |
+
padding: 20px;
|
363 |
+
@include borderRadius(2px);
|
364 |
+
|
365 |
+
/**
|
366 |
+
* Heading
|
367 |
+
*/
|
368 |
+
p.envira-intro {
|
369 |
+
border: none !important;
|
370 |
+
margin: 0 0 20px 0 !important;
|
371 |
+
padding: 0 !important;
|
372 |
+
}
|
373 |
+
|
374 |
+
/**
|
375 |
+
* Close Button
|
376 |
+
*/
|
377 |
+
.notice-dismiss {
|
378 |
+
top: 10px;
|
379 |
+
right: 10px;
|
380 |
+
color: $white;
|
381 |
+
|
382 |
+
&:before {
|
383 |
+
color: $white;
|
384 |
+
width: 26px;
|
385 |
+
height: 26px;
|
386 |
+
font-size: 22px;
|
387 |
+
}
|
388 |
+
}
|
389 |
+
|
390 |
+
/**
|
391 |
+
* Success
|
392 |
+
*/
|
393 |
+
&.success {
|
394 |
+
background: $green;
|
395 |
+
color: $white;
|
396 |
+
border: none;
|
397 |
+
|
398 |
+
/**
|
399 |
+
* Button background color needs to be adjusted so it displays over the green background
|
400 |
+
* of the success message
|
401 |
+
*/
|
402 |
+
.button.button-primary {
|
403 |
+
background-color: $green_alt;
|
404 |
+
border-color: $green_alt;
|
405 |
+
}
|
406 |
+
}
|
407 |
+
|
408 |
+
/**
|
409 |
+
* Warning
|
410 |
+
*/
|
411 |
+
&.warning {
|
412 |
+
background: #fcf8e3;
|
413 |
+
border: 1px solid #faebcc;
|
414 |
+
|
415 |
+
.notice-dismiss {
|
416 |
+
color: $black;
|
417 |
+
|
418 |
+
&:before {
|
419 |
+
color: $black;
|
420 |
+
}
|
421 |
+
}
|
422 |
+
}
|
423 |
+
|
424 |
+
/**
|
425 |
+
* Error
|
426 |
+
*/
|
427 |
+
&.error {
|
428 |
+
border-top: 1px solid #dc3232;
|
429 |
+
border-right: 1px solid #dc3232;
|
430 |
+
border-bottom: 1px solid #dc3232;
|
431 |
+
}
|
432 |
+
}
|
433 |
+
|
434 |
+
/* ==========================================================================
|
435 |
+
Table, Add, Edit Screens
|
436 |
+
========================================================================== */
|
437 |
+
body.post-type-envira.edit-php,
|
438 |
+
body.post-type-envira.post-new-php,
|
439 |
+
body.post-type-envira.post-php,
|
440 |
+
body.post-type-envira_album.edit-php,
|
441 |
+
body.post-type-envira_album.post-new-php,
|
442 |
+
body.post-type-envira_album.post-php {
|
443 |
+
div.wrap {
|
444 |
+
/**
|
445 |
+
* Remove the margin on the wrapper
|
446 |
+
*/
|
447 |
+
margin: 0;
|
448 |
+
|
449 |
+
/**
|
450 |
+
* Add margin to notices
|
451 |
+
*/
|
452 |
+
> div.error,
|
453 |
+
> div.notice,
|
454 |
+
> div.updated {
|
455 |
+
margin-left: 20px;
|
456 |
+
margin-right: 20px;
|
457 |
+
}
|
458 |
+
}
|
459 |
+
}
|
460 |
+
|
461 |
+
/* ==========================================================================
|
462 |
+
Taxonomy Screens
|
463 |
+
========================================================================== */
|
464 |
+
body.post-type-envira.edit-tags-php,
|
465 |
+
body.post-type-envira.taxonomy-envira-tag {
|
466 |
+
div.wrap {
|
467 |
+
margin: 0;
|
468 |
+
|
469 |
+
/**
|
470 |
+
* Add margin to notices
|
471 |
+
*/
|
472 |
+
> div.error,
|
473 |
+
> div.notice,
|
474 |
+
> div.updated {
|
475 |
+
margin-left: 20px;
|
476 |
+
margin-right: 20px;
|
477 |
+
}
|
478 |
+
|
479 |
+
form.search-form,
|
480 |
+
form#edittag,
|
481 |
+
#col-container {
|
482 |
+
/**
|
483 |
+
* Re-establish the left and right margins, so there's spacing between the Admin Menu
|
484 |
+
* and the content
|
485 |
+
*/
|
486 |
+
margin: 0 20px;
|
487 |
+
}
|
488 |
+
|
489 |
+
/**
|
490 |
+
* Reduce our global custom button sizes so they align with inputs
|
491 |
+
*/
|
492 |
+
.button {
|
493 |
+
height: 28px;
|
494 |
+
line-height: 26px;
|
495 |
+
}
|
496 |
+
}
|
497 |
+
}
|
498 |
+
|
499 |
+
/* ==========================================================================
|
500 |
+
Third Party Screens
|
501 |
+
========================================================================== */
|
502 |
+
body.post-type-envira {
|
503 |
+
div.wrap {
|
504 |
+
/**
|
505 |
+
* Re-establish the left and right margins, so there's spacing between the Admin Menu
|
506 |
+
* and the content for any third party plugins which add sections / pages within Envira
|
507 |
+
*/
|
508 |
+
margin: 0 20px;
|
509 |
+
}
|
510 |
+
}
|
511 |
+
|
512 |
+
/* ==========================================================================
|
513 |
+
Gallery / Album Selection Media Modal
|
514 |
+
========================================================================== */
|
515 |
+
.media-modal {
|
516 |
+
.media-modal-content {
|
517 |
+
.media-frame-content {
|
518 |
+
.attachments-browser.envira-gallery-editor {
|
519 |
+
/**
|
520 |
+
* Error
|
521 |
+
* - Position below the search bar
|
522 |
+
*/
|
523 |
+
div.envira-gallery-error {
|
524 |
+
position: absolute;
|
525 |
+
top: 50px;
|
526 |
+
left: 0;
|
527 |
+
right: 300px;
|
528 |
+
}
|
529 |
+
|
530 |
+
/**
|
531 |
+
* Grid
|
532 |
+
*/
|
533 |
+
ul.attachments {
|
534 |
+
li.attachment {
|
535 |
+
width: 20%;
|
536 |
+
|
537 |
+
div.attachment-preview {
|
538 |
+
div.thumbnail {
|
539 |
+
/**
|
540 |
+
* Thumbnail Image
|
541 |
+
*/
|
542 |
+
img {
|
543 |
+
position: absolute;
|
544 |
+
z-index: 1;
|
545 |
+
top: 0;
|
546 |
+
left: 0;
|
547 |
+
width: 100%;
|
548 |
+
height: 100%;
|
549 |
+
opacity: 0.2;
|
550 |
+
}
|
551 |
+
|
552 |
+
/**
|
553 |
+
* Title
|
554 |
+
*/
|
555 |
+
strong {
|
556 |
+
position: absolute;
|
557 |
+
z-index: 2;
|
558 |
+
height: 50%;
|
559 |
+
top: 0;
|
560 |
+
left: 0;
|
561 |
+
right: 0;
|
562 |
+
padding: 10px;
|
563 |
+
text-align: center;
|
564 |
+
overflow: hidden;
|
565 |
+
-webkit-box-sizing: border-box;
|
566 |
+
-moz-box-sizing: border-box;
|
567 |
+
box-sizing: border-box;
|
568 |
+
vertical-align: bottom;
|
569 |
+
background: rgba(0,0,0,0.07);
|
570 |
+
text-shadow: 1px 1px #ddd;
|
571 |
+
|
572 |
+
span {
|
573 |
+
display: block;
|
574 |
+
position: absolute;
|
575 |
+
bottom: 10px;
|
576 |
+
left: 0;
|
577 |
+
right: 0;
|
578 |
+
padding: 0 10px;
|
579 |
+
text-align: center;
|
580 |
+
}
|
581 |
+
}
|
582 |
+
|
583 |
+
/**
|
584 |
+
* Shortcode
|
585 |
+
*/
|
586 |
+
code {
|
587 |
+
position: absolute;
|
588 |
+
z-index: 2;
|
589 |
+
height: 50%;
|
590 |
+
bottom: 0;
|
591 |
+
left: 0;
|
592 |
+
right: 0;
|
593 |
+
padding: 10px;
|
594 |
+
text-align: center;
|
595 |
+
-webkit-box-sizing: border-box;
|
596 |
+
-moz-box-sizing: border-box;
|
597 |
+
box-sizing: border-box;
|
598 |
+
vertical-align: middle;
|
599 |
+
text-shadow: 1px 1px #ddd;
|
600 |
+
}
|
601 |
+
}
|
602 |
+
}
|
603 |
+
}
|
604 |
+
}
|
605 |
+
|
606 |
+
/**
|
607 |
+
* Sidebar
|
608 |
+
*/
|
609 |
+
div.media-sidebar {
|
610 |
+
div.settings {
|
611 |
+
.name {
|
612 |
+
text-align: left;
|
613 |
+
}
|
614 |
+
}
|
615 |
+
}
|
616 |
+
|
617 |
+
}
|
618 |
+
}
|
619 |
+
}
|
620 |
+
}
|
621 |
+
|
622 |
+
/* ==========================================================================
|
623 |
+
Responsive
|
624 |
+
========================================================================== */
|
625 |
+
@media screen and (max-width: 640px) {
|
626 |
+
body.post-type-envira,
|
627 |
+
body.post-type-envira_album {
|
628 |
+
/**
|
629 |
+
* Wrapper
|
630 |
+
*/
|
631 |
+
div.wrap {
|
632 |
+
/**
|
633 |
+
* Screen Title
|
634 |
+
*/
|
635 |
+
h1 {
|
636 |
+
/**
|
637 |
+
* Allow space for the "Search results for..." text to display, when searching
|
638 |
+
*/
|
639 |
+
padding-bottom: 40px;
|
640 |
+
|
641 |
+
/**
|
642 |
+
* Subtitle (search results title)
|
643 |
+
*/
|
644 |
+
span.subtitle {
|
645 |
+
clear: both;
|
646 |
+
width: 100%;
|
647 |
+
padding: 0;
|
648 |
+
}
|
649 |
+
}
|
650 |
+
}
|
651 |
+
}
|
652 |
+
}
|
653 |
+
|
654 |
+
@media screen and (max-width: 340px) {
|
655 |
+
body.post-type-envira,
|
656 |
+
body.post-type-envira_album {
|
657 |
+
/**
|
658 |
+
* Wrapper
|
659 |
+
*/
|
660 |
+
div.wrap {
|
661 |
+
/**
|
662 |
+
* Screen Title
|
663 |
+
*/
|
664 |
+
h1 {
|
665 |
+
text-align: center;
|
666 |
+
|
667 |
+
/**
|
668 |
+
* Page Title Action (i.e. Add New)
|
669 |
+
*/
|
670 |
+
a.page-title-action {
|
671 |
+
display: block;
|
672 |
+
text-align: center;
|
673 |
+
margin: 10px 0 0 0;
|
674 |
+
}
|
675 |
+
}
|
676 |
+
}
|
677 |
+
}
|
678 |
+
}
|
assets/scss/editor.scss
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
editor.css loads on any screen where the Add Gallery button is output
|
3 |
+
|
4 |
+
Any styles that will be used by the Insert Gallery modal should be put here
|
5 |
+
========================================================================== */
|
6 |
+
|
7 |
+
/* ==========================================================================
|
8 |
+
Imports
|
9 |
+
========================================================================== */
|
10 |
+
@import "vars";
|
11 |
+
@import "mixins";
|
12 |
+
|
13 |
+
/* ==========================================================================
|
14 |
+
Add Gallery Button
|
15 |
+
========================================================================== */
|
16 |
+
.envira-gallery-choose-gallery,
|
17 |
+
.envira-albums-choose-album {
|
18 |
+
padding-left: .4em;
|
19 |
+
|
20 |
+
span.envira-media-icon {
|
21 |
+
background: url(images/menu-icon.png) transparent no-repeat scroll 0 0;
|
22 |
+
width: 16px;
|
23 |
+
height: 16px;
|
24 |
+
display: inline-block;
|
25 |
+
vertical-align: text-top;
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
/* ==========================================================================
|
30 |
+
Retina
|
31 |
+
========================================================================== */
|
32 |
+
@media only screen and (-webkit-min-device-pixel-ratio: 2),
|
33 |
+
only screen and (min--moz-device-pixel-ratio: 2),
|
34 |
+
only screen and (-o-min-device-pixel-ratio: 2/1),
|
35 |
+
only screen and (min-device-pixel-ratio: 2),
|
36 |
+
only screen and (min-resolution: 192dpi),
|
37 |
+
only screen and (min-resolution: 2dppx) {
|
38 |
+
#envira-media-modal-button .envira-media-icon[style] {
|
39 |
+
background-image: url(images/menu-icon@2x.png) !important;
|
40 |
+
background-size: 16px 16px !important;
|
41 |
+
}
|
42 |
+
}
|
assets/scss/envira.scss
ADDED
@@ -0,0 +1,1344 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
Envira Gallery Styles
|
3 |
+
========================================================================== */
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Envira Gallery - Reset
|
7 |
+
*/
|
8 |
+
.envira-gallery-wrap,
|
9 |
+
.envira-gallery-wrap *,
|
10 |
+
.envira-tags-filter-list,
|
11 |
+
.envira-tags-filter-list * {
|
12 |
+
background:none;
|
13 |
+
border:0 none;
|
14 |
+
border-radius:0;
|
15 |
+
-webkit-border-radius:0;
|
16 |
+
-moz-border-radius:0;
|
17 |
+
float:none;
|
18 |
+
font-size:100%;
|
19 |
+
height:auto;
|
20 |
+
letter-spacing:normal;
|
21 |
+
list-style:none;
|
22 |
+
outline:none;
|
23 |
+
position:static;
|
24 |
+
text-decoration:none;
|
25 |
+
text-indent:0;
|
26 |
+
text-shadow:none;
|
27 |
+
text-transform:none;
|
28 |
+
width:auto;
|
29 |
+
visibility:visible;
|
30 |
+
overflow:visible;
|
31 |
+
margin:0;
|
32 |
+
padding:0;
|
33 |
+
line-height:1;
|
34 |
+
box-sizing:border-box;
|
35 |
+
-webkit-box-sizing:border-box;
|
36 |
+
-moz-box-sizing:border-box;
|
37 |
+
-webkit-box-shadow:none;
|
38 |
+
-moz-box-shadow:none;
|
39 |
+
-ms-box-shadow:none;
|
40 |
+
-o-box-shadow:none;
|
41 |
+
box-shadow:none;
|
42 |
+
-webkit-appearance:none;
|
43 |
+
transition: none;
|
44 |
+
-webkit-transition: none;
|
45 |
+
-moz-transition: none;
|
46 |
+
-o-transition: none;
|
47 |
+
-ms-transition: none;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Tags Addon
|
52 |
+
*/
|
53 |
+
.envira-tags-filter-list {
|
54 |
+
clear: both;
|
55 |
+
margin: 0 0 10px 0;
|
56 |
+
|
57 |
+
li.envira-tags-filter,
|
58 |
+
li.envira-tag-filter {
|
59 |
+
float: left;
|
60 |
+
margin: 0 20px 10px 0;
|
61 |
+
|
62 |
+
}
|
63 |
+
.envira-tag-filter-link {
|
64 |
+
font-size: 13px;
|
65 |
+
font-weight: bold;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Breadcrumbs Addon
|
71 |
+
*/
|
72 |
+
.envira-breadcrumbs {
|
73 |
+
display: block;
|
74 |
+
margin: 0 0 20px 0;
|
75 |
+
padding: 10px;
|
76 |
+
background: #eee;
|
77 |
+
clear: both;
|
78 |
+
|
79 |
+
a {
|
80 |
+
text-decoration: none;
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* WooCommerce Addon
|
86 |
+
*/
|
87 |
+
.envira-hidden {
|
88 |
+
display: none;
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Main Wrapper
|
93 |
+
*/
|
94 |
+
.envira-gallery-wrap {
|
95 |
+
width: 100%;
|
96 |
+
margin: 0 auto 20px auto;
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Pagination Addon
|
100 |
+
*/
|
101 |
+
.envira-pagination {
|
102 |
+
margin: 0 0 20px 0;
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Description
|
107 |
+
*/
|
108 |
+
.envira-gallery-description {
|
109 |
+
clear: both;
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Inner Wrapper
|
114 |
+
*/
|
115 |
+
.envira-gallery-public {
|
116 |
+
width: 100%;
|
117 |
+
margin: 0 auto 20px auto;
|
118 |
+
-webkit-box-sizing: border-box;
|
119 |
+
-moz-box-sizing: border-box;
|
120 |
+
box-sizing: border-box;
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Clearing
|
124 |
+
*/
|
125 |
+
&.envira-clear {
|
126 |
+
clear: both;
|
127 |
+
|
128 |
+
&:after {
|
129 |
+
clear: both;
|
130 |
+
content: '.';
|
131 |
+
display: block;
|
132 |
+
height: 0;
|
133 |
+
line-height: 0;
|
134 |
+
overflow: auto;
|
135 |
+
visibility: hidden;
|
136 |
+
zoom: 1;
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Inner
|
142 |
+
*/
|
143 |
+
.envira-gallery-item-inner {
|
144 |
+
position: relative;
|
145 |
+
|
146 |
+
/**
|
147 |
+
* Dynamic Positioning
|
148 |
+
*/
|
149 |
+
.envira-gallery-position-overlay {
|
150 |
+
box-sizing: border-box;
|
151 |
+
position: absolute;
|
152 |
+
overflow: visible;
|
153 |
+
z-index: 999;
|
154 |
+
|
155 |
+
/**
|
156 |
+
* Top Left
|
157 |
+
*/
|
158 |
+
&.envira-gallery-top-left {
|
159 |
+
top: 0;
|
160 |
+
left: 0;
|
161 |
+
padding: 5px 0 0 5px;
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Top Right
|
166 |
+
*/
|
167 |
+
&.envira-gallery-top-right {
|
168 |
+
top: 0;
|
169 |
+
right: 0;
|
170 |
+
padding: 5px 5px 0 0;
|
171 |
+
text-align: right;
|
172 |
+
}
|
173 |
+
|
174 |
+
/**
|
175 |
+
* Bottom Left
|
176 |
+
*/
|
177 |
+
&.envira-gallery-bottom-left {
|
178 |
+
bottom: 0;
|
179 |
+
left: 0;
|
180 |
+
padding: 0 0 5px 5px;
|
181 |
+
}
|
182 |
+
|
183 |
+
/**
|
184 |
+
* Bottom Right
|
185 |
+
*/
|
186 |
+
&.envira-gallery-bottom-right {
|
187 |
+
bottom: 0;
|
188 |
+
right: 0;
|
189 |
+
padding: 0 5px 5px 0;
|
190 |
+
text-align: right;
|
191 |
+
}
|
192 |
+
|
193 |
+
}
|
194 |
+
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Gallery Item
|
199 |
+
*/
|
200 |
+
.envira-gallery-item {
|
201 |
+
float: left;
|
202 |
+
|
203 |
+
/**
|
204 |
+
* Link
|
205 |
+
*/
|
206 |
+
> .envira-gallery-link {
|
207 |
+
display: block;
|
208 |
+
outline: none;
|
209 |
+
border: 0 none;
|
210 |
+
position: relative;
|
211 |
+
}
|
212 |
+
|
213 |
+
/**
|
214 |
+
* Image
|
215 |
+
*/
|
216 |
+
img {
|
217 |
+
float: none;
|
218 |
+
display: block;
|
219 |
+
margin: 0 auto;
|
220 |
+
padding: 0;
|
221 |
+
max-width: 100%;
|
222 |
+
}
|
223 |
+
|
224 |
+
/**
|
225 |
+
* Videos
|
226 |
+
*/
|
227 |
+
iframe, video {
|
228 |
+
display: block;
|
229 |
+
margin: 0 auto;
|
230 |
+
width: 100%;
|
231 |
+
}
|
232 |
+
}
|
233 |
+
|
234 |
+
/**
|
235 |
+
* Column Widths and Clearing
|
236 |
+
*/
|
237 |
+
&.envira-gallery-1-columns {
|
238 |
+
.envira-gallery-item {
|
239 |
+
clear: both;
|
240 |
+
width: 100%;
|
241 |
+
}
|
242 |
+
}
|
243 |
+
&.envira-gallery-2-columns {
|
244 |
+
.envira-gallery-item {
|
245 |
+
width: 50%;
|
246 |
+
|
247 |
+
&:nth-child(2n+1) {
|
248 |
+
clear: both;
|
249 |
+
}
|
250 |
+
}
|
251 |
+
}
|
252 |
+
&.envira-gallery-3-columns {
|
253 |
+
.envira-gallery-item {
|
254 |
+
width: 33.33%;
|
255 |
+
|
256 |
+
&:nth-child(3n+1) {
|
257 |
+
clear: both;
|
258 |
+
}
|
259 |
+
}
|
260 |
+
}
|
261 |
+
&.envira-gallery-4-columns {
|
262 |
+
.envira-gallery-item {
|
263 |
+
width: 25%;
|
264 |
+
margin: 0;
|
265 |
+
padding: 0;
|
266 |
+
box-sizing: border-box;
|
267 |
+
|
268 |
+
&:nth-child(4n+1) {
|
269 |
+
clear: both;
|
270 |
+
}
|
271 |
+
}
|
272 |
+
}
|
273 |
+
&.envira-gallery-5-columns {
|
274 |
+
.envira-gallery-item {
|
275 |
+
width: 20%;
|
276 |
+
|
277 |
+
&:nth-child(5n+1) {
|
278 |
+
clear: both;
|
279 |
+
}
|
280 |
+
}
|
281 |
+
}
|
282 |
+
&.envira-gallery-6-columns {
|
283 |
+
.envira-gallery-item {
|
284 |
+
width: 16.66%;
|
285 |
+
|
286 |
+
&:nth-child(6n+1) {
|
287 |
+
clear: both;
|
288 |
+
}
|
289 |
+
}
|
290 |
+
}
|
291 |
+
|
292 |
+
/**
|
293 |
+
* Optional: Isotope
|
294 |
+
* - if enabled, .enviratope is added to .envira-gallery-public
|
295 |
+
* - no clearing on gallery items
|
296 |
+
*/
|
297 |
+
&.enviratope {
|
298 |
+
.envira-gallery-item {
|
299 |
+
clear: none !important;
|
300 |
+
}
|
301 |
+
}
|
302 |
+
|
303 |
+
/**
|
304 |
+
* Optional: CSS Animations
|
305 |
+
* - if enabled, .envira-gallery-css-animations is added to .envira-gallery-public
|
306 |
+
*/
|
307 |
+
&.envira-gallery-css-animations {
|
308 |
+
/**
|
309 |
+
* Gallery Item
|
310 |
+
*/
|
311 |
+
.envira-gallery-item {
|
312 |
+
/**
|
313 |
+
* Image
|
314 |
+
*/
|
315 |
+
img {
|
316 |
+
opacity: 0;
|
317 |
+
transition: all .2s ease-in-out;
|
318 |
+
}
|
319 |
+
|
320 |
+
/**
|
321 |
+
* Image Hover
|
322 |
+
* - Always force opacity: 1, as the CSS Opacity setting for images may be less e.g. 0.5
|
323 |
+
*/
|
324 |
+
a:hover {
|
325 |
+
img {
|
326 |
+
opacity: 1 !important;
|
327 |
+
}
|
328 |
+
}
|
329 |
+
}
|
330 |
+
}
|
331 |
+
}
|
332 |
+
}
|
333 |
+
|
334 |
+
/**
|
335 |
+
* Main Wrapper
|
336 |
+
*/
|
337 |
+
.envira-gallery-public.envira-justified-gallery {
|
338 |
+
/**
|
339 |
+
* Inner
|
340 |
+
*/
|
341 |
+
.envira-gallery-item-inner {
|
342 |
+
position: absolute;
|
343 |
+
}
|
344 |
+
.envira-exif {
|
345 |
+
|
346 |
+
}
|
347 |
+
|
348 |
+
/* .envira-gallery-description {
|
349 |
+
&.envira-gallery-description-above {
|
350 |
+
display: table;
|
351 |
+
}
|
352 |
+
}*/
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* RTL Support
|
357 |
+
*/
|
358 |
+
.envira-gallery-wrap.envira-gallery-rtl {
|
359 |
+
/**
|
360 |
+
* Inner Wrapper
|
361 |
+
*/
|
362 |
+
.envira-gallery-public {
|
363 |
+
/**
|
364 |
+
* Gallery Item
|
365 |
+
*/
|
366 |
+
.envira-gallery-item {
|
367 |
+
float: right;
|
368 |
+
}
|
369 |
+
}
|
370 |
+
}
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Mobile Landscape Size to Tablet Portrait (devices and browsers)
|
374 |
+
* - Envira Gallery Columns: If 4, 5 or 6, reduce to 3 columns. Isotope will detect change + resize automatically.
|
375 |
+
*/
|
376 |
+
@media only screen and (max-width: 767px) {
|
377 |
+
/**
|
378 |
+
* Main Wrapper
|
379 |
+
*/
|
380 |
+
.envira-gallery-wrap {
|
381 |
+
/**
|
382 |
+
* Inner Wrapper
|
383 |
+
*/
|
384 |
+
.envira-gallery-public {
|
385 |
+
/**
|
386 |
+
* Column Widths and Clearing
|
387 |
+
*/
|
388 |
+
|
389 |
+
// 4, 5 + 6 cols becomes 3 cols
|
390 |
+
&.envira-gallery-4-columns {
|
391 |
+
.envira-gallery-item {
|
392 |
+
width: 33%;
|
393 |
+
|
394 |
+
&:nth-child(4n+1) {
|
395 |
+
clear: none;
|
396 |
+
}
|
397 |
+
&:nth-child(3n+1) {
|
398 |
+
clear: both;
|
399 |
+
}
|
400 |
+
}
|
401 |
+
}
|
402 |
+
&.envira-gallery-5-columns {
|
403 |
+
.envira-gallery-item {
|
404 |
+
width: 33%;
|
405 |
+
|
406 |
+
&:nth-child(5n+1) {
|
407 |
+
clear: none;
|
408 |
+
}
|
409 |
+
&:nth-child(3n+1) {
|
410 |
+
clear: both;
|
411 |
+
}
|
412 |
+
}
|
413 |
+
}
|
414 |
+
&.envira-gallery-6-columns {
|
415 |
+
.envira-gallery-item {
|
416 |
+
width: 33%;
|
417 |
+
|
418 |
+
&:nth-child(6n+1) {
|
419 |
+
clear: none;
|
420 |
+
}
|
421 |
+
&:nth-child(3n+1) {
|
422 |
+
clear: both;
|
423 |
+
}
|
424 |
+
}
|
425 |
+
}
|
426 |
+
|
427 |
+
/**
|
428 |
+
* Optional: Isotope
|
429 |
+
* - if enabled, .enviratope is added to .envira-gallery-public
|
430 |
+
* - no clearing on gallery items
|
431 |
+
*/
|
432 |
+
&.enviratope {
|
433 |
+
.envira-gallery-item {
|
434 |
+
clear: none !important;
|
435 |
+
}
|
436 |
+
}
|
437 |
+
}
|
438 |
+
}
|
439 |
+
}
|
440 |
+
|
441 |
+
/**
|
442 |
+
* Mobile Landscape (devices and browsers)
|
443 |
+
* - Envira Gallery Columns: Reduce to 2 column. Isotope will detect change + resize automatically.
|
444 |
+
*/
|
445 |
+
@media only screen and (max-width: 459px) {
|
446 |
+
/**
|
447 |
+
* Main Wrapper
|
448 |
+
*/
|
449 |
+
.envira-gallery-wrap {
|
450 |
+
/**
|
451 |
+
* Inner Wrapper
|
452 |
+
*/
|
453 |
+
.envira-gallery-public {
|
454 |
+
/**
|
455 |
+
* Column Widths and Clearing
|
456 |
+
*/
|
457 |
+
|
458 |
+
// 2, 3, 4, 5 + 6 cols becomes 2 cols
|
459 |
+
&.envira-gallery-2-columns,
|
460 |
+
&.envira-gallery-3-columns,
|
461 |
+
&.envira-gallery-4-columns,
|
462 |
+
&.envira-gallery-5-columns,
|
463 |
+
&.envira-gallery-6-columns {
|
464 |
+
.envira-gallery-item {
|
465 |
+
width: 50% ;
|
466 |
+
|
467 |
+
&:nth-child(3n+1),
|
468 |
+
&:nth-child(4n+1),
|
469 |
+
&:nth-child(5n+1),
|
470 |
+
&:nth-child(6n+1) {
|
471 |
+
clear: none;
|
472 |
+
}
|
473 |
+
|
474 |
+
&:nth-child(2n+1) {
|
475 |
+
clear: both;
|
476 |
+
}
|
477 |
+
}
|
478 |
+
}
|
479 |
+
|
480 |
+
/**
|
481 |
+
* Optional: Isotope
|
482 |
+
* - if enabled, .enviratope is added to .envira-gallery-public
|
483 |
+
* - no clearing on gallery items
|
484 |
+
*/
|
485 |
+
&.enviratope {
|
486 |
+
.envira-gallery-item {
|
487 |
+
clear: none !important;
|
488 |
+
}
|
489 |
+
}
|
490 |
+
}
|
491 |
+
}
|
492 |
+
}
|
493 |
+
|
494 |
+
/**
|
495 |
+
* Mobile Portrait (devices and browsers)
|
496 |
+
* - Envira Gallery Columns: Reduce to 1 column. Isotope will detect change + resize automatically.
|
497 |
+
*/
|
498 |
+
@media only screen and (max-width: 320px) {
|
499 |
+
/**
|
500 |
+
* Main Wrapper
|
501 |
+
*/
|
502 |
+
.envira-gallery-wrap {
|
503 |
+
/**
|
504 |
+
* Inner Wrapper
|
505 |
+
*/
|
506 |
+
.envira-gallery-public {
|
507 |
+
/**
|
508 |
+
* Column Widths and Clearing
|
509 |
+
*/
|
510 |
+
|
511 |
+
// 1, 2, 3, 4, 5 + 6 cols becomes 2 cols
|
512 |
+
&.envira-gallery-1-columns,
|
513 |
+
&.envira-gallery-2-columns,
|
514 |
+
&.envira-gallery-3-columns,
|
515 |
+
&.envira-gallery-4-columns,
|
516 |
+
&.envira-gallery-5-columns,
|
517 |
+
&.envira-gallery-6-columns {
|
518 |
+
.envira-gallery-item {
|
519 |
+
width: 100% ;
|
520 |
+
|
521 |
+
&:nth-child(2n+1),
|
522 |
+
&:nth-child(3n+1),
|
523 |
+
&:nth-child(4n+1),
|
524 |
+
&:nth-child(5n+1),
|
525 |
+
&:nth-child(6n+1) {
|
526 |
+
clear: both;
|
527 |
+
}
|
528 |
+
}
|
529 |
+
}
|
530 |
+
|
531 |
+
/**
|
532 |
+
* Optional: Isotope
|
533 |
+
* - if enabled, .enviratope is added to .envira-gallery-public
|
534 |
+
* - no clearing on gallery items
|
535 |
+
*/
|
536 |
+
&.enviratope {
|
537 |
+
.envira-gallery-item {
|
538 |
+
clear: none !important;
|
539 |
+
}
|
540 |
+
}
|
541 |
+
}
|
542 |
+
}
|
543 |
+
}
|
544 |
+
|
545 |
+
/* ==========================================================================
|
546 |
+
Envira Lightbox Gallery Styles
|
547 |
+
========================================================================== */
|
548 |
+
|
549 |
+
/*! envirabox v2.1.5 fancyapps.com | fancyapps.com/envirabox/#license */
|
550 |
+
.envirabox-wrap,
|
551 |
+
.envirabox-skin,
|
552 |
+
.envirabox-outer,
|
553 |
+
.envirabox-inner,
|
554 |
+
.envirabox-image,
|
555 |
+
.envirabox-wrap iframe,
|
556 |
+
.envirabox-wrap object,
|
557 |
+
.envirabox-nav,
|
558 |
+
.envirabox-nav span,
|
559 |
+
.envirabox-tmp,
|
560 |
+
.envirabox-buttons,
|
561 |
+
.envirabox-thumbs,
|
562 |
+
.envirabox-wrap *,
|
563 |
+
.envirabox-thumbs *,
|
564 |
+
.envirabox-buttons *
|
565 |
+
{
|
566 |
+
background:none;
|
567 |
+
border:0 none;
|
568 |
+
border-radius:0;
|
569 |
+
-webkit-border-radius:0;
|
570 |
+
-moz-border-radius:0;
|
571 |
+
float:none;
|
572 |
+
font-size:100%;
|
573 |
+
height:auto;
|
574 |
+
letter-spacing:normal;
|
575 |
+
list-style:none;
|
576 |
+
outline:none;
|
577 |
+
position:static;
|
578 |
+
text-decoration:none;
|
579 |
+
text-indent:0;
|
580 |
+
text-shadow:none;
|
581 |
+
text-transform:none;
|
582 |
+
width:auto;
|
583 |
+
visibility:visible;
|
584 |
+
overflow:visible;
|
585 |
+
margin:0;
|
586 |
+
padding:0;
|
587 |
+
line-height:1;
|
588 |
+
box-sizing:border-box;
|
589 |
+
-webkit-box-sizing:border-box;
|
590 |
+
-moz-box-sizing:border-box;
|
591 |
+
-webkit-box-shadow:none;
|
592 |
+
-moz-box-shadow:none;
|
593 |
+
-ms-box-shadow:none;
|
594 |
+
-o-box-shadow:none;
|
595 |
+
box-shadow:none;
|
596 |
+
-webkit-appearance:none;
|
597 |
+
transition: none;
|
598 |
+
-webkit-transition: none;
|
599 |
+
-moz-transition: none;
|
600 |
+
-o-transition: none;
|
601 |
+
-ms-transition: none;
|
602 |
+
}
|
603 |
+
|
604 |
+
.envirabox-wrap {
|
605 |
+
position: absolute;
|
606 |
+
top: 0;
|
607 |
+
left: 0;
|
608 |
+
z-index: 988020;
|
609 |
+
}
|
610 |
+
|
611 |
+
.envirabox-skin {
|
612 |
+
position: relative;
|
613 |
+
background: #f9f9f9;
|
614 |
+
color: #444;
|
615 |
+
text-shadow: none;
|
616 |
+
-webkit-border-radius: 4px;
|
617 |
+
-moz-border-radius: 4px;
|
618 |
+
border-radius: 4px;
|
619 |
+
}
|
620 |
+
|
621 |
+
.envirabox-opened {
|
622 |
+
z-index: 988030;
|
623 |
+
}
|
624 |
+
|
625 |
+
.envirabox-opened .envirabox-skin {
|
626 |
+
-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
627 |
+
-moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
628 |
+
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
629 |
+
}
|
630 |
+
|
631 |
+
.envirabox-outer, .envirabox-inner {
|
632 |
+
position: relative;
|
633 |
+
}
|
634 |
+
|
635 |
+
.envirabox-inner {
|
636 |
+
overflow: hidden;
|
637 |
+
|
638 |
+
/**
|
639 |
+
* Actions
|
640 |
+
*/
|
641 |
+
|
642 |
+
.envirabox-actions {
|
643 |
+
position: absolute;
|
644 |
+
z-index: 988050;
|
645 |
+
}
|
646 |
+
|
647 |
+
/**
|
648 |
+
* Dynamic Positioning
|
649 |
+
*/
|
650 |
+
.envirabox-position-overlay {
|
651 |
+
box-sizing: border-box;
|
652 |
+
position: absolute;
|
653 |
+
overflow: visible;
|
654 |
+
z-index: 988041; /* Beat the prev/next controls */
|
655 |
+
padding: 0;
|
656 |
+
|
657 |
+
/**
|
658 |
+
* Top Left
|
659 |
+
*/
|
660 |
+
&.envira-gallery-top-left {
|
661 |
+
top: 0;
|
662 |
+
left: 0;
|
663 |
+
text-align: left;
|
664 |
+
}
|
665 |
+
|
666 |
+
/**
|
667 |
+
* Top Right
|
668 |
+
*/
|
669 |
+
&.envira-gallery-top-right {
|
670 |
+
top: 0;
|
671 |
+
right: 0;
|
672 |
+
text-align: right;
|
673 |
+
}
|
674 |
+
|
675 |
+
/**
|
676 |
+
* Bottom Left
|
677 |
+
*/
|
678 |
+
&.envira-gallery-bottom-left {
|
679 |
+
bottom: 0;
|
680 |
+
left: 0;
|
681 |
+
text-align: left;
|
682 |
+
}
|
683 |
+
|
684 |
+
/**
|
685 |
+
* Bottom Right
|
686 |
+
*/
|
687 |
+
&.envira-gallery-bottom-right {
|
688 |
+
bottom: 0;
|
689 |
+
right: 0;
|
690 |
+
text-align: right;
|
691 |
+
}
|
692 |
+
|
693 |
+
}
|
694 |
+
}
|
695 |
+
|
696 |
+
.envirabox-type-iframe .envirabox-inner {
|
697 |
+
-webkit-overflow-scrolling: touch;
|
698 |
+
height: 100%;
|
699 |
+
.envirabox-iframe {
|
700 |
+
width: 100%;
|
701 |
+
height: 100%;
|
702 |
+
}
|
703 |
+
}
|
704 |
+
|
705 |
+
.envirabox-error {
|
706 |
+
color: #444;
|
707 |
+
font: 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
|
708 |
+
margin: 0;
|
709 |
+
padding: 15px;
|
710 |
+
white-space: nowrap;
|
711 |
+
}
|
712 |
+
|
713 |
+
.envirabox-image, .envirabox-iframe {
|
714 |
+
display: block;
|
715 |
+
width: 100%;
|
716 |
+
height: 100%;
|
717 |
+
}
|
718 |
+
|
719 |
+
.envirabox-image {
|
720 |
+
max-width: 100%;
|
721 |
+
max-height: 100%;
|
722 |
+
}
|
723 |
+
|
724 |
+
#envirabox-loading, .envirabox-close, .envirabox-prev span, .envirabox-next span {
|
725 |
+
background-image: url('images/envirabox_sprite.png');
|
726 |
+
}
|
727 |
+
|
728 |
+
#envirabox-loading {
|
729 |
+
position: absolute;
|
730 |
+
top: 50%;
|
731 |
+
left: 50%;
|
732 |
+
margin-top: -22px;
|
733 |
+
margin-left: -22px;
|
734 |
+
background-position: 0 -108px;
|
735 |
+
opacity: 0.8;
|
736 |
+
cursor: pointer;
|
737 |
+
z-index: 988060;
|
738 |
+
}
|
739 |
+
|
740 |
+
#envirabox-loading div {
|
741 |
+
width: 44px;
|
742 |
+
height: 44px;
|
743 |
+
background: url('images/envirabox_loading.gif') center center no-repeat;
|
744 |
+
}
|
745 |
+
|
746 |
+
.envirabox-close {
|
747 |
+
position: absolute;
|
748 |
+
top: -18px;
|
749 |
+
right: -18px;
|
750 |
+
width: 36px;
|
751 |
+
height: 36px;
|
752 |
+
cursor: pointer;
|
753 |
+
z-index: 988040;
|
754 |
+
}
|
755 |
+
|
756 |
+
.envirabox-nav {
|
757 |
+
position: absolute;
|
758 |
+
top: 0;
|
759 |
+
width: 40%;
|
760 |
+
height: 100%;
|
761 |
+
cursor: pointer;
|
762 |
+
text-decoration: none;
|
763 |
+
background: transparent url('images/blank.gif'); /* helps IE */
|
764 |
+
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
765 |
+
z-index: 988040;
|
766 |
+
}
|
767 |
+
|
768 |
+
.envirabox-nav:focus {
|
769 |
+
outline:none;
|
770 |
+
}
|
771 |
+
|
772 |
+
.envirabox-prev {
|
773 |
+
left: 0;
|
774 |
+
}
|
775 |
+
|
776 |
+
.envirabox-next {
|
777 |
+
right: 0;
|
778 |
+
}
|
779 |
+
|
780 |
+
.envirabox-prev.envirabox-arrows-outside {
|
781 |
+
left: -100px;
|
782 |
+
}
|
783 |
+
.envirabox-next.envirabox-arrows-outside {
|
784 |
+
right: -100px;
|
785 |
+
}
|
786 |
+
|
787 |
+
.envirabox-nav span {
|
788 |
+
position: absolute;
|
789 |
+
top: 50%;
|
790 |
+
width: 36px;
|
791 |
+
height: 34px;
|
792 |
+
margin-top: -18px;
|
793 |
+
cursor: pointer;
|
794 |
+
z-index: 988040;
|
795 |
+
visibility: hidden;
|
796 |
+
}
|
797 |
+
|
798 |
+
body.envira-touch .envirabox-nav span {
|
799 |
+
visibility: visible;
|
800 |
+
}
|
801 |
+
|
802 |
+
.envirabox-prev span {
|
803 |
+
left: 10px;
|
804 |
+
background-position: 0 -36px;
|
805 |
+
}
|
806 |
+
|
807 |
+
.envirabox-next span {
|
808 |
+
right: 10px;
|
809 |
+
background-position: 0 -72px;
|
810 |
+
}
|
811 |
+
|
812 |
+
.envirabox-nav:hover span {
|
813 |
+
visibility: visible;
|
814 |
+
}
|
815 |
+
|
816 |
+
.envirabox-tmp {
|
817 |
+
position: absolute;
|
818 |
+
top: -99999px;
|
819 |
+
left: -99999px;
|
820 |
+
max-width: 99999px;
|
821 |
+
max-height: 99999px;
|
822 |
+
overflow: visible !important;
|
823 |
+
}
|
824 |
+
|
825 |
+
a.envirabox-close,
|
826 |
+
a.envirabox-nav,
|
827 |
+
a.fancy-close:hover,
|
828 |
+
a.envirabox-nav:hover {
|
829 |
+
border: 0;
|
830 |
+
}
|
831 |
+
|
832 |
+
/* Overlay helper */
|
833 |
+
|
834 |
+
.envirabox-lock {
|
835 |
+
overflow: visible !important;
|
836 |
+
width: auto;
|
837 |
+
}
|
838 |
+
|
839 |
+
.envirabox-lock body {
|
840 |
+
overflow: hidden !important;
|
841 |
+
}
|
842 |
+
|
843 |
+
.envirabox-lock-test {
|
844 |
+
overflow-y: hidden !important;
|
845 |
+
}
|
846 |
+
|
847 |
+
.envirabox-overlay {
|
848 |
+
position: absolute;
|
849 |
+
top: 0;
|
850 |
+
left: 0;
|
851 |
+
overflow: hidden;
|
852 |
+
display: none;
|
853 |
+
z-index: 988010;
|
854 |
+
background: url('images/envirabox_overlay.png');
|
855 |
+
}
|
856 |
+
|
857 |
+
.envirabox-overlay-fixed {
|
858 |
+
position: fixed;
|
859 |
+
bottom: 0;
|
860 |
+
right: 0;
|
861 |
+
}
|
862 |
+
|
863 |
+
.envirabox-lock .envirabox-overlay {
|
864 |
+
// overflow: auto;
|
865 |
+
}
|
866 |
+
|
867 |
+
/* Title helper */
|
868 |
+
.envirabox-title {
|
869 |
+
visibility: hidden;
|
870 |
+
font-size: 13px;
|
871 |
+
line-height: 20px;
|
872 |
+
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
873 |
+
position: relative;
|
874 |
+
text-shadow: none;
|
875 |
+
z-index: 988090;
|
876 |
+
}
|
877 |
+
|
878 |
+
.envirabox-opened .envirabox-title {
|
879 |
+
visibility: visible;
|
880 |
+
}
|
881 |
+
|
882 |
+
.envirabox-title-float-wrap {
|
883 |
+
position: absolute;
|
884 |
+
bottom: auto;
|
885 |
+
right: 50%;
|
886 |
+
margin-top: 20px;
|
887 |
+
z-index: 988050;
|
888 |
+
text-align: center;
|
889 |
+
}
|
890 |
+
|
891 |
+
.envirabox-title-float-wrap .child {
|
892 |
+
display: inline-block;
|
893 |
+
margin-right: -100%;
|
894 |
+
padding: 2px 20px;
|
895 |
+
background: transparent; /* Fallback for web browsers that doesn't support RGBa */
|
896 |
+
background: rgba(0, 0, 0, 0.8);
|
897 |
+
-webkit-border-radius: 15px;
|
898 |
+
-moz-border-radius: 15px;
|
899 |
+
border-radius: 15px;
|
900 |
+
text-shadow: 0 1px 2px #222;
|
901 |
+
color: #FFF;
|
902 |
+
line-height: 24px;
|
903 |
+
white-space: normal;
|
904 |
+
}
|
905 |
+
.envirabox-title-float-wrap.envirabox-title-text-wrap .child {
|
906 |
+
white-space: normal;
|
907 |
+
}
|
908 |
+
|
909 |
+
.envirabox-title-outside-wrap {
|
910 |
+
position: relative;
|
911 |
+
margin-top: 10px;
|
912 |
+
color: #fff;
|
913 |
+
}
|
914 |
+
|
915 |
+
.envirabox-title-inside-wrap {
|
916 |
+
padding-top: 10px;
|
917 |
+
}
|
918 |
+
|
919 |
+
.envirabox-title-over-wrap {
|
920 |
+
position: absolute;
|
921 |
+
bottom: 0;
|
922 |
+
left: 0;
|
923 |
+
color: #fff;
|
924 |
+
padding: 10px;
|
925 |
+
background: #000;
|
926 |
+
background: rgba(0, 0, 0, .8);
|
927 |
+
}
|
928 |
+
|
929 |
+
#envirabox-buttons {
|
930 |
+
position: fixed;
|
931 |
+
left: 0;
|
932 |
+
width: 100%;
|
933 |
+
z-index: 988050;
|
934 |
+
}
|
935 |
+
|
936 |
+
#envirabox-buttons.top {
|
937 |
+
top: 10px;
|
938 |
+
}
|
939 |
+
|
940 |
+
#envirabox-buttons.bottom {
|
941 |
+
bottom: 10px;
|
942 |
+
}
|
943 |
+
|
944 |
+
/* Allows for thumbnails to be displayed */
|
945 |
+
#envirabox-buttons.bottom.has-padding {
|
946 |
+
bottom: 80px;
|
947 |
+
}
|
948 |
+
#envirabox-buttons.top.has-padding {
|
949 |
+
top: 80px;
|
950 |
+
}
|
951 |
+
|
952 |
+
#envirabox-buttons ul {
|
953 |
+
display: block;
|
954 |
+
width: auto;
|
955 |
+
height: 30px;
|
956 |
+
margin: 0 auto;
|
957 |
+
padding: 0;
|
958 |
+
list-style: none;
|
959 |
+
border: 1px solid #111;
|
960 |
+
border-radius: 3px;
|
961 |
+
-webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
|
962 |
+
-moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
|
963 |
+
box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
|
964 |
+
background: rgb(50,50,50);
|
965 |
+
background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%);
|
966 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51)));
|
967 |
+
background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
|
968 |
+
background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
|
969 |
+
background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
|
970 |
+
background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
|
971 |
+
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 );
|
972 |
+
}
|
973 |
+
|
974 |
+
#envirabox-buttons ul li {
|
975 |
+
float: left;
|
976 |
+
margin: 0;
|
977 |
+
padding: 0;
|
978 |
+
}
|
979 |
+
|
980 |
+
#envirabox-buttons ul li#envirabox-buttons-title span {
|
981 |
+
display: block;
|
982 |
+
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
983 |
+
font-size: 13px;
|
984 |
+
line-height: 30px;
|
985 |
+
padding: 0 10px;
|
986 |
+
color: #fff;
|
987 |
+
}
|
988 |
+
|
989 |
+
#envirabox-buttons a {
|
990 |
+
display: block;
|
991 |
+
width: 30px;
|
992 |
+
height: 30px;
|
993 |
+
text-indent: -9999px;
|
994 |
+
background-color: transparent;
|
995 |
+
background-image: url('images/envirabox_buttons.png');
|
996 |
+
background-repeat: no-repeat;
|
997 |
+
outline: none;
|
998 |
+
opacity: 0.8;
|
999 |
+
}
|
1000 |
+
|
1001 |
+
#envirabox-buttons a:hover {
|
1002 |
+
opacity: 1;
|
1003 |
+
}
|
1004 |
+
|
1005 |
+
#envirabox-buttons a.btnPrev {
|
1006 |
+
background-position: 5px 0;
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
#envirabox-buttons a.btnNext {
|
1010 |
+
background-position: -33px 0;
|
1011 |
+
border-right: 1px solid #3e3e3e;
|
1012 |
+
}
|
1013 |
+
|
1014 |
+
#envirabox-buttons a.btnPlay {
|
1015 |
+
background-position: 0 -30px;
|
1016 |
+
}
|
1017 |
+
|
1018 |
+
#envirabox-buttons a.btnPlayOn {
|
1019 |
+
background-position: -30px -30px;
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
#envirabox-buttons a.btnToggle,
|
1023 |
+
#envirabox-buttons a.btnFullscreen {
|
1024 |
+
background-position: 3px -60px;
|
1025 |
+
border-left: 1px solid #111;
|
1026 |
+
border-right: 1px solid #3e3e3e;
|
1027 |
+
width: 35px
|
1028 |
+
}
|
1029 |
+
|
1030 |
+
#envirabox-buttons a.btnToggleOn,
|
1031 |
+
#envirabox-buttons a.btnFullscreenOn {
|
1032 |
+
background-position: -27px -60px;
|
1033 |
+
}
|
1034 |
+
|
1035 |
+
#envirabox-buttons a.btnClose {
|
1036 |
+
border-left: 1px solid #111;
|
1037 |
+
width: 35px;
|
1038 |
+
background-position: -56px 0px;
|
1039 |
+
}
|
1040 |
+
|
1041 |
+
#envirabox-buttons a.btnDisabled {
|
1042 |
+
opacity : 0.4;
|
1043 |
+
cursor: default;
|
1044 |
+
}
|
1045 |
+
|
1046 |
+
/**
|
1047 |
+
* Lightbox: Thumbnails Helper
|
1048 |
+
*/
|
1049 |
+
#envirabox-thumbs {
|
1050 |
+
position: fixed;
|
1051 |
+
left: 0;
|
1052 |
+
width: 100%;
|
1053 |
+
overflow: hidden;
|
1054 |
+
z-index: 988050;
|
1055 |
+
box-sizing: border-box;
|
1056 |
+
|
1057 |
+
&.top {
|
1058 |
+
top: 2px;
|
1059 |
+
}
|
1060 |
+
|
1061 |
+
&.top.has-other-content {
|
1062 |
+
top: 50px;
|
1063 |
+
}
|
1064 |
+
|
1065 |
+
&.bottom {
|
1066 |
+
bottom: 2px;
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
&.bottom.has-other-content {
|
1070 |
+
bottom: 50px;
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
&.inline {
|
1074 |
+
position: absolute;
|
1075 |
+
}
|
1076 |
+
|
1077 |
+
* {
|
1078 |
+
box-sizing: border-box;
|
1079 |
+
}
|
1080 |
+
|
1081 |
+
}
|
1082 |
+
|
1083 |
+
#envirabox-thumbs ul {
|
1084 |
+
position: relative;
|
1085 |
+
list-style: none;
|
1086 |
+
margin: 0;
|
1087 |
+
padding: 0;
|
1088 |
+
}
|
1089 |
+
|
1090 |
+
#envirabox-thumbs ul li {
|
1091 |
+
border: 3px solid #fff;
|
1092 |
+
float: left;
|
1093 |
+
margin: 5px;
|
1094 |
+
opacity: 1;
|
1095 |
+
}
|
1096 |
+
|
1097 |
+
#envirabox-thumbs ul li.active {
|
1098 |
+
opacity: 0.75;
|
1099 |
+
border: 3px solid #888;
|
1100 |
+
}
|
1101 |
+
|
1102 |
+
#envirabox-thumbs ul li:hover {
|
1103 |
+
opacity: 0.75;
|
1104 |
+
}
|
1105 |
+
|
1106 |
+
#envirabox-thumbs ul li a {
|
1107 |
+
display: block;
|
1108 |
+
position: relative;
|
1109 |
+
overflow: hidden;
|
1110 |
+
border: 1px solid #222;
|
1111 |
+
background: #111;
|
1112 |
+
outline: none;
|
1113 |
+
}
|
1114 |
+
|
1115 |
+
#envirabox-thumbs ul li img {
|
1116 |
+
display: block;
|
1117 |
+
position: relative;
|
1118 |
+
border: 0;
|
1119 |
+
padding: 0;
|
1120 |
+
max-width: none;
|
1121 |
+
width: 100%;
|
1122 |
+
height: auto;
|
1123 |
+
}
|
1124 |
+
|
1125 |
+
|
1126 |
+
/* Retina stuff */
|
1127 |
+
@media
|
1128 |
+
only screen and (-webkit-min-device-pixel-ratio: 2),
|
1129 |
+
only screen and ( min--moz-device-pixel-ratio: 2),
|
1130 |
+
only screen and ( -o-min-device-pixel-ratio: 2/1),
|
1131 |
+
only screen and ( min-device-pixel-ratio: 2),
|
1132 |
+
only screen and ( min-resolution: 192dpi),
|
1133 |
+
only screen and ( min-resolution: 2dppx) {
|
1134 |
+
|
1135 |
+
#envirabox-loading, .envirabox-close, .envirabox-prev span, .envirabox-next span {
|
1136 |
+
background-image: url('images/envirabox_sprite@2x.png');
|
1137 |
+
background-size: 44px 152px;
|
1138 |
+
}
|
1139 |
+
|
1140 |
+
#envirabox-loading div {
|
1141 |
+
background-image: url('images/envirabox_loading@2x.gif');
|
1142 |
+
background-size: 24px 24px;
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
}
|
1146 |
+
|
1147 |
+
|
1148 |
+
|
1149 |
+
|
1150 |
+
|
1151 |
+
|
1152 |
+
|
1153 |
+
|
1154 |
+
|
1155 |
+
|
1156 |
+
|
1157 |
+
@media only screen and (max-width: 600px) {
|
1158 |
+
|
1159 |
+
.envirabox-prev.envirabox-arrows-outside {
|
1160 |
+
left: -75px;
|
1161 |
+
width: 12%;
|
1162 |
+
}
|
1163 |
+
.envirabox-next.envirabox-arrows-outside {
|
1164 |
+
right: -75px;
|
1165 |
+
width: 12%;
|
1166 |
+
}
|
1167 |
+
|
1168 |
+
}
|
1169 |
+
|
1170 |
+
|
1171 |
+
|
1172 |
+
|
1173 |
+
|
1174 |
+
|
1175 |
+
|
1176 |
+
/*
|
1177 |
+
#content img{
|
1178 |
+
height: 0;
|
1179 |
+
width: 0;
|
1180 |
+
padding: 35px 120px; // adjust that depend on your image size
|
1181 |
+
background-image: url('YOUR_IMAGE_PATH');
|
1182 |
+
background-repeat: no-repeat;
|
1183 |
+
}*/
|
1184 |
+
|
1185 |
+
/*.envira-gallery-public a.envira-gallery-link {
|
1186 |
+
background-image: url("../images/placeholders/spinner.gif");
|
1187 |
+
background-repeat: no-repeat;
|
1188 |
+
background-position: center;
|
1189 |
+
background-size: 25%;
|
1190 |
+
display: inline-block;
|
1191 |
+
background-color: #f1f1f1;
|
1192 |
+
color: transparent; }*/
|
1193 |
+
|
1194 |
+
/*.envira-gallery-public img.envira-gallery-image {
|
1195 |
+
opacity: 0.0; }*/
|
1196 |
+
|
1197 |
+
|
1198 |
+
/*
|
1199 |
+
|
1200 |
+
|
1201 |
+
|
1202 |
+
.meter {
|
1203 |
+
box-sizing: unset;
|
1204 |
+
height: 20px;
|
1205 |
+
position: relative;
|
1206 |
+
margin: 10px 0 10px 0;
|
1207 |
+
background: #555;
|
1208 |
+
-moz-border-radius: 25px;
|
1209 |
+
-webkit-border-radius: 25px;
|
1210 |
+
border-radius: 25px;
|
1211 |
+
padding: 10px;
|
1212 |
+
-webkit-box-shadow: inset 0 -1px 1px rgba(255,255,255,0.3);
|
1213 |
+
-moz-box-shadow : inset 0 -1px 1px rgba(255,255,255,0.3);
|
1214 |
+
box-shadow : inset 0 -1px 1px rgba(255,255,255,0.3);
|
1215 |
+
}
|
1216 |
+
.meter > span {
|
1217 |
+
display: block;
|
1218 |
+
height: 100%;
|
1219 |
+
-webkit-border-top-right-radius: 8px;
|
1220 |
+
-webkit-border-bottom-right-radius: 8px;
|
1221 |
+
-moz-border-radius-topright: 8px;
|
1222 |
+
-moz-border-radius-bottomright: 8px;
|
1223 |
+
border-top-right-radius: 8px;
|
1224 |
+
border-bottom-right-radius: 8px;
|
1225 |
+
-webkit-border-top-left-radius: 20px;
|
1226 |
+
-webkit-border-bottom-left-radius: 20px;
|
1227 |
+
-moz-border-radius-topleft: 20px;
|
1228 |
+
-moz-border-radius-bottomleft: 20px;
|
1229 |
+
border-top-left-radius: 20px;
|
1230 |
+
border-bottom-left-radius: 20px;
|
1231 |
+
background-color: rgb(43,194,83);
|
1232 |
+
background-image: -webkit-gradient(
|
1233 |
+
linear,
|
1234 |
+
left bottom,
|
1235 |
+
left top,
|
1236 |
+
color-stop(0, rgb(43,194,83)),
|
1237 |
+
color-stop(1, rgb(84,240,84))
|
1238 |
+
);
|
1239 |
+
background-image: -moz-linear-gradient(
|
1240 |
+
center bottom,
|
1241 |
+
rgb(43,194,83) 37%,
|
1242 |
+
rgb(84,240,84) 69%
|
1243 |
+
);
|
1244 |
+
-webkit-box-shadow:
|
1245 |
+
inset 0 2px 9px rgba(255,255,255,0.3),
|
1246 |
+
inset 0 -2px 6px rgba(0,0,0,0.4);
|
1247 |
+
-moz-box-shadow:
|
1248 |
+
inset 0 2px 9px rgba(255,255,255,0.3),
|
1249 |
+
inset 0 -2px 6px rgba(0,0,0,0.4);
|
1250 |
+
box-shadow:
|
1251 |
+
inset 0 2px 9px rgba(255,255,255,0.3),
|
1252 |
+
inset 0 -2px 6px rgba(0,0,0,0.4);
|
1253 |
+
position: relative;
|
1254 |
+
overflow: hidden;
|
1255 |
+
}
|
1256 |
+
.meter > span:after, .animate > span > span {
|
1257 |
+
content: "";
|
1258 |
+
position: absolute;
|
1259 |
+
top: 0; left: 0; bottom: 0; right: 0;
|
1260 |
+
background-image:
|
1261 |
+
-webkit-gradient(linear, 0 0, 100% 100%,
|
1262 |
+
color-stop(.25, rgba(255, 255, 255, .2)),
|
1263 |
+
color-stop(.25, transparent), color-stop(.5, transparent),
|
1264 |
+
color-stop(.5, rgba(255, 255, 255, .2)),
|
1265 |
+
color-stop(.75, rgba(255, 255, 255, .2)),
|
1266 |
+
color-stop(.75, transparent), to(transparent)
|
1267 |
+
);
|
1268 |
+
background-image:
|
1269 |
+
-moz-linear-gradient(
|
1270 |
+
-45deg,
|
1271 |
+
rgba(255, 255, 255, .2) 25%,
|
1272 |
+
transparent 25%,
|
1273 |
+
transparent 50%,
|
1274 |
+
rgba(255, 255, 255, .2) 50%,
|
1275 |
+
rgba(255, 255, 255, .2) 75%,
|
1276 |
+
transparent 75%,
|
1277 |
+
transparent
|
1278 |
+
);
|
1279 |
+
z-index: 1;
|
1280 |
+
-webkit-background-size: 50px 50px;
|
1281 |
+
-moz-background-size: 50px 50px;
|
1282 |
+
background-size: 50px 50px;
|
1283 |
+
-webkit-animation: move 2s linear infinite;
|
1284 |
+
-moz-animation: move 2s linear infinite;
|
1285 |
+
-webkit-border-top-right-radius: 8px;
|
1286 |
+
-webkit-border-bottom-right-radius: 8px;
|
1287 |
+
-moz-border-radius-topright: 8px;
|
1288 |
+
-moz-border-radius-bottomright: 8px;
|
1289 |
+
border-top-right-radius: 8px;
|
1290 |
+
border-bottom-right-radius: 8px;
|
1291 |
+
-webkit-border-top-left-radius: 20px;
|
1292 |
+
-webkit-border-bottom-left-radius: 20px;
|
1293 |
+
-moz-border-radius-topleft: 20px;
|
1294 |
+
-moz-border-radius-bottomleft: 20px;
|
1295 |
+
border-top-left-radius: 20px;
|
1296 |
+
border-bottom-left-radius: 20px;
|
1297 |
+
overflow: hidden;
|
1298 |
+
}
|
1299 |
+
|
1300 |
+
.animate > span:after {
|
1301 |
+
display: none;
|
1302 |
+
}
|
1303 |
+
|
1304 |
+
@-webkit-keyframes move {
|
1305 |
+
0% {
|
1306 |
+
background-position: 0 0;
|
1307 |
+
}
|
1308 |
+
100% {
|
1309 |
+
background-position: 50px 50px;
|
1310 |
+
}
|
1311 |
+
}
|
1312 |
+
|
1313 |
+
@-moz-keyframes move {
|
1314 |
+
0% {
|
1315 |
+
background-position: 0 0;
|
1316 |
+
}
|
1317 |
+
100% {
|
1318 |
+
background-position: 50px 50px;
|
1319 |
+
}
|
1320 |
+
}
|
1321 |
+
|
1322 |
+
|
1323 |
+
.orange > span {
|
1324 |
+
background-color: #f1a165;
|
1325 |
+
background-image: -moz-linear-gradient(top, #f1a165, #f36d0a);
|
1326 |
+
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #f1a165),color-stop(1, #f36d0a));
|
1327 |
+
background-image: -webkit-linear-gradient(#f1a165, #f36d0a);
|
1328 |
+
}
|
1329 |
+
|
1330 |
+
.red > span {
|
1331 |
+
background-color: #f0a3a3;
|
1332 |
+
background-image: -moz-linear-gradient(top, #f0a3a3, #f42323);
|
1333 |
+
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #f0a3a3),color-stop(1, #f42323));
|
1334 |
+
background-image: -webkit-linear-gradient(#f0a3a3, #f42323);
|
1335 |
+
}
|
1336 |
+
|
1337 |
+
.nostripes > span > span, .nostripes > span:after {
|
1338 |
+
-webkit-animation: none;
|
1339 |
+
-moz-animation: none;
|
1340 |
+
background-image: none;
|
1341 |
+
}
|
1342 |
+
|
1343 |
+
|
1344 |
+
*/
|
assets/scss/metabox.scss
ADDED
@@ -0,0 +1,1598 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
metabox.css loads on any Envira Gallery and Album Create/Edit Screen
|
3 |
+
|
4 |
+
Any styles that will be used by the main Gallery / Album editor screen should be
|
5 |
+
added to this file
|
6 |
+
========================================================================== */
|
7 |
+
|
8 |
+
/* ==========================================================================
|
9 |
+
Imports
|
10 |
+
========================================================================== */
|
11 |
+
@import "vars";
|
12 |
+
@import "mixins";
|
13 |
+
|
14 |
+
/* ==========================================================================
|
15 |
+
Messages
|
16 |
+
========================================================================== */
|
17 |
+
body.post-type-envira,
|
18 |
+
body.post-type-envira_album {
|
19 |
+
/**
|
20 |
+
* Add left and right margins to ensure the message notification horizontally lines up
|
21 |
+
* with the metaboxes
|
22 |
+
*/
|
23 |
+
#message {
|
24 |
+
margin: 5px 20px 15px 20px;
|
25 |
+
}
|
26 |
+
|
27 |
+
#wp-link-wrap{
|
28 |
+
z-index: 180105 !important;
|
29 |
+
}
|
30 |
+
|
31 |
+
#wp-link-backdrop{
|
32 |
+
z-index: 160105 !important;
|
33 |
+
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
/* ==========================================================================
|
38 |
+
Form
|
39 |
+
- The envira-gallery class is assigned to the Gallery and Album Add/Edit screens form.
|
40 |
+
========================================================================== */
|
41 |
+
form#post.envira-gallery {
|
42 |
+
/**
|
43 |
+
* Re-establish the left and right margins, so there's spacing between the Admin Menu
|
44 |
+
* and the content
|
45 |
+
*/
|
46 |
+
margin: 0 20px;
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Defined so we override WordPress' default styles
|
50 |
+
*/
|
51 |
+
#poststuff {
|
52 |
+
/* ==========================================================================
|
53 |
+
Envira Gallery Shared Styles for Types and Settings
|
54 |
+
========================================================================== */
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Intro Text
|
58 |
+
*/
|
59 |
+
p.envira-intro {
|
60 |
+
margin: 0;
|
61 |
+
padding: 0 0 30px 0;
|
62 |
+
border-bottom: 1px solid #ddd;
|
63 |
+
font-size: 16px;
|
64 |
+
font-weight: 700;
|
65 |
+
|
66 |
+
small {
|
67 |
+
margin: 5px 0 0 0;
|
68 |
+
display: block;
|
69 |
+
font-weight: 400;
|
70 |
+
|
71 |
+
a {
|
72 |
+
text-decoration: none;
|
73 |
+
font-weight: 600;
|
74 |
+
}
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Help Video
|
80 |
+
* - Can be placed inside p.envira-intro by JS, or outside p.envira-intro when
|
81 |
+
* viewing the Images tab for a Dynamic or Default Gallery
|
82 |
+
*/
|
83 |
+
div.envira-video-help {
|
84 |
+
position: relative;
|
85 |
+
z-index: 1;
|
86 |
+
width: 100%;
|
87 |
+
margin: 20px 0 0 0;
|
88 |
+
|
89 |
+
iframe {
|
90 |
+
position: relative;
|
91 |
+
z-index: 1;
|
92 |
+
width: 100%;
|
93 |
+
height: auto;
|
94 |
+
min-height: 300px;
|
95 |
+
}
|
96 |
+
|
97 |
+
a.envira-video-close {
|
98 |
+
position: absolute;
|
99 |
+
z-index: 2;
|
100 |
+
top: -12px;
|
101 |
+
right: -12px;
|
102 |
+
width: 24px;
|
103 |
+
height: 24px;
|
104 |
+
line-height: 24px;
|
105 |
+
@include borderRadius(50%);
|
106 |
+
background: #f5f5f5;
|
107 |
+
color: #000;
|
108 |
+
text-align: center;
|
109 |
+
text-decoration: none;
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Image Grid
|
115 |
+
* - Used on the Images tab for Default Galleries, as well as the Preview Metabox
|
116 |
+
*/
|
117 |
+
ul.envira-gallery-images-output {
|
118 |
+
width: 100%;
|
119 |
+
|
120 |
+
li {
|
121 |
+
position: relative;
|
122 |
+
display: inline-block;
|
123 |
+
width: 150px;
|
124 |
+
margin: 0 20px 20px 0;
|
125 |
+
padding: 0;
|
126 |
+
list-style: none;
|
127 |
+
vertical-align: top;
|
128 |
+
-moz-background-clip: padding;
|
129 |
+
-webkit-background-clip: padding-box;
|
130 |
+
background-clip: padding-box;
|
131 |
+
background: #f7f7f7;
|
132 |
+
|
133 |
+
img {
|
134 |
+
display: block;
|
135 |
+
width: 150px;
|
136 |
+
height: 150px;
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* If, for some reason, the image doesn't exist or fails to load,
|
141 |
+
* the placeholder logo is displayed
|
142 |
+
*/
|
143 |
+
div.placeholder-image {
|
144 |
+
display: block;
|
145 |
+
width: 148px;
|
146 |
+
height: 149px;
|
147 |
+
background: url(images/icons/leaf.svg) center no-repeat;
|
148 |
+
background-size: 64px 64px;
|
149 |
+
border-left: 1px solid #dfdfdf;
|
150 |
+
border-top: 1px solid #dfdfdf;
|
151 |
+
border-right: 1px solid #dfdfdf;
|
152 |
+
}
|
153 |
+
|
154 |
+
/**
|
155 |
+
* Metadata
|
156 |
+
*/
|
157 |
+
div.meta {
|
158 |
+
width: 148px;
|
159 |
+
overflow: hidden;
|
160 |
+
text-align: center;
|
161 |
+
border-left: 1px solid #dfdfdf;
|
162 |
+
border-bottom: 1px solid #dfdfdf;
|
163 |
+
border-right: 1px solid #dfdfdf;
|
164 |
+
|
165 |
+
/**
|
166 |
+
* Title
|
167 |
+
*/
|
168 |
+
div.title {
|
169 |
+
font-size: 12px;
|
170 |
+
font-weight: 700;
|
171 |
+
width: 138px;
|
172 |
+
height: 18px;
|
173 |
+
line-height: 18px;
|
174 |
+
margin: 8px 5px;
|
175 |
+
overflow: hidden;
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Hint
|
179 |
+
* - Displays the full title on hover
|
180 |
+
*/
|
181 |
+
a.hint {
|
182 |
+
position: absolute;
|
183 |
+
display: inline-block;
|
184 |
+
bottom: 10px;
|
185 |
+
right: 10px;
|
186 |
+
width: 16px;
|
187 |
+
height: 16px;
|
188 |
+
background: #f7f7f7;
|
189 |
+
|
190 |
+
&.hidden {
|
191 |
+
display: none;
|
192 |
+
}
|
193 |
+
}
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Additional metadata
|
198 |
+
*/
|
199 |
+
div.additional {
|
200 |
+
display: none;
|
201 |
+
margin: 5px 0 0 0;
|
202 |
+
font-weight: 400;
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* Tick Icon
|
208 |
+
*/
|
209 |
+
a.check {
|
210 |
+
display: none;
|
211 |
+
position: absolute;
|
212 |
+
right: 5px;
|
213 |
+
top: 5px;
|
214 |
+
width: 24px;
|
215 |
+
height: 24px;
|
216 |
+
background-color: #eee;
|
217 |
+
-webkit-box-shadow: 0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,0.15);
|
218 |
+
box-shadow: 0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,0.15);
|
219 |
+
|
220 |
+
div.media-modal-icon {
|
221 |
+
display: none;
|
222 |
+
width: 15px;
|
223 |
+
height: 15px;
|
224 |
+
margin: 5px 0 0 5px;
|
225 |
+
background-position: -21px 0;
|
226 |
+
}
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Edit / Delete Buttons
|
231 |
+
*/
|
232 |
+
a.dashicons {
|
233 |
+
position: absolute;
|
234 |
+
display: block;
|
235 |
+
top: 5px;
|
236 |
+
left: 5px;
|
237 |
+
width: 25px;
|
238 |
+
height: 25px;
|
239 |
+
line-height: 25px;
|
240 |
+
font-size: 18px; /* Controls the icon size */
|
241 |
+
outline: none;
|
242 |
+
z-index: 20;
|
243 |
+
border-radius: 2px;
|
244 |
+
-moz-border-radius: 2px;
|
245 |
+
-webkit-border-radius: 2px;
|
246 |
+
|
247 |
+
&.envira-gallery-modify-image {
|
248 |
+
background: #0085ba;
|
249 |
+
color: $white;
|
250 |
+
}
|
251 |
+
&.envira-gallery-remove-image {
|
252 |
+
left: 35px;
|
253 |
+
background: #e02626;
|
254 |
+
color: $white;
|
255 |
+
}
|
256 |
+
}
|
257 |
+
|
258 |
+
/**
|
259 |
+
* Selected state
|
260 |
+
*/
|
261 |
+
&.selected {
|
262 |
+
width: 148px;
|
263 |
+
border: 2px solid $green !important;
|
264 |
+
|
265 |
+
a.check {
|
266 |
+
display: block;
|
267 |
+
background-color: $green;
|
268 |
+
-webkit-box-shadow: 0 0 0 1px #fff,0 0 0 2px $green;
|
269 |
+
box-shadow: 0 0 0 1px #fff,0 0 0 2px $green;
|
270 |
+
|
271 |
+
div.media-modal-icon {
|
272 |
+
display: block;
|
273 |
+
}
|
274 |
+
}
|
275 |
+
|
276 |
+
div.meta {
|
277 |
+
width: 146px;
|
278 |
+
}
|
279 |
+
}
|
280 |
+
|
281 |
+
/**
|
282 |
+
* Multiple selection sorting - stacks images when the user has selected more than one image + dragged them
|
283 |
+
*/
|
284 |
+
&.ui-sortable-helper {
|
285 |
+
li {
|
286 |
+
position: absolute;
|
287 |
+
top: 0;
|
288 |
+
left: 0;
|
289 |
+
}
|
290 |
+
}
|
291 |
+
}
|
292 |
+
|
293 |
+
/**
|
294 |
+
* List View
|
295 |
+
*/
|
296 |
+
&.list {
|
297 |
+
li {
|
298 |
+
position: relative;
|
299 |
+
z-index: 2;
|
300 |
+
display: block;
|
301 |
+
width: 100%;
|
302 |
+
margin: 0 0 10px 0;
|
303 |
+
padding: 10px 15px;
|
304 |
+
background: #fff;
|
305 |
+
border: 1px solid #ddd;
|
306 |
+
-webkit-box-sizing: border-box;
|
307 |
+
-moz-box-sizing: border-box;
|
308 |
+
box-sizing: border-box;
|
309 |
+
border-radius: 2px;
|
310 |
+
-moz-border-radius: 2px;
|
311 |
+
-webkit-border-radius: 2px;
|
312 |
+
|
313 |
+
img {
|
314 |
+
display: inline-block;
|
315 |
+
width: 75px;
|
316 |
+
margin-left: 45px;
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* Metadata
|
321 |
+
*/
|
322 |
+
div.meta {
|
323 |
+
position: absolute;
|
324 |
+
z-index: 1;
|
325 |
+
left: 0;
|
326 |
+
display: inline-block;
|
327 |
+
width: 100%;
|
328 |
+
padding: 0 80px 0 150px;
|
329 |
+
border: none;
|
330 |
+
font-weight: 700;
|
331 |
+
text-align: left;
|
332 |
+
-webkit-box-sizing: border-box;
|
333 |
+
-moz-box-sizing: border-box;
|
334 |
+
box-sizing: border-box;
|
335 |
+
|
336 |
+
/**
|
337 |
+
* Title
|
338 |
+
*/
|
339 |
+
div.title {
|
340 |
+
display: block;
|
341 |
+
width: 100%;
|
342 |
+
height: auto;
|
343 |
+
font-size: 16px;
|
344 |
+
margin: 0;
|
345 |
+
padding: 0;
|
346 |
+
|
347 |
+
a.hint {
|
348 |
+
display: none;
|
349 |
+
}
|
350 |
+
}
|
351 |
+
|
352 |
+
/**
|
353 |
+
* Additional metadata
|
354 |
+
* - Displayed in list view
|
355 |
+
*/
|
356 |
+
div.additional {
|
357 |
+
display: block;
|
358 |
+
}
|
359 |
+
}
|
360 |
+
|
361 |
+
/**
|
362 |
+
* Checkbox
|
363 |
+
* - Always display
|
364 |
+
*/
|
365 |
+
a.check {
|
366 |
+
display: block;
|
367 |
+
position: absolute;
|
368 |
+
left: 15px;
|
369 |
+
top: 35px;
|
370 |
+
}
|
371 |
+
|
372 |
+
a.envira-gallery-remove-image {
|
373 |
+
left: auto;
|
374 |
+
top: 10px;
|
375 |
+
right: 10px;
|
376 |
+
}
|
377 |
+
|
378 |
+
a.envira-gallery-modify-image {
|
379 |
+
left: auto;
|
380 |
+
top: 10px;
|
381 |
+
right: 40px;
|
382 |
+
}
|
383 |
+
}
|
384 |
+
}
|
385 |
+
}
|
386 |
+
|
387 |
+
/* ==========================================================================
|
388 |
+
Envira Gallery Type
|
389 |
+
Envira Album Type
|
390 |
+
========================================================================== */
|
391 |
+
#envira-gallery {
|
392 |
+
margin: 60px 0 20px 0;
|
393 |
+
}
|
394 |
+
#envira-gallery,
|
395 |
+
#envira-albums {
|
396 |
+
/**
|
397 |
+
* Hide the title bar of the metabox, so we have a seamless style
|
398 |
+
*/
|
399 |
+
.handlediv {
|
400 |
+
display: none;
|
401 |
+
}
|
402 |
+
.hndle {
|
403 |
+
display: none;
|
404 |
+
}
|
405 |
+
|
406 |
+
/**
|
407 |
+
* Tabs
|
408 |
+
* - Move up vertically so they sit above the metabox
|
409 |
+
*/
|
410 |
+
h2.nav-tab-wrapper {
|
411 |
+
margin: -56px 0 0 -1px; /* The height of the tab */
|
412 |
+
padding: 0;
|
413 |
+
border-bottom: none;
|
414 |
+
|
415 |
+
/**
|
416 |
+
* Increase tab sizes and style
|
417 |
+
*/
|
418 |
+
.nav-tab {
|
419 |
+
display: inline-block;
|
420 |
+
width: 49%;
|
421 |
+
margin: 0;
|
422 |
+
padding: 15px 0;
|
423 |
+
text-align: center;
|
424 |
+
font-size: 16px;
|
425 |
+
border-color: #e5e5e5; /* Matches the metabox border for a seamless UI */
|
426 |
+
background: #f5f5f5;
|
427 |
+
|
428 |
+
/**
|
429 |
+
* Envira Gallery Icon
|
430 |
+
*/
|
431 |
+
&.nav-tab-native-envira-gallery {
|
432 |
+
span {
|
433 |
+
display: inline-block;
|
434 |
+
background: url(images/icons/leaf.svg) 0 5px no-repeat;
|
435 |
+
background-size: 14px 14px;
|
436 |
+
text-indent: 20px;
|
437 |
+
}
|
438 |
+
}
|
439 |
+
|
440 |
+
/**
|
441 |
+
* External Gallery Tab
|
442 |
+
*/
|
443 |
+
&.nav-tab-external-gallery {
|
444 |
+
margin-right: -1px;
|
445 |
+
}
|
446 |
+
|
447 |
+
/**
|
448 |
+
* Hover and Active States
|
449 |
+
*/
|
450 |
+
&:hover,
|
451 |
+
&.envira-active {
|
452 |
+
background: $white;
|
453 |
+
border-bottom: 1px solid $white;
|
454 |
+
}
|
455 |
+
|
456 |
+
/**
|
457 |
+
* Focus State
|
458 |
+
* - Remove WordPress' blue focus box from tabs
|
459 |
+
*/
|
460 |
+
&:focus {
|
461 |
+
-webkit-box-shadow: none;
|
462 |
+
-moz-box-shadow: none;
|
463 |
+
box-shadow: none;
|
464 |
+
}
|
465 |
+
|
466 |
+
&:last-child {
|
467 |
+
float: right;
|
468 |
+
}
|
469 |
+
|
470 |
+
/**
|
471 |
+
* Hides the radio input on a label
|
472 |
+
* The radio input will be selected when the label is clicked
|
473 |
+
*/
|
474 |
+
input[type=radio] {
|
475 |
+
display: none;
|
476 |
+
}
|
477 |
+
}
|
478 |
+
}
|
479 |
+
|
480 |
+
/**
|
481 |
+
* Tab Settings
|
482 |
+
*/
|
483 |
+
.inside {
|
484 |
+
margin: 0;
|
485 |
+
padding: 0;
|
486 |
+
|
487 |
+
/**
|
488 |
+
* Native Envira Gallery Uploader / Select Files
|
489 |
+
* - Styles the pluploader instance to look the way we want it
|
490 |
+
* - Also see responsive styles at the end of this file
|
491 |
+
*/
|
492 |
+
#envira-gallery-native {
|
493 |
+
#plupload-upload-ui {
|
494 |
+
/* Reserves the space needed for the drag-drop-area, which is loaded using JS */
|
495 |
+
height: 210px;
|
496 |
+
|
497 |
+
/**
|
498 |
+
* A drag-drop-area div is always output, whether we're on a touch
|
499 |
+
* device or not. WordPress will only style this div if its parent
|
500 |
+
* has the .drag-drop class (i.e. touch devices won't get any CSS styling)
|
501 |
+
*
|
502 |
+
* The below CSS ensures that the drag drop area looks consistent
|
503 |
+
* regardless of device used, and then adjusts the layout if drag-drop is supported.
|
504 |
+
*/
|
505 |
+
#drag-drop-area {
|
506 |
+
display: none;
|
507 |
+
border: 4px dashed #b4b9be;
|
508 |
+
height: 200px;
|
509 |
+
|
510 |
+
.drag-drop-inside {
|
511 |
+
margin: 0 auto 0 auto;
|
512 |
+
|
513 |
+
p {
|
514 |
+
display: block;
|
515 |
+
text-align: center;
|
516 |
+
color: #a0a5aa;
|
517 |
+
position: absolute;
|
518 |
+
top: 50%;
|
519 |
+
left: 50%;
|
520 |
+
margin: -10px 0 0 -10px;
|
521 |
+
|
522 |
+
/**
|
523 |
+
* "Drop Files here"
|
524 |
+
*/
|
525 |
+
&.drag-drop-info {
|
526 |
+
display: none;
|
527 |
+
font-size: 20px;
|
528 |
+
}
|
529 |
+
&.drag-drop-buttons {
|
530 |
+
text-align: center;
|
531 |
+
position: relative;
|
532 |
+
top: 20px;
|
533 |
+
left: 0;
|
534 |
+
margin: 0;
|
535 |
+
}
|
536 |
+
}
|
537 |
+
}
|
538 |
+
}
|
539 |
+
|
540 |
+
/**
|
541 |
+
* Select Files from Other Sources Button
|
542 |
+
*/
|
543 |
+
a.envira-media-library.button {
|
544 |
+
display: none;
|
545 |
+
position: absolute;
|
546 |
+
margin: 0 auto;
|
547 |
+
left: 280px;
|
548 |
+
right: 0;
|
549 |
+
width: 230px;
|
550 |
+
top: 115px;
|
551 |
+
text-align: center;
|
552 |
+
}
|
553 |
+
|
554 |
+
/**
|
555 |
+
* When the uploader supports drag and drop, a .drag-drop
|
556 |
+
* class is appended to #drag-drop-area by WordPress
|
557 |
+
*
|
558 |
+
* We use this to show certain descriptions
|
559 |
+
*/
|
560 |
+
&.drag-drop {
|
561 |
+
#drag-drop-area {
|
562 |
+
.drag-drop-inside {
|
563 |
+
width: 520px;
|
564 |
+
margin: 50px auto 0 auto;
|
565 |
+
|
566 |
+
p {
|
567 |
+
position: relative;
|
568 |
+
top: 0;
|
569 |
+
left: 0;
|
570 |
+
margin: 0;
|
571 |
+
}
|
572 |
+
|
573 |
+
p.drag-drop-info {
|
574 |
+
display: block;
|
575 |
+
}
|
576 |
+
|
577 |
+
p.drag-drop-buttons {
|
578 |
+
margin: 10px 0 0 0;
|
579 |
+
text-align: left;
|
580 |
+
}
|
581 |
+
}
|
582 |
+
|
583 |
+
|
584 |
+
}
|
585 |
+
}
|
586 |
+
|
587 |
+
/**
|
588 |
+
* Upload Progress Bar
|
589 |
+
*/
|
590 |
+
.envira-progress-bar {
|
591 |
+
display: none;
|
592 |
+
width: 100%;
|
593 |
+
position: relative;
|
594 |
+
height: 10px;
|
595 |
+
width: 100%;
|
596 |
+
margin: 10px auto;
|
597 |
+
border-radius: 10px;
|
598 |
+
background: #dfdfdf;
|
599 |
+
background: rgba(0,0,0,.1);
|
600 |
+
|
601 |
+
.envira-progress-bar-inner {
|
602 |
+
height: 10px;
|
603 |
+
min-width: 20px;
|
604 |
+
width: 0;
|
605 |
+
background: #aaa;
|
606 |
+
background: rgba(0,0,0,.2);
|
607 |
+
border-radius: 10px;
|
608 |
+
-webkit-transition: width 300ms;
|
609 |
+
-moz-transition: width 300ms;
|
610 |
+
-ms-transition: width 300ms;
|
611 |
+
-o-transition: width 300ms;
|
612 |
+
transition: width 300ms;
|
613 |
+
}
|
614 |
+
|
615 |
+
.envira-progress-bar-status {
|
616 |
+
clear: both;
|
617 |
+
position: absolute;
|
618 |
+
right: 0;
|
619 |
+
width: 50%;
|
620 |
+
height: 30px;
|
621 |
+
margin: 12px 0 0 0;
|
622 |
+
text-align: right;
|
623 |
+
|
624 |
+
.uploading {
|
625 |
+
|
626 |
+
}
|
627 |
+
.done {
|
628 |
+
display: none;
|
629 |
+
}
|
630 |
+
}
|
631 |
+
|
632 |
+
|
633 |
+
}
|
634 |
+
|
635 |
+
p.upload-flash-bypass {
|
636 |
+
display: none;
|
637 |
+
}
|
638 |
+
}
|
639 |
+
}
|
640 |
+
|
641 |
+
div.envira-tab {
|
642 |
+
padding: 20px;
|
643 |
+
|
644 |
+
/**
|
645 |
+
* External Gallery Tab Area
|
646 |
+
*/
|
647 |
+
&#envira-gallery-external {
|
648 |
+
text-align: center;
|
649 |
+
|
650 |
+
/**
|
651 |
+
* Header
|
652 |
+
*/
|
653 |
+
p.envira-intro {
|
654 |
+
margin: 0 0 20px 0;
|
655 |
+
padding: 0;
|
656 |
+
border: none;
|
657 |
+
}
|
658 |
+
|
659 |
+
/**
|
660 |
+
* External Gallery Types
|
661 |
+
*/
|
662 |
+
ul#envira-gallery-types-nav {
|
663 |
+
margin: 0 0 40px 0;
|
664 |
+
text-align: center;
|
665 |
+
|
666 |
+
li {
|
667 |
+
display: inline-block;
|
668 |
+
margin: 0 20px 0 0;
|
669 |
+
vertical-align: top;
|
670 |
+
|
671 |
+
&:last-child {
|
672 |
+
margin: 0;
|
673 |
+
}
|
674 |
+
|
675 |
+
/**
|
676 |
+
* Pro uses a <label> element so the user can select the Gallery Type
|
677 |
+
* Lite uses an <a> element so the user can go to the Upgrade URL
|
678 |
+
*/
|
679 |
+
label,
|
680 |
+
a {
|
681 |
+
float: left;
|
682 |
+
width: 110px;
|
683 |
+
|
684 |
+
input {
|
685 |
+
display: none;
|
686 |
+
}
|
687 |
+
div.icon {
|
688 |
+
width: 110px;
|
689 |
+
height: 110px;
|
690 |
+
margin: 0 0 10px 0;
|
691 |
+
border: 1px solid #ddd;
|
692 |
+
background-size: 64px 64px;
|
693 |
+
background-position: center;
|
694 |
+
background-repeat: no-repeat;
|
695 |
+
}
|
696 |
+
div.title {
|
697 |
+
font-weight: 700;
|
698 |
+
}
|
699 |
+
}
|
700 |
+
|
701 |
+
/**
|
702 |
+
* Hover State
|
703 |
+
* Selected State
|
704 |
+
*/
|
705 |
+
&:hover,
|
706 |
+
&.envira-active {
|
707 |
+
label,
|
708 |
+
a {
|
709 |
+
div.icon {
|
710 |
+
background-color: #f7fcf3;
|
711 |
+
border-color: #7cc048;
|
712 |
+
}
|
713 |
+
}
|
714 |
+
}
|
715 |
+
|
716 |
+
/**
|
717 |
+
* Featured Content
|
718 |
+
*/
|
719 |
+
&#envira-gallery-type-fc {
|
720 |
+
label,
|
721 |
+
a {
|
722 |
+
div.icon {
|
723 |
+
background-image: url(../images/types/fc.png);
|
724 |
+
}
|
725 |
+
}
|
726 |
+
}
|
727 |
+
|
728 |
+
/**
|
729 |
+
* Instagram
|
730 |
+
*/
|
731 |
+
&#envira-gallery-type-instagram {
|
732 |
+
label,
|
733 |
+
a {
|
734 |
+
div.icon {
|
735 |
+
background-image: url(../images/types/instagram.png);
|
736 |
+
}
|
737 |
+
}
|
738 |
+
}
|
739 |
+
}
|
740 |
+
}
|
741 |
+
|
742 |
+
/**
|
743 |
+
* Upgrade Button
|
744 |
+
*/
|
745 |
+
a.button.button-x-large {
|
746 |
+
margin-top: 30px;
|
747 |
+
}
|
748 |
+
}
|
749 |
+
}
|
750 |
+
}
|
751 |
+
}
|
752 |
+
|
753 |
+
/* ==========================================================================
|
754 |
+
Envira Albums Drag & Drop Area
|
755 |
+
========================================================================== */
|
756 |
+
#envira-albums {
|
757 |
+
.inside {
|
758 |
+
#envira-types {
|
759 |
+
#envira-album-native {
|
760 |
+
position: relative;
|
761 |
+
|
762 |
+
/**
|
763 |
+
* Galleries (Drop Target)
|
764 |
+
*/
|
765 |
+
ul#envira-album-drag-drop-area {
|
766 |
+
z-index: 2;
|
767 |
+
min-height: 200px;
|
768 |
+
margin: 0;
|
769 |
+
padding: 20px;
|
770 |
+
border: 4px dashed #b4b9be;
|
771 |
+
-webkit-box-sizing: border-box;
|
772 |
+
-moz-box-sizing: border-box;
|
773 |
+
box-sizing: border-box;
|
774 |
+
|
775 |
+
li {
|
776 |
+
cursor: move;
|
777 |
+
}
|
778 |
+
}
|
779 |
+
|
780 |
+
/**
|
781 |
+
* Drag & Drop Instructions
|
782 |
+
*/
|
783 |
+
p.drag-drop-info {
|
784 |
+
position: absolute;
|
785 |
+
top: 80px;
|
786 |
+
z-index: 1;
|
787 |
+
margin: 0 auto;
|
788 |
+
left: 0;
|
789 |
+
right: 0;
|
790 |
+
text-align: center;
|
791 |
+
color: #a0a5aa;
|
792 |
+
font-size: 20px;
|
793 |
+
-webkit-box-sizing: border-box;
|
794 |
+
-moz-box-sizing: border-box;
|
795 |
+
box-sizing: border-box;
|
796 |
+
|
797 |
+
span {
|
798 |
+
display: block;
|
799 |
+
|
800 |
+
&.drag {
|
801 |
+
|
802 |
+
}
|
803 |
+
&.click {
|
804 |
+
font-size: 18px;
|
805 |
+
}
|
806 |
+
}
|
807 |
+
small {
|
808 |
+
display: block;
|
809 |
+
margin: 5px 0;
|
810 |
+
font-size: 14px;
|
811 |
+
}
|
812 |
+
}
|
813 |
+
}
|
814 |
+
}
|
815 |
+
}
|
816 |
+
}
|
817 |
+
|
818 |
+
/* ==========================================================================
|
819 |
+
Envira Gallery Settings
|
820 |
+
Envira Albums Settings
|
821 |
+
========================================================================== */
|
822 |
+
#envira-gallery-settings,
|
823 |
+
#envira-albums-settings {
|
824 |
+
background: $beige_light; /* The background for tabs, full height */
|
825 |
+
|
826 |
+
/**
|
827 |
+
* Clearfix
|
828 |
+
*/
|
829 |
+
&:after {
|
830 |
+
content: "";
|
831 |
+
display: table;
|
832 |
+
clear: both;
|
833 |
+
}
|
834 |
+
|
835 |
+
/**
|
836 |
+
* Hide the title bar of the metabox, so we have a seamless style
|
837 |
+
*/
|
838 |
+
.handlediv {
|
839 |
+
display: none;
|
840 |
+
}
|
841 |
+
.hndle {
|
842 |
+
display: none;
|
843 |
+
}
|
844 |
+
.inside {
|
845 |
+
margin: 0;
|
846 |
+
padding: 0;
|
847 |
+
}
|
848 |
+
|
849 |
+
/**
|
850 |
+
* Tabs
|
851 |
+
*/
|
852 |
+
ul#envira-tabs-nav {
|
853 |
+
width: 160px;
|
854 |
+
margin: 0;
|
855 |
+
padding: 0;
|
856 |
+
border-right: 1px solid #ddd;
|
857 |
+
|
858 |
+
li {
|
859 |
+
float: left;
|
860 |
+
width: 100%;
|
861 |
+
margin: 0;
|
862 |
+
padding: 0;
|
863 |
+
|
864 |
+
a {
|
865 |
+
float: left;
|
866 |
+
width: 120px;
|
867 |
+
margin: 0 20px;
|
868 |
+
padding: 20px 0 20px 25px;
|
869 |
+
text-decoration: none;
|
870 |
+
color: #999;
|
871 |
+
border-bottom: 1px solid #ddd;
|
872 |
+
background-position: left center;
|
873 |
+
background-repeat: no-repeat;
|
874 |
+
-webkit-box-sizing: border-box;
|
875 |
+
-moz-box-sizing: border-box;
|
876 |
+
box-sizing: border-box;
|
877 |
+
transition: none;
|
878 |
+
-webkit-transition: none;
|
879 |
+
|
880 |
+
/**
|
881 |
+
* Hover and Active States
|
882 |
+
*/
|
883 |
+
&:hover,
|
884 |
+
&.envira-active {
|
885 |
+
width: 161px;
|
886 |
+
margin: -1px 0 0 0;
|
887 |
+
padding: 20px 20px 20px ( 20px + 25px );
|
888 |
+
text-decoration: none;
|
889 |
+
color: #444;
|
890 |
+
border-top: 1px solid #ddd;
|
891 |
+
border-bottom: 1px solid #ddd;
|
892 |
+
border-right: 1px solid $white;
|
893 |
+
background-color: $white;
|
894 |
+
background-position: 20px center;
|
895 |
+
}
|
896 |
+
|
897 |
+
/**
|
898 |
+
* Focus State
|
899 |
+
* - Remove WordPress' blue focus box from tabs
|
900 |
+
*/
|
901 |
+
&:focus {
|
902 |
+
-webkit-box-shadow: none;
|
903 |
+
-moz-box-shadow: none;
|
904 |
+
box-shadow: none;
|
905 |
+
}
|
906 |
+
}
|
907 |
+
|
908 |
+
/**
|
909 |
+
* Last Item
|
910 |
+
*/
|
911 |
+
&:last-child {
|
912 |
+
a {
|
913 |
+
border-bottom: none;
|
914 |
+
|
915 |
+
&:hover {
|
916 |
+
border-bottom: none;
|
917 |
+
}
|
918 |
+
}
|
919 |
+
}
|
920 |
+
|
921 |
+
/**
|
922 |
+
* Tab Icons
|
923 |
+
*/
|
924 |
+
&.envira-images,
|
925 |
+
&.envira-galleries {
|
926 |
+
a {
|
927 |
+
background-image: url(images/icons/leaf.svg);
|
928 |
+
background-size: 16px 16px;
|
929 |
+
}
|
930 |
+
}
|
931 |
+
&.envira-config {
|
932 |
+
a {
|
933 |
+
background-image: url(images/icons/configuration.svg);
|
934 |
+
background-size: 16px 16px;
|
935 |
+
}
|
936 |
+
}
|
937 |
+
&.envira-lightbox {
|
938 |
+
a {
|
939 |
+
background-image: url(images/icons/lightbox.svg);
|
940 |
+
background-size: 16px 16px;
|
941 |
+
}
|
942 |
+
}
|
943 |
+
&.envira-mobile {
|
944 |
+
a {
|
945 |
+
background-image: url(images/icons/mobile.svg);
|
946 |
+
background-size: 16px 16px;
|
947 |
+
}
|
948 |
+
}
|
949 |
+
&.envira-breadcrumbs {
|
950 |
+
a {
|
951 |
+
background-image: url(images/icons/breadcrumbs.svg);
|
952 |
+
background-size: 16px 16px;
|
953 |
+
}
|
954 |
+
}
|
955 |
+
&.envira-comments {
|
956 |
+
a {
|
957 |
+
background-image: url(images/icons/comments.svg);
|
958 |
+
background-size: 16px 16px;
|
959 |
+
}
|
960 |
+
}
|
961 |
+
&.envira-downloads {
|
962 |
+
a {
|
963 |
+
background-image: url(images/icons/downloads.svg);
|
964 |
+
background-size: 16px 16px;
|
965 |
+
}
|
966 |
+
}
|
967 |
+
&.envira-exif {
|
968 |
+
a {
|
969 |
+
background-image: url(images/icons/exif.svg);
|
970 |
+
background-size: 16px 16px;
|
971 |
+
}
|
972 |
+
}
|
973 |
+
&.envira-pagination {
|
974 |
+
a {
|
975 |
+
background-image: url(images/icons/pagination.svg);
|
976 |
+
background-size: 16px 16px;
|
977 |
+
}
|
978 |
+
}
|
979 |
+
&.envira-pinterest {
|
980 |
+
a {
|
981 |
+
background-image: url(images/icons/pinterest.svg);
|
982 |
+
background-size: 16px 16px;
|
983 |
+
}
|
984 |
+
}
|
985 |
+
&.envira-proofing {
|
986 |
+
a {
|
987 |
+
background-image: url(images/icons/proofing.svg);
|
988 |
+
background-size: 16px 16px;
|
989 |
+
}
|
990 |
+
}
|
991 |
+
&.envira-printing {
|
992 |
+
a {
|
993 |
+
background-image: url(images/icons/printing.svg);
|
994 |
+
background-size: 16px 16px;
|
995 |
+
}
|
996 |
+
}
|
997 |
+
&.envira-slideshow {
|
998 |
+
a {
|
999 |
+
background-image: url(images/icons/slideshow.svg);
|
1000 |
+
background-size: 16px 16px;
|
1001 |
+
}
|
1002 |
+
}
|
1003 |
+
&.envira-standalone {
|
1004 |
+
a {
|
1005 |
+
background-image: url(images/icons/standalone.svg);
|
1006 |
+
background-size: 16px 16px;
|
1007 |
+
}
|
1008 |
+
}
|
1009 |
+
&.envira-social {
|
1010 |
+
a {
|
1011 |
+
background-image: url(images/icons/social.svg);
|
1012 |
+
background-size: 16px 16px;
|
1013 |
+
}
|
1014 |
+
}
|
1015 |
+
&.envira-tags {
|
1016 |
+
a {
|
1017 |
+
background-image: url(images/icons/tags.svg);
|
1018 |
+
background-size: 16px 16px;
|
1019 |
+
}
|
1020 |
+
}
|
1021 |
+
&.envira-videos {
|
1022 |
+
a {
|
1023 |
+
background-image: url(images/icons/video.svg);
|
1024 |
+
background-size: 16px 16px;
|
1025 |
+
}
|
1026 |
+
}
|
1027 |
+
&.envira-watermarking {
|
1028 |
+
a {
|
1029 |
+
background-image: url(images/icons/watermark.svg);
|
1030 |
+
background-size: 16px 16px;
|
1031 |
+
}
|
1032 |
+
}
|
1033 |
+
&.envira-woocommerce {
|
1034 |
+
a {
|
1035 |
+
background-image: url(images/icons/woocommerce.svg);
|
1036 |
+
background-size: 16px 16px;
|
1037 |
+
}
|
1038 |
+
}
|
1039 |
+
&.envira-zoom {
|
1040 |
+
a {
|
1041 |
+
background-image: url(images/icons/zoom.svg);
|
1042 |
+
background-size: 16px 16px;
|
1043 |
+
}
|
1044 |
+
}
|
1045 |
+
&.envira-misc {
|
1046 |
+
a {
|
1047 |
+
background-image: url(images/icons/misc.svg);
|
1048 |
+
background-size: 16px 16px;
|
1049 |
+
}
|
1050 |
+
}
|
1051 |
+
}
|
1052 |
+
}
|
1053 |
+
|
1054 |
+
/**
|
1055 |
+
* Settings
|
1056 |
+
*/
|
1057 |
+
#envira-tabs {
|
1058 |
+
margin: 0 0 0 160px; /* Must match #ul#envira-tabs-nav width */
|
1059 |
+
padding: 20px;
|
1060 |
+
-webkit-box-sizing: border-box;
|
1061 |
+
-moz-box-sizing: border-box;
|
1062 |
+
box-sizing: border-box;
|
1063 |
+
background: $white;
|
1064 |
+
border-left: 1px solid #ddd;
|
1065 |
+
|
1066 |
+
/**
|
1067 |
+
* Headings
|
1068 |
+
*/
|
1069 |
+
h2 {
|
1070 |
+
clear: none; // Prevents config layouts breaking in WordPress 4.3 and older
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
/**
|
1074 |
+
* All Tabs
|
1075 |
+
*/
|
1076 |
+
table.form-table {
|
1077 |
+
clear: none;
|
1078 |
+
margin: 0 0 40px 0;
|
1079 |
+
|
1080 |
+
&.no-margin {
|
1081 |
+
margin: 0;
|
1082 |
+
}
|
1083 |
+
|
1084 |
+
/**
|
1085 |
+
* Row padding
|
1086 |
+
*/
|
1087 |
+
th,td {
|
1088 |
+
padding-top: 20px;
|
1089 |
+
padding-bottom: 20px;
|
1090 |
+
}
|
1091 |
+
|
1092 |
+
/**
|
1093 |
+
* Sub Headings
|
1094 |
+
* - Used to denote an Addon's settings within a settings tab e.g. the Mobile tab
|
1095 |
+
*/
|
1096 |
+
tr.sub-heading {
|
1097 |
+
th {
|
1098 |
+
margin: 0;
|
1099 |
+
padding: 20px 0 0 0;
|
1100 |
+
font-style: italic;
|
1101 |
+
font-weight: 400;
|
1102 |
+
font-size: 16px;
|
1103 |
+
}
|
1104 |
+
}
|
1105 |
+
|
1106 |
+
/**
|
1107 |
+
* Full width labels (used for checkboxes that we don't want to be inline)
|
1108 |
+
*/
|
1109 |
+
label.full-width {
|
1110 |
+
display: block;
|
1111 |
+
margin: 0 0 5px 0;
|
1112 |
+
|
1113 |
+
&:first-child {
|
1114 |
+
margin-top: 5px;
|
1115 |
+
}
|
1116 |
+
}
|
1117 |
+
|
1118 |
+
/**
|
1119 |
+
* Full width textareas
|
1120 |
+
*/
|
1121 |
+
textarea {
|
1122 |
+
width: 100%;
|
1123 |
+
}
|
1124 |
+
|
1125 |
+
/**
|
1126 |
+
* Checkbox alignment
|
1127 |
+
*/
|
1128 |
+
input[type=checkbox] {
|
1129 |
+
margin-bottom: 2px;
|
1130 |
+
}
|
1131 |
+
|
1132 |
+
/**
|
1133 |
+
* Descriptions
|
1134 |
+
*/
|
1135 |
+
p.description,
|
1136 |
+
span.description {
|
1137 |
+
font-size: 13px;
|
1138 |
+
font-style: italic;
|
1139 |
+
color: #666;
|
1140 |
+
}
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
/**
|
1144 |
+
* Tab: Images
|
1145 |
+
*/
|
1146 |
+
#envira-tab-images {
|
1147 |
+
/**
|
1148 |
+
* Inline Navigation
|
1149 |
+
* - Select All
|
1150 |
+
* - List View / Grid View
|
1151 |
+
* - Edit / Delete Selected Items
|
1152 |
+
*/
|
1153 |
+
nav {
|
1154 |
+
width: 100%;
|
1155 |
+
|
1156 |
+
&.envira-tab-options {
|
1157 |
+
margin: 20px 0;
|
1158 |
+
}
|
1159 |
+
|
1160 |
+
a.dashicons {
|
1161 |
+
position: absolute;
|
1162 |
+
color: #999;
|
1163 |
+
|
1164 |
+
&.dashicons-grid-view {
|
1165 |
+
right: 20px;
|
1166 |
+
}
|
1167 |
+
&.dashicons-list-view {
|
1168 |
+
right: 50px;
|
1169 |
+
}
|
1170 |
+
|
1171 |
+
&.selected {
|
1172 |
+
color: #23282d;
|
1173 |
+
}
|
1174 |
+
|
1175 |
+
span {
|
1176 |
+
display: inline-block;
|
1177 |
+
text-indent: -9999px;
|
1178 |
+
}
|
1179 |
+
}
|
1180 |
+
|
1181 |
+
/**
|
1182 |
+
* Edit / Delete Selected
|
1183 |
+
* - Hidden by default, shown by JS when image(s) are selected
|
1184 |
+
*/
|
1185 |
+
&.envira-select-options {
|
1186 |
+
display: none;
|
1187 |
+
}
|
1188 |
+
}
|
1189 |
+
|
1190 |
+
/**
|
1191 |
+
* Images
|
1192 |
+
* - Show move cursor
|
1193 |
+
*/
|
1194 |
+
ul#envira-gallery-output {
|
1195 |
+
li {
|
1196 |
+
cursor: move;
|
1197 |
+
}
|
1198 |
+
}
|
1199 |
+
}
|
1200 |
+
|
1201 |
+
/**
|
1202 |
+
* Tab: Galleries
|
1203 |
+
* - Used on Albums
|
1204 |
+
*/
|
1205 |
+
#envira-tab-galleries {
|
1206 |
+
/**
|
1207 |
+
* Inline Navigation
|
1208 |
+
* - Search
|
1209 |
+
*/
|
1210 |
+
nav {
|
1211 |
+
width: 100%;
|
1212 |
+
|
1213 |
+
&.envira-tab-options {
|
1214 |
+
height: 40px;
|
1215 |
+
margin: 20px 0;
|
1216 |
+
position: relative;
|
1217 |
+
|
1218 |
+
/**
|
1219 |
+
* Add Galleries to Album Button
|
1220 |
+
*/
|
1221 |
+
a.envira-galleries-add {
|
1222 |
+
display: none; /* Displayed via JS when Galleries selected */
|
1223 |
+
position: absolute;
|
1224 |
+
top: 0;
|
1225 |
+
left: 0;
|
1226 |
+
}
|
1227 |
+
|
1228 |
+
/**
|
1229 |
+
* Search
|
1230 |
+
*/
|
1231 |
+
input#envira-albums-gallery-search {
|
1232 |
+
position: absolute;
|
1233 |
+
top: 0;
|
1234 |
+
right: 0;
|
1235 |
+
}
|
1236 |
+
}
|
1237 |
+
|
1238 |
+
/**
|
1239 |
+
* Bulk Action Buttons
|
1240 |
+
* - Hidden by default, shown by JS when galleries(s) are selected
|
1241 |
+
*/
|
1242 |
+
&.envira-select-options {
|
1243 |
+
display: none;
|
1244 |
+
}
|
1245 |
+
}
|
1246 |
+
|
1247 |
+
/**
|
1248 |
+
* Images
|
1249 |
+
* - Show move cursor
|
1250 |
+
* - Hide Edit & Delete icons, as these are only displayed when the gallery is assigned to the Album
|
1251 |
+
*/
|
1252 |
+
ul.envira-gallery-images-output {
|
1253 |
+
li {
|
1254 |
+
cursor: move;
|
1255 |
+
|
1256 |
+
a.envira-gallery-remove-image,
|
1257 |
+
a.envira-gallery-modify-image {
|
1258 |
+
display: none;
|
1259 |
+
}
|
1260 |
+
}
|
1261 |
+
}
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
/**
|
1265 |
+
* Clearfix
|
1266 |
+
*/
|
1267 |
+
&:after {
|
1268 |
+
content: "";
|
1269 |
+
display: table;
|
1270 |
+
clear: both;
|
1271 |
+
}
|
1272 |
+
}
|
1273 |
+
|
1274 |
+
}
|
1275 |
+
|
1276 |
+
/* ==========================================================================
|
1277 |
+
Envira Gallery Preview Metabox
|
1278 |
+
========================================================================== */
|
1279 |
+
#envira-gallery-preview {
|
1280 |
+
/**
|
1281 |
+
* Clearfix
|
1282 |
+
*/
|
1283 |
+
&:after {
|
1284 |
+
content: "";
|
1285 |
+
display: table;
|
1286 |
+
clear: both;
|
1287 |
+
}
|
1288 |
+
|
1289 |
+
/**
|
1290 |
+
* Hide the title bar of the metabox, so we have a seamless style
|
1291 |
+
*/
|
1292 |
+
button.handlediv {
|
1293 |
+
display: none;
|
1294 |
+
}
|
1295 |
+
h2.hndle {
|
1296 |
+
display: none;
|
1297 |
+
}
|
1298 |
+
.inside {
|
1299 |
+
margin: 0;
|
1300 |
+
padding: 20px;
|
1301 |
+
}
|
1302 |
+
}
|
1303 |
+
}
|
1304 |
+
}
|
1305 |
+
|
1306 |
+
/* ==========================================================================
|
1307 |
+
Media Modal (Insert Images and Edit Metadata)
|
1308 |
+
========================================================================== */
|
1309 |
+
.media-modal {
|
1310 |
+
/**
|
1311 |
+
* Header Buttons
|
1312 |
+
*/
|
1313 |
+
.edit-attachment-frame {
|
1314 |
+
.edit-media-header {
|
1315 |
+
button.right {
|
1316 |
+
border-right: 1px solid #ddd;
|
1317 |
+
}
|
1318 |
+
}
|
1319 |
+
}
|
1320 |
+
|
1321 |
+
/**
|
1322 |
+
* Upload
|
1323 |
+
*/
|
1324 |
+
.uploader-inline {
|
1325 |
+
/**
|
1326 |
+
* Don't display the 'Select Files from Other Sources' button that we add to plupload
|
1327 |
+
* when we're in a modal.
|
1328 |
+
*/
|
1329 |
+
a.envira-media-library.button {
|
1330 |
+
display: none;
|
1331 |
+
}
|
1332 |
+
}
|
1333 |
+
|
1334 |
+
/**
|
1335 |
+
* Insert
|
1336 |
+
*/
|
1337 |
+
.attachment.details {
|
1338 |
+
-webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px $green;
|
1339 |
+
box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px $green;
|
1340 |
+
|
1341 |
+
.check {
|
1342 |
+
background-color: $green;
|
1343 |
+
-webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px $green;
|
1344 |
+
box-shadow: 0 0 0 1px #fff, 0 0 0 2px $green;
|
1345 |
+
}
|
1346 |
+
}
|
1347 |
+
|
1348 |
+
/**
|
1349 |
+
* Attachments
|
1350 |
+
* - Ensures that images fill each <li> attachment block, providing compatibility from WordPress 4.0 upwards
|
1351 |
+
* - Removed as breaks 4.4, 4.5
|
1352 |
+
ul.attachments {
|
1353 |
+
li.attachment {
|
1354 |
+
width: 20%;
|
1355 |
+
|
1356 |
+
img {
|
1357 |
+
width: 100%;
|
1358 |
+
height: 100%;
|
1359 |
+
}
|
1360 |
+
}
|
1361 |
+
}
|
1362 |
+
*/
|
1363 |
+
|
1364 |
+
/**
|
1365 |
+
* Albums: Select Gallery Cover Image
|
1366 |
+
* - Add some top spacing so that a selected cover image that's on the first line of the results
|
1367 |
+
* doesn't have its checkmark cut off
|
1368 |
+
*/
|
1369 |
+
ul.attachments.envira-albums-gallery-cover-image {
|
1370 |
+
padding: 10px;
|
1371 |
+
}
|
1372 |
+
|
1373 |
+
/**
|
1374 |
+
* Bulk Edit Attachments
|
1375 |
+
* - Restore cursor to default, so the user doesn't think they can click an image
|
1376 |
+
*/
|
1377 |
+
ul.attachments.envira-bulk-edit {
|
1378 |
+
li.attachment {
|
1379 |
+
cursor: default;
|
1380 |
+
|
1381 |
+
.attachment-preview {
|
1382 |
+
cursor: default;
|
1383 |
+
}
|
1384 |
+
}
|
1385 |
+
}
|
1386 |
+
|
1387 |
+
/**
|
1388 |
+
* Edit
|
1389 |
+
*/
|
1390 |
+
.attachment-details {
|
1391 |
+
.attachment-info {
|
1392 |
+
padding: 16px;
|
1393 |
+
|
1394 |
+
/**
|
1395 |
+
* Settings
|
1396 |
+
* - Contains one or more setting elements (Title, Alt etc)
|
1397 |
+
*/
|
1398 |
+
.settings {
|
1399 |
+
margin: 0;
|
1400 |
+
padding: 0;
|
1401 |
+
border: none;
|
1402 |
+
|
1403 |
+
/**
|
1404 |
+
* Individual Setting (Title, Alt etc)
|
1405 |
+
*/
|
1406 |
+
.setting {
|
1407 |
+
margin: 0 0 20px 0;
|
1408 |
+
padding: 0 0 20px 0;
|
1409 |
+
border-bottom: 1px solid #ddd;
|
1410 |
+
|
1411 |
+
/**
|
1412 |
+
* Input
|
1413 |
+
*/
|
1414 |
+
input[type="text"],
|
1415 |
+
textarea {
|
1416 |
+
display: block;
|
1417 |
+
width: 100%;
|
1418 |
+
min-width: 100%;
|
1419 |
+
margin: 0;
|
1420 |
+
}
|
1421 |
+
input[type="checkbox"] {
|
1422 |
+
float: left;
|
1423 |
+
margin: 0 5px 0 0;
|
1424 |
+
}
|
1425 |
+
select {
|
1426 |
+
margin: 0;
|
1427 |
+
}
|
1428 |
+
|
1429 |
+
span {
|
1430 |
+
/**
|
1431 |
+
* Title
|
1432 |
+
*/
|
1433 |
+
&.name {
|
1434 |
+
display: block;
|
1435 |
+
width: 100%;
|
1436 |
+
min-width: 100%;
|
1437 |
+
margin: 0;
|
1438 |
+
padding: 0;
|
1439 |
+
text-align: left;
|
1440 |
+
font-weight: 700;
|
1441 |
+
font-size: 14px;
|
1442 |
+
}
|
1443 |
+
|
1444 |
+
/**
|
1445 |
+
* Description
|
1446 |
+
*/
|
1447 |
+
&.description {
|
1448 |
+
text-align: left;
|
1449 |
+
font-style: normal;
|
1450 |
+
font-size: 13px;
|
1451 |
+
font-style: italic;
|
1452 |
+
color: #666;
|
1453 |
+
}
|
1454 |
+
}
|
1455 |
+
|
1456 |
+
div.description {
|
1457 |
+
clear: both;
|
1458 |
+
float: left;
|
1459 |
+
margin: 5px 0 0 0;
|
1460 |
+
text-align: left;
|
1461 |
+
font-size: 13px;
|
1462 |
+
font-style: italic;
|
1463 |
+
color: #666;
|
1464 |
+
}
|
1465 |
+
}
|
1466 |
+
}
|
1467 |
+
|
1468 |
+
/**
|
1469 |
+
* Actions
|
1470 |
+
* - Save Button
|
1471 |
+
* - Spinner
|
1472 |
+
*/
|
1473 |
+
div.actions {
|
1474 |
+
/**
|
1475 |
+
* Ensure button renders at correct height
|
1476 |
+
*/
|
1477 |
+
a.button {
|
1478 |
+
display: inline-block;
|
1479 |
+
}
|
1480 |
+
}
|
1481 |
+
}
|
1482 |
+
}
|
1483 |
+
}
|
1484 |
+
|
1485 |
+
/* ==========================================================================
|
1486 |
+
Retina
|
1487 |
+
========================================================================== */
|
1488 |
+
@media (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {
|
1489 |
+
/**
|
1490 |
+
* WP media-views.css doesn't use .wp-core-ui for the x2 icons, therefore they never get applied
|
1491 |
+
*/
|
1492 |
+
.wp-core-ui a.check .media-modal-icon {
|
1493 |
+
background-image: url(../../../../../wp-includes/images/uploader-icons-2x.png) !important;
|
1494 |
+
-webkit-background-size: 134px 15px;
|
1495 |
+
background-size: 134px 15px;
|
1496 |
+
}
|
1497 |
+
}
|
1498 |
+
|
1499 |
+
/* ==========================================================================
|
1500 |
+
Responsive
|
1501 |
+
========================================================================== */
|
1502 |
+
@media screen and (max-width: 1100px) {
|
1503 |
+
/* ==========================================================================
|
1504 |
+
Form
|
1505 |
+
- The envira-gallery class is assigned to the Gallery and Album Add/Edit screens form.
|
1506 |
+
========================================================================== */
|
1507 |
+
form#post.envira-gallery {
|
1508 |
+
#poststuff {
|
1509 |
+
#envira-gallery,
|
1510 |
+
#envira-albums {
|
1511 |
+
/**
|
1512 |
+
* Tab Settings
|
1513 |
+
*/
|
1514 |
+
.inside {
|
1515 |
+
/**
|
1516 |
+
* Native Envira Gallery
|
1517 |
+
*/
|
1518 |
+
#envira-gallery-native {
|
1519 |
+
#plupload-upload-ui {
|
1520 |
+
&.drag-drop {
|
1521 |
+
#drag-drop-area {
|
1522 |
+
border-color: #d5d5d5;
|
1523 |
+
|
1524 |
+
.drag-drop-inside {
|
1525 |
+
width: 100%;
|
1526 |
+
margin-top: 20px;
|
1527 |
+
|
1528 |
+
p.drag-drop-buttons {
|
1529 |
+
text-align: center;
|
1530 |
+
}
|
1531 |
+
}
|
1532 |
+
}
|
1533 |
+
}
|
1534 |
+
a.envira-media-library.button {
|
1535 |
+
left: 0;
|
1536 |
+
right: 0;
|
1537 |
+
width: 235px;
|
1538 |
+
top: 145px;
|
1539 |
+
}
|
1540 |
+
}
|
1541 |
+
}
|
1542 |
+
}
|
1543 |
+
}
|
1544 |
+
}
|
1545 |
+
}
|
1546 |
+
}
|
1547 |
+
|
1548 |
+
@media screen and (max-width: 768px) {
|
1549 |
+
/* ==========================================================================
|
1550 |
+
Form
|
1551 |
+
- The envira-gallery class is assigned to the Gallery and Album Add/Edit screens form.
|
1552 |
+
========================================================================== */
|
1553 |
+
form#post.envira-gallery {
|
1554 |
+
#poststuff {
|
1555 |
+
/* ==========================================================================
|
1556 |
+
Envira Gallery Settings
|
1557 |
+
Envira Albums Settings
|
1558 |
+
========================================================================== */
|
1559 |
+
#envira-gallery-settings,
|
1560 |
+
#envira-albums-settings {
|
1561 |
+
/**
|
1562 |
+
* Tabs
|
1563 |
+
*/
|
1564 |
+
ul#envira-tabs-nav {
|
1565 |
+
width: 60px;
|
1566 |
+
|
1567 |
+
li {
|
1568 |
+
a {
|
1569 |
+
width: 60px;
|
1570 |
+
height: 60px;
|
1571 |
+
margin: 0;
|
1572 |
+
padding: 0;
|
1573 |
+
text-indent: -9999px;
|
1574 |
+
background-position: center;
|
1575 |
+
|
1576 |
+
&:hover,
|
1577 |
+
&.envira-active {
|
1578 |
+
width: 60px;
|
1579 |
+
height: 60px;
|
1580 |
+
margin: 0;
|
1581 |
+
padding: 0;
|
1582 |
+
text-indent: -9999px;
|
1583 |
+
background-position: center;
|
1584 |
+
}
|
1585 |
+
}
|
1586 |
+
}
|
1587 |
+
}
|
1588 |
+
|
1589 |
+
/**
|
1590 |
+
* Settings
|
1591 |
+
*/
|
1592 |
+
#envira-tabs {
|
1593 |
+
margin: 0 0 0 60px; /* Must match #ul#envira-tabs-nav width */
|
1594 |
+
}
|
1595 |
+
}
|
1596 |
+
}
|
1597 |
+
}
|
1598 |
+
}
|
assets/scss/settings.scss
ADDED
@@ -0,0 +1,252 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
settings.css loads on all the Envira Settings Administration Screen
|
3 |
+
|
4 |
+
Any styles that will be used by the Settings section (or are useful to be
|
5 |
+
included for future use) should be added to this file:
|
6 |
+
- Settings
|
7 |
+
- Settings Tabs
|
8 |
+
- Addons
|
9 |
+
========================================================================== */
|
10 |
+
|
11 |
+
/* ==========================================================================
|
12 |
+
Imports
|
13 |
+
========================================================================== */
|
14 |
+
@import "vars";
|
15 |
+
@import "mixins";
|
16 |
+
|
17 |
+
/* ==========================================================================
|
18 |
+
Settings Styles
|
19 |
+
========================================================================== */
|
20 |
+
.envira-tab {
|
21 |
+
label {
|
22 |
+
margin-top: 7px;
|
23 |
+
display: block;
|
24 |
+
}
|
25 |
+
}
|
26 |
+
.nav-tab {
|
27 |
+
// ensure tabs are floated
|
28 |
+
float: left;
|
29 |
+
}
|
30 |
+
|
31 |
+
#envira-gallery-settings {
|
32 |
+
padding: 20px 0;
|
33 |
+
|
34 |
+
#envira-gallery-refresh-submit {
|
35 |
+
margin-left: 10px;
|
36 |
+
}
|
37 |
+
|
38 |
+
.envira-hideme {
|
39 |
+
display: none;
|
40 |
+
}
|
41 |
+
/**
|
42 |
+
* Clearing
|
43 |
+
*/
|
44 |
+
.envira-clear {
|
45 |
+
clear: both;
|
46 |
+
|
47 |
+
&:after {
|
48 |
+
clear: both;
|
49 |
+
content: '.';
|
50 |
+
display: block;
|
51 |
+
height: 0;
|
52 |
+
line-height: 0;
|
53 |
+
overflow: auto;
|
54 |
+
visibility: hidden;
|
55 |
+
zoom: 1;
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
.envira-gallery {
|
60 |
+
margin: 15px 0 20px;
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Tab Panels
|
65 |
+
*/
|
66 |
+
.envira-tab {
|
67 |
+
display: none;
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Active Tab Panel
|
71 |
+
*/
|
72 |
+
&.envira-active {
|
73 |
+
display: block;
|
74 |
+
}
|
75 |
+
|
76 |
+
th {
|
77 |
+
width: 170px;
|
78 |
+
padding-right: 40px;
|
79 |
+
@include mq(xs) {
|
80 |
+
width: auto;
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
input[type="text"],
|
85 |
+
input[type="number"],
|
86 |
+
input[type="password"],
|
87 |
+
select,
|
88 |
+
textarea {
|
89 |
+
width: 350px;
|
90 |
+
padding-right: 0;
|
91 |
+
@include mq(xs) {
|
92 |
+
width: 100%;
|
93 |
+
}
|
94 |
+
font-size: 13px;
|
95 |
+
}
|
96 |
+
|
97 |
+
input[type="text"],
|
98 |
+
input[type="number"],
|
99 |
+
input[type="password"] {
|
100 |
+
height: 32px;
|
101 |
+
@include mq(xs) {
|
102 |
+
height: auto;
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Copy to Clipboard Button
|
108 |
+
*/
|
109 |
+
a.envira-clipboard {
|
110 |
+
width: 33px;
|
111 |
+
padding: 0;
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Submit Button
|
116 |
+
*/
|
117 |
+
#envira-gallery-settings-submit {
|
118 |
+
margin: 40px 0 0 0px;
|
119 |
+
}
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Refresh
|
124 |
+
*/
|
125 |
+
#envira-gallery-refresh-submit {
|
126 |
+
vertical-align: baseline;
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
/* ==========================================================================
|
131 |
+
Settings Tab Styles
|
132 |
+
========================================================================== */
|
133 |
+
#envira-tabs {
|
134 |
+
.form-table {
|
135 |
+
th, td {
|
136 |
+
padding-top: 40px;
|
137 |
+
padding-bottom: 40px;
|
138 |
+
}
|
139 |
+
th {
|
140 |
+
@include mq(sm) {
|
141 |
+
padding-top: 40px;
|
142 |
+
padding-bottom: 10px;
|
143 |
+
padding-right: 0px !important;
|
144 |
+
}
|
145 |
+
@include mq(xs) {
|
146 |
+
padding-top: 40px;
|
147 |
+
padding-bottom: 10px;
|
148 |
+
padding-right: 0px !important;
|
149 |
+
}
|
150 |
+
}
|
151 |
+
tr#envira-settings-key-box th { /* bit of a hack */
|
152 |
+
@include mq(sm) {
|
153 |
+
padding-top: 20px;
|
154 |
+
}
|
155 |
+
@include mq(xs) {
|
156 |
+
padding-top: 20px;
|
157 |
+
}
|
158 |
+
}
|
159 |
+
td {
|
160 |
+
@include mq(sm) {
|
161 |
+
padding-top: 0;
|
162 |
+
padding-right: 0px;
|
163 |
+
}
|
164 |
+
@include mq(xs) {
|
165 |
+
padding-top: 0;
|
166 |
+
padding-right: 0px;
|
167 |
+
}
|
168 |
+
}
|
169 |
+
tr {
|
170 |
+
border-bottom: 1px solid #ddd;
|
171 |
+
}
|
172 |
+
tr.no-bottom-border {
|
173 |
+
border-bottom: 0;
|
174 |
+
}
|
175 |
+
}
|
176 |
+
.description {
|
177 |
+
color: $grey;
|
178 |
+
font-size: 13px;
|
179 |
+
margin-top: 10px;
|
180 |
+
}
|
181 |
+
}
|
182 |
+
#envira-tabs-nav {
|
183 |
+
border-bottom: 0 !important;
|
184 |
+
background-color: $white;
|
185 |
+
height: $navbar-height;
|
186 |
+
padding-left: 20px;
|
187 |
+
margin: 0 0 0 -20px;
|
188 |
+
display: table;
|
189 |
+
width: 100%;
|
190 |
+
@include mq(xs) {
|
191 |
+
height: auto;
|
192 |
+
background-color: transparent;
|
193 |
+
margin: 5px 0 0 0;
|
194 |
+
padding: 0 10px;
|
195 |
+
display: table;
|
196 |
+
}
|
197 |
+
a {
|
198 |
+
float: left; /* Required for WordPress 4.3 and under */
|
199 |
+
border-left: 1px solid $color_bg;
|
200 |
+
border-right: 1px solid $color_bg;
|
201 |
+
border-top: 0;
|
202 |
+
color: $grey_dark;
|
203 |
+
background: none;
|
204 |
+
line-height: $navbar-height;
|
205 |
+
font-size: $font_size_tab;
|
206 |
+
padding: 0 15px;
|
207 |
+
margin: 0;
|
208 |
+
@include mq(xs) {
|
209 |
+
@include borderRadius(5px);
|
210 |
+
background-color: $beige_light;
|
211 |
+
padding: 0px 20px;
|
212 |
+
margin: 5px 5px 0px 0;
|
213 |
+
border: 1px solid #ddd;
|
214 |
+
line-height: 35px;
|
215 |
+
min-height: 30px;
|
216 |
+
}
|
217 |
+
}
|
218 |
+
a:first-child {
|
219 |
+
/* margin-left: 20px;
|
220 |
+
@include mq(xs) {
|
221 |
+
margin-left: 0;
|
222 |
+
}*/
|
223 |
+
}
|
224 |
+
.envira-active {
|
225 |
+
background-color: $color_bg;
|
226 |
+
border-left: 0;
|
227 |
+
border-right: 0;
|
228 |
+
border-top: 0;
|
229 |
+
color: $black;
|
230 |
+
@include mq(xs) {
|
231 |
+
background-color: $grey_dark;
|
232 |
+
color: $white;
|
233 |
+
}
|
234 |
+
}
|
235 |
+
a:hover {
|
236 |
+
@include mq(xs) {
|
237 |
+
background-color: $grey_dark;
|
238 |
+
color: $white;
|
239 |
+
}
|
240 |
+
}
|
241 |
+
}
|
242 |
+
|
243 |
+
/* ==========================================================================
|
244 |
+
Responsive
|
245 |
+
========================================================================== */
|
246 |
+
@media only screen and (max-width: 770px) {
|
247 |
+
#envira-gallery-settings {
|
248 |
+
#envira-gallery-settings-submit {
|
249 |
+
margin: 40px 0 0 0;
|
250 |
+
}
|
251 |
+
}
|
252 |
+
}
|
assets/scss/table.scss
ADDED
@@ -0,0 +1,181 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
table.css loads on any Envira WP_List_Table Screen:
|
3 |
+
- Galleries
|
4 |
+
- Albums
|
5 |
+
|
6 |
+
Any styles that will be used by these list tables should be added to this
|
7 |
+
file:
|
8 |
+
- Quick Edit
|
9 |
+
========================================================================== */
|
10 |
+
|
11 |
+
/* ==========================================================================
|
12 |
+
Imports
|
13 |
+
========================================================================== */
|
14 |
+
@import "vars";
|
15 |
+
@import "mixins";
|
16 |
+
|
17 |
+
body.post-type-envira,
|
18 |
+
body.post-type-envira_album {
|
19 |
+
/* ==========================================================================
|
20 |
+
Post Filters
|
21 |
+
========================================================================== */
|
22 |
+
ul.subsubsub {
|
23 |
+
/**
|
24 |
+
* Re-establish the left and right margins, so there's spacing between the Admin Menu
|
25 |
+
* and the content
|
26 |
+
*/
|
27 |
+
margin: 0 0 20px 0;
|
28 |
+
padding-left: 20px;
|
29 |
+
}
|
30 |
+
//make our image col smaller
|
31 |
+
.column-image{
|
32 |
+
width: 85px !important;
|
33 |
+
}
|
34 |
+
/* ==========================================================================
|
35 |
+
Post Table Form
|
36 |
+
========================================================================== */
|
37 |
+
form#posts-filter {
|
38 |
+
/**
|
39 |
+
* Re-establish the left and right margins, so there's spacing between the Admin Menu
|
40 |
+
* and the content
|
41 |
+
*/
|
42 |
+
margin: 0 20px;
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Table Navigation (Bulk Actions, Dates, SEO Score dropdowns etc)
|
46 |
+
*/
|
47 |
+
div.tablenav.top {
|
48 |
+
margin: 0 0 8px 0;
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Reduce our global custom button sizes so they align with inputs
|
53 |
+
*/
|
54 |
+
.button {
|
55 |
+
height: 28px;
|
56 |
+
line-height: 26px;
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
/* ==========================================================================
|
61 |
+
Quick Edit
|
62 |
+
========================================================================== */
|
63 |
+
#wpbody-content {
|
64 |
+
|
65 |
+
td.colspanchange {
|
66 |
+
/**
|
67 |
+
* Left Col (Title, Slug, Date, Password)
|
68 |
+
*/
|
69 |
+
fieldset.inline-edit-col-left {
|
70 |
+
width: 40%;
|
71 |
+
|
72 |
+
fieldset.inline-edit-date {
|
73 |
+
display: none;
|
74 |
+
}
|
75 |
+
div.inline-edit-group:last-child {
|
76 |
+
display: none;
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Category Column
|
82 |
+
*/
|
83 |
+
fieldset.inline-edit-col-center.inline-edit-categories {
|
84 |
+
display: none;
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Right Column (Comments + Status)
|
89 |
+
*/
|
90 |
+
fieldset.inline-edit-col-right {
|
91 |
+
margin: 30px 0 0 0;
|
92 |
+
|
93 |
+
label.inline-edit-status.alignleft {
|
94 |
+
width: 100%;
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Envira Gallery Col
|
100 |
+
*/
|
101 |
+
fieldset.inline-edit-col-right,
|
102 |
+
fieldset.inline-edit-envira-gallery {
|
103 |
+
width: 60%; /* Fill the remainder of the width */
|
104 |
+
|
105 |
+
.inline-edit-group {
|
106 |
+
clear: none;
|
107 |
+
float: left;
|
108 |
+
width: 50%;
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Label
|
112 |
+
*/
|
113 |
+
span.title {
|
114 |
+
width: 40%;
|
115 |
+
padding-right: 0.5em;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Inputs
|
120 |
+
*/
|
121 |
+
input[type=number] {
|
122 |
+
width: 60px;
|
123 |
+
line-height: normal;
|
124 |
+
}
|
125 |
+
}
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Submit
|
130 |
+
*/
|
131 |
+
p.submit.inline-edit-save {
|
132 |
+
margin-bottom: 20px;
|
133 |
+
}
|
134 |
+
}
|
135 |
+
|
136 |
+
}
|
137 |
+
}
|
138 |
+
|
139 |
+
/* ==========================================================================
|
140 |
+
Responsive
|
141 |
+
========================================================================== */
|
142 |
+
@media screen and (max-width: 940px) {
|
143 |
+
body.post-type-envira,
|
144 |
+
body.post-type-envira_album {
|
145 |
+
|
146 |
+
/* ==========================================================================
|
147 |
+
Quick Edit
|
148 |
+
========================================================================== */
|
149 |
+
#wpbody-content {
|
150 |
+
td.colspanchange {
|
151 |
+
fieldset.inline-edit-col-left
|
152 |
+
fieldset.inline-edit-col-right,
|
153 |
+
fieldset.inline-edit-envira-gallery {
|
154 |
+
clear: both;
|
155 |
+
width: 100%;
|
156 |
+
|
157 |
+
.inline-edit-group {
|
158 |
+
clear: both;
|
159 |
+
float: left;
|
160 |
+
width: 100%;
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Label
|
164 |
+
*/
|
165 |
+
span.title {
|
166 |
+
width: 100%;
|
167 |
+
}
|
168 |
+
}
|
169 |
+
}
|
170 |
+
}
|
171 |
+
|
172 |
+
}
|
173 |
+
|
174 |
+
/* ==========================================================================
|
175 |
+
Search Box
|
176 |
+
========================================================================== */
|
177 |
+
p.search-box {
|
178 |
+
width: 94%;
|
179 |
+
}
|
180 |
+
}
|
181 |
+
}
|
envira-gallery-lite.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: Envira Gallery is best responsive WordPress gallery plugin. This is the lite version.
|
6 |
* Author: Thomas Griffin
|
7 |
* Author URI: http://enviragallery.com
|
8 |
-
* Version: 1.5.
|
9 |
* Text Domain: envira-gallery
|
10 |
*
|
11 |
* Envira Gallery is free software: you can redistribute it and/or modify
|
@@ -53,7 +53,7 @@ class Envira_Gallery_Lite {
|
|
53 |
*
|
54 |
* @var string
|
55 |
*/
|
56 |
-
public $version = '1.5.
|
57 |
|
58 |
/**
|
59 |
* The name of the plugin.
|
@@ -155,13 +155,11 @@ class Envira_Gallery_Lite {
|
|
155 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/ajax.php';
|
156 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/common.php';
|
157 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/editor.php';
|
158 |
-
require plugin_dir_path( __FILE__ ) . 'includes/admin/license.php';
|
159 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/media.php';
|
160 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/media-view.php';
|
161 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/metaboxes.php';
|
162 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/notice.php';
|
163 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/posttype.php';
|
164 |
-
require plugin_dir_path( __FILE__ ) . 'includes/admin/settings.php';
|
165 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/table.php';
|
166 |
|
167 |
}
|
@@ -513,6 +511,25 @@ function envira_gallery_lite_activation_hook( $network_wide ) {
|
|
513 |
// Load the main plugin class.
|
514 |
$envira_gallery_lite = Envira_Gallery_Lite::get_instance();
|
515 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
516 |
// Conditionally load the template tag.
|
517 |
if ( ! function_exists( 'envira_gallery' ) ) {
|
518 |
/**
|
5 |
* Description: Envira Gallery is best responsive WordPress gallery plugin. This is the lite version.
|
6 |
* Author: Thomas Griffin
|
7 |
* Author URI: http://enviragallery.com
|
8 |
+
* Version: 1.5.5
|
9 |
* Text Domain: envira-gallery
|
10 |
*
|
11 |
* Envira Gallery is free software: you can redistribute it and/or modify
|
53 |
*
|
54 |
* @var string
|
55 |
*/
|
56 |
+
public $version = '1.5.5';
|
57 |
|
58 |
/**
|
59 |
* The name of the plugin.
|
155 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/ajax.php';
|
156 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/common.php';
|
157 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/editor.php';
|
|
|
158 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/media.php';
|
159 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/media-view.php';
|
160 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/metaboxes.php';
|
161 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/notice.php';
|
162 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/posttype.php';
|
|
|
163 |
require plugin_dir_path( __FILE__ ) . 'includes/admin/table.php';
|
164 |
|
165 |
}
|
511 |
// Load the main plugin class.
|
512 |
$envira_gallery_lite = Envira_Gallery_Lite::get_instance();
|
513 |
|
514 |
+
/**
|
515 |
+
* Holder for mobile detect.
|
516 |
+
*
|
517 |
+
* @access public
|
518 |
+
* @return void
|
519 |
+
*/
|
520 |
+
function envira_mobile_detect(){
|
521 |
+
|
522 |
+
//Check for mobile detect class before loading it again //prevents conflicts with themes
|
523 |
+
if ( ! class_exists( 'Mobile_Detect' ) ) {
|
524 |
+
|
525 |
+
require_once trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/global/Mobile_Detect.php';
|
526 |
+
|
527 |
+
}
|
528 |
+
|
529 |
+
return new Mobile_Detect;
|
530 |
+
|
531 |
+
}
|
532 |
+
|
533 |
// Conditionally load the template tag.
|
534 |
if ( ! function_exists( 'envira_gallery' ) ) {
|
535 |
/**
|
includes/admin/addons.php
CHANGED
@@ -53,7 +53,7 @@ class Envira_Gallery_Addons {
|
|
53 |
public function __construct() {
|
54 |
|
55 |
// Load the base class object.
|
56 |
-
$this->base =
|
57 |
|
58 |
// Add custom addons submenu.
|
59 |
add_action( 'admin_menu', array( $this, 'admin_menu' ), 12 );
|
@@ -444,7 +444,7 @@ class Envira_Gallery_Addons {
|
|
444 |
*/
|
445 |
public function addons_link( $links ) {
|
446 |
|
447 |
-
$addons_link = sprintf( '<a href="%s">%s</a>', esc_url( add_query_arg( array( 'post_type' => 'envira', 'page' =>
|
448 |
array_unshift( $links, $addons_link );
|
449 |
|
450 |
return $links;
|
53 |
public function __construct() {
|
54 |
|
55 |
// Load the base class object.
|
56 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
57 |
|
58 |
// Add custom addons submenu.
|
59 |
add_action( 'admin_menu', array( $this, 'admin_menu' ), 12 );
|
444 |
*/
|
445 |
public function addons_link( $links ) {
|
446 |
|
447 |
+
$addons_link = sprintf( '<a href="%s">%s</a>', esc_url( add_query_arg( array( 'post_type' => 'envira', 'page' => 'envira-gallery-lite-addons' ), admin_url( 'edit.php' ) ) ), __( 'Addons', 'envira-gallery' ) );
|
448 |
array_unshift( $links, $addons_link );
|
449 |
|
450 |
return $links;
|
includes/admin/ajax.php
CHANGED
@@ -17,7 +17,7 @@ add_action( 'wp_ajax_envira_gallery_change_type', 'envira_gallery_ajax_change_ty
|
|
17 |
function envira_gallery_ajax_change_type() {
|
18 |
|
19 |
// Run a security check first.
|
20 |
-
|
21 |
|
22 |
// Prepare variables.
|
23 |
$post_id = absint( $_POST['post_id'] );
|
@@ -45,17 +45,17 @@ add_action( 'wp_ajax_envira_gallery_change_preview', 'envira_gallery_ajax_change
|
|
45 |
function envira_gallery_ajax_change_preview() {
|
46 |
|
47 |
// Run a security check first.
|
48 |
-
|
49 |
|
50 |
// Prepare variables.
|
51 |
$post_id = absint( $_POST['post_id'] );
|
52 |
$type = stripslashes( $_POST['type'] );
|
53 |
|
54 |
// Get the saved Gallery configuration.
|
55 |
-
$data =
|
56 |
|
57 |
// Iterate through the POSTed Gallery configuration (which comprises of index based fields),
|
58 |
-
// overwriting the above with the supplied values. This gives us the most up to date,
|
59 |
// unsaved configuration.
|
60 |
foreach ( $_POST['data'] as $index => $field ) {
|
61 |
|
@@ -69,7 +69,7 @@ function envira_gallery_ajax_change_preview() {
|
|
69 |
if ( ! isset( $matches[1] ) || count( $matches[1] ) == 0 ) {
|
70 |
continue;
|
71 |
}
|
72 |
-
|
73 |
// Add this field key/value pair to the configuration
|
74 |
$data['config'][ $matches[1][0] ] = $field['value'];
|
75 |
|
@@ -95,7 +95,7 @@ add_action( 'wp_ajax_envira_gallery_set_user_setting', 'envira_gallery_ajax_set_
|
|
95 |
function envira_gallery_ajax_set_user_setting() {
|
96 |
|
97 |
// Run a security check first.
|
98 |
-
|
99 |
|
100 |
// Prepare variables.
|
101 |
$name = stripslashes( $_POST['name'] );
|
@@ -119,7 +119,7 @@ add_action( 'wp_ajax_envira_gallery_load_image', 'envira_gallery_ajax_load_image
|
|
119 |
function envira_gallery_ajax_load_image() {
|
120 |
|
121 |
// Run a security check first.
|
122 |
-
|
123 |
|
124 |
// Prepare variables.
|
125 |
$id = absint( $_POST['id'] );
|
@@ -184,14 +184,15 @@ add_action( 'wp_ajax_envira_gallery_insert_images', 'envira_gallery_ajax_insert_
|
|
184 |
function envira_gallery_ajax_insert_images() {
|
185 |
|
186 |
// Run a security check first.
|
187 |
-
|
188 |
|
189 |
// Prepare variables.
|
190 |
$images = array();
|
|
|
191 |
if ( isset( $_POST['images'] ) ) {
|
192 |
-
$images
|
193 |
}
|
194 |
-
|
195 |
// Get the Envira Gallery ID
|
196 |
$post_id = absint( $_POST['post_id'] );
|
197 |
|
@@ -214,6 +215,12 @@ function envira_gallery_ajax_insert_images() {
|
|
214 |
|
215 |
// Loop through the images and add them to the gallery.
|
216 |
foreach ( (array) $images as $i => $image ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
// Update the attachment image post meta first.
|
218 |
$has_gallery = get_post_meta( $image['id'], '_eg_has_gallery', true );
|
219 |
if ( empty( $has_gallery ) ) {
|
@@ -259,13 +266,13 @@ add_action( 'wp_ajax_envira_gallery_sort_images', 'envira_gallery_ajax_sort_imag
|
|
259 |
function envira_gallery_ajax_sort_images() {
|
260 |
|
261 |
// Run a security check first.
|
262 |
-
|
263 |
|
264 |
// Prepare variables.
|
265 |
$order = explode( ',', $_POST['order'] );
|
266 |
$post_id = absint( $_POST['post_id'] );
|
267 |
$gallery_data = get_post_meta( $post_id, '_eg_gallery_data', true );
|
268 |
-
|
269 |
// Copy the gallery config, removing the images
|
270 |
// Stops config from getting lost when sorting + not clicking Publish/Update
|
271 |
$new_order = $gallery_data;
|
@@ -297,7 +304,7 @@ add_action( 'wp_ajax_envira_gallery_remove_image', 'envira_gallery_ajax_remove_i
|
|
297 |
function envira_gallery_ajax_remove_image() {
|
298 |
|
299 |
// Run a security check first.
|
300 |
-
|
301 |
|
302 |
// Prepare variables.
|
303 |
$post_id = absint( $_POST['post_id'] );
|
@@ -325,19 +332,6 @@ function envira_gallery_ajax_remove_image() {
|
|
325 |
// Run hook before finishing the reponse.
|
326 |
do_action( 'envira_gallery_ajax_remove_image', $attach_id, $post_id );
|
327 |
|
328 |
-
// If the global setting for deleting images on gallery image deletion is enabled, check
|
329 |
-
// that the image doesn't belong to another gallery and isn't attached
|
330 |
-
$image_delete = Envira_Gallery_Settings::get_instance()->get_setting( 'image_delete' );
|
331 |
-
if ( $image_delete ) {
|
332 |
-
// Get attachment
|
333 |
-
$attachment = get_post( $attach_id );
|
334 |
-
|
335 |
-
// If post parent is the Gallery ID, and the image isn't in another gallery, we're OK to delete the image
|
336 |
-
if ( ( $attachment->post_parent == $post_id ) && ( count( $in_gallery ) == 0 ) ) {
|
337 |
-
wp_delete_attachment( $attach_id );
|
338 |
-
}
|
339 |
-
}
|
340 |
-
|
341 |
// Flush the gallery cache.
|
342 |
Envira_Gallery_Common::get_instance()->flush_gallery_caches( $post_id );
|
343 |
|
@@ -355,7 +349,7 @@ add_action( 'wp_ajax_envira_gallery_remove_images', 'envira_gallery_ajax_remove_
|
|
355 |
function envira_gallery_ajax_remove_images() {
|
356 |
|
357 |
// Run a security check first.
|
358 |
-
|
359 |
|
360 |
// Prepare variables.
|
361 |
$post_id = absint( $_POST['post_id'] );
|
@@ -405,14 +399,14 @@ add_action( 'wp_ajax_envira_gallery_save_meta', 'envira_gallery_ajax_save_meta'
|
|
405 |
function envira_gallery_ajax_save_meta() {
|
406 |
|
407 |
// Run a security check first.
|
408 |
-
|
409 |
|
410 |
// Prepare variables.
|
411 |
$post_id = absint( $_POST['post_id'] );
|
412 |
$attach_id = absint( $_POST['attach_id'] );
|
413 |
$meta = $_POST['meta'];
|
414 |
$gallery_data = get_post_meta( $post_id, '_eg_gallery_data', true );
|
415 |
-
|
416 |
if ( isset( $meta['title'] ) ) {
|
417 |
$gallery_data['gallery'][ $attach_id ]['title'] = trim( $meta['title'] );
|
418 |
}
|
@@ -428,7 +422,7 @@ function envira_gallery_ajax_save_meta() {
|
|
428 |
if ( isset( $meta['link_new_window'] ) ) {
|
429 |
$gallery_data['gallery'][ $attach_id ]['link_new_window'] = trim( $meta['link_new_window'] );
|
430 |
}
|
431 |
-
|
432 |
if ( isset( $meta['caption'] ) ) {
|
433 |
$gallery_data['gallery'][ $attach_id ]['caption'] = trim( $meta['caption'] );
|
434 |
}
|
@@ -457,13 +451,13 @@ add_action( 'wp_ajax_envira_gallery_save_bulk_meta', 'envira_gallery_ajax_save_b
|
|
457 |
function envira_gallery_ajax_save_bulk_meta() {
|
458 |
|
459 |
// Run a security check first.
|
460 |
-
|
461 |
|
462 |
// Prepare variables.
|
463 |
$post_id = absint( $_POST['post_id'] );
|
464 |
$image_ids = $_POST['image_ids'];
|
465 |
$meta = $_POST['meta'];
|
466 |
-
|
467 |
// Check the required variables exist.
|
468 |
if ( empty( $post_id ) ) {
|
469 |
wp_send_json_error();
|
@@ -504,7 +498,7 @@ function envira_gallery_ajax_save_bulk_meta() {
|
|
504 |
if ( isset( $meta['link_new_window'] ) && ! empty( $meta['link_new_window'] ) ) {
|
505 |
$gallery_data['gallery'][ $image_id ]['link_new_window'] = trim( $meta['link_new_window'] );
|
506 |
}
|
507 |
-
|
508 |
if ( isset( $meta['caption'] ) && ! empty( $meta['caption'] ) ) {
|
509 |
$gallery_data['gallery'][ $image_id ]['caption'] = trim( $meta['caption'] );
|
510 |
}
|
@@ -534,7 +528,7 @@ add_action( 'wp_ajax_envira_gallery_refresh', 'envira_gallery_ajax_refresh' );
|
|
534 |
function envira_gallery_ajax_refresh() {
|
535 |
|
536 |
// Run a security check first.
|
537 |
-
|
538 |
|
539 |
// Prepare variables.
|
540 |
$post_id = absint( $_POST['post_id'] );
|
@@ -586,7 +580,7 @@ add_action( 'wp_ajax_envira_gallery_install_addon', 'envira_gallery_ajax_install
|
|
586 |
function envira_gallery_ajax_install_addon() {
|
587 |
|
588 |
// Run a security check first.
|
589 |
-
|
590 |
|
591 |
// Install the addon.
|
592 |
if ( isset( $_POST['plugin'] ) ) {
|
@@ -655,7 +649,7 @@ add_action( 'wp_ajax_envira_gallery_activate_addon', 'envira_gallery_ajax_activa
|
|
655 |
function envira_gallery_ajax_activate_addon() {
|
656 |
|
657 |
// Run a security check first.
|
658 |
-
|
659 |
|
660 |
// Activate the addon.
|
661 |
if ( isset( $_POST['plugin'] ) ) {
|
@@ -681,7 +675,7 @@ add_action( 'wp_ajax_envira_gallery_deactivate_addon', 'envira_gallery_ajax_deac
|
|
681 |
function envira_gallery_ajax_deactivate_addon() {
|
682 |
|
683 |
// Run a security check first.
|
684 |
-
|
685 |
|
686 |
// Deactivate the addon.
|
687 |
if ( isset( $_POST['plugin'] ) ) {
|
@@ -741,27 +735,10 @@ function envira_gallery_ajax_prepare_gallery_data( $gallery_data, $id, $image =
|
|
741 |
$gallery_data['gallery'] = array();
|
742 |
$gallery_data['gallery'][ $id ] = $image;
|
743 |
} else {
|
744 |
-
|
745 |
-
|
746 |
-
$
|
747 |
-
|
748 |
-
switch ( $media_position ) {
|
749 |
-
case 'before':
|
750 |
-
// Add image to start of images array
|
751 |
-
// Store copy of images, reset gallery array and rebuild
|
752 |
-
$images = $gallery_data['gallery'];
|
753 |
-
$gallery_data['gallery'] = array();
|
754 |
-
$gallery_data['gallery'][ $id ] = $image;
|
755 |
-
foreach ( $images as $old_image_id => $old_image ) {
|
756 |
-
$gallery_data['gallery'][ $old_image_id ] = $old_image;
|
757 |
-
}
|
758 |
-
break;
|
759 |
-
case 'after':
|
760 |
-
default:
|
761 |
-
// Add image, this will default to the end of the array
|
762 |
-
$gallery_data['gallery'][ $id ] = $image;
|
763 |
-
break;
|
764 |
-
}
|
765 |
}
|
766 |
|
767 |
// Filter and return
|
@@ -782,7 +759,7 @@ function envira_gallery_ajax_prepare_gallery_data( $gallery_data, $id, $image =
|
|
782 |
function envira_gallery_ajax_dismiss_notice() {
|
783 |
|
784 |
// Run a security check first.
|
785 |
-
|
786 |
|
787 |
// Deactivate the notice
|
788 |
if ( isset( $_POST['notice'] ) ) {
|
@@ -833,7 +810,7 @@ add_action( 'wp_ajax_envira_gallery_editor_get_galleries', 'envira_gallery_edito
|
|
833 |
function envira_gallery_editor_get_galleries() {
|
834 |
|
835 |
// Check nonce
|
836 |
-
|
837 |
|
838 |
// Get POSTed fields
|
839 |
$search = (bool) $_POST['search'];
|
@@ -841,7 +818,7 @@ function envira_gallery_editor_get_galleries() {
|
|
841 |
$prepend_ids = stripslashes_deep( $_POST['prepend_ids'] );
|
842 |
|
843 |
// Get galleries
|
844 |
-
$instance =
|
845 |
$galleries = $instance->get_galleries( false, true, ( $search ? $search_terms : '' ) );
|
846 |
|
847 |
// Build array of just the data we need.
|
@@ -863,12 +840,12 @@ function envira_gallery_editor_get_galleries() {
|
|
863 |
'action' => 'gallery', // Tells the editor modal whether this is a Gallery or Album for the shortcode output
|
864 |
);
|
865 |
}
|
866 |
-
|
867 |
// If any prepended Gallery IDs were specified, get them now
|
868 |
// These will typically be a Defaults Gallery, which wouldn't be included in the above get_galleries() call
|
869 |
if ( is_array( $prepend_ids ) && count( $prepend_ids ) > 0 ) {
|
870 |
$prepend_results = array();
|
871 |
-
|
872 |
// Get each Gallery
|
873 |
foreach ( $prepend_ids as $gallery_id ) {
|
874 |
// Get gallery
|
@@ -912,7 +889,7 @@ add_action( 'wp_ajax_envira_gallery_move_media', 'envira_gallery_move_media' );
|
|
912 |
function envira_gallery_move_media() {
|
913 |
|
914 |
// Check nonce
|
915 |
-
|
916 |
|
917 |
// Get POSTed fields
|
918 |
$from_gallery_id = absint( $_POST['from_gallery_id'] );
|
@@ -932,7 +909,7 @@ function envira_gallery_move_media() {
|
|
932 |
// Get from and to Galleries
|
933 |
$from_gallery = Envira_Gallery::get_instance()->get_gallery( $from_gallery_id );
|
934 |
$to_gallery = Envira_Gallery::get_instance()->get_gallery( $to_gallery_id );
|
935 |
-
|
936 |
// Iterate through each image ID, adding the image to $to_gallery, then removing from $from_gallery
|
937 |
foreach ( $image_ids as $image_id ) {
|
938 |
// Check the image exists in $from_gallery
|
@@ -955,4 +932,4 @@ function envira_gallery_move_media() {
|
|
955 |
// Return success
|
956 |
wp_send_json_success();
|
957 |
|
958 |
-
}
|
17 |
function envira_gallery_ajax_change_type() {
|
18 |
|
19 |
// Run a security check first.
|
20 |
+
check_admin_referer( 'envira-gallery-change-type', 'nonce' );
|
21 |
|
22 |
// Prepare variables.
|
23 |
$post_id = absint( $_POST['post_id'] );
|
45 |
function envira_gallery_ajax_change_preview() {
|
46 |
|
47 |
// Run a security check first.
|
48 |
+
check_admin_referer( 'envira-gallery-change-preview', 'nonce' );
|
49 |
|
50 |
// Prepare variables.
|
51 |
$post_id = absint( $_POST['post_id'] );
|
52 |
$type = stripslashes( $_POST['type'] );
|
53 |
|
54 |
// Get the saved Gallery configuration.
|
55 |
+
$data = Envira_Gallery_Lite::get_instance()->get_gallery( $post_id );
|
56 |
|
57 |
// Iterate through the POSTed Gallery configuration (which comprises of index based fields),
|
58 |
+
// overwriting the above with the supplied values. This gives us the most up to date,
|
59 |
// unsaved configuration.
|
60 |
foreach ( $_POST['data'] as $index => $field ) {
|
61 |
|
69 |
if ( ! isset( $matches[1] ) || count( $matches[1] ) == 0 ) {
|
70 |
continue;
|
71 |
}
|
72 |
+
|
73 |
// Add this field key/value pair to the configuration
|
74 |
$data['config'][ $matches[1][0] ] = $field['value'];
|
75 |
|
95 |
function envira_gallery_ajax_set_user_setting() {
|
96 |
|
97 |
// Run a security check first.
|
98 |
+
check_admin_referer( 'envira-gallery-set-user-setting', 'nonce' );
|
99 |
|
100 |
// Prepare variables.
|
101 |
$name = stripslashes( $_POST['name'] );
|
119 |
function envira_gallery_ajax_load_image() {
|
120 |
|
121 |
// Run a security check first.
|
122 |
+
check_admin_referer( 'envira-gallery-load-image', 'nonce' );
|
123 |
|
124 |
// Prepare variables.
|
125 |
$id = absint( $_POST['id'] );
|
184 |
function envira_gallery_ajax_insert_images() {
|
185 |
|
186 |
// Run a security check first.
|
187 |
+
check_admin_referer( 'envira-gallery-insert-images', 'nonce' );
|
188 |
|
189 |
// Prepare variables.
|
190 |
$images = array();
|
191 |
+
|
192 |
if ( isset( $_POST['images'] ) ) {
|
193 |
+
$images = json_decode( stripslashes( $_POST['images'] ), true );
|
194 |
}
|
195 |
+
|
196 |
// Get the Envira Gallery ID
|
197 |
$post_id = absint( $_POST['post_id'] );
|
198 |
|
215 |
|
216 |
// Loop through the images and add them to the gallery.
|
217 |
foreach ( (array) $images as $i => $image ) {
|
218 |
+
|
219 |
+
// If the image is already in the gallery, lets skip it since we don't want to override the image metadata settings
|
220 |
+
if ( in_array( $image['id'], $in_gallery ) ) {
|
221 |
+
continue;
|
222 |
+
}
|
223 |
+
|
224 |
// Update the attachment image post meta first.
|
225 |
$has_gallery = get_post_meta( $image['id'], '_eg_has_gallery', true );
|
226 |
if ( empty( $has_gallery ) ) {
|
266 |
function envira_gallery_ajax_sort_images() {
|
267 |
|
268 |
// Run a security check first.
|
269 |
+
check_admin_referer( 'envira-gallery-sort', 'nonce' );
|
270 |
|
271 |
// Prepare variables.
|
272 |
$order = explode( ',', $_POST['order'] );
|
273 |
$post_id = absint( $_POST['post_id'] );
|
274 |
$gallery_data = get_post_meta( $post_id, '_eg_gallery_data', true );
|
275 |
+
|
276 |
// Copy the gallery config, removing the images
|
277 |
// Stops config from getting lost when sorting + not clicking Publish/Update
|
278 |
$new_order = $gallery_data;
|
304 |
function envira_gallery_ajax_remove_image() {
|
305 |
|
306 |
// Run a security check first.
|
307 |
+
check_admin_referer( 'envira-gallery-remove-image', 'nonce' );
|
308 |
|
309 |
// Prepare variables.
|
310 |
$post_id = absint( $_POST['post_id'] );
|
332 |
// Run hook before finishing the reponse.
|
333 |
do_action( 'envira_gallery_ajax_remove_image', $attach_id, $post_id );
|
334 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
// Flush the gallery cache.
|
336 |
Envira_Gallery_Common::get_instance()->flush_gallery_caches( $post_id );
|
337 |
|
349 |
function envira_gallery_ajax_remove_images() {
|
350 |
|
351 |
// Run a security check first.
|
352 |
+
check_admin_referer( 'envira-gallery-remove-image', 'nonce' );
|
353 |
|
354 |
// Prepare variables.
|
355 |
$post_id = absint( $_POST['post_id'] );
|
399 |
function envira_gallery_ajax_save_meta() {
|
400 |
|
401 |
// Run a security check first.
|
402 |
+
check_admin_referer( 'envira-gallery-save-meta', 'nonce' );
|
403 |
|
404 |
// Prepare variables.
|
405 |
$post_id = absint( $_POST['post_id'] );
|
406 |
$attach_id = absint( $_POST['attach_id'] );
|
407 |
$meta = $_POST['meta'];
|
408 |
$gallery_data = get_post_meta( $post_id, '_eg_gallery_data', true );
|
409 |
+
|
410 |
if ( isset( $meta['title'] ) ) {
|
411 |
$gallery_data['gallery'][ $attach_id ]['title'] = trim( $meta['title'] );
|
412 |
}
|
422 |
if ( isset( $meta['link_new_window'] ) ) {
|
423 |
$gallery_data['gallery'][ $attach_id ]['link_new_window'] = trim( $meta['link_new_window'] );
|
424 |
}
|
425 |
+
|
426 |
if ( isset( $meta['caption'] ) ) {
|
427 |
$gallery_data['gallery'][ $attach_id ]['caption'] = trim( $meta['caption'] );
|
428 |
}
|
451 |
function envira_gallery_ajax_save_bulk_meta() {
|
452 |
|
453 |
// Run a security check first.
|
454 |
+
check_admin_referer( 'envira-gallery-save-meta', 'nonce' );
|
455 |
|
456 |
// Prepare variables.
|
457 |
$post_id = absint( $_POST['post_id'] );
|
458 |
$image_ids = $_POST['image_ids'];
|
459 |
$meta = $_POST['meta'];
|
460 |
+
|
461 |
// Check the required variables exist.
|
462 |
if ( empty( $post_id ) ) {
|
463 |
wp_send_json_error();
|
498 |
if ( isset( $meta['link_new_window'] ) && ! empty( $meta['link_new_window'] ) ) {
|
499 |
$gallery_data['gallery'][ $image_id ]['link_new_window'] = trim( $meta['link_new_window'] );
|
500 |
}
|
501 |
+
|
502 |
if ( isset( $meta['caption'] ) && ! empty( $meta['caption'] ) ) {
|
503 |
$gallery_data['gallery'][ $image_id ]['caption'] = trim( $meta['caption'] );
|
504 |
}
|
528 |
function envira_gallery_ajax_refresh() {
|
529 |
|
530 |
// Run a security check first.
|
531 |
+
check_admin_referer( 'envira-gallery-refresh', 'nonce' );
|
532 |
|
533 |
// Prepare variables.
|
534 |
$post_id = absint( $_POST['post_id'] );
|
580 |
function envira_gallery_ajax_install_addon() {
|
581 |
|
582 |
// Run a security check first.
|
583 |
+
check_admin_referer( 'envira-gallery-install', 'nonce' );
|
584 |
|
585 |
// Install the addon.
|
586 |
if ( isset( $_POST['plugin'] ) ) {
|
649 |
function envira_gallery_ajax_activate_addon() {
|
650 |
|
651 |
// Run a security check first.
|
652 |
+
check_admin_referer( 'envira-gallery-activate', 'nonce' );
|
653 |
|
654 |
// Activate the addon.
|
655 |
if ( isset( $_POST['plugin'] ) ) {
|
675 |
function envira_gallery_ajax_deactivate_addon() {
|
676 |
|
677 |
// Run a security check first.
|
678 |
+
check_admin_referer( 'envira-gallery-deactivate', 'nonce' );
|
679 |
|
680 |
// Deactivate the addon.
|
681 |
if ( isset( $_POST['plugin'] ) ) {
|
735 |
$gallery_data['gallery'] = array();
|
736 |
$gallery_data['gallery'][ $id ] = $image;
|
737 |
} else {
|
738 |
+
|
739 |
+
// Add image, this will default to the end of the array
|
740 |
+
$gallery_data['gallery'][ $id ] = $image;
|
741 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
742 |
}
|
743 |
|
744 |
// Filter and return
|
759 |
function envira_gallery_ajax_dismiss_notice() {
|
760 |
|
761 |
// Run a security check first.
|
762 |
+
check_admin_referer( 'envira-gallery-dismiss-notice', 'nonce' );
|
763 |
|
764 |
// Deactivate the notice
|
765 |
if ( isset( $_POST['notice'] ) ) {
|
810 |
function envira_gallery_editor_get_galleries() {
|
811 |
|
812 |
// Check nonce
|
813 |
+
check_admin_referer( 'envira-gallery-editor-get-galleries', 'nonce' );
|
814 |
|
815 |
// Get POSTed fields
|
816 |
$search = (bool) $_POST['search'];
|
818 |
$prepend_ids = stripslashes_deep( $_POST['prepend_ids'] );
|
819 |
|
820 |
// Get galleries
|
821 |
+
$instance = Envira_Gallery_Lite::get_instance();
|
822 |
$galleries = $instance->get_galleries( false, true, ( $search ? $search_terms : '' ) );
|
823 |
|
824 |
// Build array of just the data we need.
|
840 |
'action' => 'gallery', // Tells the editor modal whether this is a Gallery or Album for the shortcode output
|
841 |
);
|
842 |
}
|
843 |
+
|
844 |
// If any prepended Gallery IDs were specified, get them now
|
845 |
// These will typically be a Defaults Gallery, which wouldn't be included in the above get_galleries() call
|
846 |
if ( is_array( $prepend_ids ) && count( $prepend_ids ) > 0 ) {
|
847 |
$prepend_results = array();
|
848 |
+
|
849 |
// Get each Gallery
|
850 |
foreach ( $prepend_ids as $gallery_id ) {
|
851 |
// Get gallery
|
889 |
function envira_gallery_move_media() {
|
890 |
|
891 |
// Check nonce
|
892 |
+
check_admin_referer( 'envira-gallery-move-media', 'nonce' );
|
893 |
|
894 |
// Get POSTed fields
|
895 |
$from_gallery_id = absint( $_POST['from_gallery_id'] );
|
909 |
// Get from and to Galleries
|
910 |
$from_gallery = Envira_Gallery::get_instance()->get_gallery( $from_gallery_id );
|
911 |
$to_gallery = Envira_Gallery::get_instance()->get_gallery( $to_gallery_id );
|
912 |
+
|
913 |
// Iterate through each image ID, adding the image to $to_gallery, then removing from $from_gallery
|
914 |
foreach ( $image_ids as $image_id ) {
|
915 |
// Check the image exists in $from_gallery
|
932 |
// Return success
|
933 |
wp_send_json_success();
|
934 |
|
935 |
+
}
|
includes/admin/common.php
CHANGED
@@ -53,7 +53,7 @@ class Envira_Gallery_Common_Admin {
|
|
53 |
public function __construct() {
|
54 |
|
55 |
// Load the base class object.
|
56 |
-
$this->base =
|
57 |
|
58 |
// Handle any necessary DB upgrades.
|
59 |
add_action( 'admin_init', array( $this, 'db_upgrade' ) );
|
@@ -85,7 +85,7 @@ class Envira_Gallery_Common_Admin {
|
|
85 |
// Upgrade to allow captions (v1.1.6).
|
86 |
$captions = get_option( 'envira_gallery_116' );
|
87 |
if ( ! $captions ) {
|
88 |
-
$galleries =
|
89 |
if ( $galleries ) {
|
90 |
foreach ( $galleries as $gallery ) {
|
91 |
foreach ( (array) $gallery['gallery'] as $id => $item ) {
|
@@ -514,14 +514,6 @@ class Envira_Gallery_Common_Admin {
|
|
514 |
*/
|
515 |
public function get_upgrade_link() {
|
516 |
|
517 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
518 |
-
// User is using Envira Gallery, so just take them to the Pricing page.
|
519 |
-
// Note: On the Addons screen, if the user has a license, we won't hit this function,
|
520 |
-
// as the API will tell us the direct URL to send the user to based on their license key,
|
521 |
-
// so they see pro-rata pricing.
|
522 |
-
return 'http://enviragallery.com/pricing/?utm_source=proplugin&utm_medium=link&utm_campaign=WordPress';
|
523 |
-
}
|
524 |
-
|
525 |
// Check if there's a constant.
|
526 |
$shareasale_id = '';
|
527 |
if ( defined( 'ENVIRA_GALLERY_SHAREASALE_ID' ) ) {
|
53 |
public function __construct() {
|
54 |
|
55 |
// Load the base class object.
|
56 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
57 |
|
58 |
// Handle any necessary DB upgrades.
|
59 |
add_action( 'admin_init', array( $this, 'db_upgrade' ) );
|
85 |
// Upgrade to allow captions (v1.1.6).
|
86 |
$captions = get_option( 'envira_gallery_116' );
|
87 |
if ( ! $captions ) {
|
88 |
+
$galleries = Envira_Gallery_Lite::get_instance()->_get_galleries();
|
89 |
if ( $galleries ) {
|
90 |
foreach ( $galleries as $gallery ) {
|
91 |
foreach ( (array) $gallery['gallery'] as $id => $item ) {
|
514 |
*/
|
515 |
public function get_upgrade_link() {
|
516 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
517 |
// Check if there's a constant.
|
518 |
$shareasale_id = '';
|
519 |
if ( defined( 'ENVIRA_GALLERY_SHAREASALE_ID' ) ) {
|
includes/admin/editor.php
CHANGED
@@ -53,7 +53,7 @@ class Envira_Gallery_Editor {
|
|
53 |
public function __construct() {
|
54 |
|
55 |
// Load the base class object.
|
56 |
-
$this->base =
|
57 |
|
58 |
// Add a custom media button to the editor.
|
59 |
add_filter( 'media_buttons_context', array( $this, 'media_button' ) );
|
53 |
public function __construct() {
|
54 |
|
55 |
// Load the base class object.
|
56 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
57 |
|
58 |
// Add a custom media button to the editor.
|
59 |
add_filter( 'media_buttons_context', array( $this, 'media_button' ) );
|
includes/admin/media-view.php
CHANGED
@@ -44,7 +44,7 @@ class Envira_Gallery_Media_View {
|
|
44 |
public function __construct() {
|
45 |
|
46 |
// Base
|
47 |
-
$this->base =
|
48 |
|
49 |
// Modals
|
50 |
add_filter( 'envira_gallery_media_view_strings', array( $this, 'media_view_strings' ) );
|
@@ -253,32 +253,7 @@ class Envira_Gallery_Media_View {
|
|
253 |
<?php _e( 'Image titles can take any type of HTML. You can adjust the position of the titles in the main Lightbox settings.', 'envira-gallery' ); ?>
|
254 |
</div>
|
255 |
</label>
|
256 |
-
|
257 |
-
<?php
|
258 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
259 |
-
?>
|
260 |
-
<!-- Caption -->
|
261 |
-
<div class="setting">
|
262 |
-
<span class="name"><?php _e( 'Caption', 'envira-gallery' ); ?></span>
|
263 |
-
<?php
|
264 |
-
wp_editor( '', 'caption', array(
|
265 |
-
'media_buttons' => false,
|
266 |
-
'wpautop' => false,
|
267 |
-
'tinymce' => false,
|
268 |
-
'textarea_name' => 'caption',
|
269 |
-
'quicktags' => array(
|
270 |
-
'buttons' => 'strong,em,link,ul,ol,li,close'
|
271 |
-
),
|
272 |
-
'editor_height' => 100,
|
273 |
-
) );
|
274 |
-
?>
|
275 |
-
<div class="description">
|
276 |
-
<?php _e( 'Captions can take any type of HTML, and are displayed when an image is clicked.', 'envira-gallery' ); ?>
|
277 |
-
</div>
|
278 |
-
</div>
|
279 |
-
<?php
|
280 |
-
}
|
281 |
-
?>
|
282 |
|
283 |
<!-- Alt Text -->
|
284 |
<label class="setting">
|
@@ -303,41 +278,9 @@ class Envira_Gallery_Media_View {
|
|
303 |
<?php _e( 'Enter a hyperlink if you wish to link this image to somewhere other than its full size image.', 'envira-gallery' ); ?>
|
304 |
</span>
|
305 |
</label>
|
306 |
-
|
307 |
-
<?php
|
308 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
309 |
-
?>
|
310 |
-
<!-- Link in New Window -->
|
311 |
-
<label class="setting">
|
312 |
-
<span class="name"><?php _e( 'Open URL in New Window?', 'envira-gallery' ); ?></span>
|
313 |
-
<span class="description">
|
314 |
-
<input type="checkbox" name="link_new_window" value="1"<# if ( data.link_new_window == '1' ) { #> checked <# } #> />
|
315 |
-
<?php _e( 'Opens your image links in a new browser window / tab.', 'envira-gallery' ); ?>
|
316 |
-
</span>
|
317 |
-
</label>
|
318 |
-
<?php
|
319 |
-
} else {
|
320 |
-
?>
|
321 |
-
<label class="setting">
|
322 |
-
<!-- Upgrade -->
|
323 |
-
<?php
|
324 |
-
Envira_Gallery_Notice_Admin::get_instance()->display_inline_notice(
|
325 |
-
'envira_gallery_edit_metadata',
|
326 |
-
__( 'Want Captions and more options?', 'envira-gallery' ),
|
327 |
-
__( 'By upgrading to Envira Pro, you can get access to numerous other features, including: HTML captions, open links in new windows, WooCommerce product integration and so much more!', 'envira-gallery' ),
|
328 |
-
'warning',
|
329 |
-
__( 'Click here to Upgrade', 'envira-gallery' ),
|
330 |
-
Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(),
|
331 |
-
false
|
332 |
-
);
|
333 |
-
?>
|
334 |
-
</label>
|
335 |
-
<?php
|
336 |
-
}
|
337 |
-
?>
|
338 |
|
339 |
<!-- Addons can populate the UI here -->
|
340 |
-
<div class="addons"></div>
|
341 |
</div>
|
342 |
<!-- /.settings -->
|
343 |
|
@@ -442,7 +385,7 @@ class Envira_Gallery_Media_View {
|
|
442 |
</label>
|
443 |
|
444 |
<!-- Addons can populate the UI here -->
|
445 |
-
<div class="addons"></div>
|
446 |
</div>
|
447 |
<!-- /.settings -->
|
448 |
|
44 |
public function __construct() {
|
45 |
|
46 |
// Base
|
47 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
48 |
|
49 |
// Modals
|
50 |
add_filter( 'envira_gallery_media_view_strings', array( $this, 'media_view_strings' ) );
|
253 |
<?php _e( 'Image titles can take any type of HTML. You can adjust the position of the titles in the main Lightbox settings.', 'envira-gallery' ); ?>
|
254 |
</div>
|
255 |
</label>
|
256 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
257 |
|
258 |
<!-- Alt Text -->
|
259 |
<label class="setting">
|
278 |
<?php _e( 'Enter a hyperlink if you wish to link this image to somewhere other than its full size image.', 'envira-gallery' ); ?>
|
279 |
</span>
|
280 |
</label>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
281 |
|
282 |
<!-- Addons can populate the UI here -->
|
283 |
+
<div class="envira-addons"></div>
|
284 |
</div>
|
285 |
<!-- /.settings -->
|
286 |
|
385 |
</label>
|
386 |
|
387 |
<!-- Addons can populate the UI here -->
|
388 |
+
<div class="envira-addons"></div>
|
389 |
</div>
|
390 |
<!-- /.settings -->
|
391 |
|
includes/admin/media.php
CHANGED
@@ -44,7 +44,7 @@ class Envira_Gallery_Media {
|
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
-
$this->base =
|
48 |
|
49 |
add_filter( 'wp_handle_upload', array( $this, 'fix_image_orientation' ) );
|
50 |
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
48 |
|
49 |
add_filter( 'wp_handle_upload', array( $this, 'fix_image_orientation' ) );
|
50 |
|
includes/admin/metaboxes.php
CHANGED
@@ -44,7 +44,7 @@ class Envira_Gallery_Metaboxes {
|
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
-
$this->base =
|
48 |
|
49 |
// Output a notice if missing cropping extensions because Envira needs them.
|
50 |
if ( ! $this->has_gd_extension() && ! $this->has_imagick_extension() ) {
|
@@ -68,19 +68,14 @@ class Envira_Gallery_Metaboxes {
|
|
68 |
add_action( 'envira_gallery_tab_images', array( $this, 'images_tab' ) );
|
69 |
add_action( 'envira_gallery_tab_config', array( $this, 'config_tab' ) );
|
70 |
add_action( 'envira_gallery_tab_lightbox', array( $this, 'lightbox_tab' ) );
|
71 |
-
add_action( 'envira_gallery_tab_mobile', array( $this, 'mobile_tab' ) );
|
72 |
add_action( 'envira_gallery_tab_misc', array( $this, 'misc_tab' ) );
|
73 |
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
add_action( 'envira_gallery_tab_social', array( $this, 'lite_social_tab' ) );
|
81 |
-
add_action( 'envira_gallery_tab_tags', array( $this, 'lite_tags_tab' ) );
|
82 |
-
add_action( 'envira_gallery_tab_pagination', array( $this, 'lite_pagination_tab' ) );
|
83 |
-
}
|
84 |
|
85 |
// Save Gallery
|
86 |
add_action( 'save_post', array( $this, 'save_meta_boxes' ), 10, 2 );
|
@@ -284,7 +279,6 @@ class Envira_Gallery_Metaboxes {
|
|
284 |
'library_search' => wp_create_nonce( 'envira-gallery-library-search' ),
|
285 |
'load_gallery' => wp_create_nonce( 'envira-gallery-load-gallery' ),
|
286 |
'load_image' => wp_create_nonce( 'envira-gallery-load-image' ),
|
287 |
-
'media_position' => Envira_Gallery_Settings::get_instance()->get_setting( 'media_position' ),
|
288 |
'move_media_nonce' => wp_create_nonce( 'envira-gallery-move-media' ),
|
289 |
'move_media_modal_title'=> __( 'Move Media to Gallery', 'envira-gallery' ),
|
290 |
'move_media_insert_button_label' => __( 'Move Media to Selected Gallery', 'envira-gallery' ),
|
@@ -302,23 +296,6 @@ class Envira_Gallery_Metaboxes {
|
|
302 |
)
|
303 |
);
|
304 |
|
305 |
-
// Insert from Third Party Sources
|
306 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
307 |
-
wp_register_script( $this->base->plugin_slug . '-media-insert-third-party', plugins_url( 'assets/js/media-insert-third-party.js', $this->base->file ), array( 'jquery' ), $this->base->version, true );
|
308 |
-
wp_enqueue_script( $this->base->plugin_slug . '-media-insert-third-party' );
|
309 |
-
wp_localize_script(
|
310 |
-
$this->base->plugin_slug . '-media-insert-third-party',
|
311 |
-
'envira_gallery_media_insert',
|
312 |
-
array(
|
313 |
-
'nonce' => wp_create_nonce( 'envira-gallery-media-insert' ),
|
314 |
-
'post_id' => $post_id,
|
315 |
-
|
316 |
-
// Addons must add their slug/base key/value pair to this array to appear within the "Insert from Other Sources" modal
|
317 |
-
'addons' => apply_filters( 'envira_gallery_media_insert_third_party_sources', array(), $post_id ),
|
318 |
-
)
|
319 |
-
);
|
320 |
-
}
|
321 |
-
|
322 |
// Link Search
|
323 |
wp_enqueue_script( 'wp-link' );
|
324 |
|
@@ -708,43 +685,14 @@ class Envira_Gallery_Metaboxes {
|
|
708 |
<a href="http://enviragallery.com/docs/creating-first-envira-gallery/" class="envira-doc" target="_blank">
|
709 |
<?php _e( 'Read the Documentation', 'envira-gallery' ); ?>
|
710 |
</a>
|
711 |
-
or
|
712 |
<a href="https://www.youtube.com/embed/F9_wOefuBaw?autoplay=1&rel=0" class="envira-video" target="_blank">
|
713 |
<?php _e( 'Watch a Video', 'envira-gallery' ); ?>
|
714 |
</a>
|
715 |
</small>
|
716 |
</p>
|
717 |
|
718 |
-
|
719 |
-
if ( 'Envira_Gallery' == get_class( $this->base ) ) {
|
720 |
-
?>
|
721 |
-
<nav class="envira-tab-options">
|
722 |
-
<!-- Select All -->
|
723 |
-
<label for="select-all">
|
724 |
-
<input type="checkbox" name="cb" id="select-all" />
|
725 |
-
<?php echo sprintf( __( 'Select All (<span class="count">%d</span>)', 'envira-gallery' ), $this->base->get_gallery_image_count( $post->ID ) ); ?>
|
726 |
-
</label>
|
727 |
-
|
728 |
-
<!-- List / Grid View -->
|
729 |
-
<a href="#" class="dashicons dashicons-grid-view<?php echo ( $layout == 'grid' ? ' selected' : '' ); ?>" data-view="#envira-gallery-output" data-view-style="grid">
|
730 |
-
<span><?php _e( 'Grid View', 'envira-gallery' ); ?></span>
|
731 |
-
</a>
|
732 |
-
<a href="#" class="dashicons dashicons-list-view<?php echo ( $layout == 'list' ? ' selected' : '' ); ?>" data-view="#envira-gallery-output" data-view-style="list">
|
733 |
-
<span><?php _e( 'List View', 'envira-gallery' ); ?></span>
|
734 |
-
</a>
|
735 |
-
</nav>
|
736 |
-
|
737 |
-
<!-- Bulk Edit / Delete Buttons -->
|
738 |
-
<nav class="envira-select-options">
|
739 |
-
<a href="#" class="button envira-gallery-images-edit"><?php _e( 'Edit Selected Images', 'envira-gallery' ); ?></a>
|
740 |
-
<a href="#" class="button envira-gallery-images-move" data-action="gallery"><?php _e( 'Move Selected Images to another Gallery', 'envira-gallery' ); ?></a>
|
741 |
-
<a href="#" class="button button-danger envira-gallery-images-delete"><?php _e( 'Delete Selected Images from Gallery', 'envira-gallery' ); ?></a>
|
742 |
-
</nav>
|
743 |
-
<?php
|
744 |
-
}
|
745 |
-
|
746 |
-
do_action( 'envira_gallery_do_default_display', $post );
|
747 |
-
?>
|
748 |
|
749 |
<ul id="envira-gallery-output" class="envira-gallery-images-output <?php echo $layout; ?>">
|
750 |
<?php
|
@@ -757,27 +705,16 @@ class Envira_Gallery_Metaboxes {
|
|
757 |
</ul>
|
758 |
|
759 |
<?php
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
// Output an upgrade notice
|
771 |
-
Envira_Gallery_Notice_Admin::get_instance()->display_inline_notice(
|
772 |
-
'envira_gallery_images_tab',
|
773 |
-
__( 'Want to make your gallery workflow even better?', 'envira-gallery' ),
|
774 |
-
__( 'By upgrading to Envira Pro, you can get access to numerous other features, including: a fully featured gallery widget, complete gallery API, powerful gallery documentation, full mobile and Retina support, dedicated customer support and so much more!', 'envira-gallery' ),
|
775 |
-
'warning',
|
776 |
-
__( 'Click here to Upgrade', 'envira-gallery' ),
|
777 |
-
Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(),
|
778 |
-
false
|
779 |
-
);
|
780 |
-
}
|
781 |
|
782 |
}
|
783 |
|
@@ -814,7 +751,7 @@ class Envira_Gallery_Metaboxes {
|
|
814 |
<label for="envira-config-columns"><?php _e( 'Number of Gallery Columns', 'envira-gallery' ); ?></label>
|
815 |
</th>
|
816 |
<td>
|
817 |
-
<select
|
818 |
<?php foreach ( (array) $this->get_columns() as $i => $data ) : ?>
|
819 |
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'columns', $this->get_config_default( 'columns' ) ) ); ?>><?php echo $data['name']; ?></option>
|
820 |
<?php endforeach; ?>
|
@@ -853,63 +790,11 @@ class Envira_Gallery_Metaboxes {
|
|
853 |
</tbody>
|
854 |
</table>
|
855 |
</div>
|
856 |
-
<?php
|
857 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
858 |
-
?>
|
859 |
-
<div id="envira-config-description-settings-box">
|
860 |
-
<table class="form-table">
|
861 |
-
<tbody>
|
862 |
|
863 |
-
<!-- Display Description -->
|
864 |
-
<tr id="envira-config-display-description-box">
|
865 |
-
<th scope="row">
|
866 |
-
<label for="envira-config-display-description"><?php _e( 'Display Gallery Description?', 'envira-gallery' ); ?></label>
|
867 |
-
</th>
|
868 |
-
<td>
|
869 |
-
<select id="envira-config-display-description" name="_envira_gallery[description_position]" data-envira-conditional="envira-config-description-box">
|
870 |
-
<?php
|
871 |
-
foreach ( (array) $this->get_display_description_options() as $i => $data ) {
|
872 |
-
?>
|
873 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'description_position', $this->get_config_default( 'description_position' ) ) ); ?>><?php echo $data['name']; ?></option>
|
874 |
-
<?php
|
875 |
-
}
|
876 |
-
?>
|
877 |
-
</select>
|
878 |
-
<p class="description"><?php _e( 'Choose to display a description above or below this gallery\'s images.', 'envira-gallery' ); ?></p>
|
879 |
-
</td>
|
880 |
-
</tr>
|
881 |
-
|
882 |
-
<!-- Description -->
|
883 |
-
<tr id="envira-config-description-box">
|
884 |
-
<th scope="row">
|
885 |
-
<label for="envira-config-gallery-description"><?php _e( 'Gallery Description', 'envira-gallery' ); ?></label>
|
886 |
-
</th>
|
887 |
-
<td>
|
888 |
-
<?php
|
889 |
-
$description = $this->get_config( 'description' );
|
890 |
-
if ( empty( $description ) ) {
|
891 |
-
$description = $this->get_config_default( 'description' );
|
892 |
-
}
|
893 |
-
wp_editor( $description, 'envira-gallery-description', array(
|
894 |
-
'media_buttons' => false,
|
895 |
-
'wpautop' => true,
|
896 |
-
'tinymce' => true,
|
897 |
-
'textarea_name' => '_envira_gallery[description]',
|
898 |
-
) );
|
899 |
-
?>
|
900 |
-
<p class="description"><?php _e( 'The description to display for this gallery.', 'envira-gallery' ); ?></p>
|
901 |
-
</td>
|
902 |
-
</tr>
|
903 |
-
</tbody>
|
904 |
-
</table>
|
905 |
-
</div>
|
906 |
-
<?php
|
907 |
-
}
|
908 |
-
?>
|
909 |
<div id="envira-config-standard-settings-box">
|
910 |
<table class="form-table">
|
911 |
<tbody>
|
912 |
-
|
913 |
<tr id="envira-config-gallery-theme-box">
|
914 |
<th scope="row">
|
915 |
<label for="envira-config-gallery-theme"><?php _e( 'Gallery Theme', 'envira-gallery' ); ?></label>
|
@@ -923,8 +808,6 @@ class Envira_Gallery_Metaboxes {
|
|
923 |
<p class="description"><?php _e( 'Sets the theme for the gallery display.', 'envira-gallery' ); ?></p>
|
924 |
</td>
|
925 |
</tr>
|
926 |
-
|
927 |
-
|
928 |
<tr id="envira-config-gutter-box">
|
929 |
<th scope="row">
|
930 |
<label for="envira-config-gutter"><?php _e( 'Column Gutter Width', 'envira-gallery' ); ?></label>
|
@@ -944,54 +827,22 @@ class Envira_Gallery_Metaboxes {
|
|
944 |
</td>
|
945 |
</tr>
|
946 |
|
947 |
-
<?php
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
<?php
|
958 |
-
foreach ( (array) $this->get_sorting_options() as $i => $data ) {
|
959 |
-
?>
|
960 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'random', $this->get_config_default( 'random' ) ) ); ?>><?php echo $data['name']; ?></option>
|
961 |
-
<?php
|
962 |
-
}
|
963 |
-
?>
|
964 |
-
</select>
|
965 |
-
<p class="description"><?php _e( 'Choose to sort the images in a different order than displayed on the Images tab.', 'envira-gallery' ); ?></p>
|
966 |
-
</td>
|
967 |
-
</tr>
|
968 |
-
<tr id="envira-config-sorting-direction-box">
|
969 |
-
<th scope="row">
|
970 |
-
<label for="envira-config-sorting-direction"><?php _e( 'Direction', 'envira-gallery' ); ?></label>
|
971 |
-
</th>
|
972 |
-
<td>
|
973 |
-
<select id="envira-config-sorting-direction" name="_envira_gallery[sorting_direction]">
|
974 |
-
<?php
|
975 |
-
foreach ( (array) $this->get_sorting_directions() as $i => $data ) {
|
976 |
-
?>
|
977 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'sorting_direction', $this->get_config_default( 'sorting_direction' ) ) ); ?>><?php echo $data['name']; ?></option>
|
978 |
-
<?php
|
979 |
-
}
|
980 |
-
?>
|
981 |
-
</select>
|
982 |
-
</td>
|
983 |
-
</tr>
|
984 |
-
<?php
|
985 |
-
}
|
986 |
-
?>
|
987 |
-
|
988 |
-
<!-- Dimensions -->
|
989 |
<tr id="envira-config-image-size-box">
|
990 |
<th scope="row">
|
991 |
<label for="envira-config-image-size"><?php _e( 'Image Size', 'envira-gallery' ); ?></label>
|
992 |
</th>
|
993 |
<td>
|
994 |
-
<select id="envira-config-image-size" name="_envira_gallery[image_size]"
|
995 |
<?php
|
996 |
foreach ( (array) $this->get_image_sizes() as $i => $data ) {
|
997 |
?>
|
@@ -1003,35 +854,6 @@ class Envira_Gallery_Metaboxes {
|
|
1003 |
<p class="description"><?php _e( 'Define the maximum image size for the Gallery view. Default will use the below Image Dimensions; Random will allow you to choose one or more WordPress image sizes, which will be used for the gallery output.', 'envira-gallery' ); ?></p>
|
1004 |
</td>
|
1005 |
</tr>
|
1006 |
-
|
1007 |
-
<?php
|
1008 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
1009 |
-
?>
|
1010 |
-
<tr id="envira-config-image-sizes-random-box">
|
1011 |
-
<th scope="row">
|
1012 |
-
<label for="envira-config-image-sizes-random"><?php _e( 'Random Image Sizes', 'envira-gallery' ); ?></label>
|
1013 |
-
</th>
|
1014 |
-
<td>
|
1015 |
-
<?php
|
1016 |
-
// Get random image sizes that have been selected, if any.
|
1017 |
-
$image_sizes_random = (array) $this->get_config( 'image_sizes_random', $this->get_config_default( 'image_sizes_random' ) );
|
1018 |
-
|
1019 |
-
foreach ( (array) $this->get_image_sizes( true ) as $i => $data ) {
|
1020 |
-
?>
|
1021 |
-
<label for="envira-config-image-sizes-random-<?php echo $data['value']; ?>">
|
1022 |
-
<input id="envira-config-image-sizes-random-<?php echo $data['value']; ?>" type="checkbox" name="_envira_gallery[image_sizes_random][]" value="<?php echo $data['value']; ?>"<?php echo ( in_array( $data['value'], $image_sizes_random ) ? ' checked' : '' ); ?> />
|
1023 |
-
<?php echo $data['name']; ?>
|
1024 |
-
</label><br />
|
1025 |
-
<?php
|
1026 |
-
}
|
1027 |
-
?>
|
1028 |
-
<p class="description"><?php _e( 'Define the WordPress registered image sizes to include when randomly assigning an image size to each image in your Gallery.', 'envira-gallery' ); ?></p>
|
1029 |
-
</td>
|
1030 |
-
</tr>
|
1031 |
-
<?php
|
1032 |
-
}
|
1033 |
-
?>
|
1034 |
-
|
1035 |
<tr id="envira-config-crop-size-box">
|
1036 |
<th scope="row">
|
1037 |
<label for="envira-config-crop-width"><?php _e( 'Image Dimensions', 'envira-gallery' ); ?></label>
|
@@ -1051,63 +873,13 @@ class Envira_Gallery_Metaboxes {
|
|
1051 |
<span class="description"><?php _e( 'If disabled, images will be resized to maintain their aspect ratio.', 'envira-gallery' ); ?></span>
|
1052 |
|
1053 |
</td>
|
1054 |
-
</tr>
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
?>
|
1059 |
-
<tr id="envira-config-dimensions-box">
|
1060 |
-
<th scope="row">
|
1061 |
-
<label for="envira-config-dimensions"><?php _e( 'Set Dimensions on Images?', 'envira-gallery' ); ?></label>
|
1062 |
-
</th>
|
1063 |
-
<td>
|
1064 |
-
<input id="envira-config-dimensions" type="checkbox" name="_envira_gallery[dimensions]" value="<?php echo $this->get_config( 'dimensions', $this->get_config_default( 'dimensions' ) ); ?>" <?php checked( $this->get_config( 'dimensions', $this->get_config_default( 'dimensions' ) ), 1 ); ?> />
|
1065 |
-
<span class="description"><?php _e( 'Enables or disables the width and height attributes on the img element. Only needs to be enabled if you need to meet Google Pagespeeds requirements.', 'envira-gallery' ); ?></span>
|
1066 |
-
</td>
|
1067 |
-
</tr>
|
1068 |
-
<tr id="envira-config-isotope-box">
|
1069 |
-
<th scope="row">
|
1070 |
-
<label for="envira-config-isotope"><?php _e( 'Enable Isotope?', 'envira-gallery' ); ?></label>
|
1071 |
-
</th>
|
1072 |
-
<td>
|
1073 |
-
<input id="envira-config-isotope" type="checkbox" name="_envira_gallery[isotope]" value="<?php echo $this->get_config( 'isotope', $this->get_config_default( 'isotope' ) ); ?>" <?php checked( $this->get_config( 'isotope', $this->get_config_default( 'isotope' ) ), 1 ); ?> />
|
1074 |
-
<span class="description"><?php _e( 'Enables or disables isotope/masonry layout support for the main gallery images.', 'envira-gallery' ); ?></span>
|
1075 |
-
</td>
|
1076 |
-
</tr>
|
1077 |
-
|
1078 |
-
<tr id="envira-config-css-animations-box">
|
1079 |
-
<th scope="row">
|
1080 |
-
<label for="envira-config-css-animations"><?php _e( 'Enable CSS Animations?', 'envira-gallery' ); ?></label>
|
1081 |
-
</th>
|
1082 |
-
<td>
|
1083 |
-
<input id="envira-config-css-animations" type="checkbox" name="_envira_gallery[css_animations]" value="<?php echo $this->get_config( 'css_animations', $this->get_config_default( 'css_animations' ) ); ?>" <?php checked( $this->get_config( 'css_animations', $this->get_config_default( 'css_animations' ) ), 1 ); ?> data-envira-conditional="envira-config-css-opacity-box" />
|
1084 |
-
<span class="description"><?php _e( 'Enables CSS animations when loading the main gallery images.', 'envira-gallery' ); ?></span>
|
1085 |
-
</td>
|
1086 |
-
</tr>
|
1087 |
-
|
1088 |
-
<tr id="envira-config-css-opacity-box">
|
1089 |
-
<th scope="row">
|
1090 |
-
<label for="envira-config-css-opacity"><?php _e( 'Image Opacity', 'envira-gallery' ); ?></label>
|
1091 |
-
</th>
|
1092 |
-
<td>
|
1093 |
-
<input id="envira-config-css-opacity" type="number" name="_envira_gallery[css_opacity]" min="0" max="100" step="1" value="<?php echo $this->get_config( 'css_opacity', $this->get_config_default( 'css_opacity' ) ); ?>" /><span class="envira-unit">%</span>
|
1094 |
-
<p class="description"><?php _e( 'The opacity to display images at when loading the main gallery images using CSS animations (between 1 and 100%).', 'envira-gallery' ); ?></p>
|
1095 |
-
</td>
|
1096 |
-
</tr>
|
1097 |
-
<?php
|
1098 |
-
}
|
1099 |
-
?>
|
1100 |
-
|
1101 |
-
<?php do_action( 'envira_gallery_config_box', $post ); ?>
|
1102 |
-
</tbody>
|
1103 |
-
</table>
|
1104 |
-
</div>
|
1105 |
</div>
|
1106 |
-
|
1107 |
-
<?php
|
1108 |
-
// Output an upgrade notice
|
1109 |
-
if ( class_exists( 'Envira_Gallery_Lite' ) ) {
|
1110 |
-
Envira_Gallery_Notice_Admin::get_instance()->display_inline_notice(
|
1111 |
'envira_gallery_config_tab',
|
1112 |
__( 'Want to do even more with your gallery display?', 'envira-gallery' ),
|
1113 |
__( 'By upgrading to Envira Pro, you can get access to numerous other gallery display features, including: custom image tagging and filtering, mobile specific image assets for blazing fast load times, dedicated and unique gallery URLs, custom gallery themes, gallery thumbnail support and so much more!', 'envira-gallery' ),
|
@@ -1116,7 +888,6 @@ class Envira_Gallery_Metaboxes {
|
|
1116 |
Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(),
|
1117 |
false
|
1118 |
);
|
1119 |
-
}
|
1120 |
|
1121 |
}
|
1122 |
|
@@ -1154,7 +925,7 @@ class Envira_Gallery_Metaboxes {
|
|
1154 |
<label for="envira-config-lightbox-enabled"><?php _e( 'Enable Lightbox?', 'envira-gallery' ); ?></label>
|
1155 |
</th>
|
1156 |
<td>
|
1157 |
-
<input id="envira-config-lightbox-enabled" type="checkbox" name="_envira_gallery[lightbox_enabled]" value="<?php echo $this->get_config( 'lightbox_enabled', $this->get_config_default( 'lightbox_enabled' ) ); ?>" <?php checked( $this->get_config( 'lightbox_enabled', $this->get_config_default( 'lightbox_enabled' ) ), 1 ); ?>
|
1158 |
<span class="description"><?php _e( 'Enables or disables the gallery lightbox.', 'envira-gallery' ); ?></span>
|
1159 |
</td>
|
1160 |
</tr>
|
@@ -1177,7 +948,6 @@ class Envira_Gallery_Metaboxes {
|
|
1177 |
<p class="description"><?php _e( 'Sets the theme for the gallery lightbox display.', 'envira-gallery' ); ?></p>
|
1178 |
</td>
|
1179 |
</tr>
|
1180 |
-
|
1181 |
<tr id="envira-config-lightbox-image-size-box">
|
1182 |
<th scope="row">
|
1183 |
<label for="envira-config-lightbox-image-size"><?php _e( 'Image Size', 'envira-gallery' ); ?></label>
|
@@ -1191,7 +961,6 @@ class Envira_Gallery_Metaboxes {
|
|
1191 |
<p class="description"><?php _e( 'Define the maximum image size for the Lightbox view. Default will display the original, full size image.', 'envira-gallery' ); ?></p>
|
1192 |
</td>
|
1193 |
</tr>
|
1194 |
-
|
1195 |
<tr id="envira-config-lightbox-title-display-box">
|
1196 |
<th scope="row">
|
1197 |
<label for="envira-config-lightbox-title-display"><?php _e( 'Caption Position', 'envira-gallery' ); ?></label>
|
@@ -1206,223 +975,14 @@ class Envira_Gallery_Metaboxes {
|
|
1206 |
</td>
|
1207 |
</tr>
|
1208 |
|
1209 |
-
<?php
|
1210 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
1211 |
-
?>
|
1212 |
-
<tr id="envira-config-lightbox-arrows-box">
|
1213 |
-
<th scope="row">
|
1214 |
-
<label for="envira-config-lightbox-arrows"><?php _e( 'Enable Gallery Arrows?', 'envira-gallery' ); ?></label>
|
1215 |
-
</th>
|
1216 |
-
<td>
|
1217 |
-
<input id="envira-config-lightbox-arrows" type="checkbox" name="_envira_gallery[arrows]" value="<?php echo $this->get_config( 'arrows', $this->get_config_default( 'arrows' ) ); ?>" <?php checked( $this->get_config( 'arrows', $this->get_config_default( 'arrows' ) ), 1 ); ?> data-envira-conditional="envira-config-lightbox-arrows-position-box" />
|
1218 |
-
<span class="description"><?php _e( 'Enables or disables the gallery lightbox navigation arrows.', 'envira-gallery' ); ?></span>
|
1219 |
-
</td>
|
1220 |
-
</tr>
|
1221 |
-
<tr id="envira-config-lightbox-arrows-position-box">
|
1222 |
-
<th scope="row">
|
1223 |
-
<label for="envira-config-lightbox-arrows-position"><?php _e( 'Gallery Arrow Position', 'envira-gallery' ); ?></label>
|
1224 |
-
</th>
|
1225 |
-
<td>
|
1226 |
-
<select id="envira-config-lightbox-arrows-position" name="_envira_gallery[arrows_position]">
|
1227 |
-
<?php foreach ( (array) $this->get_arrows_positions() as $i => $data ) : ?>
|
1228 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'arrows_position', $this->get_config_default( 'arrows_position' ) ) ); ?>><?php echo $data['name']; ?></option>
|
1229 |
-
<?php endforeach; ?>
|
1230 |
-
</select>
|
1231 |
-
<p class="description"><?php _e( 'Sets the position of the gallery lightbox navigation arrows.', 'envira-gallery' ); ?></p>
|
1232 |
-
</td>
|
1233 |
-
</tr>
|
1234 |
-
<tr id="envira-config-lightbox-keyboard-box">
|
1235 |
-
<th scope="row">
|
1236 |
-
<label for="envira-config-lightbox-keyboard"><?php _e( 'Enable Keyboard Navigation?', 'envira-gallery' ); ?></label>
|
1237 |
-
</th>
|
1238 |
-
<td>
|
1239 |
-
<input id="envira-config-lightbox-keyboard" type="checkbox" name="_envira_gallery[keyboard]" value="<?php echo $this->get_config( 'keyboard', $this->get_config_default( 'keyboard' ) ); ?>" <?php checked( $this->get_config( 'keyboard', $this->get_config_default( 'keyboard' ) ), 1 ); ?> />
|
1240 |
-
<span class="description"><?php _e( 'Enables or disables keyboard navigation in the gallery lightbox.', 'envira-gallery' ); ?></span>
|
1241 |
-
</td>
|
1242 |
-
</tr>
|
1243 |
-
<tr id="envira-config-lightbox-mousewheel-box">
|
1244 |
-
<th scope="row">
|
1245 |
-
<label for="envira-config-lightbox-mousewheel"><?php _e( 'Enable Mousewheel Navigation?', 'envira-gallery' ); ?></label>
|
1246 |
-
</th>
|
1247 |
-
<td>
|
1248 |
-
<input id="envira-config-lightbox-mousewheel" type="checkbox" name="_envira_gallery[mousewheel]" value="<?php echo $this->get_config( 'mousewheel', $this->get_config_default( 'mousewheel' ) ); ?>" <?php checked( $this->get_config( 'mousewheel', $this->get_config_default( 'mousewheel' ) ), 1 ); ?> />
|
1249 |
-
<span class="description"><?php _e( 'Enables or disables mousewheel navigation in the gallery.', 'envira-gallery' ); ?></span>
|
1250 |
-
</td>
|
1251 |
-
</tr>
|
1252 |
-
<tr id="envira-config-lightbox-toolbar-box">
|
1253 |
-
<th scope="row">
|
1254 |
-
<label for="envira-config-lightbox-toolbar"><?php _e( 'Enable Gallery Toolbar?', 'envira-gallery' ); ?></label>
|
1255 |
-
</th>
|
1256 |
-
<td>
|
1257 |
-
<input id="envira-config-lightbox-toolbar" type="checkbox" name="_envira_gallery[toolbar]" value="<?php echo $this->get_config( 'toolbar', $this->get_config_default( 'toolbar' ) ); ?>" <?php checked( $this->get_config( 'toolbar', $this->get_config_default( 'toolbar' ) ), 1 ); ?> data-envira-conditional="envira-config-lightbox-toolbar-title-box,envira-config-lightbox-toolbar-position-box" />
|
1258 |
-
<span class="description"><?php _e( 'Enables or disables the gallery lightbox toolbar.', 'envira-gallery' ); ?></span>
|
1259 |
-
</td>
|
1260 |
-
</tr>
|
1261 |
-
<tr id="envira-config-lightbox-toolbar-title-box">
|
1262 |
-
<th scope="row">
|
1263 |
-
<label for="envira-config-lightbox-toolbar-title"><?php _e( 'Display Gallery Title in Toolbar?', 'envira-gallery' ); ?></label>
|
1264 |
-
</th>
|
1265 |
-
<td>
|
1266 |
-
<input id="envira-config-lightbox-toolbar-title" type="checkbox" name="_envira_gallery[toolbar_title]" value="<?php echo $this->get_config( 'toolbar_title', $this->get_config_default( 'toolbar_title' ) ); ?>" <?php checked( $this->get_config( 'toolbar_title', $this->get_config_default( 'toolbar_title' ) ), 1 ); ?> data-envira-conditional="envira-config-lightbox-toolbar-position-box" />
|
1267 |
-
<span class="description"><?php _e( 'Display the gallery title in the lightbox toolbar.', 'envira-gallery' ); ?></span>
|
1268 |
-
</td>
|
1269 |
-
</tr>
|
1270 |
-
<tr id="envira-config-lightbox-toolbar-position-box">
|
1271 |
-
<th scope="row">
|
1272 |
-
<label for="envira-config-lightbox-toolbar-position"><?php _e( 'Gallery Toolbar Position', 'envira-gallery' ); ?></label>
|
1273 |
-
</th>
|
1274 |
-
<td>
|
1275 |
-
<select id="envira-config-lightbox-toolbar-position" name="_envira_gallery[toolbar_position]">
|
1276 |
-
<?php foreach ( (array) $this->get_toolbar_positions() as $i => $data ) : ?>
|
1277 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'toolbar_position', $this->get_config_default( 'toolbar_position' ) ) ); ?>><?php echo $data['name']; ?></option>
|
1278 |
-
<?php endforeach; ?>
|
1279 |
-
</select>
|
1280 |
-
<p class="description"><?php _e( 'Sets the position of the lightbox toolbar.', 'envira-gallery' ); ?></p>
|
1281 |
-
</td>
|
1282 |
-
</tr>
|
1283 |
-
<tr id="envira-config-lightbox-aspect-box">
|
1284 |
-
<th scope="row">
|
1285 |
-
<label for="envira-config-lightbox-aspect"><?php _e( 'Keep Aspect Ratio?', 'envira-gallery' ); ?></label>
|
1286 |
-
</th>
|
1287 |
-
<td>
|
1288 |
-
<input id="envira-config-lightbox-toolbar" type="checkbox" name="_envira_gallery[aspect]" value="<?php echo $this->get_config( 'aspect', $this->get_config_default( 'aspect' ) ); ?>" <?php checked( $this->get_config( 'aspect', $this->get_config_default( 'aspect' ) ), 1 ); ?> />
|
1289 |
-
<span class="description"><?php _e( 'If enabled, images will always resize based on the original aspect ratio.', 'envira-gallery' ); ?></span>
|
1290 |
-
</td>
|
1291 |
-
</tr>
|
1292 |
-
<tr id="envira-config-lightbox-loop-box">
|
1293 |
-
<th scope="row">
|
1294 |
-
<label for="envira-config-lightbox-loop"><?php _e( 'Loop Gallery Navigation?', 'envira-gallery' ); ?></label>
|
1295 |
-
</th>
|
1296 |
-
<td>
|
1297 |
-
<input id="envira-config-lightbox-loop" type="checkbox" name="_envira_gallery[loop]" value="<?php echo $this->get_config( 'loop', $this->get_config_default( 'loop' ) ); ?>" <?php checked( $this->get_config( 'loop', $this->get_config_default( 'loop' ) ), 1 ); ?> />
|
1298 |
-
<span class="description"><?php _e( 'Enables or disables infinite navigation cycling of the lightbox gallery.', 'envira-gallery' ); ?></span>
|
1299 |
-
</td>
|
1300 |
-
</tr>
|
1301 |
-
<tr id="envira-config-lightbox-open-close-effect-box">
|
1302 |
-
<th scope="row">
|
1303 |
-
<label for="envira-config-lightbox-open-close-effect"><?php _e( 'Lightbox Open/Close Effect', 'envira-gallery' ); ?></label>
|
1304 |
-
</th>
|
1305 |
-
<td>
|
1306 |
-
<select id="envira-config-lightbox-open-close-effect" name="_envira_gallery[lightbox_open_close_effect]">
|
1307 |
-
<?php
|
1308 |
-
// Standard Effects
|
1309 |
-
foreach ( (array) $this->get_transition_effects() as $i => $data ) {
|
1310 |
-
?>
|
1311 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'lightbox_open_close_effect', $this->get_config_default( 'lightbox_open_close_effect' ) ) ); ?>><?php echo $data['name']; ?></option>
|
1312 |
-
<?php
|
1313 |
-
}
|
1314 |
-
|
1315 |
-
// Easing Effects
|
1316 |
-
foreach ( (array) $this->get_easing_transition_effects() as $i => $data ) {
|
1317 |
-
?>
|
1318 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'lightbox_open_close_effect', $this->get_config_default( 'lightbox_open_close_effect' ) ) ); ?>><?php echo $data['name']; ?></option>
|
1319 |
-
<?php
|
1320 |
-
}
|
1321 |
-
?>
|
1322 |
-
</select>
|
1323 |
-
<p class="description"><?php _e( 'Type of transition when opening and closing the lightbox.', 'envira-gallery' ); ?></p>
|
1324 |
-
</td>
|
1325 |
-
</tr>
|
1326 |
-
<tr id="envira-config-lightbox-effect-box">
|
1327 |
-
<th scope="row">
|
1328 |
-
<label for="envira-config-lightbox-effect"><?php _e( 'Lightbox Transition Effect', 'envira-gallery' ); ?></label>
|
1329 |
-
</th>
|
1330 |
-
<td>
|
1331 |
-
<select id="envira-config-lightbox-effect" name="_envira_gallery[effect]">
|
1332 |
-
<?php
|
1333 |
-
// Standard Effects
|
1334 |
-
foreach ( (array) $this->get_transition_effects() as $i => $data ) {
|
1335 |
-
?>
|
1336 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'effect', $this->get_config_default( 'effect' ) ) ); ?>><?php echo $data['name']; ?></option>
|
1337 |
-
<?php
|
1338 |
-
}
|
1339 |
-
|
1340 |
-
// Easing Effects
|
1341 |
-
foreach ( (array) $this->get_easing_transition_effects() as $i => $data ) {
|
1342 |
-
?>
|
1343 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'effect', $this->get_config_default( 'effect' ) ) ); ?>><?php echo $data['name']; ?></option>
|
1344 |
-
<?php
|
1345 |
-
}
|
1346 |
-
?>
|
1347 |
-
</select>
|
1348 |
-
<p class="description"><?php _e( 'Type of transition between images in the lightbox view.', 'envira-gallery' ); ?></p>
|
1349 |
-
</td>
|
1350 |
-
</tr>
|
1351 |
-
<tr id="envira-config-lightbox-html5-box">
|
1352 |
-
<th scope="row">
|
1353 |
-
<label for="envira-config-lightbox-html5"><?php _e( 'HTML5 Output?', 'envira-gallery' ); ?></label>
|
1354 |
-
</th>
|
1355 |
-
<td>
|
1356 |
-
<input id="envira-config-lightbox-html5" type="checkbox" name="_envira_gallery[html5]" value="<?php echo $this->get_config( 'html5', $this->get_config_default( 'html5' ) ); ?>" <?php checked( $this->get_config( 'html5', $this->get_config_default( 'html5' ) ), 1 ); ?> />
|
1357 |
-
<span class="description"><?php _e( 'If enabled, uses data-envirabox-gallery instead of rel attributes for W3C HTML5 validation.', 'envira-gallery' ); ?></span>
|
1358 |
-
</td>
|
1359 |
-
</tr>
|
1360 |
-
<?php
|
1361 |
-
}
|
1362 |
-
?>
|
1363 |
-
|
1364 |
<?php do_action( 'envira_gallery_lightbox_box', $post ); ?>
|
1365 |
</tbody>
|
1366 |
</table>
|
1367 |
-
|
1368 |
-
<?php
|
1369 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
1370 |
-
?>
|
1371 |
-
<p class="envira-intro"><?php _e( 'The settings below adjust the thumbnail views for the gallery lightbox display.', 'envira-gallery' ); ?></p>
|
1372 |
-
<table class="form-table">
|
1373 |
-
<tbody>
|
1374 |
-
<tr id="envira-config-thumbnails-box">
|
1375 |
-
<th scope="row">
|
1376 |
-
<label for="envira-config-thumbnails"><?php _e( 'Enable Gallery Thumbnails?', 'envira-gallery' ); ?></label>
|
1377 |
-
</th>
|
1378 |
-
<td>
|
1379 |
-
<input id="envira-config-thumbnails" type="checkbox" name="_envira_gallery[thumbnails]" value="<?php echo $this->get_config( 'thumbnails', $this->get_config_default( 'thumbnails' ) ); ?>" <?php checked( $this->get_config( 'thumbnails', $this->get_config_default( 'thumbnails' ) ), 1 ); ?> data-envira-conditional="envira-config-thumbnails-width-box,envira-config-thumbnails-height-box,envira-config-thumbnails-position-box" />
|
1380 |
-
<span class="description"><?php _e( 'Enables or disables the gallery lightbox thumbnails.', 'envira-gallery' ); ?></span>
|
1381 |
-
</td>
|
1382 |
-
</tr>
|
1383 |
-
<tr id="envira-config-thumbnails-width-box">
|
1384 |
-
<th scope="row">
|
1385 |
-
<label for="envira-config-thumbnails-width"><?php _e( 'Gallery Thumbnails Width', 'envira-gallery' ); ?></label>
|
1386 |
-
</th>
|
1387 |
-
<td>
|
1388 |
-
<input id="envira-config-thumbnails-width" type="number" name="_envira_gallery[thumbnails_width]" value="<?php echo $this->get_config( 'thumbnails_width', $this->get_config_default( 'thumbnails_width' ) ); ?>" /> <span class="envira-unit"><?php _e( 'px', 'envira-gallery' ); ?></span>
|
1389 |
-
<p class="description"><?php _e( 'Sets the width of each lightbox thumbnail.', 'envira-gallery' ); ?></p>
|
1390 |
-
</td>
|
1391 |
-
</tr>
|
1392 |
-
<tr id="envira-config-thumbnails-height-box">
|
1393 |
-
<th scope="row">
|
1394 |
-
<label for="envira-config-thumbnails-height"><?php _e( 'Gallery Thumbnails Height', 'envira-gallery' ); ?></label>
|
1395 |
-
</th>
|
1396 |
-
<td>
|
1397 |
-
<input id="envira-config-thumbnails-height" type="number" name="_envira_gallery[thumbnails_height]" value="<?php echo $this->get_config( 'thumbnails_height', $this->get_config_default( 'thumbnails_height' ) ); ?>" /> <span class="envira-unit"><?php _e( 'px', 'envira-gallery' ); ?></span>
|
1398 |
-
<p class="description"><?php _e( 'Sets the height of each lightbox thumbnail.', 'envira-gallery' ); ?></p>
|
1399 |
-
</td>
|
1400 |
-
</tr>
|
1401 |
-
<tr id="envira-config-thumbnails-position-box">
|
1402 |
-
<th scope="row">
|
1403 |
-
<label for="envira-config-thumbnails-position"><?php _e( 'Gallery Thumbnails Position', 'envira-gallery' ); ?></label>
|
1404 |
-
</th>
|
1405 |
-
<td>
|
1406 |
-
<select id="envira-config-thumbnails-position" name="_envira_gallery[thumbnails_position]">
|
1407 |
-
<?php foreach ( (array) $this->get_thumbnail_positions() as $i => $data ) : ?>
|
1408 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'thumbnails_position', $this->get_config_default( 'thumbnails_position' ) ) ); ?>><?php echo $data['name']; ?></option>
|
1409 |
-
<?php endforeach; ?>
|
1410 |
-
</select>
|
1411 |
-
<p class="description"><?php _e( 'Sets the position of the lightbox thumbnails.', 'envira-gallery' ); ?></p>
|
1412 |
-
</td>
|
1413 |
-
</tr>
|
1414 |
-
<?php do_action( 'envira_gallery_thumbnails_box', $post ); ?>
|
1415 |
-
</tbody>
|
1416 |
-
</table>
|
1417 |
-
<?php
|
1418 |
-
}
|
1419 |
-
?>
|
1420 |
</div>
|
1421 |
</div>
|
1422 |
<?php
|
1423 |
|
1424 |
// Output an upgrade notice
|
1425 |
-
if ( class_exists( 'Envira_Gallery_Lite' ) ) {
|
1426 |
Envira_Gallery_Notice_Admin::get_instance()->display_inline_notice(
|
1427 |
'envira_gallery_lightbox_tab',
|
1428 |
__( 'Want even more fine tuned control over your lightbox display?', 'envira-gallery' ),
|
@@ -1432,144 +992,6 @@ class Envira_Gallery_Metaboxes {
|
|
1432 |
Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(),
|
1433 |
false
|
1434 |
);
|
1435 |
-
}
|
1436 |
-
|
1437 |
-
}
|
1438 |
-
|
1439 |
-
/**
|
1440 |
-
* Callback for displaying the settings UI for the Mobile tab.
|
1441 |
-
*
|
1442 |
-
* @since 1.3.2
|
1443 |
-
*
|
1444 |
-
* @param object $post The current post object.
|
1445 |
-
*/
|
1446 |
-
public function mobile_tab( $post ) {
|
1447 |
-
|
1448 |
-
?>
|
1449 |
-
<div id="envira-mobile">
|
1450 |
-
<p class="envira-intro">
|
1451 |
-
<?php _e( 'Mobile Gallery Settings', 'envira-gallery' ); ?>
|
1452 |
-
<small>
|
1453 |
-
<?php _e( 'The settings below adjust configuration options for the Gallery when viewed on a mobile device.', 'envira-gallery' ); ?><br />
|
1454 |
-
<?php _e( 'Need some help?', 'envira-gallery' ); ?>
|
1455 |
-
<a href="http://enviragallery.com/docs/creating-first-envira-gallery/" class="envira-doc" target="_blank">
|
1456 |
-
<?php _e( 'Read the Documentation', 'envira-gallery' ); ?>
|
1457 |
-
</a>
|
1458 |
-
or
|
1459 |
-
<a href="https://www.youtube.com/embed/4jHG3LOmV-c?autoplay=1&rel=0" class="envira-video" target="_blank">
|
1460 |
-
<?php _e( 'Watch a Video', 'envira-gallery' ); ?>
|
1461 |
-
</a>
|
1462 |
-
</small>
|
1463 |
-
</p>
|
1464 |
-
<table class="form-table">
|
1465 |
-
<tbody>
|
1466 |
-
<tr id="envira-config-mobile-columns-box">
|
1467 |
-
<th scope="row">
|
1468 |
-
<label for="envira-config-mobile-columns"><?php _e( 'Number of Gallery Columns', 'envira-gallery' ); ?></label>
|
1469 |
-
</th>
|
1470 |
-
<td>
|
1471 |
-
<select id="envira-config-mobile-columns" name="_envira_gallery[mobile_columns]">
|
1472 |
-
<?php foreach ( (array) $this->get_columns() as $i => $data ) : ?>
|
1473 |
-
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'mobile_columns', $this->get_config_default( 'mobile_columns' ) ) ); ?>><?php echo $data['name']; ?></option>
|
1474 |
-
<?php endforeach; ?>
|
1475 |
-
</select>
|
1476 |
-
<p class="description"><?php _e( 'Determines the number of columns in the gallery on mobile devices. Automatic will attempt to fill each row as much as possible before moving on to the next row.', 'envira-gallery' ); ?></p>
|
1477 |
-
</td>
|
1478 |
-
</tr>
|
1479 |
-
|
1480 |
-
<tr id="envira-config-mobile-box">
|
1481 |
-
<th scope="row">
|
1482 |
-
<label for="envira-config-mobile"><?php _e( 'Create Mobile Gallery Images?', 'envira-gallery' ); ?></label>
|
1483 |
-
</th>
|
1484 |
-
<td>
|
1485 |
-
<input id="envira-config-mobile" type="checkbox" name="_envira_gallery[mobile]" value="<?php echo $this->get_config( 'mobile', $this->get_config_default( 'mobile' ) ); ?>" <?php checked( $this->get_config( 'mobile', $this->get_config_default( 'mobile' ) ), 1 ); ?> data-envira-conditional="envira-config-mobile-size-box" />
|
1486 |
-
<span class="description"><?php _e( 'Enables or disables creating specific images for mobile devices.', 'envira-gallery' ); ?></span>
|
1487 |
-
</td>
|
1488 |
-
</tr>
|
1489 |
-
|
1490 |
-
<tr id="envira-config-mobile-size-box">
|
1491 |
-
<th scope="row">
|
1492 |
-
<label for="envira-config-mobile-width"><?php _e( 'Mobile Dimensions', 'envira-gallery' ); ?></label>
|
1493 |
-
</th>
|
1494 |
-
<td>
|
1495 |
-
<input id="envira-config-mobile-width" type="number" name="_envira_gallery[mobile_width]" value="<?php echo $this->get_config( 'mobile_width', $this->get_config_default( 'mobile_width' ) ); ?>" /> × <input id="envira-config-mobile-height" type="number" name="_envira_gallery[mobile_height]" value="<?php echo $this->get_config( 'mobile_height', $this->get_config_default( 'mobile_height' ) ); ?>" /> <span class="envira-unit"><?php _e( 'px', 'envira-gallery' ); ?></span>
|
1496 |
-
<p class="description"><?php _e( 'These will be the sizes used for images displayed on mobile devices.', 'envira-gallery' ); ?></p>
|
1497 |
-
</td>
|
1498 |
-
</tr>
|
1499 |
-
|
1500 |
-
<?php do_action( 'envira_gallery_mobile_box', $post ); ?>
|
1501 |
-
</tbody>
|
1502 |
-
</table>
|
1503 |
-
|
1504 |
-
<!-- Lightbox -->
|
1505 |
-
<p class="envira-intro">
|
1506 |
-
<?php _e( 'Mobile Lightbox Settings', 'envira-gallery' ); ?>
|
1507 |
-
<small>
|
1508 |
-
<?php _e( 'The settings below adjust configuration options for the Lightbox when viewed on a mobile device.', 'envira-gallery' ); ?><br />
|
1509 |
-
</small>
|
1510 |
-
</p>
|
1511 |
-
<table class="form-table">
|
1512 |
-
<tbody>
|
1513 |
-
<tr id="envira-config-mobile-lightbox-box">
|
1514 |
-
<th scope="row">
|
1515 |
-
<label for="envira-config-mobile-lightbox"><?php _e( 'Enable Lightbox?', 'envira-gallery' ); ?></label>
|
1516 |
-
</th>
|
1517 |
-
<td>
|
1518 |
-
<input id="envira-config-mobile-lightbox" type="checkbox" name="_envira_gallery[mobile_lightbox]" value="<?php echo $this->get_config( 'mobile_lightbox', $this->get_config_default( 'mobile_lightbox' ) ); ?>" <?php checked( $this->get_config( 'mobile_lightbox', $this->get_config_default( 'mobile_lightbox' ) ), 1 ); ?> data-envira-conditional="envira-config-mobile-touchwipe-box,envira-config-mobile-touchwipe-close-box,envira-config-mobile-arrows-box,envira-config-mobile-toolbar-box,envira-config-mobile-thumbnails-box,envira-config-exif-mobile-box" />
|
1519 |
-
<span class="description"><?php _e( 'Enables or disables the gallery lightbox on mobile devices.', 'envira-gallery' ); ?></span>
|
1520 |
-
</td>
|
1521 |
-
</tr>
|
1522 |
-
<tr id="envira-config-mobile-touchwipe-box">
|
1523 |
-
<th scope="row">
|
1524 |
-
<label for="envira-config-mobile-touchwipe"><?php _e( 'Enable Gallery Touchwipe?', 'envira-gallery' ); ?></label>
|
1525 |
-
</th>
|
1526 |
-
<td>
|
1527 |
-
<input id="envira-config-mobile-touchwipe" type="checkbox" name="_envira_gallery[mobile_touchwipe]" value="<?php echo $this->get_config( 'mobile_touchwipe', $this->get_config_default( 'mobile_touchwipe' ) ); ?>" <?php checked( $this->get_config( 'mobile_touchwipe', $this->get_config_default( 'mobile_touchwipe' ) ), 1 ); ?> data-envira-conditional="envira-config-mobile-touchwipe-close-box" />
|
1528 |
-
<span class="description"><?php _e( 'Enables or disables touchwipe support for the gallery lightbox on mobile devices.', 'envira-gallery' ); ?></span>
|
1529 |
-
</td>
|
1530 |
-
</tr>
|
1531 |
-
<tr id="envira-config-mobile-touchwipe-close-box">
|
1532 |
-
<th scope="row">
|
1533 |
-
<label for="envira-config-mobile-touchwipe-close"><?php _e( 'Close Lightbox on Swipe Up?', 'envira-gallery' ); ?></label>
|
1534 |
-
</th>
|
1535 |
-
<td>
|
1536 |
-
<input id="envira-config-mobile-touchwipe-close" type="checkbox" name="_envira_gallery[mobile_touchwipe_close]" value="<?php echo $this->get_config( 'mobile_touchwipe_close', $this->get_config_default( 'mobile_touchwipe_close' ) ); ?>" <?php checked( $this->get_config( 'mobile_touchwipe_close', $this->get_config_default( 'mobile_touchwipe_close' ) ), 1 ); ?> />
|
1537 |
-
<span class="description"><?php _e( 'Enables or disables closing the Lightbox when the user swipes up on mobile devices.', 'envira-gallery' ); ?></span>
|
1538 |
-
</td>
|
1539 |
-
</tr>
|
1540 |
-
<tr id="envira-config-mobile-arrows-box">
|
1541 |
-
<th scope="row">
|
1542 |
-
<label for="envira-config-mobile-arrows"><?php _e( 'Enable Gallery Arrows?', 'envira-gallery' ); ?></label>
|
1543 |
-
</th>
|
1544 |
-
<td>
|
1545 |
-
<input id="envira-config-mobile-arrows" type="checkbox" name="_envira_gallery[mobile_arrows]" value="<?php echo $this->get_config( 'mobile_arrows', $this->get_config_default( 'mobile_arrows' ) ); ?>" <?php checked( $this->get_config( 'mobile_arrows', $this->get_config_default( 'mobile_arrows' ) ), 1 ); ?> />
|
1546 |
-
<span class="description"><?php _e( 'Enables or disables the gallery lightbox navigation arrows on mobile devices.', 'envira-gallery' ); ?></span>
|
1547 |
-
</td>
|
1548 |
-
</tr>
|
1549 |
-
<tr id="envira-config-mobile-toolbar-box">
|
1550 |
-
<th scope="row">
|
1551 |
-
<label for="envira-config-mobile-toolbar"><?php _e( 'Enable Gallery Toolbar?', 'envira-gallery' ); ?></label>
|
1552 |
-
</th>
|
1553 |
-
<td>
|
1554 |
-
<input id="envira-config-mobile-toolbar" type="checkbox" name="_envira_gallery[mobile_toolbar]" value="<?php echo $this->get_config( 'mobile_toolbar', $this->get_config_default( 'mobile_toolbar' ) ); ?>" <?php checked( $this->get_config( 'mobile_toolbar', $this->get_config_default( 'mobile_toolbar' ) ), 1 ); ?> />
|
1555 |
-
<span class="description"><?php _e( 'Enables or disables the gallery lightbox toolbar on mobile devices.', 'envira-gallery' ); ?></span>
|
1556 |
-
</td>
|
1557 |
-
</tr>
|
1558 |
-
<tr id="envira-config-mobile-thumbnails-box">
|
1559 |
-
<th scope="row">
|
1560 |
-
<label for="envira-config-mobile-thumbnails"><?php _e( 'Enable Gallery Thumbnails?', 'envira-gallery' ); ?></label>
|
1561 |
-
</th>
|
1562 |
-
<td>
|
1563 |
-
<input id="envira-config-mobile-thumbnails" type="checkbox" name="_envira_gallery[mobile_thumbnails]" value="<?php echo $this->get_config( 'mobile_thumbnails', $this->get_config_default( 'mobile_toolbar' ) ); ?>" <?php checked( $this->get_config( 'mobile_thumbnails', $this->get_config_default( 'mobile_thumbnails' ) ), 1 ); ?> />
|
1564 |
-
<span class="description"><?php _e( 'Enables or disables the gallery lightbox thumbnails on mobile devices.', 'envira-gallery' ); ?></span>
|
1565 |
-
</td>
|
1566 |
-
</tr>
|
1567 |
-
|
1568 |
-
<?php do_action( 'envira_gallery_mobile_lightbox_box', $post ); ?>
|
1569 |
-
</tbody>
|
1570 |
-
</table>
|
1571 |
-
</div>
|
1572 |
-
<?php
|
1573 |
|
1574 |
}
|
1575 |
|
@@ -1628,40 +1050,6 @@ class Envira_Gallery_Metaboxes {
|
|
1628 |
<p class="description"><?php _e( 'Adds custom CSS classes to this gallery. Enter one class per line.', 'envira-gallery' ); ?></p>
|
1629 |
</td>
|
1630 |
</tr>
|
1631 |
-
|
1632 |
-
<?php
|
1633 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
1634 |
-
?>
|
1635 |
-
<tr id="envira-config-import-export-box">
|
1636 |
-
<th scope="row">
|
1637 |
-
<label for="envira-config-import-gallery"><?php _e( 'Import/Export Gallery', 'envira-gallery' ); ?></label>
|
1638 |
-
</th>
|
1639 |
-
<td>
|
1640 |
-
<form></form>
|
1641 |
-
<?php
|
1642 |
-
$import_url = 'auto-draft' == $post->post_status ? add_query_arg( array( 'post' => $post->ID, 'action' => 'edit', 'envira-gallery-imported' => true ), admin_url( 'post.php' ) ) : add_query_arg( 'envira-gallery-imported', true );
|
1643 |
-
$import_url = esc_url( $import_url );
|
1644 |
-
?>
|
1645 |
-
<form action="<?php echo $import_url; ?>" id="envira-config-import-gallery-form" class="envira-gallery-import-form" method="post" enctype="multipart/form-data">
|
1646 |
-
<input id="envira-config-import-gallery" type="file" name="envira_import_gallery" />
|
1647 |
-
<input type="hidden" name="envira_import" value="1" />
|
1648 |
-
<input type="hidden" name="envira_post_id" value="<?php echo $post->ID; ?>" />
|
1649 |
-
<?php wp_nonce_field( 'envira-gallery-import', 'envira-gallery-import' ); ?>
|
1650 |
-
<?php submit_button( __( 'Import Gallery', 'envira-gallery' ), 'secondary', 'envira-gallery-import-submit', false ); ?>
|
1651 |
-
<span class="spinner envira-gallery-spinner"></span>
|
1652 |
-
</form>
|
1653 |
-
<form id="envira-config-export-gallery-form" method="post">
|
1654 |
-
<input type="hidden" name="envira_export" value="1" />
|
1655 |
-
<input type="hidden" name="envira_post_id" value="<?php echo $post->ID; ?>" />
|
1656 |
-
<?php wp_nonce_field( 'envira-gallery-export', 'envira-gallery-export' ); ?>
|
1657 |
-
<?php submit_button( __( 'Export Gallery', 'envira-gallery' ), 'secondary', 'envira-gallery-export-submit', false ); ?>
|
1658 |
-
</form>
|
1659 |
-
</td>
|
1660 |
-
</tr>
|
1661 |
-
<?php
|
1662 |
-
}
|
1663 |
-
?>
|
1664 |
-
|
1665 |
<tr id="envira-config-rtl-box">
|
1666 |
<th scope="row">
|
1667 |
<label for="envira-config-rtl"><?php _e( 'Enable RTL Support?', 'envira-gallery' ); ?></label>
|
@@ -1672,12 +1060,12 @@ class Envira_Gallery_Metaboxes {
|
|
1672 |
</td>
|
1673 |
</tr>
|
1674 |
<?php do_action( 'envira_gallery_misc_box', $post ); ?>
|
|
|
1675 |
</tbody>
|
1676 |
</table>
|
1677 |
</div>
|
1678 |
<?php
|
1679 |
// Output an upgrade notice
|
1680 |
-
if ( class_exists( 'Envira_Gallery_Lite' ) ) {
|
1681 |
Envira_Gallery_Notice_Admin::get_instance()->display_inline_notice(
|
1682 |
'envira_gallery_misc_tab',
|
1683 |
__( 'Want to take your galleries further?', 'envira-gallery' ),
|
@@ -1687,7 +1075,6 @@ class Envira_Gallery_Metaboxes {
|
|
1687 |
Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(),
|
1688 |
false
|
1689 |
);
|
1690 |
-
}
|
1691 |
|
1692 |
}
|
1693 |
|
@@ -1910,7 +1297,7 @@ class Envira_Gallery_Metaboxes {
|
|
1910 |
$settings['config']['justified_gallery_theme'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['justified_gallery_theme'] );
|
1911 |
$settings['config']['gutter'] = absint( $_POST['_envira_gallery']['gutter'] );
|
1912 |
$settings['config']['margin'] = absint( $_POST['_envira_gallery']['margin'] );
|
1913 |
-
$settings['config']['image_size'] = sanitize_text_field( $_POST['_envira_gallery']['image_size'] );
|
1914 |
$settings['config']['crop_width'] = absint( $_POST['_envira_gallery']['crop_width'] );
|
1915 |
$settings['config']['crop_height'] = absint( $_POST['_envira_gallery']['crop_height'] );
|
1916 |
$settings['config']['crop'] = isset( $_POST['_envira_gallery']['crop'] ) ? 1 : 0;
|
@@ -1918,62 +1305,17 @@ class Envira_Gallery_Metaboxes {
|
|
1918 |
// Automatic/Justified
|
1919 |
$settings['config']['justified_row_height'] = isset( $_POST['_envira_gallery']['justified_row_height'] ) ? absint($_POST['_envira_gallery']['justified_row_height'] ) : 150;
|
1920 |
|
1921 |
-
if ( 'Envira_Gallery' == get_class( $this->base ) ) {
|
1922 |
-
$settings['config']['description_position'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['description_position'] );
|
1923 |
-
$settings['config']['description'] = trim( $_POST['_envira_gallery']['description'] );
|
1924 |
-
$settings['config']['random'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['random'] );
|
1925 |
-
$settings['config']['sorting_direction'] = preg_replace( '#[^A-Z]#', '', $_POST['_envira_gallery']['sorting_direction'] );
|
1926 |
-
$settings['config']['image_sizes_random'] = ( isset( $_POST['_envira_gallery']['image_sizes_random'] ) ? stripslashes_deep( $_POST['_envira_gallery']['image_sizes_random'] ) : array() );
|
1927 |
-
$settings['config']['dimensions'] = isset( $_POST['_envira_gallery']['dimensions'] ) ? 1 : 0;
|
1928 |
-
$settings['config']['isotope'] = isset( $_POST['_envira_gallery']['isotope'] ) ? 1 : 0;
|
1929 |
-
$settings['config']['css_animations'] = isset( $_POST['_envira_gallery']['css_animations'] ) ? 1 : 0;
|
1930 |
-
$settings['config']['css_opacity'] = absint( $_POST['_envira_gallery']['css_opacity'] );
|
1931 |
-
}
|
1932 |
-
|
1933 |
// Lightbox
|
1934 |
$settings['config']['lightbox_enabled'] = isset( $_POST['_envira_gallery']['lightbox_enabled'] ) ? 1 : 0;
|
1935 |
$settings['config']['lightbox_theme'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['lightbox_theme'] );
|
1936 |
$settings['config']['lightbox_image_size'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['lightbox_image_size'] );
|
1937 |
$settings['config']['title_display'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['title_display'] );
|
1938 |
|
1939 |
-
if ( 'Envira_Gallery' == get_class( $this->base ) ) {
|
1940 |
-
$settings['config']['arrows'] = isset( $_POST['_envira_gallery']['arrows'] ) ? 1 : 0;
|
1941 |
-
$settings['config']['arrows_position'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['arrows_position'] );
|
1942 |
-
$settings['config']['keyboard'] = isset( $_POST['_envira_gallery']['keyboard'] ) ? 1 : 0;
|
1943 |
-
$settings['config']['mousewheel'] = isset( $_POST['_envira_gallery']['mousewheel'] ) ? 1 : 0;
|
1944 |
-
$settings['config']['aspect'] = isset( $_POST['_envira_gallery']['aspect'] ) ? 1 : 0;
|
1945 |
-
$settings['config']['toolbar'] = isset( $_POST['_envira_gallery']['toolbar'] ) ? 1 : 0;
|
1946 |
-
$settings['config']['toolbar_title'] = isset( $_POST['_envira_gallery']['toolbar_title'] ) ? 1 : 0;
|
1947 |
-
$settings['config']['toolbar_position'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['toolbar_position'] );
|
1948 |
-
$settings['config']['loop'] = isset( $_POST['_envira_gallery']['loop'] ) ? 1 : 0;
|
1949 |
-
$settings['config']['lightbox_open_close_effect'] = preg_replace( '#[^A-Za-z0-9-_]#', '', $_POST['_envira_gallery']['lightbox_open_close_effect'] );
|
1950 |
-
$settings['config']['effect'] = preg_replace( '#[^A-Za-z0-9-_]#', '', $_POST['_envira_gallery']['effect'] );
|
1951 |
-
$settings['config']['html5'] = isset( $_POST['_envira_gallery']['html5'] ) ? 1 : 0;
|
1952 |
-
|
1953 |
-
// Lightbox Thumbnails
|
1954 |
-
$settings['config']['thumbnails'] = isset( $_POST['_envira_gallery']['thumbnails'] ) ? 1 : 0;
|
1955 |
-
$settings['config']['thumbnails_width'] = absint( $_POST['_envira_gallery']['thumbnails_width'] );
|
1956 |
-
$settings['config']['thumbnails_height'] = absint( $_POST['_envira_gallery']['thumbnails_height'] );
|
1957 |
-
$settings['config']['thumbnails_position'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['thumbnails_position'] );
|
1958 |
-
|
1959 |
-
// Mobile
|
1960 |
-
$settings['config']['mobile_columns'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['mobile_columns'] );
|
1961 |
-
$settings['config']['mobile'] = isset( $_POST['_envira_gallery']['mobile'] ) ? 1 : 0;
|
1962 |
-
$settings['config']['mobile_width'] = absint( $_POST['_envira_gallery']['mobile_width'] );
|
1963 |
-
$settings['config']['mobile_height'] = absint( $_POST['_envira_gallery']['mobile_height'] );
|
1964 |
-
$settings['config']['mobile_lightbox'] = isset( $_POST['_envira_gallery']['mobile_lightbox'] ) ? 1 : 0;
|
1965 |
-
$settings['config']['mobile_touchwipe'] = isset( $_POST['_envira_gallery']['mobile_touchwipe'] ) ? 1 : 0;
|
1966 |
-
$settings['config']['mobile_touchwipe_close'] = isset( $_POST['_envira_gallery']['mobile_touchwipe_close'] ) ? 1 : 0;
|
1967 |
-
$settings['config']['mobile_arrows'] = isset( $_POST['_envira_gallery']['mobile_arrows'] ) ? 1 : 0;
|
1968 |
-
$settings['config']['mobile_toolbar'] = isset( $_POST['_envira_gallery']['mobile_toolbar'] ) ? 1 : 0;
|
1969 |
-
$settings['config']['mobile_thumbnails'] = isset( $_POST['_envira_gallery']['mobile_thumbnails'] ) ? 1 : 0;
|
1970 |
-
}
|
1971 |
-
|
1972 |
// Misc
|
1973 |
$settings['config']['classes'] = explode( "\n", $_POST['_envira_gallery']['classes'] );
|
1974 |
$settings['config']['rtl'] = isset( $_POST['_envira_gallery']['rtl'] ) ? 1 : 0;
|
1975 |
$settings['config']['title'] = trim( strip_tags( $_POST['_envira_gallery']['title'] ) );
|
1976 |
-
$settings['config']['slug'] = sanitize_text_field( $_POST['_envira_gallery']['slug'] );
|
1977 |
|
1978 |
// If on an envira post type, map the title and slug of the post object to the custom fields if no value exists yet.
|
1979 |
if ( isset( $post->post_type ) && 'envira' == $post->post_type ) {
|
@@ -2143,13 +1485,21 @@ class Envira_Gallery_Metaboxes {
|
|
2143 |
$images = ! empty( $gallery_data['gallery'] ) ? $gallery_data['gallery'] : false;
|
2144 |
$common = Envira_Gallery_Common::get_instance();
|
2145 |
|
2146 |
-
//
|
2147 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2148 |
|
2149 |
// Loop through the images and crop them.
|
2150 |
if ( $images ) {
|
2151 |
// Increase the time limit to account for large image sets and suspend cache invalidations.
|
2152 |
-
if ( !
|
|
|
|
|
2153 |
set_time_limit( Envira_Gallery_Common::get_instance()->get_max_execution_time() );
|
2154 |
}
|
2155 |
wp_suspend_cache_invalidation( true );
|
@@ -2171,9 +1521,6 @@ class Envira_Gallery_Metaboxes {
|
|
2171 |
// Generate the cropped image.
|
2172 |
$cropped_image = $common->resize_image( $image[0], $args['width'], $args['height'], true, $args['position'], $args['quality'], $args['retina'], null, $force_overwrite );
|
2173 |
|
2174 |
-
// print_r ($image);
|
2175 |
-
// echo "!!!!!"; print_r ($cropped_image); exit;
|
2176 |
-
|
2177 |
// If there is an error, possibly output error message, otherwise woot!
|
2178 |
if ( is_wp_error( $cropped_image ) ) {
|
2179 |
// If WP_DEBUG is enabled, and we're logged in, output an error to the user
|
@@ -2215,10 +1562,21 @@ class Envira_Gallery_Metaboxes {
|
|
2215 |
$images = ! empty( $gallery_data['gallery'] ) ? $gallery_data['gallery'] : false;
|
2216 |
$common = Envira_Gallery_Common::get_instance();
|
2217 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2218 |
// Loop through the images and crop them.
|
2219 |
if ( $images ) {
|
2220 |
// Increase the time limit to account for large image sets and suspend cache invalidations.
|
2221 |
-
if ( !
|
|
|
|
|
2222 |
set_time_limit( Envira_Gallery_Common::get_instance()->get_max_execution_time() );
|
2223 |
}
|
2224 |
wp_suspend_cache_invalidation( true );
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
48 |
|
49 |
// Output a notice if missing cropping extensions because Envira needs them.
|
50 |
if ( ! $this->has_gd_extension() && ! $this->has_imagick_extension() ) {
|
68 |
add_action( 'envira_gallery_tab_images', array( $this, 'images_tab' ) );
|
69 |
add_action( 'envira_gallery_tab_config', array( $this, 'config_tab' ) );
|
70 |
add_action( 'envira_gallery_tab_lightbox', array( $this, 'lightbox_tab' ) );
|
|
|
71 |
add_action( 'envira_gallery_tab_misc', array( $this, 'misc_tab' ) );
|
72 |
|
73 |
+
add_filter( 'envira_gallery_tab_nav', array( $this, 'lite_tabs' ) );
|
74 |
+
add_action( 'envira_gallery_tab_mobile', array( $this, 'lite_mobile_tab' ) );
|
75 |
+
add_action( 'envira_gallery_tab_videos', array( $this, 'lite_videos_tab' ) );
|
76 |
+
add_action( 'envira_gallery_tab_social', array( $this, 'lite_social_tab' ) );
|
77 |
+
add_action( 'envira_gallery_tab_tags', array( $this, 'lite_tags_tab' ) );
|
78 |
+
add_action( 'envira_gallery_tab_pagination', array( $this, 'lite_pagination_tab' ) );
|
|
|
|
|
|
|
|
|
79 |
|
80 |
// Save Gallery
|
81 |
add_action( 'save_post', array( $this, 'save_meta_boxes' ), 10, 2 );
|
279 |
'library_search' => wp_create_nonce( 'envira-gallery-library-search' ),
|
280 |
'load_gallery' => wp_create_nonce( 'envira-gallery-load-gallery' ),
|
281 |
'load_image' => wp_create_nonce( 'envira-gallery-load-image' ),
|
|
|
282 |
'move_media_nonce' => wp_create_nonce( 'envira-gallery-move-media' ),
|
283 |
'move_media_modal_title'=> __( 'Move Media to Gallery', 'envira-gallery' ),
|
284 |
'move_media_insert_button_label' => __( 'Move Media to Selected Gallery', 'envira-gallery' ),
|
296 |
)
|
297 |
);
|
298 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
299 |
// Link Search
|
300 |
wp_enqueue_script( 'wp-link' );
|
301 |
|
685 |
<a href="http://enviragallery.com/docs/creating-first-envira-gallery/" class="envira-doc" target="_blank">
|
686 |
<?php _e( 'Read the Documentation', 'envira-gallery' ); ?>
|
687 |
</a>
|
688 |
+
<?php _e( 'or', 'envira-gallery' ); ?>
|
689 |
<a href="https://www.youtube.com/embed/F9_wOefuBaw?autoplay=1&rel=0" class="envira-video" target="_blank">
|
690 |
<?php _e( 'Watch a Video', 'envira-gallery' ); ?>
|
691 |
</a>
|
692 |
</small>
|
693 |
</p>
|
694 |
|
695 |
+
<?php do_action( 'envira_gallery_do_default_display', $post ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
696 |
|
697 |
<ul id="envira-gallery-output" class="envira-gallery-images-output <?php echo $layout; ?>">
|
698 |
<?php
|
705 |
</ul>
|
706 |
|
707 |
<?php
|
708 |
+
// Output an upgrade notice
|
709 |
+
Envira_Gallery_Notice_Admin::get_instance()->display_inline_notice(
|
710 |
+
'envira_gallery_images_tab',
|
711 |
+
__( 'Want to make your gallery workflow even better?', 'envira-gallery' ),
|
712 |
+
__( 'By upgrading to Envira Pro, you can get access to numerous other features, including: a fully featured gallery widget, complete gallery API, powerful gallery documentation, full mobile and Retina support, dedicated customer support and so much more!', 'envira-gallery' ),
|
713 |
+
'warning',
|
714 |
+
__( 'Click here to Upgrade', 'envira-gallery' ),
|
715 |
+
Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(),
|
716 |
+
false
|
717 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
718 |
|
719 |
}
|
720 |
|
751 |
<label for="envira-config-columns"><?php _e( 'Number of Gallery Columns', 'envira-gallery' ); ?></label>
|
752 |
</th>
|
753 |
<td>
|
754 |
+
<select id="envira-config-columns" name="_envira_gallery[columns]">
|
755 |
<?php foreach ( (array) $this->get_columns() as $i => $data ) : ?>
|
756 |
<option value="<?php echo $data['value']; ?>"<?php selected( $data['value'], $this->get_config( 'columns', $this->get_config_default( 'columns' ) ) ); ?>><?php echo $data['name']; ?></option>
|
757 |
<?php endforeach; ?>
|
790 |
</tbody>
|
791 |
</table>
|
792 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
793 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
794 |
<div id="envira-config-standard-settings-box">
|
795 |
<table class="form-table">
|
796 |
<tbody>
|
797 |
+
|
798 |
<tr id="envira-config-gallery-theme-box">
|
799 |
<th scope="row">
|
800 |
<label for="envira-config-gallery-theme"><?php _e( 'Gallery Theme', 'envira-gallery' ); ?></label>
|
808 |
<p class="description"><?php _e( 'Sets the theme for the gallery display.', 'envira-gallery' ); ?></p>
|
809 |
</td>
|
810 |
</tr>
|
|
|
|
|
811 |
<tr id="envira-config-gutter-box">
|
812 |
<th scope="row">
|
813 |
<label for="envira-config-gutter"><?php _e( 'Column Gutter Width', 'envira-gallery' ); ?></label>
|
827 |
</td>
|
828 |
</tr>
|
829 |
|
830 |
+
<?php do_action( 'envira_gallery_config_box', $post ); ?>
|
831 |
+
</tbody>
|
832 |
+
</table>
|
833 |
+
</div>
|
834 |
+
|
835 |
+
|
836 |
+
<div id="envira-image-settings-box">
|
837 |
+
<table class="form-table">
|
838 |
+
<tbody>
|
839 |
+
<!-- Dimensions -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
840 |
<tr id="envira-config-image-size-box">
|
841 |
<th scope="row">
|
842 |
<label for="envira-config-image-size"><?php _e( 'Image Size', 'envira-gallery' ); ?></label>
|
843 |
</th>
|
844 |
<td>
|
845 |
+
<select id="envira-config-image-size" name="_envira_gallery[image_size]">
|
846 |
<?php
|
847 |
foreach ( (array) $this->get_image_sizes() as $i => $data ) {
|
848 |
?>
|
854 |
<p class="description"><?php _e( 'Define the maximum image size for the Gallery view. Default will use the below Image Dimensions; Random will allow you to choose one or more WordPress image sizes, which will be used for the gallery output.', 'envira-gallery' ); ?></p>
|
855 |
</td>
|
856 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
857 |
<tr id="envira-config-crop-size-box">
|
858 |
<th scope="row">
|
859 |
<label for="envira-config-crop-width"><?php _e( 'Image Dimensions', 'envira-gallery' ); ?></label>
|
873 |
<span class="description"><?php _e( 'If disabled, images will be resized to maintain their aspect ratio.', 'envira-gallery' ); ?></span>
|
874 |
|
875 |
</td>
|
876 |
+
</tr>
|
877 |
+
</tbody>
|
878 |
+
</table>
|
879 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
880 |
</div>
|
881 |
+
</div>
|
882 |
+
<?php Envira_Gallery_Notice_Admin::get_instance()->display_inline_notice(
|
|
|
|
|
|
|
883 |
'envira_gallery_config_tab',
|
884 |
__( 'Want to do even more with your gallery display?', 'envira-gallery' ),
|
885 |
__( 'By upgrading to Envira Pro, you can get access to numerous other gallery display features, including: custom image tagging and filtering, mobile specific image assets for blazing fast load times, dedicated and unique gallery URLs, custom gallery themes, gallery thumbnail support and so much more!', 'envira-gallery' ),
|
888 |
Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(),
|
889 |
false
|
890 |
);
|
|
|
891 |
|
892 |
}
|
893 |
|
925 |
<label for="envira-config-lightbox-enabled"><?php _e( 'Enable Lightbox?', 'envira-gallery' ); ?></label>
|
926 |
</th>
|
927 |
<td>
|
928 |
+
<input id="envira-config-lightbox-enabled" type="checkbox" name="_envira_gallery[lightbox_enabled]" value="<?php echo $this->get_config( 'lightbox_enabled', $this->get_config_default( 'lightbox_enabled' ) ); ?>" <?php checked( $this->get_config( 'lightbox_enabled', $this->get_config_default( 'lightbox_enabled' ) ), 1 ); ?> />
|
929 |
<span class="description"><?php _e( 'Enables or disables the gallery lightbox.', 'envira-gallery' ); ?></span>
|
930 |
</td>
|
931 |
</tr>
|
948 |
<p class="description"><?php _e( 'Sets the theme for the gallery lightbox display.', 'envira-gallery' ); ?></p>
|
949 |
</td>
|
950 |
</tr>
|
|
|
951 |
<tr id="envira-config-lightbox-image-size-box">
|
952 |
<th scope="row">
|
953 |
<label for="envira-config-lightbox-image-size"><?php _e( 'Image Size', 'envira-gallery' ); ?></label>
|
961 |
<p class="description"><?php _e( 'Define the maximum image size for the Lightbox view. Default will display the original, full size image.', 'envira-gallery' ); ?></p>
|
962 |
</td>
|
963 |
</tr>
|
|
|
964 |
<tr id="envira-config-lightbox-title-display-box">
|
965 |
<th scope="row">
|
966 |
<label for="envira-config-lightbox-title-display"><?php _e( 'Caption Position', 'envira-gallery' ); ?></label>
|
975 |
</td>
|
976 |
</tr>
|
977 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
978 |
<?php do_action( 'envira_gallery_lightbox_box', $post ); ?>
|
979 |
</tbody>
|
980 |
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
981 |
</div>
|
982 |
</div>
|
983 |
<?php
|
984 |
|
985 |
// Output an upgrade notice
|
|
|
986 |
Envira_Gallery_Notice_Admin::get_instance()->display_inline_notice(
|
987 |
'envira_gallery_lightbox_tab',
|
988 |
__( 'Want even more fine tuned control over your lightbox display?', 'envira-gallery' ),
|
992 |
Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(),
|
993 |
false
|
994 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
995 |
|
996 |
}
|
997 |
|
1050 |
<p class="description"><?php _e( 'Adds custom CSS classes to this gallery. Enter one class per line.', 'envira-gallery' ); ?></p>
|
1051 |
</td>
|
1052 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1053 |
<tr id="envira-config-rtl-box">
|
1054 |
<th scope="row">
|
1055 |
<label for="envira-config-rtl"><?php _e( 'Enable RTL Support?', 'envira-gallery' ); ?></label>
|
1060 |
</td>
|
1061 |
</tr>
|
1062 |
<?php do_action( 'envira_gallery_misc_box', $post ); ?>
|
1063 |
+
|
1064 |
</tbody>
|
1065 |
</table>
|
1066 |
</div>
|
1067 |
<?php
|
1068 |
// Output an upgrade notice
|
|
|
1069 |
Envira_Gallery_Notice_Admin::get_instance()->display_inline_notice(
|
1070 |
'envira_gallery_misc_tab',
|
1071 |
__( 'Want to take your galleries further?', 'envira-gallery' ),
|
1075 |
Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(),
|
1076 |
false
|
1077 |
);
|
|
|
1078 |
|
1079 |
}
|
1080 |
|
1297 |
$settings['config']['justified_gallery_theme'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['justified_gallery_theme'] );
|
1298 |
$settings['config']['gutter'] = absint( $_POST['_envira_gallery']['gutter'] );
|
1299 |
$settings['config']['margin'] = absint( $_POST['_envira_gallery']['margin'] );
|
1300 |
+
$settings['config']['image_size'] = sanitize_text_field( esc_attr ( $_POST['_envira_gallery']['image_size'] ) );
|
1301 |
$settings['config']['crop_width'] = absint( $_POST['_envira_gallery']['crop_width'] );
|
1302 |
$settings['config']['crop_height'] = absint( $_POST['_envira_gallery']['crop_height'] );
|
1303 |
$settings['config']['crop'] = isset( $_POST['_envira_gallery']['crop'] ) ? 1 : 0;
|
1305 |
// Automatic/Justified
|
1306 |
$settings['config']['justified_row_height'] = isset( $_POST['_envira_gallery']['justified_row_height'] ) ? absint($_POST['_envira_gallery']['justified_row_height'] ) : 150;
|
1307 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1308 |
// Lightbox
|
1309 |
$settings['config']['lightbox_enabled'] = isset( $_POST['_envira_gallery']['lightbox_enabled'] ) ? 1 : 0;
|
1310 |
$settings['config']['lightbox_theme'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['lightbox_theme'] );
|
1311 |
$settings['config']['lightbox_image_size'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['lightbox_image_size'] );
|
1312 |
$settings['config']['title_display'] = preg_replace( '#[^a-z0-9-_]#', '', $_POST['_envira_gallery']['title_display'] );
|
1313 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1314 |
// Misc
|
1315 |
$settings['config']['classes'] = explode( "\n", $_POST['_envira_gallery']['classes'] );
|
1316 |
$settings['config']['rtl'] = isset( $_POST['_envira_gallery']['rtl'] ) ? 1 : 0;
|
1317 |
$settings['config']['title'] = trim( strip_tags( $_POST['_envira_gallery']['title'] ) );
|
1318 |
+
$settings['config']['slug'] = sanitize_text_field( esc_attr( $_POST['_envira_gallery']['slug'] ) );
|
1319 |
|
1320 |
// If on an envira post type, map the title and slug of the post object to the custom fields if no value exists yet.
|
1321 |
if ( isset( $post->post_type ) && 'envira' == $post->post_type ) {
|
1485 |
$images = ! empty( $gallery_data['gallery'] ) ? $gallery_data['gallery'] : false;
|
1486 |
$common = Envira_Gallery_Common::get_instance();
|
1487 |
|
1488 |
+
// Populate variable if we are using <= PHP 5.3
|
1489 |
+
$php_version = explode('.', phpversion() );
|
1490 |
+
|
1491 |
+
if ( $php_version[0] <= 5 && $php_version[1] <= 3 ) {
|
1492 |
+
$is_using_old_php = true;
|
1493 |
+
} else {
|
1494 |
+
$is_using_old_php = false;
|
1495 |
+
}
|
1496 |
|
1497 |
// Loop through the images and crop them.
|
1498 |
if ( $images ) {
|
1499 |
// Increase the time limit to account for large image sets and suspend cache invalidations.
|
1500 |
+
if ( ! $is_using_old_php ) {
|
1501 |
+
set_time_limit( Envira_Gallery_Common::get_instance()->get_max_execution_time() );
|
1502 |
+
} else if ( $is_using_old_php && ! ini_get( 'safe_mode' ) ) {
|
1503 |
set_time_limit( Envira_Gallery_Common::get_instance()->get_max_execution_time() );
|
1504 |
}
|
1505 |
wp_suspend_cache_invalidation( true );
|
1521 |
// Generate the cropped image.
|
1522 |
$cropped_image = $common->resize_image( $image[0], $args['width'], $args['height'], true, $args['position'], $args['quality'], $args['retina'], null, $force_overwrite );
|
1523 |
|
|
|
|
|
|
|
1524 |
// If there is an error, possibly output error message, otherwise woot!
|
1525 |
if ( is_wp_error( $cropped_image ) ) {
|
1526 |
// If WP_DEBUG is enabled, and we're logged in, output an error to the user
|
1562 |
$images = ! empty( $gallery_data['gallery'] ) ? $gallery_data['gallery'] : false;
|
1563 |
$common = Envira_Gallery_Common::get_instance();
|
1564 |
|
1565 |
+
// Populate variable if we are using <= PHP 5.3
|
1566 |
+
$php_version = explode('.', phpversion() );
|
1567 |
+
|
1568 |
+
if ( $php_version[0] <= 5 && $php_version[1] <= 3 ) {
|
1569 |
+
$is_using_old_php = true;
|
1570 |
+
} else {
|
1571 |
+
$is_using_old_php = false;
|
1572 |
+
}
|
1573 |
+
|
1574 |
// Loop through the images and crop them.
|
1575 |
if ( $images ) {
|
1576 |
// Increase the time limit to account for large image sets and suspend cache invalidations.
|
1577 |
+
if ( ! $is_using_old_php ) {
|
1578 |
+
set_time_limit( Envira_Gallery_Common::get_instance()->get_max_execution_time() );
|
1579 |
+
} else if ( $is_using_old_php && ! ini_get( 'safe_mode' ) ) {
|
1580 |
set_time_limit( Envira_Gallery_Common::get_instance()->get_max_execution_time() );
|
1581 |
}
|
1582 |
wp_suspend_cache_invalidation( true );
|
includes/admin/partials/metabox-gallery-settings.php
CHANGED
@@ -39,6 +39,7 @@
|
|
39 |
?>
|
40 |
<div id="envira-tab-<?php echo $id; ?>" class="envira-tab envira-clear <?php echo $class; ?>">
|
41 |
<?php do_action( 'envira_gallery_tab_' . $id, $data['post'] ); ?>
|
|
|
42 |
</div>
|
43 |
<?php
|
44 |
$i++;
|
39 |
?>
|
40 |
<div id="envira-tab-<?php echo $id; ?>" class="envira-tab envira-clear <?php echo $class; ?>">
|
41 |
<?php do_action( 'envira_gallery_tab_' . $id, $data['post'] ); ?>
|
42 |
+
|
43 |
</div>
|
44 |
<?php
|
45 |
$i++;
|
includes/admin/partials/metabox-gallery-type.php
CHANGED
@@ -39,63 +39,25 @@
|
|
39 |
|
40 |
<!-- External Gallery -->
|
41 |
<div id="envira-gallery-external" class="envira-tab envira-clear<?php echo ( ( $data['instance']->get_config( 'type', $data['instance']->get_config_default( 'type' ) ) != 'default' ) ? ' envira-active' : '' ); ?>">
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
<
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
|
55 |
-
// Output the type as a radio option
|
56 |
-
?>
|
57 |
-
<li id="envira-gallery-type-<?php echo sanitize_html_class( $id ); ?>"<?php echo ( ( $data['instance']->get_config( 'type', $data['instance']->get_config_default( 'type' ) ) == $id ) ? ' class="envira-active"' : '' ); ?>>
|
58 |
-
<label for="envira-gallery-type-<?php echo $id; ?>">
|
59 |
-
<input id="envira-gallery-type-<?php echo sanitize_html_class( $id ); ?>" type="radio" name="_envira_gallery[type]" value="<?php echo $id; ?>" <?php checked( $data['instance']->get_config( 'type', $data['instance']->get_config_default( 'type' ) ), $id ); ?> />
|
60 |
-
<div class="icon"></div>
|
61 |
-
<div class="title"><?php echo $title; ?></div>
|
62 |
-
</label>
|
63 |
-
</li>
|
64 |
-
<?php
|
65 |
-
}
|
66 |
-
?>
|
67 |
-
</ul>
|
68 |
-
<?php
|
69 |
-
} else {
|
70 |
-
// No External Gallery Types are registered.
|
71 |
-
// If we're on the Lite version, show a notice.
|
72 |
-
if ( class_exists( 'Envira_Gallery_Lite' ) ) {
|
73 |
-
$upgrade_link = Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link();
|
74 |
-
?>
|
75 |
-
<p class="envira-intro"><?php _e( 'Create Dynamic Galleries with Envira', 'envira-gallery' ); ?></p>
|
76 |
-
<ul id="envira-gallery-types-nav">
|
77 |
-
<li id="envira-gallery-type-instagram">
|
78 |
-
<a href="<?php echo $upgrade_link; ?>" title="<?php _e( 'Build Galleries from Instagram images.', 'envira-gallery' ); ?>" target="_blank">
|
79 |
-
<div class="icon"></div>
|
80 |
-
<div class="title"><?php _e( 'Instagram', 'envira-gallery' ); ?></div>
|
81 |
-
</a>
|
82 |
-
</li>
|
83 |
-
</ul>
|
84 |
-
<p>
|
85 |
-
<?php _e( 'Envira Pro allows you to build galleries from Instagram photos, images from your posts, and more.', 'envira-gallery' ); ?>
|
86 |
-
</p>
|
87 |
-
<p>
|
88 |
-
<a href="<?php echo $upgrade_link; ?>" class="button button-primary button-x-large" title="<?php _e( 'Click Here to Upgrade', 'envira-gallery' ); ?>" target="_blank">
|
89 |
-
<?php _e( 'Click Here to Upgrade', 'envira-gallery' ); ?>
|
90 |
-
</a>
|
91 |
-
</p>
|
92 |
-
<?php
|
93 |
-
} else {
|
94 |
-
?>
|
95 |
-
<p><?php _e( 'It doesn\'t look like you have any Addons activated which import images from external sources.', 'envira-gallery' ); ?></p>
|
96 |
-
<?php
|
97 |
-
}
|
98 |
-
}
|
99 |
-
?>
|
100 |
</div>
|
101 |
</div>
|
39 |
|
40 |
<!-- External Gallery -->
|
41 |
<div id="envira-gallery-external" class="envira-tab envira-clear<?php echo ( ( $data['instance']->get_config( 'type', $data['instance']->get_config_default( 'type' ) ) != 'default' ) ? ' envira-active' : '' ); ?>">
|
42 |
+
|
43 |
+
<?php $upgrade_link = Envira_Gallery_Common_Admin::get_instance()->get_upgrade_link(); ?>
|
44 |
+
<p class="envira-intro"><?php _e( 'Create Dynamic Galleries with Envira', 'envira-gallery' ); ?></p>
|
45 |
+
<ul id="envira-gallery-types-nav">
|
46 |
+
<li id="envira-gallery-type-instagram">
|
47 |
+
<a href="<?php echo $upgrade_link; ?>" title="<?php _e( 'Build Galleries from Instagram images.', 'envira-gallery' ); ?>" target="_blank">
|
48 |
+
<div class="icon"></div>
|
49 |
+
<div class="title"><?php _e( 'Instagram', 'envira-gallery' ); ?></div>
|
50 |
+
</a>
|
51 |
+
</li>
|
52 |
+
</ul>
|
53 |
+
<p>
|
54 |
+
<?php _e( 'Envira Pro allows you to build galleries from Instagram photos, images from your posts, and more.', 'envira-gallery' ); ?>
|
55 |
+
</p>
|
56 |
+
<p>
|
57 |
+
<a href="<?php echo $upgrade_link; ?>" class="button button-primary button-x-large" title="<?php _e( 'Click Here to Upgrade', 'envira-gallery' ); ?>" target="_blank">
|
58 |
+
<?php _e( 'Click Here to Upgrade', 'envira-gallery' ); ?>
|
59 |
+
</a>
|
60 |
+
</p>
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
</div>
|
63 |
</div>
|
includes/admin/posttype.php
CHANGED
@@ -44,7 +44,7 @@ class Envira_Gallery_Posttype_Admin {
|
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
-
$this->base =
|
48 |
$this->metabox = Envira_Gallery_Metaboxes::get_instance();
|
49 |
|
50 |
// Update post type messages.
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
48 |
$this->metabox = Envira_Gallery_Metaboxes::get_instance();
|
49 |
|
50 |
// Update post type messages.
|
includes/admin/table.php
CHANGED
@@ -53,7 +53,7 @@ class Envira_Gallery_Table_Admin {
|
|
53 |
public function __construct() {
|
54 |
|
55 |
// Load the base class object.
|
56 |
-
$this->base =
|
57 |
|
58 |
// Load the metabox class object.
|
59 |
$this->metabox = Envira_Gallery_Metaboxes::get_instance();
|
@@ -66,13 +66,6 @@ class Envira_Gallery_Table_Admin {
|
|
66 |
add_filter( 'manage_edit-envira_columns', array( &$this, 'envira_columns' ) );
|
67 |
add_action( 'manage_envira_posts_custom_column', array( &$this, 'envira_custom_columns'), 10, 2 );
|
68 |
|
69 |
-
// Only load Quick and Bulk Editing support if we're running Envira Gallery, and not Envira Gallery Lite.
|
70 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
71 |
-
add_action( 'quick_edit_custom_box', array( $this, 'quick_edit_custom_box' ), 10, 2 ); // Single Item.
|
72 |
-
add_action( 'bulk_edit_custom_box', array( $this, 'bulk_edit_custom_box' ), 10, 2 ); // Multiple Items.
|
73 |
-
add_action( 'post_updated', array( $this, 'bulk_edit_save' ) );
|
74 |
-
}
|
75 |
-
|
76 |
}
|
77 |
|
78 |
/**
|
@@ -164,8 +157,8 @@ class Envira_Gallery_Table_Admin {
|
|
164 |
// Add additional columns we want to display.
|
165 |
$envira_columns = array(
|
166 |
'cb' => '<input type="checkbox" />',
|
167 |
-
'title' => __( 'Title', 'envira-gallery' ),
|
168 |
'image' => __( '', 'envira-gallery' ),
|
|
|
169 |
'shortcode' => __( 'Shortcode', 'envira-gallery' ),
|
170 |
'posts' => __( 'Posts', 'envira-gallery' ),
|
171 |
'modified' => __( 'Last Modified', 'envira-gallery' ),
|
53 |
public function __construct() {
|
54 |
|
55 |
// Load the base class object.
|
56 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
57 |
|
58 |
// Load the metabox class object.
|
59 |
$this->metabox = Envira_Gallery_Metaboxes::get_instance();
|
66 |
add_filter( 'manage_edit-envira_columns', array( &$this, 'envira_columns' ) );
|
67 |
add_action( 'manage_envira_posts_custom_column', array( &$this, 'envira_custom_columns'), 10, 2 );
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
70 |
|
71 |
/**
|
157 |
// Add additional columns we want to display.
|
158 |
$envira_columns = array(
|
159 |
'cb' => '<input type="checkbox" />',
|
|
|
160 |
'image' => __( '', 'envira-gallery' ),
|
161 |
+
'title' => __( 'Title', 'envira-gallery' ),
|
162 |
'shortcode' => __( 'Shortcode', 'envira-gallery' ),
|
163 |
'posts' => __( 'Posts', 'envira-gallery' ),
|
164 |
'modified' => __( 'Last Modified', 'envira-gallery' ),
|
includes/global/Mobile_Detect.php
ADDED
@@ -0,0 +1,1458 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Mobile Detect Library
|
4 |
+
* =====================
|
5 |
+
*
|
6 |
+
* Motto: "Every business should have a mobile detection script to detect mobile readers"
|
7 |
+
*
|
8 |
+
* Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets).
|
9 |
+
* It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
|
10 |
+
*
|
11 |
+
* @author Current authors: Serban Ghita <serbanghita@gmail.com>
|
12 |
+
* Nick Ilyin <nick.ilyin@gmail.com>
|
13 |
+
*
|
14 |
+
* Original author: Victor Stanciu <vic.stanciu@gmail.com>
|
15 |
+
*
|
16 |
+
* @license Code and contributions have 'MIT License'
|
17 |
+
* More details: https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
|
18 |
+
*
|
19 |
+
* @link Homepage: http://mobiledetect.net
|
20 |
+
* GitHub Repo: https://github.com/serbanghita/Mobile-Detect
|
21 |
+
* Google Code: http://code.google.com/p/php-mobile-detect/
|
22 |
+
* README: https://github.com/serbanghita/Mobile-Detect/blob/master/README.md
|
23 |
+
* HOWTO: https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
|
24 |
+
*
|
25 |
+
* @version 2.8.24
|
26 |
+
*/
|
27 |
+
|
28 |
+
class Mobile_Detect
|
29 |
+
{
|
30 |
+
/**
|
31 |
+
* Mobile detection type.
|
32 |
+
*
|
33 |
+
* @deprecated since version 2.6.9
|
34 |
+
*/
|
35 |
+
const DETECTION_TYPE_MOBILE = 'mobile';
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Extended detection type.
|
39 |
+
*
|
40 |
+
* @deprecated since version 2.6.9
|
41 |
+
*/
|
42 |
+
const DETECTION_TYPE_EXTENDED = 'extended';
|
43 |
+
|
44 |
+
/**
|
45 |
+
* A frequently used regular expression to extract version #s.
|
46 |
+
*
|
47 |
+
* @deprecated since version 2.6.9
|
48 |
+
*/
|
49 |
+
const VER = '([\w._\+]+)';
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Top-level device.
|
53 |
+
*/
|
54 |
+
const MOBILE_GRADE_A = 'A';
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Mid-level device.
|
58 |
+
*/
|
59 |
+
const MOBILE_GRADE_B = 'B';
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Low-level device.
|
63 |
+
*/
|
64 |
+
const MOBILE_GRADE_C = 'C';
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Stores the version number of the current release.
|
68 |
+
*/
|
69 |
+
const VERSION = '2.8.24';
|
70 |
+
|
71 |
+
/**
|
72 |
+
* A type for the version() method indicating a string return value.
|
73 |
+
*/
|
74 |
+
const VERSION_TYPE_STRING = 'text';
|
75 |
+
|
76 |
+
/**
|
77 |
+
* A type for the version() method indicating a float return value.
|
78 |
+
*/
|
79 |
+
const VERSION_TYPE_FLOAT = 'float';
|
80 |
+
|
81 |
+
/**
|
82 |
+
* A cache for resolved matches
|
83 |
+
* @var array
|
84 |
+
*/
|
85 |
+
protected $cache = array();
|
86 |
+
|
87 |
+
/**
|
88 |
+
* The User-Agent HTTP header is stored in here.
|
89 |
+
* @var string
|
90 |
+
*/
|
91 |
+
protected $userAgent = null;
|
92 |
+
|
93 |
+
/**
|
94 |
+
* HTTP headers in the PHP-flavor. So HTTP_USER_AGENT and SERVER_SOFTWARE.
|
95 |
+
* @var array
|
96 |
+
*/
|
97 |
+
protected $httpHeaders = array();
|
98 |
+
|
99 |
+
/**
|
100 |
+
* CloudFront headers. E.g. CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer & CloudFront-Is-Tablet-Viewer.
|
101 |
+
* @var array
|
102 |
+
*/
|
103 |
+
protected $cloudfrontHeaders = array();
|
104 |
+
|
105 |
+
/**
|
106 |
+
* The matching Regex.
|
107 |
+
* This is good for debug.
|
108 |
+
* @var string
|
109 |
+
*/
|
110 |
+
protected $matchingRegex = null;
|
111 |
+
|
112 |
+
/**
|
113 |
+
* The matches extracted from the regex expression.
|
114 |
+
* This is good for debug.
|
115 |
+
* @var string
|
116 |
+
*/
|
117 |
+
protected $matchesArray = null;
|
118 |
+
|
119 |
+
/**
|
120 |
+
* The detection type, using self::DETECTION_TYPE_MOBILE or self::DETECTION_TYPE_EXTENDED.
|
121 |
+
*
|
122 |
+
* @deprecated since version 2.6.9
|
123 |
+
*
|
124 |
+
* @var string
|
125 |
+
*/
|
126 |
+
protected $detectionType = self::DETECTION_TYPE_MOBILE;
|
127 |
+
|
128 |
+
/**
|
129 |
+
* HTTP headers that trigger the 'isMobile' detection
|
130 |
+
* to be true.
|
131 |
+
*
|
132 |
+
* @var array
|
133 |
+
*/
|
134 |
+
protected static $mobileHeaders = array(
|
135 |
+
|
136 |
+
'HTTP_ACCEPT' => array('matches' => array(
|
137 |
+
// Opera Mini; @reference: http://dev.opera.com/articles/view/opera-binary-markup-language/
|
138 |
+
'application/x-obml2d',
|
139 |
+
// BlackBerry devices.
|
140 |
+
'application/vnd.rim.html',
|
141 |
+
'text/vnd.wap.wml',
|
142 |
+
'application/vnd.wap.xhtml+xml'
|
143 |
+
)),
|
144 |
+
'HTTP_X_WAP_PROFILE' => null,
|
145 |
+
'HTTP_X_WAP_CLIENTID' => null,
|
146 |
+
'HTTP_WAP_CONNECTION' => null,
|
147 |
+
'HTTP_PROFILE' => null,
|
148 |
+
// Reported by Opera on Nokia devices (eg. C3).
|
149 |
+
'HTTP_X_OPERAMINI_PHONE_UA' => null,
|
150 |
+
'HTTP_X_NOKIA_GATEWAY_ID' => null,
|
151 |
+
'HTTP_X_ORANGE_ID' => null,
|
152 |
+
'HTTP_X_VODAFONE_3GPDPCONTEXT' => null,
|
153 |
+
'HTTP_X_HUAWEI_USERID' => null,
|
154 |
+
// Reported by Windows Smartphones.
|
155 |
+
'HTTP_UA_OS' => null,
|
156 |
+
// Reported by Verizon, Vodafone proxy system.
|
157 |
+
'HTTP_X_MOBILE_GATEWAY' => null,
|
158 |
+
// Seen this on HTC Sensation. SensationXE_Beats_Z715e.
|
159 |
+
'HTTP_X_ATT_DEVICEID' => null,
|
160 |
+
// Seen this on a HTC.
|
161 |
+
'HTTP_UA_CPU' => array('matches' => array('ARM')),
|
162 |
+
);
|
163 |
+
|
164 |
+
/**
|
165 |
+
* List of mobile devices (phones).
|
166 |
+
*
|
167 |
+
* @var array
|
168 |
+
*/
|
169 |
+
protected static $phoneDevices = array(
|
170 |
+
'iPhone' => '\biPhone\b|\biPod\b', // |\biTunes
|
171 |
+
'BlackBerry' => 'BlackBerry|\bBB10\b|rim[0-9]+',
|
172 |
+
'HTC' => 'HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\bEVO\b|T-Mobile G1|Z520m',
|
173 |
+
'Nexus' => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6',
|
174 |
+
// @todo: Is 'Dell Streak' a tablet or a phone? ;)
|
175 |
+
'Dell' => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\b001DL\b|\b101DL\b|\bGS01\b',
|
176 |
+
'Motorola' => 'Motorola|DROIDX|DROID BIONIC|\bDroid\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\bMoto E\b',
|
177 |
+
'Samsung' => '\bSamsung\b|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F',
|
178 |
+
'LG' => '\bLG\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)',
|
179 |
+
'Sony' => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533',
|
180 |
+
'Asus' => 'Asus.*Galaxy|PadFone.*Mobile',
|
181 |
+
'NokiaLumia' => 'Lumia [0-9]{3,4}',
|
182 |
+
// http://www.micromaxinfo.com/mobiles/smartphones
|
183 |
+
// Added because the codes might conflict with Acer Tablets.
|
184 |
+
'Micromax' => 'Micromax.*\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\b',
|
185 |
+
// @todo Complete the regex.
|
186 |
+
'Palm' => 'PalmSource|Palm', // avantgo|blazer|elaine|hiptop|plucker|xiino ;
|
187 |
+
'Vertu' => 'Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature', // Just for fun ;)
|
188 |
+
// http://www.pantech.co.kr/en/prod/prodList.do?gbrand=VEGA (PANTECH)
|
189 |
+
// Most of the VEGA devices are legacy. PANTECH seem to be newer devices based on Android.
|
190 |
+
'Pantech' => 'PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790',
|
191 |
+
// http://www.fly-phone.com/devices/smartphones/ ; Included only smartphones.
|
192 |
+
'Fly' => 'IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250',
|
193 |
+
// http://fr.wikomobile.com
|
194 |
+
'Wiko' => 'KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM',
|
195 |
+
'iMobile' => 'i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)',
|
196 |
+
// Added simvalley mobile just for fun. They have some interesting devices.
|
197 |
+
// http://www.simvalley.fr/telephonie---gps-_22_telephonie-mobile_telephones_.html
|
198 |
+
'SimValley' => '\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\b',
|
199 |
+
// Wolfgang - a brand that is sold by Aldi supermarkets.
|
200 |
+
// http://www.wolfgangmobile.com/
|
201 |
+
'Wolfgang' => 'AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q',
|
202 |
+
'Alcatel' => 'Alcatel',
|
203 |
+
'Nintendo' => 'Nintendo 3DS',
|
204 |
+
// http://en.wikipedia.org/wiki/Amoi
|
205 |
+
'Amoi' => 'Amoi',
|
206 |
+
// http://en.wikipedia.org/wiki/INQ
|
207 |
+
'INQ' => 'INQ',
|
208 |
+
// @Tapatalk is a mobile app; http://support.tapatalk.com/threads/smf-2-0-2-os-and-browser-detection-plugin-and-tapatalk.15565/#post-79039
|
209 |
+
'GenericPhone' => 'Tapatalk|PDA;|SAGEM|\bmmp\b|pocket|\bpsp\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\bwap\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser',
|
210 |
+
);
|
211 |
+
|
212 |
+
/**
|
213 |
+
* List of tablet devices.
|
214 |
+
*
|
215 |
+
* @var array
|
216 |
+
*/
|
217 |
+
protected static $tabletDevices = array(
|
218 |
+
// @todo: check for mobile friendly emails topic.
|
219 |
+
'iPad' => 'iPad|iPad.*Mobile',
|
220 |
+
// Removed |^.*Android.*Nexus(?!(?:Mobile).)*$
|
221 |
+
// @see #442
|
222 |
+
'NexusTablet' => 'Android.*Nexus[\s]+(7|9|10)',
|
223 |
+
'SamsungTablet' => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280', // SCH-P709|SCH-P729|SM-T2558|GT-I9205 - Samsung Mega - treat them like a regular phone.
|
224 |
+
// http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html
|
225 |
+
'Kindle' => 'Kindle|Silk.*Accelerated|Android.*\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI)\b',
|
226 |
+
// Only the Surface tablets with Windows RT are considered mobile.
|
227 |
+
// http://msdn.microsoft.com/en-us/library/ie/hh920767(v=vs.85).aspx
|
228 |
+
'SurfaceTablet' => 'Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)',
|
229 |
+
// http://shopping1.hp.com/is-bin/INTERSHOP.enfinity/WFS/WW-USSMBPublicStore-Site/en_US/-/USD/ViewStandardCatalog-Browse?CatalogCategoryID=JfIQ7EN5lqMAAAEyDcJUDwMT
|
230 |
+
'HPTablet' => 'HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10',
|
231 |
+
// Watch out for PadFone, see #132.
|
232 |
+
// http://www.asus.com/de/Tablets_Mobile/Memo_Pad_Products/
|
233 |
+
'AsusTablet' => '^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\bK00F\b|\bK00C\b|\bK00E\b|\bK00L\b|TX201LA|ME176C|ME102A|\bM80TA\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\bME70C\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z',
|
234 |
+
'BlackBerryTablet' => 'PlayBook|RIM Tablet',
|
235 |
+
'HTCtablet' => 'HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410',
|
236 |
+
'MotorolaTablet' => 'xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617',
|
237 |
+
'NookTablet' => 'Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2',
|
238 |
+
// http://www.acer.ro/ac/ro/RO/content/drivers
|
239 |
+
// http://www.packardbell.co.uk/pb/en/GB/content/download (Packard Bell is part of Acer)
|
240 |
+
// http://us.acer.com/ac/en/US/content/group/tablets
|
241 |
+
// http://www.acer.de/ac/de/DE/content/models/tablets/
|
242 |
+
// Can conflict with Micromax and Motorola phones codes.
|
243 |
+
'AcerTablet' => 'Android.*; \b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\b|W3-810|\bA3-A10\b|\bA3-A11\b|\bA3-A20\b|\bA3-A30',
|
244 |
+
// http://eu.computers.toshiba-europe.com/innovation/family/Tablets/1098744/banner_id/tablet_footerlink/
|
245 |
+
// http://us.toshiba.com/tablets/tablet-finder
|
246 |
+
// http://www.toshiba.co.jp/regza/tablet/
|
247 |
+
'ToshibaTablet' => 'Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO',
|
248 |
+
// http://www.nttdocomo.co.jp/english/service/developer/smart_phone/technical_info/spec/index.html
|
249 |
+
// http://www.lg.com/us/tablets
|
250 |
+
'LGTablet' => '\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\b',
|
251 |
+
'FujitsuTablet' => 'Android.*\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\b',
|
252 |
+
// Prestigio Tablets http://www.prestigio.com/support
|
253 |
+
'PrestigioTablet' => 'PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002',
|
254 |
+
// http://support.lenovo.com/en_GB/downloads/default.page?#
|
255 |
+
'LenovoTablet' => 'Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)',
|
256 |
+
// http://www.dell.com/support/home/us/en/04/Products/tab_mob/tablets
|
257 |
+
'DellTablet' => 'Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7',
|
258 |
+
// http://www.yarvik.com/en/matrix/tablets/
|
259 |
+
'YarvikTablet' => 'Android.*\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\b',
|
260 |
+
'MedionTablet' => 'Android.*\bOYO\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB',
|
261 |
+
'ArnovaTablet' => '97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2',
|
262 |
+
// http://www.intenso.de/kategorie_en.php?kategorie=33
|
263 |
+
// @todo: http://www.nbhkdz.com/read/b8e64202f92a2df129126bff.html - investigate
|
264 |
+
'IntensoTablet' => 'INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004',
|
265 |
+
// IRU.ru Tablets http://www.iru.ru/catalog/soho/planetable/
|
266 |
+
'IRUTablet' => 'M702pro',
|
267 |
+
'MegafonTablet' => 'MegaFon V9|\bZTE V9\b|Android.*\bMT7A\b',
|
268 |
+
// http://www.e-boda.ro/tablete-pc.html
|
269 |
+
'EbodaTablet' => 'E-Boda (Supreme|Impresspeed|Izzycomm|Essential)',
|
270 |
+
// http://www.allview.ro/produse/droseries/lista-tablete-pc/
|
271 |
+
'AllViewTablet' => 'Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)',
|
272 |
+
// http://wiki.archosfans.com/index.php?title=Main_Page
|
273 |
+
'ArchosTablet' => '\b(101G9|80G9|A101IT)\b|Qilive 97R|Archos5|\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\b',
|
274 |
+
// http://www.ainol.com/plugin.php?identifier=ainol&module=product
|
275 |
+
'AinolTablet' => 'NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark',
|
276 |
+
'NokiaLumiaTablet' => 'Lumia 2520',
|
277 |
+
// @todo: inspect http://esupport.sony.com/US/p/select-system.pl?DIRECTOR=DRIVER
|
278 |
+
// Readers http://www.atsuhiro-me.net/ebook/sony-reader/sony-reader-web-browser
|
279 |
+
// http://www.sony.jp/support/tablet/
|
280 |
+
'SonyTablet' => 'Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31',
|
281 |
+
// http://www.support.philips.com/support/catalog/worldproducts.jsp?userLanguage=en&userCountry=cn&categoryid=3G_LTE_TABLET_SU_CN_CARE&title=3G%20tablets%20/%20LTE%20range&_dyncharset=UTF-8
|
282 |
+
'PhilipsTablet' => '\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\b',
|
283 |
+
// db + http://www.cube-tablet.com/buy-products.html
|
284 |
+
'CubeTablet' => 'Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT',
|
285 |
+
// http://www.cobyusa.com/?p=pcat&pcat_id=3001
|
286 |
+
'CobyTablet' => 'MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010',
|
287 |
+
// http://www.match.net.cn/products.asp
|
288 |
+
'MIDTablet' => 'M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10',
|
289 |
+
// http://www.msi.com/support
|
290 |
+
// @todo Research the Windows Tablets.
|
291 |
+
'MSITablet' => 'MSI \b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\b',
|
292 |
+
// @todo http://www.kyoceramobile.com/support/drivers/
|
293 |
+
// 'KyoceraTablet' => null,
|
294 |
+
// @todo http://intexuae.com/index.php/category/mobile-devices/tablets-products/
|
295 |
+
// 'IntextTablet' => null,
|
296 |
+
// http://pdadb.net/index.php?m=pdalist&list=SMiT (NoName Chinese Tablets)
|
297 |
+
// http://www.imp3.net/14/show.php?itemid=20454
|
298 |
+
'SMiTTablet' => 'Android.*(\bMID\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)',
|
299 |
+
// http://www.rock-chips.com/index.php?do=prod&pid=2
|
300 |
+
'RockChipTablet' => 'Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A',
|
301 |
+
// http://www.fly-phone.com/devices/tablets/ ; http://www.fly-phone.com/service/
|
302 |
+
'FlyTablet' => 'IQ310|Fly Vision',
|
303 |
+
// http://www.bqreaders.com/gb/tablets-prices-sale.html
|
304 |
+
'bqTablet' => 'Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris [E|M]10)|Maxwell.*Lite|Maxwell.*Plus',
|
305 |
+
// http://www.huaweidevice.com/worldwide/productFamily.do?method=index&directoryId=5011&treeId=3290
|
306 |
+
// http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index&directoryId=3372&treeId=0&tb=1&type=software (including legacy tablets)
|
307 |
+
'HuaweiTablet' => 'MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim',
|
308 |
+
// Nec or Medias Tab
|
309 |
+
'NecTablet' => '\bN-06D|\bN-08D',
|
310 |
+
// Pantech Tablets: http://www.pantechusa.com/phones/
|
311 |
+
'PantechTablet' => 'Pantech.*P4100',
|
312 |
+
// Broncho Tablets: http://www.broncho.cn/ (hard to find)
|
313 |
+
'BronchoTablet' => 'Broncho.*(N701|N708|N802|a710)',
|
314 |
+
// http://versusuk.com/support.html
|
315 |
+
'VersusTablet' => 'TOUCHPAD.*[78910]|\bTOUCHTAB\b',
|
316 |
+
// http://www.zync.in/index.php/our-products/tablet-phablets
|
317 |
+
'ZyncTablet' => 'z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900',
|
318 |
+
// http://www.positivoinformatica.com.br/www/pessoal/tablet-ypy/
|
319 |
+
'PositivoTablet' => 'TB07STA|TB10STA|TB07FTA|TB10FTA',
|
320 |
+
// https://www.nabitablet.com/
|
321 |
+
'NabiTablet' => 'Android.*\bNabi',
|
322 |
+
'KoboTablet' => 'Kobo Touch|\bK080\b|\bVox\b Build|\bArc\b Build',
|
323 |
+
// French Danew Tablets http://www.danew.com/produits-tablette.php
|
324 |
+
'DanewTablet' => 'DSlide.*\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\b',
|
325 |
+
// Texet Tablets and Readers http://www.texet.ru/tablet/
|
326 |
+
'TexetTablet' => 'NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE',
|
327 |
+
// Avoid detecting 'PLAYSTATION 3' as mobile.
|
328 |
+
'PlaystationTablet' => 'Playstation.*(Portable|Vita)',
|
329 |
+
// http://www.trekstor.de/surftabs.html
|
330 |
+
'TrekstorTablet' => 'ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab',
|
331 |
+
// http://www.pyleaudio.com/Products.aspx?%2fproducts%2fPersonal-Electronics%2fTablets
|
332 |
+
'PyleAudioTablet' => '\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\b',
|
333 |
+
// http://www.advandigital.com/index.php?link=content-product&jns=JP001
|
334 |
+
// because of the short codenames we have to include whitespaces to reduce the possible conflicts.
|
335 |
+
'AdvanTablet' => 'Android.* \b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\b ',
|
336 |
+
// http://www.danytech.com/category/tablet-pc
|
337 |
+
'DanyTechTablet' => 'Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1',
|
338 |
+
// http://www.galapad.net/product.html
|
339 |
+
'GalapadTablet' => 'Android.*\bG1\b',
|
340 |
+
// http://www.micromaxinfo.com/tablet/funbook
|
341 |
+
'MicromaxTablet' => 'Funbook|Micromax.*\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\b',
|
342 |
+
// http://www.karbonnmobiles.com/products_tablet.php
|
343 |
+
'KarbonnTablet' => 'Android.*\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\b',
|
344 |
+
// http://www.myallfine.com/Products.asp
|
345 |
+
'AllFineTablet' => 'Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide',
|
346 |
+
// http://www.proscanvideo.com/products-search.asp?itemClass=TABLET&itemnmbr=
|
347 |
+
'PROSCANTablet' => '\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\b',
|
348 |
+
// http://www.yonesnav.com/products/products.php
|
349 |
+
'YONESTablet' => 'BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026',
|
350 |
+
// http://www.cjshowroom.com/eproducts.aspx?classcode=004001001
|
351 |
+
// China manufacturer makes tablets for different small brands (eg. http://www.zeepad.net/index.html)
|
352 |
+
'ChangJiaTablet' => 'TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503',
|
353 |
+
// http://www.gloryunion.cn/products.asp
|
354 |
+
// http://www.allwinnertech.com/en/apply/mobile.html
|
355 |
+
// http://www.ptcl.com.pk/pd_content.php?pd_id=284 (EVOTAB)
|
356 |
+
// @todo: Softwiner tablets?
|
357 |
+
// aka. Cute or Cool tablets. Not sure yet, must research to avoid collisions.
|
358 |
+
'GUTablet' => 'TX-A1301|TX-M9002|Q702|kf026', // A12R|D75A|D77|D79|R83|A95|A106C|R15|A75|A76|D71|D72|R71|R73|R77|D82|R85|D92|A97|D92|R91|A10F|A77F|W71F|A78F|W78F|W81F|A97F|W91F|W97F|R16G|C72|C73E|K72|K73|R96G
|
359 |
+
// http://www.pointofview-online.com/showroom.php?shop_mode=product_listing&category_id=118
|
360 |
+
'PointOfViewTablet' => 'TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10',
|
361 |
+
// http://www.overmax.pl/pl/katalog-produktow,p8/tablety,c14/
|
362 |
+
// @todo: add more tests.
|
363 |
+
'OvermaxTablet' => 'OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)',
|
364 |
+
// http://hclmetablet.com/India/index.php
|
365 |
+
'HCLTablet' => 'HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync',
|
366 |
+
// http://www.edigital.hu/Tablet_es_e-book_olvaso/Tablet-c18385.html
|
367 |
+
'DPSTablet' => 'DPS Dream 9|DPS Dual 7',
|
368 |
+
// http://www.visture.com/index.asp
|
369 |
+
'VistureTablet' => 'V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10',
|
370 |
+
// http://www.mijncresta.nl/tablet
|
371 |
+
'CrestaTablet' => 'CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989',
|
372 |
+
// MediaTek - http://www.mediatek.com/_en/01_products/02_proSys.php?cata_sn=1&cata1_sn=1&cata2_sn=309
|
373 |
+
'MediatekTablet' => '\bMT8125|MT8389|MT8135|MT8377\b',
|
374 |
+
// Concorde tab
|
375 |
+
'ConcordeTablet' => 'Concorde([ ]+)?Tab|ConCorde ReadMan',
|
376 |
+
// GoClever Tablets - http://www.goclever.com/uk/products,c1/tablet,c5/
|
377 |
+
'GoCleverTablet' => 'GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042',
|
378 |
+
// Modecom Tablets - http://www.modecom.eu/tablets/portal/
|
379 |
+
'ModecomTablet' => 'FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003',
|
380 |
+
// Vonino Tablets - http://www.vonino.eu/tablets
|
381 |
+
'VoninoTablet' => '\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\bQ8\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\b',
|
382 |
+
// ECS Tablets - http://www.ecs.com.tw/ECSWebSite/Product/Product_Tablet_List.aspx?CategoryID=14&MenuID=107&childid=M_107&LanID=0
|
383 |
+
'ECSTablet' => 'V07OT2|TM105A|S10OT1|TR10CS1',
|
384 |
+
// Storex Tablets - http://storex.fr/espace_client/support.html
|
385 |
+
// @note: no need to add all the tablet codes since they are guided by the first regex.
|
386 |
+
'StorexTablet' => 'eZee[_\']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab',
|
387 |
+
// Generic Vodafone tablets.
|
388 |
+
'VodafoneTablet' => 'SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497',
|
389 |
+
// French tablets - Essentiel B http://www.boulanger.fr/tablette_tactile_e-book/tablette_tactile_essentiel_b/cl_68908.htm?multiChoiceToDelete=brand&mc_brand=essentielb
|
390 |
+
// Aka: http://www.essentielb.fr/
|
391 |
+
'EssentielBTablet' => 'Smart[ \']?TAB[ ]+?[0-9]+|Family[ \']?TAB2',
|
392 |
+
// Ross & Moor - http://ross-moor.ru/
|
393 |
+
'RossMoorTablet' => 'RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711',
|
394 |
+
// i-mobile http://product.i-mobilephone.com/Mobile_Device
|
395 |
+
'iMobileTablet' => 'i-mobile i-note',
|
396 |
+
// http://www.tolino.de/de/vergleichen/
|
397 |
+
'TolinoTablet' => 'tolino tab [0-9.]+|tolino shine',
|
398 |
+
// AudioSonic - a Kmart brand
|
399 |
+
// http://www.kmart.com.au/webapp/wcs/stores/servlet/Search?langId=-1&storeId=10701&catalogId=10001&categoryId=193001&pageSize=72¤tPage=1&searchCategory=193001%2b4294965664&sortBy=p_MaxPrice%7c1
|
400 |
+
'AudioSonicTablet' => '\bC-22Q|T7-QC|T-17B|T-17P\b',
|
401 |
+
// AMPE Tablets - http://www.ampe.com.my/product-category/tablets/
|
402 |
+
// @todo: add them gradually to avoid conflicts.
|
403 |
+
'AMPETablet' => 'Android.* A78 ',
|
404 |
+
// Skk Mobile - http://skkmobile.com.ph/product_tablets.php
|
405 |
+
'SkkTablet' => 'Android.* (SKYPAD|PHOENIX|CYCLOPS)',
|
406 |
+
// Tecno Mobile (only tablet) - http://www.tecno-mobile.com/index.php/product?filterby=smart&list_order=all&page=1
|
407 |
+
'TecnoTablet' => 'TECNO P9',
|
408 |
+
// JXD (consoles & tablets) - http://jxd.hk/products.asp?selectclassid=009008&clsid=3
|
409 |
+
'JXDTablet' => 'Android.* \b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\b',
|
410 |
+
// i-Joy tablets - http://www.i-joy.es/en/cat/products/tablets/
|
411 |
+
'iJoyTablet' => 'Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)',
|
412 |
+
// http://www.intracon.eu/tablet
|
413 |
+
'FX2Tablet' => 'FX2 PAD7|FX2 PAD10',
|
414 |
+
// http://www.xoro.de/produkte/
|
415 |
+
// @note: Might be the same brand with 'Simply tablets'
|
416 |
+
'XoroTablet' => 'KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151',
|
417 |
+
// http://www1.viewsonic.com/products/computing/tablets/
|
418 |
+
'ViewsonicTablet' => 'ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a',
|
419 |
+
// http://www.odys.de/web/internet-tablet_en.html
|
420 |
+
'OdysTablet' => 'LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\bXELIO\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10',
|
421 |
+
// http://www.captiva-power.de/products.html#tablets-en
|
422 |
+
'CaptivaTablet' => 'CAPTIVA PAD',
|
423 |
+
// IconBIT - http://www.iconbit.com/products/tablets/
|
424 |
+
'IconbitTablet' => 'NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S',
|
425 |
+
// http://www.teclast.com/topic.php?channelID=70&topicID=140&pid=63
|
426 |
+
'TeclastTablet' => 'T98 4G|\bP80\b|\bX90HD\b|X98 Air|X98 Air 3G|\bX89\b|P80 3G|\bX80h\b|P98 Air|\bX89HD\b|P98 3G|\bP90HD\b|P89 3G|X98 3G|\bP70h\b|P79HD 3G|G18d 3G|\bP79HD\b|\bP89s\b|\bA88\b|\bP10HD\b|\bP19HD\b|G18 3G|\bP78HD\b|\bA78\b|\bP75\b|G17s 3G|G17h 3G|\bP85t\b|\bP90\b|\bP11\b|\bP98t\b|\bP98HD\b|\bG18d\b|\bP85s\b|\bP11HD\b|\bP88s\b|\bA80HD\b|\bA80se\b|\bA10h\b|\bP89\b|\bP78s\b|\bG18\b|\bP85\b|\bA70h\b|\bA70\b|\bG17\b|\bP18\b|\bA80s\b|\bA11s\b|\bP88HD\b|\bA80h\b|\bP76s\b|\bP76h\b|\bP98\b|\bA10HD\b|\bP78\b|\bP88\b|\bA11\b|\bA10t\b|\bP76a\b|\bP76t\b|\bP76e\b|\bP85HD\b|\bP85a\b|\bP86\b|\bP75HD\b|\bP76v\b|\bA12\b|\bP75a\b|\bA15\b|\bP76Ti\b|\bP81HD\b|\bA10\b|\bT760VE\b|\bT720HD\b|\bP76\b|\bP73\b|\bP71\b|\bP72\b|\bT720SE\b|\bC520Ti\b|\bT760\b|\bT720VE\b|T720-3GE|T720-WiFi',
|
427 |
+
// Onda - http://www.onda-tablet.com/buy-android-onda.html?dir=desc&limit=all&order=price
|
428 |
+
'OndaTablet' => '\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\b[\s]+',
|
429 |
+
'JaytechTablet' => 'TPC-PA762',
|
430 |
+
'BlaupunktTablet' => 'Endeavour 800NG|Endeavour 1010',
|
431 |
+
// http://www.digma.ru/support/download/
|
432 |
+
// @todo: Ebooks also (if requested)
|
433 |
+
'DigmaTablet' => '\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\b',
|
434 |
+
// http://www.evolioshop.com/ro/tablete-pc.html
|
435 |
+
// http://www.evolio.ro/support/downloads_static.html?cat=2
|
436 |
+
// @todo: Research some more
|
437 |
+
'EvolioTablet' => 'ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\bEvotab\b|\bNeura\b',
|
438 |
+
// @todo http://www.lavamobiles.com/tablets-data-cards
|
439 |
+
'LavaTablet' => 'QPAD E704|\bIvoryS\b|E-TAB IVORY|\bE-TAB\b',
|
440 |
+
// http://www.breezetablet.com/
|
441 |
+
'AocTablet' => 'MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712',
|
442 |
+
// http://www.mpmaneurope.com/en/products/internet-tablets-14/android-tablets-14/
|
443 |
+
'MpmanTablet' => 'MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\bMPG7\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010',
|
444 |
+
// https://www.celkonmobiles.com/?_a=categoryphones&sid=2
|
445 |
+
'CelkonTablet' => 'CT695|CT888|CT[\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\bCT-1\b',
|
446 |
+
// http://www.wolderelectronics.com/productos/manuales-y-guias-rapidas/categoria-2-miTab
|
447 |
+
'WolderTablet' => 'miTab \b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\b',
|
448 |
+
// http://www.mi.com/en
|
449 |
+
'MiTablet' => '\bMI PAD\b|\bHM NOTE 1W\b',
|
450 |
+
// http://www.nbru.cn/index.html
|
451 |
+
'NibiruTablet' => 'Nibiru M1|Nibiru Jupiter One',
|
452 |
+
// http://navroad.com/products/produkty/tablety/
|
453 |
+
'NexoTablet' => 'NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI',
|
454 |
+
// http://leader-online.com/new_site/product-category/tablets/
|
455 |
+
// http://www.leader-online.net.au/List/Tablet
|
456 |
+
'LeaderTablet' => 'TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100',
|
457 |
+
// http://www.datawind.com/ubislate/
|
458 |
+
'UbislateTablet' => 'UbiSlate[\s]?7C',
|
459 |
+
// http://www.pocketbook-int.com/ru/support
|
460 |
+
'PocketBookTablet' => 'Pocketbook',
|
461 |
+
// http://www.kocaso.com/product_tablet.html
|
462 |
+
'KocasoTablet' => '\b(TB-1207)\b',
|
463 |
+
// http://global.hisense.com/product/asia/tablet/Sero7/201412/t20141215_91832.htm
|
464 |
+
'HisenseTablet' => '\b(F5281|E2371)\b',
|
465 |
+
// http://www.tesco.com/direct/hudl/
|
466 |
+
'Hudl' => 'Hudl HT7S3|Hudl 2',
|
467 |
+
// http://www.telstra.com.au/home-phone/thub-2/
|
468 |
+
'TelstraTablet' => 'T-Hub2',
|
469 |
+
'GenericTablet' => 'Android.*\b97D\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\bA7EB\b|CatNova8|A1_07|CT704|CT1002|\bM721\b|rk30sdk|\bEVOTAB\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\bM6pro\b|CT1020W|arc 10HD|\bTP750\b'
|
470 |
+
);
|
471 |
+
|
472 |
+
/**
|
473 |
+
* List of mobile Operating Systems.
|
474 |
+
*
|
475 |
+
* @var array
|
476 |
+
*/
|
477 |
+
protected static $operatingSystems = array(
|
478 |
+
'AndroidOS' => 'Android',
|
479 |
+
'BlackBerryOS' => 'blackberry|\bBB10\b|rim tablet os',
|
480 |
+
'PalmOS' => 'PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino',
|
481 |
+
'SymbianOS' => 'Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\bS60\b',
|
482 |
+
// @reference: http://en.wikipedia.org/wiki/Windows_Mobile
|
483 |
+
'WindowsMobileOS' => 'Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;',
|
484 |
+
// @reference: http://en.wikipedia.org/wiki/Windows_Phone
|
485 |
+
// http://wifeng.cn/?r=blog&a=view&id=106
|
486 |
+
// http://nicksnettravels.builttoroam.com/post/2011/01/10/Bogus-Windows-Phone-7-User-Agent-String.aspx
|
487 |
+
// http://msdn.microsoft.com/library/ms537503.aspx
|
488 |
+
// https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx
|
489 |
+
'WindowsPhoneOS' => 'Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;',
|
490 |
+
'iOS' => '\biPhone.*Mobile|\biPod|\biPad',
|
491 |
+
// http://en.wikipedia.org/wiki/MeeGo
|
492 |
+
// @todo: research MeeGo in UAs
|
493 |
+
'MeeGoOS' => 'MeeGo',
|
494 |
+
// http://en.wikipedia.org/wiki/Maemo
|
495 |
+
// @todo: research Maemo in UAs
|
496 |
+
'MaemoOS' => 'Maemo',
|
497 |
+
'JavaOS' => 'J2ME/|\bMIDP\b|\bCLDC\b', // '|Java/' produces bug #135
|
498 |
+
'webOS' => 'webOS|hpwOS',
|
499 |
+
'badaOS' => '\bBada\b',
|
500 |
+
'BREWOS' => 'BREW',
|
501 |
+
);
|
502 |
+
|
503 |
+
/**
|
504 |
+
* List of mobile User Agents.
|
505 |
+
*
|
506 |
+
* IMPORTANT: This is a list of only mobile browsers.
|
507 |
+
* Mobile Detect 2.x supports only mobile browsers,
|
508 |
+
* it was never designed to detect all browsers.
|
509 |
+
* The change will come in 2017 in the 3.x release for PHP7.
|
510 |
+
*
|
511 |
+
* @var array
|
512 |
+
*/
|
513 |
+
protected static $browsers = array(
|
514 |
+
//'Vivaldi' => 'Vivaldi',
|
515 |
+
// @reference: https://developers.google.com/chrome/mobile/docs/user-agent
|
516 |
+
'Chrome' => '\bCrMo\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?',
|
517 |
+
'Dolfin' => '\bDolfin\b',
|
518 |
+
'Opera' => 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+|Coast/[0-9.]+',
|
519 |
+
'Skyfire' => 'Skyfire',
|
520 |
+
'Edge' => 'Mobile Safari/[.0-9]* Edge',
|
521 |
+
'IE' => 'IEMobile|MSIEMobile', // |Trident/[.0-9]+
|
522 |
+
'Firefox' => 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS',
|
523 |
+
'Bolt' => 'bolt',
|
524 |
+
'TeaShark' => 'teashark',
|
525 |
+
'Blazer' => 'Blazer',
|
526 |
+
// @reference: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3
|
527 |
+
'Safari' => 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari',
|
528 |
+
// http://en.wikipedia.org/wiki/Midori_(web_browser)
|
529 |
+
//'Midori' => 'midori',
|
530 |
+
//'Tizen' => 'Tizen',
|
531 |
+
'UCBrowser' => 'UC.*Browser|UCWEB',
|
532 |
+
'baiduboxapp' => 'baiduboxapp',
|
533 |
+
'baidubrowser' => 'baidubrowser',
|
534 |
+
// https://github.com/serbanghita/Mobile-Detect/issues/7
|
535 |
+
'DiigoBrowser' => 'DiigoBrowser',
|
536 |
+
// http://www.puffinbrowser.com/index.php
|
537 |
+
'Puffin' => 'Puffin',
|
538 |
+
// http://mercury-browser.com/index.html
|
539 |
+
'Mercury' => '\bMercury\b',
|
540 |
+
// http://en.wikipedia.org/wiki/Obigo_Browser
|
541 |
+
'ObigoBrowser' => 'Obigo',
|
542 |
+
// http://en.wikipedia.org/wiki/NetFront
|
543 |
+
'NetFront' => 'NF-Browser',
|
544 |
+
// @reference: http://en.wikipedia.org/wiki/Minimo
|
545 |
+
// http://en.wikipedia.org/wiki/Vision_Mobile_Browser
|
546 |
+
'GenericBrowser' => 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger',
|
547 |
+
// @reference: https://en.wikipedia.org/wiki/Pale_Moon_(web_browser)
|
548 |
+
'PaleMoon' => 'Android.*PaleMoon|Mobile.*PaleMoon',
|
549 |
+
);
|
550 |
+
|
551 |
+
/**
|
552 |
+
* Utilities.
|
553 |
+
*
|
554 |
+
* @var array
|
555 |
+
*/
|
556 |
+
protected static $utilities = array(
|
557 |
+
// Experimental. When a mobile device wants to switch to 'Desktop Mode'.
|
558 |
+
// http://scottcate.com/technology/windows-phone-8-ie10-desktop-or-mobile/
|
559 |
+
// https://github.com/serbanghita/Mobile-Detect/issues/57#issuecomment-15024011
|
560 |
+
// https://developers.facebook.com/docs/sharing/best-practices
|
561 |
+
'Bot' => 'Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom',
|
562 |
+
'MobileBot' => 'Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2',
|
563 |
+
'DesktopMode' => 'WPDesktop',
|
564 |
+
'TV' => 'SonyDTV|HbbTV', // experimental
|
565 |
+
'WebKit' => '(webkit)[ /]([\w.]+)',
|
566 |
+
// @todo: Include JXD consoles.
|
567 |
+
'Console' => '\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\b',
|
568 |
+
'Watch' => 'SM-V700',
|
569 |
+
);
|
570 |
+
|
571 |
+
/**
|
572 |
+
* All possible HTTP headers that represent the
|
573 |
+
* User-Agent string.
|
574 |
+
*
|
575 |
+
* @var array
|
576 |
+
*/
|
577 |
+
protected static $uaHttpHeaders = array(
|
578 |
+
// The default User-Agent string.
|
579 |
+
'HTTP_USER_AGENT',
|
580 |
+
// Header can occur on devices using Opera Mini.
|
581 |
+
'HTTP_X_OPERAMINI_PHONE_UA',
|
582 |
+
// Vodafone specific header: http://www.seoprinciple.com/mobile-web-community-still-angry-at-vodafone/24/
|
583 |
+
'HTTP_X_DEVICE_USER_AGENT',
|
584 |
+
'HTTP_X_ORIGINAL_USER_AGENT',
|
585 |
+
'HTTP_X_SKYFIRE_PHONE',
|
586 |
+
'HTTP_X_BOLT_PHONE_UA',
|
587 |
+
'HTTP_DEVICE_STOCK_UA',
|
588 |
+
'HTTP_X_UCBROWSER_DEVICE_UA'
|
589 |
+
);
|
590 |
+
|
591 |
+
/**
|
592 |
+
* The individual segments that could exist in a User-Agent string. VER refers to the regular
|
593 |
+
* expression defined in the constant self::VER.
|
594 |
+
*
|
595 |
+
* @var array
|
596 |
+
*/
|
597 |
+
protected static $properties = array(
|
598 |
+
|
599 |
+
// Build
|
600 |
+
'Mobile' => 'Mobile/[VER]',
|
601 |
+
'Build' => 'Build/[VER]',
|
602 |
+
'Version' => 'Version/[VER]',
|
603 |
+
'VendorID' => 'VendorID/[VER]',
|
604 |
+
|
605 |
+
// Devices
|
606 |
+
'iPad' => 'iPad.*CPU[a-z ]+[VER]',
|
607 |
+
'iPhone' => 'iPhone.*CPU[a-z ]+[VER]',
|
608 |
+
'iPod' => 'iPod.*CPU[a-z ]+[VER]',
|
609 |
+
//'BlackBerry' => array('BlackBerry[VER]', 'BlackBerry [VER];'),
|
610 |
+
'Kindle' => 'Kindle/[VER]',
|
611 |
+
|
612 |
+
// Browser
|
613 |
+
'Chrome' => array('Chrome/[VER]', 'CriOS/[VER]', 'CrMo/[VER]'),
|
614 |
+
'Coast' => array('Coast/[VER]'),
|
615 |
+
'Dolfin' => 'Dolfin/[VER]',
|
616 |
+
// @reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
|
617 |
+
'Firefox' => array('Firefox/[VER]', 'FxiOS/[VER]'),
|
618 |
+
'Fennec' => 'Fennec/[VER]',
|
619 |
+
// http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
|
620 |
+
// https://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
|
621 |
+
'Edge' => 'Edge/[VER]',
|
622 |
+
'IE' => array('IEMobile/[VER];', 'IEMobile [VER]', 'MSIE [VER];', 'Trident/[0-9.]+;.*rv:[VER]'),
|
623 |
+
// http://en.wikipedia.org/wiki/NetFront
|
624 |
+
'NetFront' => 'NetFront/[VER]',
|
625 |
+
'NokiaBrowser' => 'NokiaBrowser/[VER]',
|
626 |
+
'Opera' => array( ' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]' ),
|
627 |
+
'Opera Mini' => 'Opera Mini/[VER]',
|
628 |
+
'Opera Mobi' => 'Version/[VER]',
|
629 |
+
'UC Browser' => 'UC Browser[VER]',
|
630 |
+
'MQQBrowser' => 'MQQBrowser/[VER]',
|
631 |
+
'MicroMessenger' => 'MicroMessenger/[VER]',
|
632 |
+
'baiduboxapp' => 'baiduboxapp/[VER]',
|
633 |
+
'baidubrowser' => 'baidubrowser/[VER]',
|
634 |
+
'SamsungBrowser' => 'SamsungBrowser/[VER]',
|
635 |
+
'Iron' => 'Iron/[VER]',
|
636 |
+
// @note: Safari 7534.48.3 is actually Version 5.1.
|
637 |
+
// @note: On BlackBerry the Version is overwriten by the OS.
|
638 |
+
'Safari' => array( 'Version/[VER]', 'Safari/[VER]' ),
|
639 |
+
'Skyfire' => 'Skyfire/[VER]',
|
640 |
+
'Tizen' => 'Tizen/[VER]',
|
641 |
+
'Webkit' => 'webkit[ /][VER]',
|
642 |
+
'PaleMoon' => 'PaleMoon/[VER]',
|
643 |
+
|
644 |
+
// Engine
|
645 |
+
'Gecko' => 'Gecko/[VER]',
|
646 |
+
'Trident' => 'Trident/[VER]',
|
647 |
+
'Presto' => 'Presto/[VER]',
|
648 |
+
'Goanna' => 'Goanna/[VER]',
|
649 |
+
|
650 |
+
// OS
|
651 |
+
'iOS' => ' \bi?OS\b [VER][ ;]{1}',
|
652 |
+
'Android' => 'Android [VER]',
|
653 |
+
'BlackBerry' => array('BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'),
|
654 |
+
'BREW' => 'BREW [VER]',
|
655 |
+
'Java' => 'Java/[VER]',
|
656 |
+
// @reference: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/08/29/introducing-the-ie9-on-windows-phone-mango-user-agent-string.aspx
|
657 |
+
// @reference: http://en.wikipedia.org/wiki/Windows_NT#Releases
|
658 |
+
'Windows Phone OS' => array( 'Windows Phone OS [VER]', 'Windows Phone [VER]'),
|
659 |
+
'Windows Phone' => 'Windows Phone [VER]',
|
660 |
+
'Windows CE' => 'Windows CE/[VER]',
|
661 |
+
// http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/6be392da-4d2f-41b4-8354-8dcee20c85cd
|
662 |
+
'Windows NT' => 'Windows NT [VER]',
|
663 |
+
'Symbian' => array('SymbianOS/[VER]', 'Symbian/[VER]'),
|
664 |
+
'webOS' => array('webOS/[VER]', 'hpwOS/[VER];'),
|
665 |
+
);
|
666 |
+
|
667 |
+
/**
|
668 |
+
* Construct an instance of this class.
|
669 |
+
*
|
670 |
+
* @param array $headers Specify the headers as injection. Should be PHP _SERVER flavored.
|
671 |
+
* If left empty, will use the global _SERVER['HTTP_*'] vars instead.
|
672 |
+
* @param string $userAgent Inject the User-Agent header. If null, will use HTTP_USER_AGENT
|
673 |
+
* from the $headers array instead.
|
674 |
+
*/
|
675 |
+
public function __construct(
|
676 |
+
array $headers = null,
|
677 |
+
$userAgent = null
|
678 |
+
) {
|
679 |
+
$this->setHttpHeaders($headers);
|
680 |
+
$this->setUserAgent($userAgent);
|
681 |
+
}
|
682 |
+
|
683 |
+
/**
|
684 |
+
* Get the current script version.
|
685 |
+
* This is useful for the demo.php file,
|
686 |
+
* so people can check on what version they are testing
|
687 |
+
* for mobile devices.
|
688 |
+
*
|
689 |
+
* @return string The version number in semantic version format.
|
690 |
+
*/
|
691 |
+
public static function getScriptVersion()
|
692 |
+
{
|
693 |
+
return self::VERSION;
|
694 |
+
}
|
695 |
+
|
696 |
+
/**
|
697 |
+
* Set the HTTP Headers. Must be PHP-flavored. This method will reset existing headers.
|
698 |
+
*
|
699 |
+
* @param array $httpHeaders The headers to set. If null, then using PHP's _SERVER to extract
|
700 |
+
* the headers. The default null is left for backwards compatibility.
|
701 |
+
*/
|
702 |
+
public function setHttpHeaders($httpHeaders = null)
|
703 |
+
{
|
704 |
+
// use global _SERVER if $httpHeaders aren't defined
|
705 |
+
if (!is_array($httpHeaders) || !count($httpHeaders)) {
|
706 |
+
$httpHeaders = $_SERVER;
|
707 |
+
}
|
708 |
+
|
709 |
+
// clear existing headers
|
710 |
+
$this->httpHeaders = array();
|
711 |
+
|
712 |
+
// Only save HTTP headers. In PHP land, that means only _SERVER vars that
|
713 |
+
// start with HTTP_.
|
714 |
+
foreach ($httpHeaders as $key => $value) {
|
715 |
+
if (substr($key, 0, 5) === 'HTTP_') {
|
716 |
+
$this->httpHeaders[$key] = $value;
|
717 |
+
}
|
718 |
+
}
|
719 |
+
|
720 |
+
// In case we're dealing with CloudFront, we need to know.
|
721 |
+
$this->setCfHeaders($httpHeaders);
|
722 |
+
}
|
723 |
+
|
724 |
+
/**
|
725 |
+
* Retrieves the HTTP headers.
|
726 |
+
*
|
727 |
+
* @return array
|
728 |
+
*/
|
729 |
+
public function getHttpHeaders()
|
730 |
+
{
|
731 |
+
return $this->httpHeaders;
|
732 |
+
}
|
733 |
+
|
734 |
+
/**
|
735 |
+
* Retrieves a particular header. If it doesn't exist, no exception/error is caused.
|
736 |
+
* Simply null is returned.
|
737 |
+
*
|
738 |
+
* @param string $header The name of the header to retrieve. Can be HTTP compliant such as
|
739 |
+
* "User-Agent" or "X-Device-User-Agent" or can be php-esque with the
|
740 |
+
* all-caps, HTTP_ prefixed, underscore seperated awesomeness.
|
741 |
+
*
|
742 |
+
* @return string|null The value of the header.
|
743 |
+
*/
|
744 |
+
public function getHttpHeader($header)
|
745 |
+
{
|
746 |
+
// are we using PHP-flavored headers?
|
747 |
+
if (strpos($header, '_') === false) {
|
748 |
+
$header = str_replace('-', '_', $header);
|
749 |
+
$header = strtoupper($header);
|
750 |
+
}
|
751 |
+
|
752 |
+
// test the alternate, too
|
753 |
+
$altHeader = 'HTTP_' . $header;
|
754 |
+
|
755 |
+
//Test both the regular and the HTTP_ prefix
|
756 |
+
if (isset($this->httpHeaders[$header])) {
|
757 |
+
return $this->httpHeaders[$header];
|
758 |
+
} elseif (isset($this->httpHeaders[$altHeader])) {
|
759 |
+
return $this->httpHeaders[$altHeader];
|
760 |
+
}
|
761 |
+
|
762 |
+
return null;
|
763 |
+
}
|
764 |
+
|
765 |
+
public function getMobileHeaders()
|
766 |
+
{
|
767 |
+
return self::$mobileHeaders;
|
768 |
+
}
|
769 |
+
|
770 |
+
/**
|
771 |
+
* Get all possible HTTP headers that
|
772 |
+
* can contain the User-Agent string.
|
773 |
+
*
|
774 |
+
* @return array List of HTTP headers.
|
775 |
+
*/
|
776 |
+
public function getUaHttpHeaders()
|
777 |
+
{
|
778 |
+
return self::$uaHttpHeaders;
|
779 |
+
}
|
780 |
+
|
781 |
+
|
782 |
+
/**
|
783 |
+
* Set CloudFront headers
|
784 |
+
* http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web-device
|
785 |
+
*
|
786 |
+
* @param array $cfHeaders List of HTTP headers
|
787 |
+
*
|
788 |
+
* @return boolean If there were CloudFront headers to be set
|
789 |
+
*/
|
790 |
+
public function setCfHeaders($cfHeaders = null) {
|
791 |
+
// use global _SERVER if $cfHeaders aren't defined
|
792 |
+
if (!is_array($cfHeaders) || !count($cfHeaders)) {
|
793 |
+
$cfHeaders = $_SERVER;
|
794 |
+
}
|
795 |
+
|
796 |
+
// clear existing headers
|
797 |
+
$this->cloudfrontHeaders = array();
|
798 |
+
|
799 |
+
// Only save CLOUDFRONT headers. In PHP land, that means only _SERVER vars that
|
800 |
+
// start with cloudfront-.
|
801 |
+
$response = false;
|
802 |
+
foreach ($cfHeaders as $key => $value) {
|
803 |
+
if (substr(strtolower($key), 0, 16) === 'http_cloudfront_') {
|
804 |
+
$this->cloudfrontHeaders[strtoupper($key)] = $value;
|
805 |
+
$response = true;
|
806 |
+
}
|
807 |
+
}
|
808 |
+
|
809 |
+
return $response;
|
810 |
+
}
|
811 |
+
|
812 |
+
/**
|
813 |
+
* Retrieves the cloudfront headers.
|
814 |
+
*
|
815 |
+
* @return array
|
816 |
+
*/
|
817 |
+
public function getCfHeaders()
|
818 |
+
{
|
819 |
+
return $this->cloudfrontHeaders;
|
820 |
+
}
|
821 |
+
|
822 |
+
/**
|
823 |
+
* Set the User-Agent to be used.
|
824 |
+
*
|
825 |
+
* @param string $userAgent The user agent string to set.
|
826 |
+
*
|
827 |
+
* @return string|null
|
828 |
+
*/
|
829 |
+
public function setUserAgent($userAgent = null)
|
830 |
+
{
|
831 |
+
// Invalidate cache due to #375
|
832 |
+
$this->cache = array();
|
833 |
+
|
834 |
+
if (false === empty($userAgent)) {
|
835 |
+
return $this->userAgent = $userAgent;
|
836 |
+
} else {
|
837 |
+
$this->userAgent = null;
|
838 |
+
foreach ($this->getUaHttpHeaders() as $altHeader) {
|
839 |
+
if (false === empty($this->httpHeaders[$altHeader])) { // @todo: should use getHttpHeader(), but it would be slow. (Serban)
|
840 |
+
$this->userAgent .= $this->httpHeaders[$altHeader] . " ";
|
841 |
+
}
|
842 |
+
}
|
843 |
+
|
844 |
+
if (!empty($this->userAgent)) {
|
845 |
+
return $this->userAgent = trim($this->userAgent);
|
846 |
+
}
|
847 |
+
}
|
848 |
+
|
849 |
+
if (count($this->getCfHeaders()) > 0) {
|
850 |
+
return $this->userAgent = 'Amazon CloudFront';
|
851 |
+
}
|
852 |
+
return $this->userAgent = null;
|
853 |
+
}
|
854 |
+
|
855 |
+
/**
|
856 |
+
* Retrieve the User-Agent.
|
857 |
+
*
|
858 |
+
* @return string|null The user agent if it's set.
|
859 |
+
*/
|
860 |
+
public function getUserAgent()
|
861 |
+
{
|
862 |
+
return $this->userAgent;
|
863 |
+
}
|
864 |
+
|
865 |
+
/**
|
866 |
+
* Set the detection type. Must be one of self::DETECTION_TYPE_MOBILE or
|
867 |
+
* self::DETECTION_TYPE_EXTENDED. Otherwise, nothing is set.
|
868 |
+
*
|
869 |
+
* @deprecated since version 2.6.9
|
870 |
+
*
|
871 |
+
* @param string $type The type. Must be a self::DETECTION_TYPE_* constant. The default
|
872 |
+
* parameter is null which will default to self::DETECTION_TYPE_MOBILE.
|
873 |
+
*/
|
874 |
+
public function setDetectionType($type = null)
|
875 |
+
{
|
876 |
+
if ($type === null) {
|
877 |
+
$type = self::DETECTION_TYPE_MOBILE;
|
878 |
+
}
|
879 |
+
|
880 |
+
if ($type !== self::DETECTION_TYPE_MOBILE && $type !== self::DETECTION_TYPE_EXTENDED) {
|
881 |
+
return;
|
882 |
+
}
|
883 |
+
|
884 |
+
$this->detectionType = $type;
|
885 |
+
}
|
886 |
+
|
887 |
+
public function getMatchingRegex()
|
888 |
+
{
|
889 |
+
return $this->matchingRegex;
|
890 |
+
}
|
891 |
+
|
892 |
+
public function getMatchesArray()
|
893 |
+
{
|
894 |
+
return $this->matchesArray;
|
895 |
+
}
|
896 |
+
|
897 |
+
/**
|
898 |
+
* Retrieve the list of known phone devices.
|
899 |
+
*
|
900 |
+
* @return array List of phone devices.
|
901 |
+
*/
|
902 |
+
public static function getPhoneDevices()
|
903 |
+
{
|
904 |
+
return self::$phoneDevices;
|
905 |
+
}
|
906 |
+
|
907 |
+
/**
|
908 |
+
* Retrieve the list of known tablet devices.
|
909 |
+
*
|
910 |
+
* @return array List of tablet devices.
|
911 |
+
*/
|
912 |
+
public static function getTabletDevices()
|
913 |
+
{
|
914 |
+
return self::$tabletDevices;
|
915 |
+
}
|
916 |
+
|
917 |
+
/**
|
918 |
+
* Alias for getBrowsers() method.
|
919 |
+
*
|
920 |
+
* @return array List of user agents.
|
921 |
+
*/
|
922 |
+
public static function getUserAgents()
|
923 |
+
{
|
924 |
+
return self::getBrowsers();
|
925 |
+
}
|
926 |
+
|
927 |
+
/**
|
928 |
+
* Retrieve the list of known browsers. Specifically, the user agents.
|
929 |
+
*
|
930 |
+
* @return array List of browsers / user agents.
|
931 |
+
*/
|
932 |
+
public static function getBrowsers()
|
933 |
+
{
|
934 |
+
return self::$browsers;
|
935 |
+
}
|
936 |
+
|
937 |
+
/**
|
938 |
+
* Retrieve the list of known utilities.
|
939 |
+
*
|
940 |
+
* @return array List of utilities.
|
941 |
+
*/
|
942 |
+
public static function getUtilities()
|
943 |
+
{
|
944 |
+
return self::$utilities;
|
945 |
+
}
|
946 |
+
|
947 |
+
/**
|
948 |
+
* Method gets the mobile detection rules. This method is used for the magic methods $detect->is*().
|
949 |
+
*
|
950 |
+
* @deprecated since version 2.6.9
|
951 |
+
*
|
952 |
+
* @return array All the rules (but not extended).
|
953 |
+
*/
|
954 |
+
public static function getMobileDetectionRules()
|
955 |
+
{
|
956 |
+
static $rules;
|
957 |
+
|
958 |
+
if (!$rules) {
|
959 |
+
$rules = array_merge(
|
960 |
+
self::$phoneDevices,
|
961 |
+
self::$tabletDevices,
|
962 |
+
self::$operatingSystems,
|
963 |
+
self::$browsers
|
964 |
+
);
|
965 |
+
}
|
966 |
+
|
967 |
+
return $rules;
|
968 |
+
|
969 |
+
}
|
970 |
+
|
971 |
+
/**
|
972 |
+
* Method gets the mobile detection rules + utilities.
|
973 |
+
* The reason this is separate is because utilities rules
|
974 |
+
* don't necessary imply mobile. This method is used inside
|
975 |
+
* the new $detect->is('stuff') method.
|
976 |
+
*
|
977 |
+
* @deprecated since version 2.6.9
|
978 |
+
*
|
979 |
+
* @return array All the rules + extended.
|
980 |
+
*/
|
981 |
+
public function getMobileDetectionRulesExtended()
|
982 |
+
{
|
983 |
+
static $rules;
|
984 |
+
|
985 |
+
if (!$rules) {
|
986 |
+
// Merge all rules together.
|
987 |
+
$rules = array_merge(
|
988 |
+
self::$phoneDevices,
|
989 |
+
self::$tabletDevices,
|
990 |
+
self::$operatingSystems,
|
991 |
+
self::$browsers,
|
992 |
+
self::$utilities
|
993 |
+
);
|
994 |
+
}
|
995 |
+
|
996 |
+
return $rules;
|
997 |
+
}
|
998 |
+
|
999 |
+
/**
|
1000 |
+
* Retrieve the current set of rules.
|
1001 |
+
*
|
1002 |
+
* @deprecated since version 2.6.9
|
1003 |
+
*
|
1004 |
+
* @return array
|
1005 |
+
*/
|
1006 |
+
public function getRules()
|
1007 |
+
{
|
1008 |
+
if ($this->detectionType == self::DETECTION_TYPE_EXTENDED) {
|
1009 |
+
return self::getMobileDetectionRulesExtended();
|
1010 |
+
} else {
|
1011 |
+
return self::getMobileDetectionRules();
|
1012 |
+
}
|
1013 |
+
}
|
1014 |
+
|
1015 |
+
/**
|
1016 |
+
* Retrieve the list of mobile operating systems.
|
1017 |
+
*
|
1018 |
+
* @return array The list of mobile operating systems.
|
1019 |
+
*/
|
1020 |
+
public static function getOperatingSystems()
|
1021 |
+
{
|
1022 |
+
return self::$operatingSystems;
|
1023 |
+
}
|
1024 |
+
|
1025 |
+
/**
|
1026 |
+
* Check the HTTP headers for signs of mobile.
|
1027 |
+
* This is the fastest mobile check possible; it's used
|
1028 |
+
* inside isMobile() method.
|
1029 |
+
*
|
1030 |
+
* @return bool
|
1031 |
+
*/
|
1032 |
+
public function checkHttpHeadersForMobile()
|
1033 |
+
{
|
1034 |
+
|
1035 |
+
foreach ($this->getMobileHeaders() as $mobileHeader => $matchType) {
|
1036 |
+
if (isset($this->httpHeaders[$mobileHeader])) {
|
1037 |
+
if (is_array($matchType['matches'])) {
|
1038 |
+
foreach ($matchType['matches'] as $_match) {
|
1039 |
+
if (strpos($this->httpHeaders[$mobileHeader], $_match) !== false) {
|
1040 |
+
return true;
|
1041 |
+
}
|
1042 |
+
}
|
1043 |
+
|
1044 |
+
return false;
|
1045 |
+
} else {
|
1046 |
+
return true;
|
1047 |
+
}
|
1048 |
+
}
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
return false;
|
1052 |
+
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
/**
|
1056 |
+
* Magic overloading method.
|
1057 |
+
*
|
1058 |
+
* @method boolean is[...]()
|
1059 |
+
* @param string $name
|
1060 |
+
* @param array $arguments
|
1061 |
+
* @return mixed
|
1062 |
+
* @throws BadMethodCallException when the method doesn't exist and doesn't start with 'is'
|
1063 |
+
*/
|
1064 |
+
public function __call($name, $arguments)
|
1065 |
+
{
|
1066 |
+
// make sure the name starts with 'is', otherwise
|
1067 |
+
if (substr($name, 0, 2) !== 'is') {
|
1068 |
+
throw new BadMethodCallException("No such method exists: $name");
|
1069 |
+
}
|
1070 |
+
|
1071 |
+
$this->setDetectionType(self::DETECTION_TYPE_MOBILE);
|
1072 |
+
|
1073 |
+
$key = substr($name, 2);
|
1074 |
+
|
1075 |
+
return $this->matchUAAgainstKey($key);
|
1076 |
+
}
|
1077 |
+
|
1078 |
+
/**
|
1079 |
+
* Find a detection rule that matches the current User-agent.
|
1080 |
+
*
|
1081 |
+
* @param null $userAgent deprecated
|
1082 |
+
* @return boolean
|
1083 |
+
*/
|
1084 |
+
protected function matchDetectionRulesAgainstUA($userAgent = null)
|
1085 |
+
{
|
1086 |
+
// Begin general search.
|
1087 |
+
foreach ($this->getRules() as $_regex) {
|
1088 |
+
if (empty($_regex)) {
|
1089 |
+
continue;
|
1090 |
+
}
|
1091 |
+
|
1092 |
+
if ($this->match($_regex, $userAgent)) {
|
1093 |
+
return true;
|
1094 |
+
}
|
1095 |
+
}
|
1096 |
+
|
1097 |
+
return false;
|
1098 |
+
}
|
1099 |
+
|
1100 |
+
/**
|
1101 |
+
* Search for a certain key in the rules array.
|
1102 |
+
* If the key is found then try to match the corresponding
|
1103 |
+
* regex against the User-Agent.
|
1104 |
+
*
|
1105 |
+
* @param string $key
|
1106 |
+
*
|
1107 |
+
* @return boolean
|
1108 |
+
*/
|
1109 |
+
protected function matchUAAgainstKey($key)
|
1110 |
+
{
|
1111 |
+
// Make the keys lowercase so we can match: isIphone(), isiPhone(), isiphone(), etc.
|
1112 |
+
$key = strtolower($key);
|
1113 |
+
if (false === isset($this->cache[$key])) {
|
1114 |
+
|
1115 |
+
// change the keys to lower case
|
1116 |
+
$_rules = array_change_key_case($this->getRules());
|
1117 |
+
|
1118 |
+
if (false === empty($_rules[$key])) {
|
1119 |
+
$this->cache[$key] = $this->match($_rules[$key]);
|
1120 |
+
}
|
1121 |
+
|
1122 |
+
if (false === isset($this->cache[$key])) {
|
1123 |
+
$this->cache[$key] = false;
|
1124 |
+
}
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
return $this->cache[$key];
|
1128 |
+
}
|
1129 |
+
|
1130 |
+
/**
|
1131 |
+
* Check if the device is mobile.
|
1132 |
+
* Returns true if any type of mobile device detected, including special ones
|
1133 |
+
* @param null $userAgent deprecated
|
1134 |
+
* @param null $httpHeaders deprecated
|
1135 |
+
* @return bool
|
1136 |
+
*/
|
1137 |
+
public function isMobile($userAgent = null, $httpHeaders = null)
|
1138 |
+
{
|
1139 |
+
|
1140 |
+
if ($httpHeaders) {
|
1141 |
+
$this->setHttpHeaders($httpHeaders);
|
1142 |
+
}
|
1143 |
+
|
1144 |
+
if ($userAgent) {
|
1145 |
+
$this->setUserAgent($userAgent);
|
1146 |
+
}
|
1147 |
+
|
1148 |
+
// Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
|
1149 |
+
if ($this->getUserAgent() === 'Amazon CloudFront') {
|
1150 |
+
$cfHeaders = $this->getCfHeaders();
|
1151 |
+
if(array_key_exists('HTTP_CLOUDFRONT_IS_MOBILE_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'] === 'true') {
|
1152 |
+
return true;
|
1153 |
+
}
|
1154 |
+
}
|
1155 |
+
|
1156 |
+
$this->setDetectionType(self::DETECTION_TYPE_MOBILE);
|
1157 |
+
|
1158 |
+
if ($this->checkHttpHeadersForMobile()) {
|
1159 |
+
return true;
|
1160 |
+
} else {
|
1161 |
+
return $this->matchDetectionRulesAgainstUA();
|
1162 |
+
}
|
1163 |
+
|
1164 |
+
}
|
1165 |
+
|
1166 |
+
/**
|
1167 |
+
* Check if the device is a tablet.
|
1168 |
+
* Return true if any type of tablet device is detected.
|
1169 |
+
*
|
1170 |
+
* @param string $userAgent deprecated
|
1171 |
+
* @param array $httpHeaders deprecated
|
1172 |
+
* @return bool
|
1173 |
+
*/
|
1174 |
+
public function isTablet($userAgent = null, $httpHeaders = null)
|
1175 |
+
{
|
1176 |
+
// Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
|
1177 |
+
if ($this->getUserAgent() === 'Amazon CloudFront') {
|
1178 |
+
$cfHeaders = $this->getCfHeaders();
|
1179 |
+
if(array_key_exists('HTTP_CLOUDFRONT_IS_TABLET_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_TABLET_VIEWER'] === 'true') {
|
1180 |
+
return true;
|
1181 |
+
}
|
1182 |
+
}
|
1183 |
+
|
1184 |
+
$this->setDetectionType(self::DETECTION_TYPE_MOBILE);
|
1185 |
+
|
1186 |
+
foreach (self::$tabletDevices as $_regex) {
|
1187 |
+
if ($this->match($_regex, $userAgent)) {
|
1188 |
+
return true;
|
1189 |
+
}
|
1190 |
+
}
|
1191 |
+
|
1192 |
+
return false;
|
1193 |
+
}
|
1194 |
+
|
1195 |
+
/**
|
1196 |
+
* This method checks for a certain property in the
|
1197 |
+
* userAgent.
|
1198 |
+
* @todo: The httpHeaders part is not yet used.
|
1199 |
+
*
|
1200 |
+
* @param string $key
|
1201 |
+
* @param string $userAgent deprecated
|
1202 |
+
* @param string $httpHeaders deprecated
|
1203 |
+
* @return bool|int|null
|
1204 |
+
*/
|
1205 |
+
public function is($key, $userAgent = null, $httpHeaders = null)
|
1206 |
+
{
|
1207 |
+
// Set the UA and HTTP headers only if needed (eg. batch mode).
|
1208 |
+
if ($httpHeaders) {
|
1209 |
+
$this->setHttpHeaders($httpHeaders);
|
1210 |
+
}
|
1211 |
+
|
1212 |
+
if ($userAgent) {
|
1213 |
+
$this->setUserAgent($userAgent);
|
1214 |
+
}
|
1215 |
+
|
1216 |
+
$this->setDetectionType(self::DETECTION_TYPE_EXTENDED);
|
1217 |
+
|
1218 |
+
return $this->matchUAAgainstKey($key);
|
1219 |
+
}
|
1220 |
+
|
1221 |
+
/**
|
1222 |
+
* Some detection rules are relative (not standard),
|
1223 |
+
* because of the diversity of devices, vendors and
|
1224 |
+
* their conventions in representing the User-Agent or
|
1225 |
+
* the HTTP headers.
|
1226 |
+
*
|
1227 |
+
* This method will be used to check custom regexes against
|
1228 |
+
* the User-Agent string.
|
1229 |
+
*
|
1230 |
+
* @param $regex
|
1231 |
+
* @param string $userAgent
|
1232 |
+
* @return bool
|
1233 |
+
*
|
1234 |
+
* @todo: search in the HTTP headers too.
|
1235 |
+
*/
|
1236 |
+
public function match($regex, $userAgent = null)
|
1237 |
+
{
|
1238 |
+
$match = (bool) preg_match(sprintf('#%s#is', $regex), (false === empty($userAgent) ? $userAgent : $this->userAgent), $matches);
|
1239 |
+
// If positive match is found, store the results for debug.
|
1240 |
+
if ($match) {
|
1241 |
+
$this->matchingRegex = $regex;
|
1242 |
+
$this->matchesArray = $matches;
|
1243 |
+
}
|
1244 |
+
|
1245 |
+
return $match;
|
1246 |
+
}
|
1247 |
+
|
1248 |
+
/**
|
1249 |
+
* Get the properties array.
|
1250 |
+
*
|
1251 |
+
* @return array
|
1252 |
+
*/
|
1253 |
+
public static function getProperties()
|
1254 |
+
{
|
1255 |
+
return self::$properties;
|
1256 |
+
}
|
1257 |
+
|
1258 |
+
/**
|
1259 |
+
* Prepare the version number.
|
1260 |
+
*
|
1261 |
+
* @todo Remove the error supression from str_replace() call.
|
1262 |
+
*
|
1263 |
+
* @param string $ver The string version, like "2.6.21.2152";
|
1264 |
+
*
|
1265 |
+
* @return float
|
1266 |
+
*/
|
1267 |
+
public function prepareVersionNo($ver)
|
1268 |
+
{
|
1269 |
+
$ver = str_replace(array('_', ' ', '/'), '.', $ver);
|
1270 |
+
$arrVer = explode('.', $ver, 2);
|
1271 |
+
|
1272 |
+
if (isset($arrVer[1])) {
|
1273 |
+
$arrVer[1] = @str_replace('.', '', $arrVer[1]); // @todo: treat strings versions.
|
1274 |
+
}
|
1275 |
+
|
1276 |
+
return (float) implode('.', $arrVer);
|
1277 |
+
}
|
1278 |
+
|
1279 |
+
/**
|
1280 |
+
* Check the version of the given property in the User-Agent.
|
1281 |
+
* Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)
|
1282 |
+
*
|
1283 |
+
* @param string $propertyName The name of the property. See self::getProperties() array
|
1284 |
+
* keys for all possible properties.
|
1285 |
+
* @param string $type Either self::VERSION_TYPE_STRING to get a string value or
|
1286 |
+
* self::VERSION_TYPE_FLOAT indicating a float value. This parameter
|
1287 |
+
* is optional and defaults to self::VERSION_TYPE_STRING. Passing an
|
1288 |
+
* invalid parameter will default to the this type as well.
|
1289 |
+
*
|
1290 |
+
* @return string|float The version of the property we are trying to extract.
|
1291 |
+
*/
|
1292 |
+
public function version($propertyName, $type = self::VERSION_TYPE_STRING)
|
1293 |
+
{
|
1294 |
+
if (empty($propertyName)) {
|
1295 |
+
return false;
|
1296 |
+
}
|
1297 |
+
|
1298 |
+
// set the $type to the default if we don't recognize the type
|
1299 |
+
if ($type !== self::VERSION_TYPE_STRING && $type !== self::VERSION_TYPE_FLOAT) {
|
1300 |
+
$type = self::VERSION_TYPE_STRING;
|
1301 |
+
}
|
1302 |
+
|
1303 |
+
$properties = self::getProperties();
|
1304 |
+
|
1305 |
+
// Check if the property exists in the properties array.
|
1306 |
+
if (true === isset($properties[$propertyName])) {
|
1307 |
+
|
1308 |
+
// Prepare the pattern to be matched.
|
1309 |
+
// Make sure we always deal with an array (string is converted).
|
1310 |
+
$properties[$propertyName] = (array) $properties[$propertyName];
|
1311 |
+
|
1312 |
+
foreach ($properties[$propertyName] as $propertyMatchString) {
|
1313 |
+
|
1314 |
+
$propertyPattern = str_replace('[VER]', self::VER, $propertyMatchString);
|
1315 |
+
|
1316 |
+
// Identify and extract the version.
|
1317 |
+
preg_match(sprintf('#%s#is', $propertyPattern), $this->userAgent, $match);
|
1318 |
+
|
1319 |
+
if (false === empty($match[1])) {
|
1320 |
+
$version = ($type == self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1]);
|
1321 |
+
|
1322 |
+
return $version;
|
1323 |
+
}
|
1324 |
+
|
1325 |
+
}
|
1326 |
+
|
1327 |
+
}
|
1328 |
+
|
1329 |
+
return false;
|
1330 |
+
}
|
1331 |
+
|
1332 |
+
/**
|
1333 |
+
* Retrieve the mobile grading, using self::MOBILE_GRADE_* constants.
|
1334 |
+
*
|
1335 |
+
* @return string One of the self::MOBILE_GRADE_* constants.
|
1336 |
+
*/
|
1337 |
+
public function mobileGrade()
|
1338 |
+
{
|
1339 |
+
$isMobile = $this->isMobile();
|
1340 |
+
|
1341 |
+
if (
|
1342 |
+
// Apple iOS 4-7.0 – Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3 / 5.1 / 6.1), iPad 3 (5.1 / 6.0), iPad Mini (6.1), iPad Retina (7.0), iPhone 3GS (4.3), iPhone 4 (4.3 / 5.1), iPhone 4S (5.1 / 6.0), iPhone 5 (6.0), and iPhone 5S (7.0)
|
1343 |
+
$this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) >= 4.3 ||
|
1344 |
+
$this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) >= 4.3 ||
|
1345 |
+
$this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) >= 4.3 ||
|
1346 |
+
|
1347 |
+
// Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)
|
1348 |
+
// Android 3.1 (Honeycomb) - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM
|
1349 |
+
// Android 4.0 (ICS) - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices
|
1350 |
+
// Android 4.1 (Jelly Bean) - Tested on a Galaxy Nexus and Galaxy 7
|
1351 |
+
( $this->version('Android', self::VERSION_TYPE_FLOAT)>2.1 && $this->is('Webkit') ) ||
|
1352 |
+
|
1353 |
+
// Windows Phone 7.5-8 - Tested on the HTC Surround (7.5), HTC Trophy (7.5), LG-E900 (7.5), Nokia 800 (7.8), HTC Mazaa (7.8), Nokia Lumia 520 (8), Nokia Lumia 920 (8), HTC 8x (8)
|
1354 |
+
$this->version('Windows Phone OS', self::VERSION_TYPE_FLOAT) >= 7.5 ||
|
1355 |
+
|
1356 |
+
// Tested on the Torch 9800 (6) and Style 9670 (6), BlackBerry® Torch 9810 (7), BlackBerry Z10 (10)
|
1357 |
+
$this->is('BlackBerry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 6.0 ||
|
1358 |
+
// Blackberry Playbook (1.0-2.0) - Tested on PlayBook
|
1359 |
+
$this->match('Playbook.*Tablet') ||
|
1360 |
+
|
1361 |
+
// Palm WebOS (1.4-3.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0), HP TouchPad (3.0)
|
1362 |
+
( $this->version('webOS', self::VERSION_TYPE_FLOAT) >= 1.4 && $this->match('Palm|Pre|Pixi') ) ||
|
1363 |
+
// Palm WebOS 3.0 - Tested on HP TouchPad
|
1364 |
+
$this->match('hp.*TouchPad') ||
|
1365 |
+
|
1366 |
+
// Firefox Mobile 18 - Tested on Android 2.3 and 4.1 devices
|
1367 |
+
( $this->is('Firefox') && $this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 18 ) ||
|
1368 |
+
|
1369 |
+
// Chrome for Android - Tested on Android 4.0, 4.1 device
|
1370 |
+
( $this->is('Chrome') && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 4.0 ) ||
|
1371 |
+
|
1372 |
+
// Skyfire 4.1 - Tested on Android 2.3 device
|
1373 |
+
( $this->is('Skyfire') && $this->version('Skyfire', self::VERSION_TYPE_FLOAT) >= 4.1 && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||
|
1374 |
+
|
1375 |
+
// Opera Mobile 11.5-12: Tested on Android 2.3
|
1376 |
+
( $this->is('Opera') && $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11.5 && $this->is('AndroidOS') ) ||
|
1377 |
+
|
1378 |
+
// Meego 1.2 - Tested on Nokia 950 and N9
|
1379 |
+
$this->is('MeeGoOS') ||
|
1380 |
+
|
1381 |
+
// Tizen (pre-release) - Tested on early hardware
|
1382 |
+
$this->is('Tizen') ||
|
1383 |
+
|
1384 |
+
// Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser
|
1385 |
+
// @todo: more tests here!
|
1386 |
+
$this->is('Dolfin') && $this->version('Bada', self::VERSION_TYPE_FLOAT) >= 2.0 ||
|
1387 |
+
|
1388 |
+
// UC Browser - Tested on Android 2.3 device
|
1389 |
+
( ($this->is('UC Browser') || $this->is('Dolfin')) && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||
|
1390 |
+
|
1391 |
+
// Kindle 3 and Fire - Tested on the built-in WebKit browser for each
|
1392 |
+
( $this->match('Kindle Fire') ||
|
1393 |
+
$this->is('Kindle') && $this->version('Kindle', self::VERSION_TYPE_FLOAT) >= 3.0 ) ||
|
1394 |
+
|
1395 |
+
// Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet
|
1396 |
+
$this->is('AndroidOS') && $this->is('NookTablet') ||
|
1397 |
+
|
1398 |
+
// Chrome Desktop 16-24 - Tested on OS X 10.7 and Windows 7
|
1399 |
+
$this->version('Chrome', self::VERSION_TYPE_FLOAT) >= 16 && !$isMobile ||
|
1400 |
+
|
1401 |
+
// Safari Desktop 5-6 - Tested on OS X 10.7 and Windows 7
|
1402 |
+
$this->version('Safari', self::VERSION_TYPE_FLOAT) >= 5.0 && !$isMobile ||
|
1403 |
+
|
1404 |
+
// Firefox Desktop 10-18 - Tested on OS X 10.7 and Windows 7
|
1405 |
+
$this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 10.0 && !$isMobile ||
|
1406 |
+
|
1407 |
+
// Internet Explorer 7-9 - Tested on Windows XP, Vista and 7
|
1408 |
+
$this->version('IE', self::VERSION_TYPE_FLOAT) >= 7.0 && !$isMobile ||
|
1409 |
+
|
1410 |
+
// Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7
|
1411 |
+
$this->version('Opera', self::VERSION_TYPE_FLOAT) >= 10 && !$isMobile
|
1412 |
+
){
|
1413 |
+
return self::MOBILE_GRADE_A;
|
1414 |
+
}
|
1415 |
+
|
1416 |
+
if (
|
1417 |
+
$this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT)<4.3 ||
|
1418 |
+
$this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT)<4.3 ||
|
1419 |
+
$this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT)<4.3 ||
|
1420 |
+
|
1421 |
+
// Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770
|
1422 |
+
$this->is('Blackberry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 5 && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT)<6 ||
|
1423 |
+
|
1424 |
+
//Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3
|
1425 |
+
($this->version('Opera Mini', self::VERSION_TYPE_FLOAT) >= 5.0 && $this->version('Opera Mini', self::VERSION_TYPE_FLOAT) <= 7.0 &&
|
1426 |
+
($this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 || $this->is('iOS')) ) ||
|
1427 |
+
|
1428 |
+
// Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)
|
1429 |
+
$this->match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||
|
1430 |
+
|
1431 |
+
// @todo: report this (tested on Nokia N71)
|
1432 |
+
$this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11 && $this->is('SymbianOS')
|
1433 |
+
){
|
1434 |
+
return self::MOBILE_GRADE_B;
|
1435 |
+
}
|
1436 |
+
|
1437 |
+
if (
|
1438 |
+
// Blackberry 4.x - Tested on the Curve 8330
|
1439 |
+
$this->version('BlackBerry', self::VERSION_TYPE_FLOAT) <= 5.0 ||
|
1440 |
+
// Windows Mobile - Tested on the HTC Leo (WinMo 5.2)
|
1441 |
+
$this->match('MSIEMobile|Windows CE.*Mobile') || $this->version('Windows Mobile', self::VERSION_TYPE_FLOAT) <= 5.2 ||
|
1442 |
+
|
1443 |
+
// Tested on original iPhone (3.1), iPhone 3 (3.2)
|
1444 |
+
$this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) <= 3.2 ||
|
1445 |
+
$this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) <= 3.2 ||
|
1446 |
+
$this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) <= 3.2 ||
|
1447 |
+
|
1448 |
+
// Internet Explorer 7 and older - Tested on Windows XP
|
1449 |
+
$this->version('IE', self::VERSION_TYPE_FLOAT) <= 7.0 && !$isMobile
|
1450 |
+
){
|
1451 |
+
return self::MOBILE_GRADE_C;
|
1452 |
+
}
|
1453 |
+
|
1454 |
+
// All older smartphone platforms and featurephones - Any device that doesn't support media queries
|
1455 |
+
// will receive the basic, C grade experience.
|
1456 |
+
return self::MOBILE_GRADE_C;
|
1457 |
+
}
|
1458 |
+
}
|
includes/global/common.php
CHANGED
@@ -44,7 +44,7 @@ class Envira_Gallery_Common {
|
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
-
$this->base =
|
48 |
|
49 |
}
|
50 |
|
@@ -244,9 +244,14 @@ class Envira_Gallery_Common {
|
|
244 |
public function get_lightbox_themes() {
|
245 |
|
246 |
$themes = array(
|
|
|
|
|
|
|
|
|
|
|
247 |
array(
|
248 |
'value' => 'base',
|
249 |
-
'name' => __( '
|
250 |
'file' => $this->base->file
|
251 |
)
|
252 |
);
|
@@ -624,7 +629,7 @@ class Envira_Gallery_Common {
|
|
624 |
'thumbnails_position' => 'bottom',
|
625 |
|
626 |
// Mobile
|
627 |
-
|
628 |
'mobile' => 1,
|
629 |
'mobile_width' => 320,
|
630 |
'mobile_height' => 240,
|
@@ -634,6 +639,8 @@ class Envira_Gallery_Common {
|
|
634 |
'mobile_arrows' => 1,
|
635 |
'mobile_toolbar' => 1,
|
636 |
'mobile_thumbnails' => 1,
|
|
|
|
|
637 |
|
638 |
// Misc
|
639 |
'title' => '',
|
@@ -643,13 +650,11 @@ class Envira_Gallery_Common {
|
|
643 |
);
|
644 |
|
645 |
// For Lite, change some defaults
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
$defaults['mobile_thumbnails'] = 0;
|
652 |
-
}
|
653 |
|
654 |
// Allow devs to filter the defaults.
|
655 |
$defaults = apply_filters( 'envira_gallery_defaults', $defaults, $post_id );
|
@@ -820,8 +825,6 @@ class Envira_Gallery_Common {
|
|
820 |
// We only want to resize Media Library images, so we can be sure they get deleted correctly when appropriate.
|
821 |
$get_attachment = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE guid='%s'", $url ) );
|
822 |
|
823 |
-
// print_r ($get_attachment); exit;
|
824 |
-
|
825 |
// Load the WordPress image editor.
|
826 |
$editor = wp_get_image_editor( $file_path );
|
827 |
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
48 |
|
49 |
}
|
50 |
|
244 |
public function get_lightbox_themes() {
|
245 |
|
246 |
$themes = array(
|
247 |
+
// array(
|
248 |
+
// 'value' => 'base_dark',
|
249 |
+
// 'name' => __( 'Base (Dark)', 'envira-gallery' ),
|
250 |
+
// 'file' => $this->base->file
|
251 |
+
// ),
|
252 |
array(
|
253 |
'value' => 'base',
|
254 |
+
'name' => __( 'Legacy', 'envira-gallery' ),
|
255 |
'file' => $this->base->file
|
256 |
)
|
257 |
);
|
629 |
'thumbnails_position' => 'bottom',
|
630 |
|
631 |
// Mobile
|
632 |
+
// 'mobile_columns' => 1,
|
633 |
'mobile' => 1,
|
634 |
'mobile_width' => 320,
|
635 |
'mobile_height' => 240,
|
639 |
'mobile_arrows' => 1,
|
640 |
'mobile_toolbar' => 1,
|
641 |
'mobile_thumbnails' => 1,
|
642 |
+
'mobile_thumbnails_width' => 75,
|
643 |
+
'mobile_thumbnails_height' => 50,
|
644 |
|
645 |
// Misc
|
646 |
'title' => '',
|
650 |
);
|
651 |
|
652 |
// For Lite, change some defaults
|
653 |
+
$defaults['toolbar'] = 0;
|
654 |
+
$defaults['thumbnails'] = 0;
|
655 |
+
$defaults['mobile_touchwipe'] = 0;
|
656 |
+
$defaults['mobile_toolbar'] = 0;
|
657 |
+
$defaults['mobile_thumbnails'] = 0;
|
|
|
|
|
658 |
|
659 |
// Allow devs to filter the defaults.
|
660 |
$defaults = apply_filters( 'envira_gallery_defaults', $defaults, $post_id );
|
825 |
// We only want to resize Media Library images, so we can be sure they get deleted correctly when appropriate.
|
826 |
$get_attachment = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE guid='%s'", $url ) );
|
827 |
|
|
|
|
|
828 |
// Load the WordPress image editor.
|
829 |
$editor = wp_get_image_editor( $file_path );
|
830 |
|
includes/global/posttype.php
CHANGED
@@ -44,7 +44,7 @@ class Envira_Gallery_Posttype {
|
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
-
$this->base =
|
48 |
|
49 |
// Build the labels for the post type.
|
50 |
$labels = array(
|
@@ -78,32 +78,6 @@ class Envira_Gallery_Posttype {
|
|
78 |
'supports' => array( 'title' ),
|
79 |
);
|
80 |
|
81 |
-
// Define custom capaibilities if we're running Envira Gallery.
|
82 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
83 |
-
$args['capabilities'] = array(
|
84 |
-
// Meta caps
|
85 |
-
'edit_post' => 'edit_envira_gallery',
|
86 |
-
'read_post' => 'read_envira_gallery',
|
87 |
-
'delete_post' => 'delete_envira_gallery',
|
88 |
-
|
89 |
-
// Primitive caps outside map_meta_cap()
|
90 |
-
'edit_posts' => 'edit_envira_galleries',
|
91 |
-
'edit_others_posts' => 'edit_other_envira_galleries',
|
92 |
-
'publish_posts' => 'publish_envira_galleries',
|
93 |
-
'read_private_posts' => 'read_private_envira_galleries',
|
94 |
-
|
95 |
-
// Primitive caps used within map_meta_cap()
|
96 |
-
'read' => 'read',
|
97 |
-
'delete_posts' => 'delete_envira_galleries',
|
98 |
-
'delete_private_posts' => 'delete_private_envira_galleries',
|
99 |
-
'delete_published_posts'=> 'delete_published_envira_galleries',
|
100 |
-
'delete_others_posts' => 'delete_others_envira_galleries',
|
101 |
-
'edit_private_posts' => 'edit_private_envira_galleries',
|
102 |
-
'edit_published_posts' => 'edit_published_envira_galleries',
|
103 |
-
'edit_posts' => 'create_envira_galleries',
|
104 |
-
);
|
105 |
-
}
|
106 |
-
|
107 |
// Filter arguments.
|
108 |
$args = apply_filters( 'envira_gallery_post_type_args', $args );
|
109 |
|
44 |
public function __construct() {
|
45 |
|
46 |
// Load the base class object.
|
47 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
48 |
|
49 |
// Build the labels for the post type.
|
50 |
$labels = array(
|
78 |
'supports' => array( 'title' ),
|
79 |
);
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
// Filter arguments.
|
82 |
$args = apply_filters( 'envira_gallery_post_type_args', $args );
|
83 |
|
includes/global/shortcode.php
CHANGED
@@ -80,7 +80,7 @@ class Envira_Gallery_Shortcode {
|
|
80 |
public function __construct() {
|
81 |
|
82 |
// Load the base class object.
|
83 |
-
$this->base =
|
84 |
|
85 |
// Register main gallery style.
|
86 |
wp_register_style( $this->base->plugin_slug . '-style', plugins_url( 'assets/css/envira.css', $this->base->file ), array(), $this->base->version );
|
@@ -346,15 +346,21 @@ class Envira_Gallery_Shortcode {
|
|
346 |
|
347 |
// Caption
|
348 |
// Lite doesn't support captions, so we fallback to the title.
|
349 |
-
|
350 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
} else {
|
352 |
-
|
353 |
-
$caption = do_shortcode( str_replace( "\n", '<br />', esc_attr( $item['caption'] ) ) );
|
354 |
-
}
|
355 |
}
|
356 |
|
357 |
-
if (
|
358 |
$output .= '<a href="' . esc_url( $item['link'] ) . '" class="envira-gallery-' . sanitize_html_class( $data['id'] ) . ' envira-gallery-link" ' . $html5_attribute . '="enviragallery' . sanitize_html_class( $data['id'] ) . '" title="' . strip_tags( html_entity_decode( $item['title'] ) ) . '" data-envira-caption="' . $caption . '" data-envira-retina="' . ( isset( $item['lightbox_retina_image'] ) ? $item['lightbox_retina_image'] : '' ) . '" data-thumbnail="' . esc_url( $item['thumb'] ) . '"' . ( ( isset($item['link_new_window']) && $item['link_new_window'] == 1 ) ? ' target="_blank"' : '' ) . ' ' . apply_filters( 'envira_gallery_output_link_attr', '', $id, $item, $data, $i ) . ' itemprop="contentUrl">';
|
359 |
}
|
360 |
|
@@ -370,7 +376,7 @@ class Envira_Gallery_Shortcode {
|
|
370 |
$output .= $output_item;
|
371 |
$output = apply_filters( 'envira_gallery_output_after_image', $output, $id, $item, $data, $i );
|
372 |
|
373 |
-
if (
|
374 |
$output .= '</a>';
|
375 |
}
|
376 |
|
@@ -830,7 +836,7 @@ class Envira_Gallery_Shortcode {
|
|
830 |
?>
|
831 |
envira_gallery_options = {
|
832 |
// All of these options are for Envira Lite with Fancybox 1 to try and match Fancybox 2.
|
833 |
-
padding: 15
|
834 |
cyclic: true,
|
835 |
titlePosition: '<?php echo $title_fb1; ?>',
|
836 |
// End options for Envira Lite with Fancybox 1.
|
@@ -840,18 +846,8 @@ class Envira_Gallery_Shortcode {
|
|
840 |
<?php if ( ! $this->get_config( 'keyboard', $data ) ) : ?>
|
841 |
keys: 0,
|
842 |
<?php endif; ?>
|
843 |
-
<?php
|
844 |
-
|
845 |
-
//print_r ($data); exit;
|
846 |
-
|
847 |
-
if ( isset($data['config']['social_lightbox']) && $data['config']['social_lightbox'] == 1 &&
|
848 |
-
( null !== $data['config']['social_lightbox_orientation'] && $data['config']['social_lightbox_orientation'] == "vertical" ) ):
|
849 |
-
|
850 |
-
?>
|
851 |
-
margin: 50,
|
852 |
-
<?php endif; ?>
|
853 |
-
|
854 |
-
arrows: <?php echo $this->get_config( 'arrows', $data ); ?>,
|
855 |
aspectRatio: <?php echo $this->get_config( 'aspect', $data ); ?>,
|
856 |
loop: <?php echo $this->get_config( 'loop', $data ); ?>,
|
857 |
mouseWheel: <?php echo $this->get_config( 'mousewheel', $data ); ?>,
|
@@ -937,10 +933,15 @@ class Envira_Gallery_Shortcode {
|
|
937 |
return $(current.element).data('thumbnail');
|
938 |
}
|
939 |
},
|
940 |
-
|
|
|
|
|
|
|
|
|
|
|
941 |
},
|
942 |
<?php endif; ?>
|
943 |
-
<?php if ( $this->get_config( 'toolbar', $data ) ) : ?>
|
944 |
buttons: {
|
945 |
tpl: '<?php echo $this->get_toolbar_template( $data ); ?>',
|
946 |
position: '<?php echo $this->get_config( 'toolbar_position', $data ); ?>',
|
@@ -1176,9 +1177,18 @@ class Envira_Gallery_Shortcode {
|
|
1176 |
});
|
1177 |
|
1178 |
<?php
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1182 |
?>
|
1183 |
</script>
|
1184 |
<?php
|
@@ -1200,7 +1210,12 @@ class Envira_Gallery_Shortcode {
|
|
1200 |
continue;
|
1201 |
}
|
1202 |
|
1203 |
-
|
|
|
|
|
|
|
|
|
|
|
1204 |
break;
|
1205 |
}
|
1206 |
|
@@ -1221,7 +1236,12 @@ class Envira_Gallery_Shortcode {
|
|
1221 |
continue;
|
1222 |
}
|
1223 |
|
1224 |
-
|
|
|
|
|
|
|
|
|
|
|
1225 |
break;
|
1226 |
}
|
1227 |
|
@@ -1375,7 +1395,7 @@ class Envira_Gallery_Shortcode {
|
|
1375 |
// Detect if user is on a mobile device - if so, override $mobile flag which may be manually set
|
1376 |
// by out of date addons or plugins
|
1377 |
if ( $this->get_config( 'mobile', $data ) ) {
|
1378 |
-
$mobile =
|
1379 |
}
|
1380 |
|
1381 |
// Define variable
|
@@ -1614,38 +1634,6 @@ class Envira_Gallery_Shortcode {
|
|
1614 |
|
1615 |
$instance = Envira_Gallery_Common::get_instance();
|
1616 |
|
1617 |
-
// If we are on a mobile device, some config keys have mobile equivalents, which we need to check instead
|
1618 |
-
if ( wp_is_mobile() ) {
|
1619 |
-
if ( class_exists( 'Envira_Gallery' ) ) {
|
1620 |
-
$mobile_keys = array(
|
1621 |
-
'columns' => 'mobile_columns',
|
1622 |
-
'lightbox_enabled' => 'mobile_lightbox',
|
1623 |
-
'arrows' => 'mobile_arrows',
|
1624 |
-
'toolbar' => 'mobile_toolbar',
|
1625 |
-
'thumbnails' => 'mobile_thumbnails',
|
1626 |
-
);
|
1627 |
-
$mobile_keys = apply_filters( 'envira_gallery_get_config_mobile_keys', $mobile_keys );
|
1628 |
-
|
1629 |
-
// When on mobile, use used to blindly look at the mobile_social option to determine social sharing button output
|
1630 |
-
// However, what we need to do is look to see if the settings are active on the addon first
|
1631 |
-
|
1632 |
-
if ( array_key_exists( 'social', $mobile_keys ) || array_key_exists( 'social_lightbox', $mobile_keys ) ) {
|
1633 |
-
if ( !$data['config']['social'] ) {
|
1634 |
-
unset( $mobile_keys['social'] );
|
1635 |
-
}
|
1636 |
-
if ( !$data['config']['social_lightbox'] ) {
|
1637 |
-
unset( $mobile_keys['social_lightbox'] );
|
1638 |
-
}
|
1639 |
-
}
|
1640 |
-
|
1641 |
-
if ( array_key_exists( $key, $mobile_keys ) ) {
|
1642 |
-
// Use the mobile array key to get the config value
|
1643 |
-
$key = $mobile_keys[ $key ];
|
1644 |
-
}
|
1645 |
-
}
|
1646 |
-
|
1647 |
-
}
|
1648 |
-
|
1649 |
return isset( $data['config'][$key] ) ? $data['config'][$key] : $instance->get_config_default( $key );
|
1650 |
|
1651 |
}
|
80 |
public function __construct() {
|
81 |
|
82 |
// Load the base class object.
|
83 |
+
$this->base = Envira_Gallery_Lite::get_instance();
|
84 |
|
85 |
// Register main gallery style.
|
86 |
wp_register_style( $this->base->plugin_slug . '-style', plugins_url( 'assets/css/envira.css', $this->base->file ), array(), $this->base->version );
|
346 |
|
347 |
// Caption
|
348 |
// Lite doesn't support captions, so we fallback to the title.
|
349 |
+
$caption = $item['title'];
|
350 |
+
|
351 |
+
// Determine if we create a link.
|
352 |
+
// If this is a mobile device and the user has disabled lightbox, there should not be a link
|
353 |
+
// "Turn off the lightbox then the image shouldn't be clicked"
|
354 |
+
|
355 |
+
if ( envira_mobile_detect()->isMobile() && !$this->get_config( 'lightbox_enabled', $data ) ) {
|
356 |
+
$create_link = false;
|
357 |
+
} else if ( ! empty( $item['link'] ) ) {
|
358 |
+
$create_link = true;
|
359 |
} else {
|
360 |
+
$create_link = false;
|
|
|
|
|
361 |
}
|
362 |
|
363 |
+
if ( $create_link ) {
|
364 |
$output .= '<a href="' . esc_url( $item['link'] ) . '" class="envira-gallery-' . sanitize_html_class( $data['id'] ) . ' envira-gallery-link" ' . $html5_attribute . '="enviragallery' . sanitize_html_class( $data['id'] ) . '" title="' . strip_tags( html_entity_decode( $item['title'] ) ) . '" data-envira-caption="' . $caption . '" data-envira-retina="' . ( isset( $item['lightbox_retina_image'] ) ? $item['lightbox_retina_image'] : '' ) . '" data-thumbnail="' . esc_url( $item['thumb'] ) . '"' . ( ( isset($item['link_new_window']) && $item['link_new_window'] == 1 ) ? ' target="_blank"' : '' ) . ' ' . apply_filters( 'envira_gallery_output_link_attr', '', $id, $item, $data, $i ) . ' itemprop="contentUrl">';
|
365 |
}
|
366 |
|
376 |
$output .= $output_item;
|
377 |
$output = apply_filters( 'envira_gallery_output_after_image', $output, $id, $item, $data, $i );
|
378 |
|
379 |
+
if ( $create_link ) {
|
380 |
$output .= '</a>';
|
381 |
}
|
382 |
|
836 |
?>
|
837 |
envira_gallery_options = {
|
838 |
// All of these options are for Envira Lite with Fancybox 1 to try and match Fancybox 2.
|
839 |
+
padding: <?php echo in_array( $this->get_config( 'lightbox_theme', $data ), array( 'base_dark' ) ) ? '4' : '15'; ?>,
|
840 |
cyclic: true,
|
841 |
titlePosition: '<?php echo $title_fb1; ?>',
|
842 |
// End options for Envira Lite with Fancybox 1.
|
846 |
<?php if ( ! $this->get_config( 'keyboard', $data ) ) : ?>
|
847 |
keys: 0,
|
848 |
<?php endif; ?>
|
849 |
+
margin: <?php echo apply_filters( 'envirabox_margin', 60, $data ); ?>,
|
850 |
+
arrows: <?php echo in_array( $this->get_config( 'lightbox_theme', $data ), array( 'base_dark' ) ) ? 'true' : $this->get_config( 'arrows', $data ); ?>,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
851 |
aspectRatio: <?php echo $this->get_config( 'aspect', $data ); ?>,
|
852 |
loop: <?php echo $this->get_config( 'loop', $data ); ?>,
|
853 |
mouseWheel: <?php echo $this->get_config( 'mousewheel', $data ); ?>,
|
933 |
return $(current.element).data('thumbnail');
|
934 |
}
|
935 |
},
|
936 |
+
<?php if ( in_array( $this->get_config( 'lightbox_theme', $data ), array( 'base_dark' ) ) ) : ?>
|
937 |
+
dynamicMargin: true,
|
938 |
+
<?php endif; ?>
|
939 |
+
position: '<?php echo in_array( $this->get_config( 'lightbox_theme', $data ), array( 'base_dark' ) )
|
940 |
+
? 'bottom'
|
941 |
+
: $this->get_config( 'thumbnails_position', $data ); ?>'
|
942 |
},
|
943 |
<?php endif; ?>
|
944 |
+
<?php if ( $this->get_config( 'toolbar', $data ) && ! in_array( $this->get_config( 'lightbox_theme', $data ), array( 'base_dark' ) ) ) : ?>
|
945 |
buttons: {
|
946 |
tpl: '<?php echo $this->get_toolbar_template( $data ); ?>',
|
947 |
position: '<?php echo $this->get_config( 'toolbar_position', $data ); ?>',
|
1177 |
});
|
1178 |
|
1179 |
<?php
|
1180 |
+
|
1181 |
+
if ( defined('SCRIPT_DEBUG') && ! SCRIPT_DEBUG ){
|
1182 |
+
|
1183 |
+
// Minify before outputting to improve page load time.
|
1184 |
+
echo $this->minify( ob_get_clean() );
|
1185 |
+
|
1186 |
+
}else{
|
1187 |
+
|
1188 |
+
echo ob_get_clean();
|
1189 |
+
|
1190 |
+
}
|
1191 |
+
|
1192 |
?>
|
1193 |
</script>
|
1194 |
<?php
|
1210 |
continue;
|
1211 |
}
|
1212 |
|
1213 |
+
if ( file_exists( plugin_dir_path( $data['file'] ) . 'themes/' . $theme . '/style.css' ) ) {
|
1214 |
+
wp_enqueue_style( $this->base->plugin_slug . $theme . '-theme', plugins_url( 'themes/' . $theme . '/style.css', $data['file'] ), array( $this->base->plugin_slug . '-style' ) );
|
1215 |
+
}
|
1216 |
+
else {
|
1217 |
+
wp_enqueue_style( $this->base->plugin_slug . $theme . '-theme', plugins_url( 'themes/' . $theme . '/css/style.css', $data['file'] ), array( $this->base->plugin_slug . '-style' ) );
|
1218 |
+
}
|
1219 |
break;
|
1220 |
}
|
1221 |
|
1236 |
continue;
|
1237 |
}
|
1238 |
|
1239 |
+
if ( file_exists( plugin_dir_path( $data['file'] ) . 'themes/' . $theme . '/style.css' ) ) {
|
1240 |
+
wp_enqueue_style( $this->base->plugin_slug . $theme . '-theme', plugins_url( 'themes/' . $theme . '/style.css', $data['file'] ), array( $this->base->plugin_slug . '-style' ) );
|
1241 |
+
}
|
1242 |
+
else {
|
1243 |
+
wp_enqueue_style( $this->base->plugin_slug . $theme . '-theme', plugins_url( 'themes/' . $theme . '/css/style.css', $data['file'] ), array( $this->base->plugin_slug . '-style' ) );
|
1244 |
+
}
|
1245 |
break;
|
1246 |
}
|
1247 |
|
1395 |
// Detect if user is on a mobile device - if so, override $mobile flag which may be manually set
|
1396 |
// by out of date addons or plugins
|
1397 |
if ( $this->get_config( 'mobile', $data ) ) {
|
1398 |
+
$mobile = envira_mobile_detect()->isMobile();
|
1399 |
}
|
1400 |
|
1401 |
// Define variable
|
1634 |
|
1635 |
$instance = Envira_Gallery_Common::get_instance();
|
1636 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1637 |
return isset( $data['config'][$key] ) ? $data['config'][$key] : $instance->get_config_default( $key );
|
1638 |
|
1639 |
}
|
languages/envira-gallery-es_ES.mo
CHANGED
File without changes
|
languages/envira-gallery-es_ES.po
CHANGED
File without changes
|
readme.txt
CHANGED
@@ -1,33 +1,33 @@
|
|
1 |
-
===
|
2 |
Contributors: griffinjt, smub
|
3 |
-
Tags:
|
4 |
Requires at least: 4.0
|
5 |
-
Tested up to: 4.
|
6 |
Stable tag: trunk
|
7 |
License: GNU General Public License v2.0 or later
|
8 |
|
9 |
-
The best
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
= WordPress Gallery Plugin =
|
14 |
|
15 |
-
|
16 |
|
17 |
-
Envira allows you to create beautiful responsive photo and video
|
18 |
|
19 |
-
At Envira, user experience is our #1 priority
|
20 |
|
21 |
-
Envira Gallery is highly optimized for web and server performance because we understand the importance of speed when it comes to SEO and conversion. We can honestly say that Envira Gallery is the fastest WordPress gallery plugin in the market.
|
22 |
|
23 |
> <strong>Envira Gallery Pro</strong><br />
|
24 |
> This plugin is the lite version of the popular Envira Gallery plugin that comes with all the gallery features you will ever need including albums, tags, social media integration, gallery templates, deeplinking, pagination, ecommerce, image proofing, and tons more. <a href="http://enviragallery.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="Envira Gallery">Click here to purchase the best premium WordPress gallery plugin now!</a>
|
25 |
|
26 |
-
Envira has been downloaded over
|
27 |
|
28 |
https://www.youtube.com/watch?v=4jHG3LOmV-c&w=532&rel=0
|
29 |
|
30 |
-
= Drag & Drop Gallery Builder =
|
31 |
|
32 |
We were tired with the bloated and buggy gallery plugins. That's why we built Envira Gallery to adapt to your workflow and allow you to create responsive WordPress galleries in minutes. By using our easy to use <a href="http://enviragallery.com/features/drag-drop-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">drag and drop builder</a>, you can upload your photos, rearrange them, and basically create a gallery in 5 minutes or less.
|
33 |
|
@@ -67,18 +67,18 @@ See why one of the leading WordPress developers love Envira:
|
|
67 |
= Full Envira Gallery Feature List =
|
68 |
|
69 |
* Drag & Drop Gallery Builder
|
70 |
-
* 100% Responsive - Mobile Friendly
|
71 |
* Beautiful Gallery Templates for Customization
|
72 |
* <a href="http://enviragallery.com/addons/albums-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Albums</a> - Easily organize your galleries, choose cover photos, and more.
|
73 |
* <a href="http://enviragallery.com/addons/social-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Social Sharing</a> - Share your photos on Facebook, Twitter, Pinterest, and Google+
|
74 |
-
* <a href="http://enviragallery.com/addons/videos-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Video Galleries</a> - Not just for photos! You can add YouTube, Vimeo, Wistia, and
|
75 |
* <a href="http://enviragallery.com/addons/watermarking-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Watermarking</a> - Protect your images from theft with watermarking.
|
76 |
* <a href="http://enviragallery.com/addons/slideshow-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Slideshow</a> - Add beautiful slideshow with autoplay, manual controls, and more.
|
77 |
* <a href="http://enviragallery.com/addons/deeplinking-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Deeplinking</a> - Make your gallery SEO friendly and easily link to individual images with deeplinking.
|
78 |
* <a href="http://enviragallery.com/addons/pagination-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Pagination</a> - Split your large galleries into multiple pages to improve page speed, user experience, and pageviews.
|
79 |
* <a href="http://enviragallery.com/addons/proofing-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Image Proofing</a> - We made client image proofing easy for your photography business.
|
80 |
* <a href="http://enviragallery.com/addons/woocommerce-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">WooCommerce Integration</a> - Instantly display and sell your photos with the most popular eCommerce software on the web.
|
81 |
-
* <a href="http://enviragallery.com/addons/tags-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Image Tags</a> -
|
82 |
* <a href="http://enviragallery.com/addons/password-protection-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Password Protection</a> - Prevent unauthorized access to your WordPress galleries.
|
83 |
* <a href="http://enviragallery.com/addons/standalone-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Standalone Galleries</a> - Create independent galleries that are not tied to your posts or pages.
|
84 |
* <a href="http://enviragallery.com/addons/exif-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">EXIF Meta Data</a> - Display your EXIF data including camera model, aperture, shutter speed, and more.
|
@@ -185,6 +185,11 @@ Also, I'm an <a href="https://thomasgriffin.io" rel="me" title="WordPress Develo
|
|
185 |
|
186 |
== Changelog ==
|
187 |
|
|
|
|
|
|
|
|
|
|
|
188 |
= 1.5.4 =
|
189 |
* Fix: Error with lightbox script causing it not to load in some instances.
|
190 |
|
@@ -242,7 +247,7 @@ Also, I'm an <a href="https://thomasgriffin.io" rel="me" title="WordPress Develo
|
|
242 |
* Fix: Image uploader on Gallery Add/Edit screen not displaying on some tablet and mobile devices
|
243 |
* Fix: Checkmark icon wrongly displaying on modal close when editing images.
|
244 |
* Fix: Display text in warning when Envira Lite and Envira Gallery are both activated.
|
245 |
-
* Fix: Ensure that third party notification plugins don
|
246 |
* Fix: Various resets for images and captions to prevent themes overriding default behaviour
|
247 |
* Fix: Minified admin CSS for faster load times
|
248 |
* Fix: When editing an image, store any checkbox values if checked, instead of assuming 1 or 0 for better Addon compatibility.
|
@@ -418,7 +423,7 @@ Also, I'm an <a href="https://thomasgriffin.io" rel="me" title="WordPress Develo
|
|
418 |
* Fixed bug with Quicktags duplicating for image uploaded with the drag-and-drop uploader.
|
419 |
|
420 |
= 1.0.7 =
|
421 |
-
* Don
|
422 |
* Ensure to restrain thumbnail views.
|
423 |
|
424 |
= 1.0.6.1 =
|
1 |
+
=== Gallery by Envira - Responsive Photo Gallery for WordPress ===
|
2 |
Contributors: griffinjt, smub
|
3 |
+
Tags: album, content gallery, fancy gallery, fullscreen gallery, gallery, gallery lightbox, gallery plugin, gallery slider, gallery slideshow, gallery widget, grid gallery, image gallery, masonry gallery, media gallery, mosaic gallery, photo album, photo gallery, polaroid gallery, portfolio gallery, post gallery, responsive gallery, thumbnail gallery, video gallery, wordpress gallery, wordpress gallery plugin, youtube gallery
|
4 |
Requires at least: 4.0
|
5 |
+
Tested up to: 4.7
|
6 |
Stable tag: trunk
|
7 |
License: GNU General Public License v2.0 or later
|
8 |
|
9 |
+
The best WordPress gallery plugin. Drag & Drop photo gallery builder that helps you create beautiful image gallery with just a few clicks.
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
= WordPress Gallery Plugin =
|
14 |
|
15 |
+
Here at **Envira Gallery**, we believe that you shouldn't have to hire a developer to create a WordPress gallery. That's why we built <a href="http://enviragallery.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="Envira Gallery">Envira Gallery</a>, a drag & drop **photo gallery plugin** that's both EASY and POWERFUL.
|
16 |
|
17 |
+
**Envira Gallery** allows you to create beautiful responsive photo gallery and video gallery for your WordPress site in minutes, not hours!
|
18 |
|
19 |
+
At Envira Gallery, user experience is our #1 priority. That's why we put in extra effort to ensure that Envira is the best responsive **photo gallery** for WordPress. This means that your galleries will always look great on all devices (mobile, tablet, laptop, and desktop).
|
20 |
|
21 |
+
Envira Gallery is highly optimized for web and server performance because we understand the importance of speed when it comes to SEO and conversion. We can honestly say that Envira Gallery is the **fastest WordPress gallery plugin** in the market.
|
22 |
|
23 |
> <strong>Envira Gallery Pro</strong><br />
|
24 |
> This plugin is the lite version of the popular Envira Gallery plugin that comes with all the gallery features you will ever need including albums, tags, social media integration, gallery templates, deeplinking, pagination, ecommerce, image proofing, and tons more. <a href="http://enviragallery.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="Envira Gallery">Click here to purchase the best premium WordPress gallery plugin now!</a>
|
25 |
|
26 |
+
**Gallery by Envira** has been downloaded over 500,000 times. Here's why smart photographers, designers, and developers love Envira Gallery, and you will too!
|
27 |
|
28 |
https://www.youtube.com/watch?v=4jHG3LOmV-c&w=532&rel=0
|
29 |
|
30 |
+
= Drag & Drop Photo Gallery Builder =
|
31 |
|
32 |
We were tired with the bloated and buggy gallery plugins. That's why we built Envira Gallery to adapt to your workflow and allow you to create responsive WordPress galleries in minutes. By using our easy to use <a href="http://enviragallery.com/features/drag-drop-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">drag and drop builder</a>, you can upload your photos, rearrange them, and basically create a gallery in 5 minutes or less.
|
33 |
|
67 |
= Full Envira Gallery Feature List =
|
68 |
|
69 |
* Drag & Drop Gallery Builder
|
70 |
+
* 100% Responsive Gallery - Mobile Friendly
|
71 |
* Beautiful Gallery Templates for Customization
|
72 |
* <a href="http://enviragallery.com/addons/albums-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Albums</a> - Easily organize your galleries, choose cover photos, and more.
|
73 |
* <a href="http://enviragallery.com/addons/social-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Social Sharing</a> - Share your photos on Facebook, Twitter, Pinterest, and Google+
|
74 |
+
* <a href="http://enviragallery.com/addons/videos-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Video Galleries</a> - Not just for photos! You can add YouTube, Vimeo, Wistia, and other videos in your **video gallery**.
|
75 |
* <a href="http://enviragallery.com/addons/watermarking-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Watermarking</a> - Protect your images from theft with watermarking.
|
76 |
* <a href="http://enviragallery.com/addons/slideshow-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Slideshow</a> - Add beautiful slideshow with autoplay, manual controls, and more.
|
77 |
* <a href="http://enviragallery.com/addons/deeplinking-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Deeplinking</a> - Make your gallery SEO friendly and easily link to individual images with deeplinking.
|
78 |
* <a href="http://enviragallery.com/addons/pagination-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Pagination</a> - Split your large galleries into multiple pages to improve page speed, user experience, and pageviews.
|
79 |
* <a href="http://enviragallery.com/addons/proofing-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Image Proofing</a> - We made client image proofing easy for your photography business.
|
80 |
* <a href="http://enviragallery.com/addons/woocommerce-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">WooCommerce Integration</a> - Instantly display and sell your photos with the most popular eCommerce software on the web.
|
81 |
+
* <a href="http://enviragallery.com/addons/tags-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Image Tags</a> - Organize your WordPress photos with tags for easy search and display. You can use this to create a **filterable gallery**.
|
82 |
* <a href="http://enviragallery.com/addons/password-protection-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Password Protection</a> - Prevent unauthorized access to your WordPress galleries.
|
83 |
* <a href="http://enviragallery.com/addons/standalone-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Standalone Galleries</a> - Create independent galleries that are not tied to your posts or pages.
|
84 |
* <a href="http://enviragallery.com/addons/exif-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">EXIF Meta Data</a> - Display your EXIF data including camera model, aperture, shutter speed, and more.
|
185 |
|
186 |
== Changelog ==
|
187 |
|
188 |
+
= 1.5.5 =
|
189 |
+
* Added: Select Image sizes for Automatic Layout.
|
190 |
+
* Fix: Some servers limit how many images can be inserted at a time.
|
191 |
+
* Fix: Various minor bug fixes.
|
192 |
+
|
193 |
= 1.5.4 =
|
194 |
* Fix: Error with lightbox script causing it not to load in some instances.
|
195 |
|
247 |
* Fix: Image uploader on Gallery Add/Edit screen not displaying on some tablet and mobile devices
|
248 |
* Fix: Checkmark icon wrongly displaying on modal close when editing images.
|
249 |
* Fix: Display text in warning when Envira Lite and Envira Gallery are both activated.
|
250 |
+
* Fix: Ensure that third party notification plugins don’t remove the Envira Gallery logo and header from Envira’s screens
|
251 |
* Fix: Various resets for images and captions to prevent themes overriding default behaviour
|
252 |
* Fix: Minified admin CSS for faster load times
|
253 |
* Fix: When editing an image, store any checkbox values if checked, instead of assuming 1 or 0 for better Addon compatibility.
|
423 |
* Fixed bug with Quicktags duplicating for image uploaded with the drag-and-drop uploader.
|
424 |
|
425 |
= 1.0.7 =
|
426 |
+
* Don’t crop images where the original and destination dimensions match.
|
427 |
* Ensure to restrain thumbnail views.
|
428 |
|
429 |
= 1.0.6.1 =
|
themes/base_dark/css/style.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.overlay-supersize.overlay-base_dark{background-image:none;background-color:#000;overflow:hidden;overflow-y:hidden}.overlay-supersize.overlay-base_dark .envirabox-wrap{top:40px}.overlay-supersize.overlay-base_dark .envirabox-wrap .envirabox-close{top:50px;right:10px}.envirabox-wrap .envirabox-theme-base_dark a.envirabox-nav{position:fixed}.envirabox-wrap .envirabox-theme-base_dark a.envirabox-nav.envirabox-prev:hover span{background-position:0 0}.envirabox-wrap .envirabox-theme-base_dark a.envirabox-nav.envirabox-prev span{background-image:url(../images/left-nav.png);background-size:31px;background-position:0 -62px;left:0px;visibility:visible}.envirabox-wrap .envirabox-theme-base_dark a.envirabox-nav.envirabox-next:hover span{background-position:0 0}.envirabox-wrap .envirabox-theme-base_dark a.envirabox-nav.envirabox-next span{background-image:url(../images/right-nav.png);background-size:31px;background-position:0 -62px;right:0px;visibility:visible}.envirabox-wrap .envirabox-theme-base_dark a.envirabox-nav span{width:31px;height:62px;margin-top:-31px}.envirabox-wrap .envirabox-theme-base_dark .envirabox-close{background-image:url(../images/close@2x.png);background-position:0 0px;cursor:pointer;background-size:30px 30px;top:-15px;right:-15px;width:30px;height:30px}.envirabox-wrap .envirabox-theme-base_dark .envirabox-close:hover{background-position:0 0}.envirabox-wrap .envirabox-title{position:fixed;top:0;left:0;right:0;width:100%;min-height:40px;padding:10px;box-sizing:border-box;background:#2d2d2f;color:#fff;margin:0;text-align:left;font-size:14px;z-index:988060 !important;visibility:visible}.envirabox-wrap .envirabox-title span.child{margin:0;padding:0;background:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;text-shadow:none}.envirabox-wrap .envirabox-actions{position:fixed;top:9px;right:9px;z-index:988061}.envirabox-wrap .envirabox-actions .envira-download-button{display:inline-block;margin-left:9px}.envirabox-wrap .envirabox-actions .envira-download-button a{width:22px;height:22px;background-size:14px}.envirabox-wrap .envirabox-actions .envira-printing-button{display:inline-block;margin-left:9px}.envirabox-wrap .envirabox-actions .envira-printing-button a{width:22px;height:22px;background-size:14px}.envirabox-wrap .envirabox-actions .envira-fullscreen-button{display:inline-block;margin-left:9px;width:22px;height:22px;text-indent:-9999px;background-image:url(../images/fullscreen@2x.png);background-size:22px}.envirabox-wrap .envirabox-actions .envira-fullscreen-button a{display:block;width:22px;height:23px}.envirabox-wrap .envirabox-inner .envirabox-position-overlay{width:100%;text-align:center;bottom:-38px;top:inherit}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons{display:inline-block;float:none}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons.orientation-horizontal.outside{position:relative;bottom:0;min-width:inherit;max-width:inherit}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons.orientation-vertical.outside{position:relative;left:0;min-width:inherit;max-width:inherit}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons .envira-social-network{clear:none}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons .envira-social-network a.envira-social-button{margin:10px 5px 0;width:25px;height:25px;line-height:25px;background-size:151px 25px;background-image:url(../images/social@2x.png);background-color:transparent;border-radius:inherit;-webkit-border-radius:inherit;-moz-border-radius:inherit}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons div.facebook a{background-position:-63px 0px}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons div.twitter a{background-position:-31px 0px}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons div.pinterest a{background-position:-95px 0px}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons div.google a{background-position:0px 0px}.envirabox-wrap .envirabox-inner .envirabox-position-overlay .envira-social-buttons div.email a{background-position:-126px 0px}.envirabox-thumbs .envirabox-wrap .envirabox-theme-base_dark a.envirabox-nav span{margin-top:-142px}.envirabox-skin.envirabox-theme-base_dark{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;padding:4px !important;background:#fff;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.envira-supersize .envirabox-skin.envirabox-theme-base_dark{-moz-border-radius:none;-webkit-border-radius:none;border-radius:none;padding:0 !important;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#envirabox-buttons{display:none}#envirabox-thumbs{background:#2d2d2f}#envirabox-thumbs ul li a{border:none}#envirabox-thumbs ul li{margin:36px 18px;border:3px solid #2d2d2f}#envirabox-thumbs ul li.active{border:3px solid #fff}#envirabox-thumbs.bottom{bottom:0}@media only screen and (max-height: 640px){.envirabox-thumbs .envirabox-wrap .envirabox-theme-base_dark a.envirabox-nav span{margin-top:-102px}#envirabox-thumbs ul li a{max-width:100px;max-height:60px}#envirabox-thumbs ul li a img{max-width:100px;max-height:60px}#envirabox-thumbs ul li{margin:18px 10px}}@media only screen and (max-width: 459px){.envirabox-thumbs .envirabox-wrap .envirabox-theme-base_dark a.envirabox-nav span{margin-top:-102px}#envirabox-thumbs ul li a{max-width:100px;max-height:60px}#envirabox-thumbs ul li a img{max-width:100px;max-height:60px}#envirabox-thumbs ul li{margin:18px 10px}}
|
themes/base_dark/images/close@2x.png
ADDED
Binary file
|
themes/base_dark/images/left-nav.png
ADDED
Binary file
|
themes/base_dark/images/right-nav.png
ADDED
Binary file
|
themes/base_dark/scss/style.scss
ADDED
@@ -0,0 +1,400 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ==========================================================================
|
2 |
+
Base (Dark) Theme Styles
|
3 |
+
========================================================================== */
|
4 |
+
|
5 |
+
.overlay-supersize.overlay-base_dark {
|
6 |
+
background-image: none;
|
7 |
+
background-color: #000;
|
8 |
+
overflow:hidden;
|
9 |
+
overflow-y: hidden;
|
10 |
+
|
11 |
+
& .envirabox-wrap {
|
12 |
+
top: 40px;
|
13 |
+
|
14 |
+
& .envirabox-close {
|
15 |
+
top: 50px;
|
16 |
+
right: 10px;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
.envirabox-wrap {
|
22 |
+
|
23 |
+
& .envirabox-theme-base_dark {
|
24 |
+
/**
|
25 |
+
* Navigation
|
26 |
+
*/
|
27 |
+
a.envirabox-nav {
|
28 |
+
position:fixed;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Previous Navigation
|
32 |
+
*/
|
33 |
+
&.envirabox-prev {
|
34 |
+
|
35 |
+
&:hover span {
|
36 |
+
background-position: 0 0;
|
37 |
+
}
|
38 |
+
|
39 |
+
span {
|
40 |
+
background-image: url(../images/left-nav.png);
|
41 |
+
background-size: 31px;
|
42 |
+
background-position: 0 -62px;
|
43 |
+
left: 0px;
|
44 |
+
visibility: visible;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Next Navigation
|
50 |
+
*/
|
51 |
+
&.envirabox-next {
|
52 |
+
|
53 |
+
&:hover span {
|
54 |
+
background-position: 0 0;
|
55 |
+
}
|
56 |
+
|
57 |
+
span {
|
58 |
+
background-image: url(../images/right-nav.png);
|
59 |
+
background-size: 31px;
|
60 |
+
background-position: 0 -62px;
|
61 |
+
right: 0px;
|
62 |
+
visibility: visible;
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
& span {
|
67 |
+
width: 31px;
|
68 |
+
height: 62px;
|
69 |
+
margin-top: -31px;
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Close Button
|
75 |
+
*/
|
76 |
+
& .envirabox-close {
|
77 |
+
background-image: url(../images/close@2x.png);
|
78 |
+
background-position: 0 0px;
|
79 |
+
cursor: pointer;
|
80 |
+
background-size: 30px 30px;
|
81 |
+
top: -15px;
|
82 |
+
right: -15px;
|
83 |
+
width: 30px;
|
84 |
+
height: 30px;
|
85 |
+
|
86 |
+
&:hover {
|
87 |
+
background-position: 0 0;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Caption
|
94 |
+
*/
|
95 |
+
& .envirabox-title {
|
96 |
+
position:fixed;
|
97 |
+
top:0;
|
98 |
+
left:0;
|
99 |
+
right:0;
|
100 |
+
width:100%;
|
101 |
+
min-height: 40px;
|
102 |
+
padding: 10px;
|
103 |
+
box-sizing: border-box;
|
104 |
+
background: #2d2d2f;
|
105 |
+
color: #fff;
|
106 |
+
margin: 0;
|
107 |
+
text-align: left;
|
108 |
+
font-size: 14px;
|
109 |
+
z-index: 988060 !important;
|
110 |
+
visibility: visible;
|
111 |
+
|
112 |
+
& span.child {
|
113 |
+
margin:0;
|
114 |
+
padding:0;
|
115 |
+
background: none;
|
116 |
+
-webkit-border-radius: 0;
|
117 |
+
-moz-border-radius: 0;
|
118 |
+
border-radius: 0;
|
119 |
+
text-shadow: none;
|
120 |
+
}
|
121 |
+
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* Actions
|
126 |
+
*/
|
127 |
+
& .envirabox-actions {
|
128 |
+
position:fixed;
|
129 |
+
top:9px;
|
130 |
+
right:9px;
|
131 |
+
z-index: 988061;
|
132 |
+
|
133 |
+
& .envira-download-button {
|
134 |
+
display:inline-block;
|
135 |
+
margin-left: 9px;
|
136 |
+
|
137 |
+
& a {
|
138 |
+
width: 22px;
|
139 |
+
height: 22px;
|
140 |
+
background-size: 14px;
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
& .envira-printing-button {
|
145 |
+
display:inline-block;
|
146 |
+
margin-left: 9px;
|
147 |
+
|
148 |
+
& a {
|
149 |
+
width: 22px;
|
150 |
+
height: 22px;
|
151 |
+
background-size: 14px;
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
& .envira-fullscreen-button {
|
156 |
+
display:inline-block;
|
157 |
+
margin-left: 9px;
|
158 |
+
width: 22px;
|
159 |
+
height: 22px;
|
160 |
+
text-indent: -9999px;
|
161 |
+
background-image: url(../images/fullscreen@2x.png);
|
162 |
+
background-size: 22px;
|
163 |
+
|
164 |
+
& a {
|
165 |
+
display:block;
|
166 |
+
width: 22px;
|
167 |
+
height: 23px;
|
168 |
+
}
|
169 |
+
}
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Social icons
|
174 |
+
*/
|
175 |
+
.envirabox-inner .envirabox-position-overlay {
|
176 |
+
width: 100%;
|
177 |
+
text-align: center;
|
178 |
+
bottom: -38px;
|
179 |
+
top: inherit;
|
180 |
+
|
181 |
+
.envira-social-buttons {
|
182 |
+
display: inline-block;
|
183 |
+
float: none;
|
184 |
+
|
185 |
+
&.orientation-horizontal.outside {
|
186 |
+
position: relative;
|
187 |
+
bottom: 0;
|
188 |
+
min-width: inherit;
|
189 |
+
max-width: inherit;
|
190 |
+
}
|
191 |
+
|
192 |
+
&.orientation-vertical.outside {
|
193 |
+
position: relative;
|
194 |
+
left: 0;
|
195 |
+
min-width: inherit;
|
196 |
+
max-width: inherit;
|
197 |
+
}
|
198 |
+
|
199 |
+
& .envira-social-network {
|
200 |
+
clear: none;
|
201 |
+
|
202 |
+
a.envira-social-button {
|
203 |
+
margin: 10px 5px 0;
|
204 |
+
width: 25px;
|
205 |
+
height: 25px;
|
206 |
+
line-height: 25px;
|
207 |
+
background-size: 151px 25px;
|
208 |
+
background-image: url(../images/social@2x.png);
|
209 |
+
background-color: transparent;
|
210 |
+
border-radius: inherit;
|
211 |
+
-webkit-border-radius: inherit;
|
212 |
+
-moz-border-radius: inherit;
|
213 |
+
}
|
214 |
+
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* Buttons for each Social Network
|
219 |
+
*/
|
220 |
+
div.facebook {
|
221 |
+
a {
|
222 |
+
background-position: -63px 0px;
|
223 |
+
}
|
224 |
+
}
|
225 |
+
div.twitter {
|
226 |
+
a {
|
227 |
+
background-position: -31px 0px;
|
228 |
+
}
|
229 |
+
}
|
230 |
+
div.pinterest {
|
231 |
+
a {
|
232 |
+
background-position: -95px 0px;
|
233 |
+
}
|
234 |
+
}
|
235 |
+
div.google {
|
236 |
+
a {
|
237 |
+
background-position: 0px 0px;
|
238 |
+
}
|
239 |
+
}
|
240 |
+
div.email {
|
241 |
+
a {
|
242 |
+
background-position: -126px 0px;
|
243 |
+
}
|
244 |
+
}
|
245 |
+
|
246 |
+
}
|
247 |
+
|
248 |
+
}
|
249 |
+
|
250 |
+
}
|
251 |
+
|
252 |
+
.envirabox-thumbs .envirabox-wrap {
|
253 |
+
|
254 |
+
& .envirabox-theme-base_dark {
|
255 |
+
/**
|
256 |
+
* Navigation
|
257 |
+
*/
|
258 |
+
a.envirabox-nav {
|
259 |
+
|
260 |
+
& span {
|
261 |
+
margin-top: -142px;
|
262 |
+
}
|
263 |
+
|
264 |
+
}
|
265 |
+
|
266 |
+
}
|
267 |
+
|
268 |
+
}
|
269 |
+
|
270 |
+
/**
|
271 |
+
* Lightbox
|
272 |
+
*/
|
273 |
+
.envirabox-skin {
|
274 |
+
|
275 |
+
&.envirabox-theme-base_dark {
|
276 |
+
-moz-border-radius: 2px;
|
277 |
+
-webkit-border-radius: 2px;
|
278 |
+
border-radius: 2px;
|
279 |
+
padding: 4px !important;
|
280 |
+
background: #fff;
|
281 |
+
-webkit-box-shadow: none;
|
282 |
+
-moz-box-shadow: none;
|
283 |
+
box-shadow: none;
|
284 |
+
}
|
285 |
+
|
286 |
+
.envira-supersize & {
|
287 |
+
&.envirabox-theme-base_dark {
|
288 |
+
-moz-border-radius: none;
|
289 |
+
-webkit-border-radius: none;
|
290 |
+
border-radius: none;
|
291 |
+
padding: 0 !important;
|
292 |
+
-webkit-box-shadow: none;
|
293 |
+
-moz-box-shadow: none;
|
294 |
+
box-shadow: none;
|
295 |
+
}
|
296 |
+
}
|
297 |
+
}
|
298 |
+
|
299 |
+
#envirabox-buttons {
|
300 |
+
display:none;
|
301 |
+
}
|
302 |
+
|
303 |
+
#envirabox-thumbs {
|
304 |
+
background: #2d2d2f;
|
305 |
+
|
306 |
+
ul li a {
|
307 |
+
border: none;
|
308 |
+
}
|
309 |
+
|
310 |
+
ul li {
|
311 |
+
margin: 36px 18px;
|
312 |
+
border: 3px solid #2d2d2f;
|
313 |
+
}
|
314 |
+
|
315 |
+
ul li.active {
|
316 |
+
border: 3px solid #fff;
|
317 |
+
}
|
318 |
+
|
319 |
+
&.bottom {
|
320 |
+
bottom: 0;
|
321 |
+
}
|
322 |
+
|
323 |
+
}
|
324 |
+
|
325 |
+
/**
|
326 |
+
* Mobile Landscape (devices and browsers)
|
327 |
+
*/
|
328 |
+
@media only screen and (max-height: 640px) {
|
329 |
+
|
330 |
+
.envirabox-thumbs .envirabox-wrap {
|
331 |
+
|
332 |
+
& .envirabox-theme-base_dark {
|
333 |
+
/**
|
334 |
+
* Navigation
|
335 |
+
*/
|
336 |
+
a.envirabox-nav {
|
337 |
+
|
338 |
+
& span {
|
339 |
+
margin-top: -102px;
|
340 |
+
}
|
341 |
+
}
|
342 |
+
}
|
343 |
+
}
|
344 |
+
|
345 |
+
#envirabox-thumbs {
|
346 |
+
|
347 |
+
ul li a {
|
348 |
+
max-width: 100px;
|
349 |
+
max-height: 60px;
|
350 |
+
|
351 |
+
& img {
|
352 |
+
max-width: 100px;
|
353 |
+
max-height: 60px;
|
354 |
+
}
|
355 |
+
}
|
356 |
+
|
357 |
+
ul li {
|
358 |
+
margin: 18px 10px;
|
359 |
+
}
|
360 |
+
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
+
/**
|
365 |
+
* Mobile Portrait (devices and browsers)
|
366 |
+
*/
|
367 |
+
@media only screen and (max-width: 459px) {
|
368 |
+
.envirabox-thumbs .envirabox-wrap {
|
369 |
+
|
370 |
+
& .envirabox-theme-base_dark {
|
371 |
+
/**
|
372 |
+
* Navigation
|
373 |
+
*/
|
374 |
+
a.envirabox-nav {
|
375 |
+
|
376 |
+
& span {
|
377 |
+
margin-top: -102px;
|
378 |
+
}
|
379 |
+
}
|
380 |
+
}
|
381 |
+
}
|
382 |
+
|
383 |
+
#envirabox-thumbs {
|
384 |
+
|
385 |
+
ul li a {
|
386 |
+
max-width: 100px;
|
387 |
+
max-height: 60px;
|
388 |
+
|
389 |
+
& img {
|
390 |
+
max-width: 100px;
|
391 |
+
max-height: 60px;
|
392 |
+
}
|
393 |
+
}
|
394 |
+
|
395 |
+
ul li {
|
396 |
+
margin: 18px 10px;
|
397 |
+
}
|
398 |
+
|
399 |
+
}
|
400 |
+
}
|