Version Description
Download this release
Release Info
Developer | sayful |
Plugin | Carousel Slider |
Version | 1.10.2 |
Comparing to | |
See all releases |
Code changes from version 1.9.5 to 1.10.2
- assets/css/admin.css +15 -1
- assets/js/admin.js +1 -1
- assets/lib/jquery-tiptip/jquery.tipTip.js +0 -191
- assets/lib/jquery-tiptip/jquery.tipTip.min.js +0 -1
- assets/src/admin/accordion.js +0 -15
- assets/src/admin/hero-banner.js +0 -295
- assets/src/admin/media-gallery.js +0 -131
- assets/src/admin/media-url.js +0 -40
- assets/src/admin/modal.js +0 -16
- assets/src/admin/slide-type.js +0 -144
- assets/src/admin/vendors.js +0 -69
- assets/src/frontend/main.js +0 -75
- assets/src/gutenberg-block/main.js +0 -223
- assets/src/img/ajax-loader.gif +0 -0
- assets/src/img/play.svg +0 -1
- assets/src/scss/admin.scss +0 -14
- assets/src/scss/admin/_datepicker.scss +0 -46
- assets/src/scss/admin/_documentation.scss +0 -44
- assets/src/scss/admin/_meta-box.scss +0 -239
- assets/src/scss/admin/_modal.scss +0 -108
- assets/src/scss/admin/_model.scss +0 -140
- assets/src/scss/admin/_select2.scss +0 -634
- assets/src/scss/admin/_tab.scss +0 -79
- assets/src/scss/admin/_toggle.scss +0 -51
- assets/src/scss/admin/_tooltip.scss +0 -133
- assets/src/scss/admin/_widget.scss +0 -10
- assets/src/scss/frontend.scss +0 -21
- assets/src/scss/gutenberg-block.scss +0 -108
- assets/src/scss/public/_animate.scss +0 -96
- assets/src/scss/public/_autoheight.scss +0 -7
- assets/src/scss/public/_button.scss +0 -39
- assets/src/scss/public/_content-carousel.scss +0 -162
- assets/src/scss/public/_core.scss +0 -109
- assets/src/scss/public/_image-carousel.scss +0 -34
- assets/src/scss/public/_lazyload.scss +0 -17
- assets/src/scss/public/_magnific-popup.scss +0 -603
- assets/src/scss/public/_post-carousel.scss +0 -100
- assets/src/scss/public/_post-carousel2.scss +0 -63
- assets/src/scss/public/_product-carousel.scss +0 -197
- assets/src/scss/public/_product_modal.scss +0 -197
- assets/src/scss/public/_theme.scss +0 -136
- assets/src/scss/public/_variables.scss +0 -5
- assets/src/scss/public/_video.scss +0 -38
- assets/src/scss/utilities/_mixins.scss +0 -84
- assets/src/scss/utilities/_variables.scss +0 -145
- carousel-slider.php +46 -35
- classes/Admin/Admin.php +98 -0
- classes/Admin/GutenbergBlock.php +91 -0
- classes/Admin/Setting.php +66 -0
- classes/Ajax.php +42 -0
- classes/Assets.php +201 -0
- classes/Autoloader.php +146 -0
- classes/Frontend/Frontend.php +62 -0
- classes/Frontend/Preview.php +44 -0
- classes/Frontend/Shortcode.php +376 -0
- classes/Frontend/StructuredData.php +298 -0
- classes/Integration/VisualComposerElement.php +81 -0
- classes/Plugin.php +196 -0
- classes/Supports/SettingAPI.php +669 -0
- widgets/widget-carousel_slider.php → classes/Widget/CarouselSliderWidget.php +66 -43
- classes/i18n.php +42 -0
- dummy-data/carousel-slider.xml +0 -739
- includes/class-carousel-slider-activator.php +1 -1
- includes/class-carousel-slider-admin.php +58 -13
- includes/class-carousel-slider-credit.php +0 -57
- includes/class-carousel-slider-documentation.php +0 -48
- includes/class-carousel-slider-gutenberg-block.php +0 -90
- includes/class-carousel-slider-i18n.php +0 -55
- includes/class-carousel-slider-preview.php +0 -45
- includes/class-carousel-slider-product.php +18 -24
- includes/class-carousel-slider-script.php +0 -226
- includes/class-carousel-slider-setting-api.php +0 -683
- includes/class-carousel-slider-setting.php +0 -67
- includes/class-carousel-slider-structured-data.php +0 -317
- includes/class-carousel-slider-vc-element.php +0 -89
- languages/carousel-slider.pot +1484 -0
- modules/index.php +1 -0
- readme.txt +15 -4
- shortcodes/class-carousel-slider-deprecated-shortcode.php +0 -193
- shortcodes/class-carousel-slider-shortcode.php +0 -384
- shortcodes/index.php +0 -2
- templates/public/video-carousel.php +16 -11
- widgets/index.php +0 -2
assets/css/admin.css
CHANGED
@@ -1 +1,15 @@
|
|
1 |
-
div[id*=_carousel_slider] .widget-top{background:#dff!important;border:1px solid #2196f3!important}div[id*=_carousel_slider] .widget-top:hover{background:#fdd!important;border:1px solid #f44336!important}.shapla-toggle{margin:1em 0!important}.shapla-toggle-title{display:block;padding:15px 10px;outline:0;cursor:pointer;position:relative}.shapla-toggle-title:after{position:absolute;right:15px;font:400 20px/1 dashicons;margin-left:-1px;padding-right:3px;vertical-align:top;content:"\f132"}.shapla-toggle-title.ui-state-active:after{content:"\f460"}.shapla-toggle-content{padding:20px;background-color:#f1f1f1}.shapla-toggle--normal .shapla-toggle-title{background:#9e9e9e;color:#fff;font-weight:600}.shapla-toggle--stroke .shapla-toggle-title{border:1px solid #363f48;font-weight:600}.shapla-toggle--stroke .shapla-toggle-title:after{color:#363f48}.shapla-toggle--stroke .shapla-toggle-content{padding:20px;background-color:#fff;border:1px solid #363f48;border-top:none}.overflowHidden{overflow:hidden}.overflowVisible{overflow:visible}.sp-input-group{margin-bottom:10px}.sp-input-group:after{content:"";display:table;clear:both}.sp-input-label label{font-weight:600;margin-right:30px}.sp-input-field,.sp-input-label{float:left;width:100%}.sp-input-desc{color:#999;font-size:.9em;line-height:1.3em;margin:10px 30px 10px 0}.sp-input-text{width:100%;padding:8px 8px 8px 16px;height:35px!important}.sp-input-text option{padding:8px 4px}.spacing-text{width:62px}@media only screen and (min-width:600px){.sp-input-label{width:40%}.sp-input-field{width:60%}}@media only screen and (min-width:783px){.sp-input-label{width:30%}.sp-input-field{width:70%}.sp-input-text{width:25em}}@media only screen and (min-width:851px){.sp-input-field,.sp-input-label{width:100%}}@media only screen and (min-width:1200px){.sp-input-label{width:40%}.sp-input-field{width:60%}}@media only screen and (min-width:1600px){.sp-input-label{width:30%}.sp-input-field{width:70%}}.carousel_slider_images:after,.carousel_slider_images:before{display:table;content:""}.carousel_slider_images:after{clear:both}.carousel_slider_gallery_btn{border:1px solid #616161;color:#616161;background-color:#f1f1f1;padding:5px 15px;text-decoration:none}.carousel_slider_gallery_btn:hover{background-color:#fff;color:#616161}.carousel_slider_gallery_list{margin:15px 0 0;padding:0;list-style:none;box-sizing:border-box}.carousel_slider_gallery_list:after,.carousel_slider_gallery_list:before{display:table;content:""}.carousel_slider_gallery_list:after{clear:both}.carousel_slider_gallery_list li{float:left;margin:0;padding:0}.carousel_slider_gallery_list li>img{margin-right:10px;margin-bottom:10px;display:block;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}#field-_post_categories,#field-_post_date_after,#field-_post_date_before,#field-_post_in,#field-_post_tags,#field-_product_categories,#field-_product_in,#field-_product_query,#field-_product_tags{display:none}#carousel-slider-autoplay-settings p,#carousel-slider-navigation-settings p,#carousel-slider-responsive-settings p{overflow:hidden}#carousel-slider-autoplay-settings input.small-text,#carousel-slider-autoplay-settings select.small-text,#carousel-slider-navigation-settings input.small-text,#carousel-slider-navigation-settings select.small-text,#carousel-slider-responsive-settings input.small-text,#carousel-slider-responsive-settings select.small-text{float:right}.tab-background .slide_bg_wrapper{display:flex;padding:1rem 0}.tab-background .slide_thumb{position:relative;float:left;margin-right:1rem;border:1px solid #e0e0e0;padding:5px}.tab-background .slide_thumb>div{width:320px;height:180px;background-color:#f1f1f1;background-repeat:no-repeat;background-position:0 0;background-size:100% auto}.tab-background .slide_thumb>span{display:inline-block;position:absolute;top:0;right:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:14px;padding:3px;background-color:rgba(0,0,0,.5);color:#fff;cursor:pointer;transition:all .3s ease-in-out}.tab-background .slide_thumb>span.hidden{display:none!important}.tab-background .slide_image_settings_line{display:block;margin:.5rem 0}.tab-background .slide_image_settings_line>span{width:150px;display:inline-block}.ui-datepicker{background-color:#fff;border:1px solid #ccc;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);padding:8px;display:none}.ui-datepicker-header{background-color:#f1f1f1}.ui-datepicker-next,.ui-datepicker-prev{color:#000;padding:6px;cursor:pointer}.ui-datepicker-next:hover,.ui-datepicker-prev:hover{color:#000}.ui-datepicker-prev{float:left}.ui-datepicker-next{float:right}.ui-datepicker-calendar td>a{border:1px solid #ddd;display:block;padding:6px;text-decoration:none;color:#000;background-color:#f1f1f1}.ui-datepicker-calendar td.ui-datepicker-today>a{color:#000;background-color:#ffeb3b}.ui-datepicker-calendar td.ui-datepicker-current-day>a{color:#fff;background-color:#f44336}.sp-wp-editor-container{max-width:560px}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:0;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:0}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:0;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:0;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:1px solid #000;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:0;outline:0;background-image:linear-gradient(180deg,#fff 50%,#eee);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:linear-gradient(180deg,#eee 50%,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFCCCCCC",GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:linear-gradient(180deg,#fff 0,#eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:linear-gradient(180deg,#eee 50%,#fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFFFFFFF",GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:0;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:0;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}.carousel_slider-modal{display:none;position:fixed;z-index:10000;left:0;top:0;width:100%;height:100%;overflow:hidden;background-color:#000;background-color:rgba(0,0,0,.8)}.carousel_slider-modal-content{position:relative;background-color:#fefefe;margin:50px auto 18px;padding:0;border:1px solid #23282d;min-height:300px;width:412px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.carousel_slider-modal-header{background-color:#23282d;color:#fff;font-weight:700;padding:10px 16px}.carousel_slider-modal-body{overflow-x:hidden;overflow-y:scroll;padding:2px 16px}.carousel_slider-modal-footer{background-color:#23282d;color:#fff;font-weight:700;padding:10px 16px}.carousel_slider-modal-footer img{display:none;height:14px;vertical-align:middle;width:14px}.carousel_slider-form{margin-left:-15px;margin-right:-15px}.carousel_slider-fields{background-color:#f1f1f1;margin:15px;padding:15px 25px 15px 15px;position:relative;display:inline-block;float:left}.carousel_slider-fields label.setting{display:block;margin-bottom:5px}.carousel_slider-fields label.setting .name{display:inline-block;vertical-align:top;width:75px}.carousel_slider-fields label.setting input,.carousel_slider-fields label.setting textarea{width:250px}.carousel_slider-fields .actions{position:absolute;right:0;top:0}.carousel_slider-fields .actions>span{background:#fff none repeat scroll 0 0;display:block;float:none;cursor:pointer}.carousel_slider-fields .actions>span .dashicons-plus-alt:hover{color:green}.carousel_slider-fields .actions>span .dashicons-trash:hover{color:red}.carousel_slider-close{color:#f1f1f1;float:right;font-size:28px;font-weight:700}.carousel_slider-close:focus,.carousel_slider-close:hover{color:#fff;text-decoration:none;cursor:pointer}.carousel_slider_url_images_list{margin:15px 0 0;padding:0;list-style:none}.carousel_slider_url_images_list li{float:left;display:inline-block;margin:0 5px 5px 0}@media only screen and (min-width:820px){.carousel_slider-modal-content{width:810px}}@media only screen and (min-width:1230px){.carousel_slider-modal-content{width:1220px}}.modal{bottom:0;left:0;position:absolute;right:0;top:0;align-items:center;display:none;justify-content:center;overflow:hidden;position:fixed;z-index:10000}.admin-bar .modal{top:32px}.modal .delete-icon{-webkit-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,.2);border:none;border-radius:32px;cursor:pointer;display:inline-block;flex-grow:0;flex-shrink:0;font-size:1rem;outline:none;position:relative;vertical-align:top;height:20px;width:20px}.modal .delete-icon:after,.modal .delete-icon:before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal .delete-icon:before{height:2px;width:50%}.modal .delete-icon:after{height:50%;width:2px}.modal .delete-icon:focus,.modal .delete-icon:hover{background-color:rgba(0,0,0,.3)}.modal .delete-icon:active{background-color:rgba(0,0,0,.4)}.modal .delete-icon.is-small{height:16px;width:16px}.modal .delete-icon.is-medium{height:24px;width:24px}.modal .delete-icon.is-large{height:32px;width:32px}.modal.is-active{display:flex}.modal-background{bottom:0;left:0;position:absolute;right:0;top:0;background-color:rgba(0,0,0,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media print,screen and (min-width:769px){.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{-webkit-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,.2);border:none;border-radius:32px;cursor:pointer;display:inline-block;flex-grow:0;flex-shrink:0;font-size:1rem;outline:none;position:relative;vertical-align:top;height:20px;width:20px;background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-close:after,.modal-close:before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close:before{height:2px;width:50%}.modal-close:after{height:50%;width:2px}.modal-close:focus,.modal-close:hover{background-color:rgba(0,0,0,.3)}.modal-close:active{background-color:rgba(0,0,0,.4)}.modal-close.is-small{height:16px;width:16px}.modal-close.is-medium{height:24px;width:24px}.modal-close.is-large{height:32px;width:32px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;margin:0;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #f5f5f5;border-top-left-radius:5px;border-top-right-radius:5px}.modal-card-title{color:#212121;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1;margin:0;padding:0}.modal-card-foot{border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:1px solid #f5f5f5}.modal-card-foot .button:not(:last-child){margin-right:10px}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;margin:0;padding:20px}.cs-tooltip{display:inline-block;width:1.5em;height:1.5em;float:right}.cs-tooltip:after{font-family:Dashicons;speak:none;font-weight:400;text-transform:none;-webkit-font-smoothing:antialiased;width:100%;height:100%;text-align:center;content:"\f223";cursor:help}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_left{padding-right:5px}#tiptip_content{font-size:11px;color:#fff;text-shadow:0 0 2px #000;padding:4px 8px;border:1px solid hsla(0,0%,100%,.25);background-color:#191919;background-color:rgba(25,25,25,.92);background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),to(#000));border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;box-shadow:0 0 3px #555;-webkit-box-shadow:0 0 3px #555;-moz-box-shadow:0 0 3px #555}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border:6px solid transparent;height:0;width:0}#tiptip_holder.tip_top #tiptip_arrow{border-top-color:#fff;border-top-color:hsla(0,0%,100%,.35)}#tiptip_holder.tip_bottom #tiptip_arrow{border-bottom-color:#fff;border-bottom-color:hsla(0,0%,100%,.35)}#tiptip_holder.tip_right #tiptip_arrow{border-right-color:#fff;border-right-color:hsla(0,0%,100%,.35)}#tiptip_holder.tip_left #tiptip_arrow{border-left-color:#fff;border-left-color:hsla(0,0%,100%,.35)}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#191919;border-top-color:rgba(25,25,25,.92)}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#191919;border-bottom-color:rgba(25,25,25,.92)}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#191919;border-right-color:rgba(25,25,25,.92)}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#191919;border-left-color:rgba(25,25,25,.92)}@media screen and (-webkit-min-device-pixel-ratio:0){#tiptip_content{padding:4px 8px 5px;background-color:rgba(45,45,45,.88)}#tiptip_holder.tip_bottom #tiptip_arrow_inner{border-bottom-color:rgba(45,45,45,.88)}#tiptip_holder.tip_top #tiptip_arrow_inner{border-top-color:rgba(20,20,20,.92)}}.shapla-nav{list-style:none!important;margin:0;padding:0}.shapla-nav:after,.shapla-nav:before{display:table;content:" "}.shapla-nav:after{clear:both}.shapla-nav li{float:left;position:relative;margin:0 1px -1px 0!important;z-index:1;outline:0}.shapla-nav a{text-decoration:none;display:block;padding:15px 10px;line-height:1;outline:0}.shapla-tab{margin:0 0 2em;padding:21px 20px 20px}.shapla-tab p:first-of-type{margin-top:0}.shapla-tab p:last-of-type{margin-bottom:0}.shapla-tabs--normal .shapla-nav a{background:#323232;color:#fff}.shapla-tabs--normal .shapla-nav .ui-tabs-active a{background:#f1f1f1;color:#323232;outline:0}.shapla-tabs--normal .shapla-tab{background:#f1f1f1}.shapla-tabs--stroke .shapla-nav li{margin:0 -1px 0 0!important}.shapla-tabs--stroke .shapla-nav a{border:1px solid #323232;color:#323232}.shapla-tabs--stroke .shapla-nav .ui-tabs-active a{border-bottom-color:#fff}.shapla-tabs--stroke .shapla-tab{border:1px solid #323232;margin-top:-1px}.carousel_slider_iframe{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.carousel_slider_iframe>iframe{position:absolute;top:0;left:0;width:100%;height:100%}.carousel_slider_columns{display:flex;flex-wrap:wrap;box-sizing:border-box}.carousel_slider_column{flex:0 0 100%;padding:1rem;box-sizing:border-box}@media screen and (min-width:601px){.carousel_slider_column{flex:0 0 50%}}@media screen and (min-width:1025px){.carousel_slider_column{flex:0 0 33.333333%}}@media screen and (min-width:1400px){.carousel_slider_column{flex:0 0 25%}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
div[id*=_carousel_slider] .widget-top{background:#dff!important;border:1px solid #2196f3!important}div[id*=_carousel_slider] .widget-top:hover{background:#fdd!important;border:1px solid #f44336!important}.shapla-toggle{margin:1em 0!important}.shapla-toggle-title{display:block;padding:15px 10px;outline:0;cursor:pointer;position:relative}.shapla-toggle-title:after{position:absolute;right:15px;font:400 20px/1 dashicons;margin-left:-1px;padding-right:3px;vertical-align:top;content:"\f132"}.shapla-toggle-title.ui-state-active:after{content:"\f460"}.shapla-toggle-content{padding:20px;background-color:#f1f1f1}.shapla-toggle--normal .shapla-toggle-title{background:#9e9e9e;color:#fff;font-weight:600}.shapla-toggle--stroke .shapla-toggle-title{border:1px solid #363f48;font-weight:600}.shapla-toggle--stroke .shapla-toggle-title:after{color:#363f48}.shapla-toggle--stroke .shapla-toggle-content{padding:20px;background-color:#fff;border:1px solid #363f48;border-top:none}.overflowHidden{overflow:hidden}.overflowVisible{overflow:visible}.sp-input-group{margin-bottom:10px}.sp-input-group:after{content:"";display:table;clear:both}.sp-input-label label{font-weight:600;margin-right:30px}.sp-input-field,.sp-input-label{float:left;width:100%}.sp-input-desc{color:#999;font-size:.9em;line-height:1.3em;margin:10px 30px 10px 0}.sp-input-text{width:100%;padding:8px 8px 8px 16px;height:35px!important}.sp-input-text option{padding:8px 4px}.spacing-text{width:62px}@media only screen and (min-width:600px){.sp-input-label{width:40%}.sp-input-field{width:60%}}@media only screen and (min-width:783px){.sp-input-label{width:30%}.sp-input-field{width:70%}.sp-input-text{width:25em}}@media only screen and (min-width:851px){.sp-input-field,.sp-input-label{width:100%}}@media only screen and (min-width:1200px){.sp-input-label{width:40%}.sp-input-field{width:60%}}@media only screen and (min-width:1600px){.sp-input-label{width:30%}.sp-input-field{width:70%}}.carousel_slider_images:after,.carousel_slider_images:before{display:table;content:""}.carousel_slider_images:after{clear:both}.carousel_slider_gallery_btn{border:1px solid #616161;color:#616161;background-color:#f1f1f1;padding:5px 15px;text-decoration:none}.carousel_slider_gallery_btn:hover{background-color:#fff;color:#616161}.carousel_slider_gallery_list{margin:15px 0 0;padding:0;list-style:none;box-sizing:border-box}.carousel_slider_gallery_list:after,.carousel_slider_gallery_list:before{display:table;content:""}.carousel_slider_gallery_list:after{clear:both}.carousel_slider_gallery_list li{float:left;margin:0;padding:0}.carousel_slider_gallery_list li>img{margin-right:10px;margin-bottom:10px;display:block;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}#field-_post_categories,#field-_post_date_after,#field-_post_date_before,#field-_post_in,#field-_post_tags,#field-_product_categories,#field-_product_in,#field-_product_query,#field-_product_tags{display:none}#carousel-slider-autoplay-settings p,#carousel-slider-navigation-settings p,#carousel-slider-responsive-settings p{overflow:hidden}#carousel-slider-autoplay-settings input.small-text,#carousel-slider-autoplay-settings select.small-text,#carousel-slider-navigation-settings input.small-text,#carousel-slider-navigation-settings select.small-text,#carousel-slider-responsive-settings input.small-text,#carousel-slider-responsive-settings select.small-text{float:right}.tab-background .slide_bg_wrapper{display:flex;padding:1rem 0}.tab-background .slide_thumb{position:relative;float:left;margin-right:1rem;border:1px solid #e0e0e0;padding:5px}.tab-background .slide_thumb>div{width:320px;height:180px;background-color:#f1f1f1;background-repeat:no-repeat;background-position:0 0;background-size:100% auto}.tab-background .slide_thumb>span{display:inline-block;position:absolute;top:0;right:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:14px;padding:3px;background-color:rgba(0,0,0,.5);color:#fff;cursor:pointer;transition:all .3s ease-in-out}.tab-background .slide_thumb>span.hidden{display:none!important}.tab-background .slide_image_settings_line{display:block;margin:.5rem 0}.tab-background .slide_image_settings_line>span{width:150px;display:inline-block}.ui-datepicker{background-color:#fff;border:1px solid #ccc;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);padding:8px;display:none}.ui-datepicker-header{background-color:#f1f1f1}.ui-datepicker-next,.ui-datepicker-prev{color:#000;padding:6px;cursor:pointer}.ui-datepicker-next:hover,.ui-datepicker-prev:hover{color:#000}.ui-datepicker-prev{float:left}.ui-datepicker-next{float:right}.ui-datepicker-calendar td>a{border:1px solid #ddd;display:block;padding:6px;text-decoration:none;color:#000;background-color:#f1f1f1}.ui-datepicker-calendar td.ui-datepicker-today>a{color:#000;background-color:#ffeb3b}.ui-datepicker-calendar td.ui-datepicker-current-day>a{color:#fff;background-color:#f44336}.sp-wp-editor-container{max-width:560px}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:0;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:0}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:0;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:0;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:1px solid #000;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:0;outline:0;background-image:linear-gradient(180deg,#fff 50%,#eee);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:linear-gradient(180deg,#eee 50%,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFCCCCCC",GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:linear-gradient(180deg,#fff 0,#eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:linear-gradient(180deg,#eee 50%,#fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFFFFFFF",GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:0;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:0;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}.carousel_slider-modal{display:none;position:fixed;z-index:10000;left:0;top:0;width:100%;height:100%;overflow:hidden;background-color:#000;background-color:rgba(0,0,0,.8)}.carousel_slider-modal-content{position:relative;background-color:#fefefe;margin:50px auto 18px;padding:0;border:1px solid #23282d;min-height:300px;width:412px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.carousel_slider-modal-header{background-color:#23282d;color:#fff;font-weight:700;padding:10px 16px}.carousel_slider-modal-body{overflow-x:hidden;overflow-y:scroll;padding:2px 16px}.carousel_slider-modal-footer{background-color:#23282d;color:#fff;font-weight:700;padding:10px 16px}.carousel_slider-modal-footer img{display:none;height:14px;vertical-align:middle;width:14px}.carousel_slider-form{margin-left:-15px;margin-right:-15px}.carousel_slider-fields{background-color:#f1f1f1;margin:15px;padding:15px 25px 15px 15px;position:relative;display:inline-block;float:left}.carousel_slider-fields label.setting{display:block;margin-bottom:5px}.carousel_slider-fields label.setting .name{display:inline-block;vertical-align:top;width:75px}.carousel_slider-fields label.setting input,.carousel_slider-fields label.setting textarea{width:250px}.carousel_slider-fields .actions{position:absolute;right:0;top:0}.carousel_slider-fields .actions>span{background:#fff none repeat scroll 0 0;display:block;float:none;cursor:pointer}.carousel_slider-fields .actions>span .dashicons-plus-alt:hover{color:green}.carousel_slider-fields .actions>span .dashicons-trash:hover{color:red}.carousel_slider-close{color:#f1f1f1;float:right;font-size:28px;font-weight:700}.carousel_slider-close:focus,.carousel_slider-close:hover{color:#fff;text-decoration:none;cursor:pointer}.carousel_slider_url_images_list{margin:15px 0 0;padding:0;list-style:none}.carousel_slider_url_images_list li{float:left;display:inline-block;margin:0 5px 5px 0}@media only screen and (min-width:820px){.carousel_slider-modal-content{width:810px}}@media only screen and (min-width:1230px){.carousel_slider-modal-content{width:1220px}}.modal{bottom:0;left:0;position:absolute;right:0;top:0;align-items:center;display:none;justify-content:center;overflow:hidden;position:fixed;z-index:10000}.admin-bar .modal{top:32px}.modal .delete-icon{-webkit-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,.2);border:none;border-radius:32px;cursor:pointer;display:inline-block;flex-grow:0;flex-shrink:0;font-size:1rem;outline:none;position:relative;vertical-align:top;height:20px;width:20px}.modal .delete-icon:after,.modal .delete-icon:before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal .delete-icon:before{height:2px;width:50%}.modal .delete-icon:after{height:50%;width:2px}.modal .delete-icon:focus,.modal .delete-icon:hover{background-color:rgba(0,0,0,.3)}.modal .delete-icon:active{background-color:rgba(0,0,0,.4)}.modal .delete-icon.is-small{height:16px;width:16px}.modal .delete-icon.is-medium{height:24px;width:24px}.modal .delete-icon.is-large{height:32px;width:32px}.modal.is-active{display:flex}.modal-background{bottom:0;left:0;position:absolute;right:0;top:0;background-color:rgba(0,0,0,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media print,screen and (min-width:769px){.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{-webkit-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,.2);border:none;border-radius:32px;cursor:pointer;display:inline-block;flex-grow:0;flex-shrink:0;font-size:1rem;outline:none;position:relative;vertical-align:top;height:20px;width:20px;background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-close:after,.modal-close:before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close:before{height:2px;width:50%}.modal-close:after{height:50%;width:2px}.modal-close:focus,.modal-close:hover{background-color:rgba(0,0,0,.3)}.modal-close:active{background-color:rgba(0,0,0,.4)}.modal-close.is-small{height:16px;width:16px}.modal-close.is-medium{height:24px;width:24px}.modal-close.is-large{height:32px;width:32px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;margin:0;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #f5f5f5;border-top-left-radius:5px;border-top-right-radius:5px}.modal-card-title{color:#212121;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1;margin:0;padding:0}.modal-card-foot{border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top:1px solid #f5f5f5}.modal-card-foot .button:not(:last-child){margin-right:10px}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;margin:0;padding:20px}.shapla-nav{list-style:none!important;margin:0;padding:0}.shapla-nav:after,.shapla-nav:before{display:table;content:" "}.shapla-nav:after{clear:both}.shapla-nav li{float:left;position:relative;margin:0 1px -1px 0!important;z-index:1;outline:0}.shapla-nav a{text-decoration:none;display:block;padding:15px 10px;line-height:1;outline:0}.shapla-tab{margin:0 0 2em;padding:21px 20px 20px}.shapla-tab p:first-of-type{margin-top:0}.shapla-tab p:last-of-type{margin-bottom:0}.shapla-tabs--normal .shapla-nav a{background:#323232;color:#fff}.shapla-tabs--normal .shapla-nav .ui-tabs-active a{background:#f1f1f1;color:#323232;outline:0}.shapla-tabs--normal .shapla-tab{background:#f1f1f1}.shapla-tabs--stroke .shapla-nav li{margin:0 -1px 0 0!important}.shapla-tabs--stroke .shapla-nav a{border:1px solid #323232;color:#323232}.shapla-tabs--stroke .shapla-nav .ui-tabs-active a{border-bottom-color:#fff}.shapla-tabs--stroke .shapla-tab{border:1px solid #323232;margin-top:-1px}.carousel_slider_iframe{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.carousel_slider_iframe>iframe{position:absolute;top:0;left:0;width:100%;height:100%}.carousel_slider_columns{display:flex;flex-wrap:wrap;box-sizing:border-box}.carousel_slider_column{flex:0 0 100%;padding:1rem;box-sizing:border-box}@media screen and (min-width:601px){.carousel_slider_column{flex:0 0 50%}}@media screen and (min-width:1025px){.carousel_slider_column{flex:0 0 33.333333%}}@media screen and (min-width:1400px){.carousel_slider_column{flex:0 0 25%}}.shapla-tooltip{transform:scale(0);transform-origin:top center;z-index:9999;border-radius:2px;display:inline-block;font-size:12px;font-weight:400;line-height:1.2;max-width:170px;position:fixed;top:-500px;left:-500px;padding:8px;text-align:center;box-shadow:0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12);background-color:rgba(0,0,0,.92);background-image:linear-gradient(180deg,transparent,#000);color:#fff}.shapla-tooltip.is-light-theme{background-color:hsla(0,0%,96.1%,.92);background-image:linear-gradient(180deg,transparent,#f5f5f5);color:#323232}.shapla-tooltip.is-active{-webkit-animation:shapla-tooltip-pulse .2s cubic-bezier(0,0,.2,1) forwards;animation:shapla-tooltip-pulse .2s cubic-bezier(0,0,.2,1) forwards}.shapla-tooltip--large{line-height:14px;font-size:16px;padding:16px}@-webkit-keyframes shapla-tooltip-pulse{0%{transform:scale(0);opacity:0}50%{transform:scale(.99)}to{transform:scale(1);opacity:1;visibility:visible}}@keyframes shapla-tooltip-pulse{0%{transform:scale(0);opacity:0}50%{transform:scale(.99)}to{transform:scale(1);opacity:1;visibility:visible}}[data-tooltip-target]{display:inline-block;float:right;height:1.5em;position:relative;width:1.5em}[data-tooltip-target]:after{font-family:Dashicons;speak:none;font-weight:400;text-transform:none;-webkit-font-smoothing:antialiased;width:100%;height:100%;text-align:center;content:"\f223";cursor:help}
|
2 |
+
|
3 |
+
.cs_plugin_upgrade_notice.major_update {
|
4 |
+
border-top: 1px solid #dba617;
|
5 |
+
margin-top: 1rem;
|
6 |
+
padding: 1rem 0;
|
7 |
+
}
|
8 |
+
|
9 |
+
.cs_plugin_upgrade_notice__title {
|
10 |
+
font-size: 1.125em;
|
11 |
+
}
|
12 |
+
|
13 |
+
.cs_plugin_upgrade_notice__description {
|
14 |
+
padding-top: 1rem;
|
15 |
+
}
|
assets/js/admin.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e){"use strict";e(document).on("click",".accordion-header",(function(){e(this).toggleClass("active");var t=e(this).next();parseInt(t.css("max-height"))>0?(t.css("max-height","0"),t.css("overflow","hidden")):(t.css("max-height",t.prop("scrollHeight")+"px"),t.css("overflow","visible"))}))}(jQuery),function(e){"use strict";var t,i,o,s,a,n,l=e("body"),d=e("#contentButtonModal");l.on("click",".carousel-slider__add-slide",(function(t){t.preventDefault(),e.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"add-slide",post_id:e(this).data("post-id")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__delete_slide",(function(t){t.preventDefault(),e.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"delete-slide",post_id:e(this).data("post-id"),slide_pos:e(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__move_top",(function(t){t.preventDefault(),e.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"move-slide-top",post_id:e(this).data("post-id"),slide_pos:e(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__move_up",(function(t){t.preventDefault(),e.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"move-slide-up",post_id:e(this).data("post-id"),slide_pos:e(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__move_down",(function(t){t.preventDefault(),e.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"move-slide-down",post_id:e(this).data("post-id"),slide_pos:e(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__move_bottom",(function(t){t.preventDefault(),e.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"move-slide-bottom",post_id:e(this).data("post-id"),slide_pos:e(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".slide_image_add",(function(n){n.preventDefault();var l=e(this);i=l.closest(".slide_bg_wrapper"),s=i.find(".content_slide_canvas"),o=i.find(".background_image_id"),a=i.find(".delete-bg-img"),t||(t=wp.media({title:l.data("title"),button:{text:l.data("button-text")},multiple:!1})).on("select",(function(){var e=t.state().get("selection").first().toJSON();s.css("background-image","url("+e.url+")"),o.val(e.id),a.removeClass("hidden")})),t.open()})),l.on("click",".delete-bg-img",(function(t){t.preventDefault(),i=e(this).closest(".slide_bg_wrapper"),s=i.find(".content_slide_canvas"),o=i.find(".background_image_id"),a=i.find(".delete-bg-img"),s.css("background-image",""),o.val("0"),a.addClass("hidden")})),l.on("change",".background_image_position",(function(){var t=e(this).val();i=e(this).closest(".slide_bg_wrapper"),(s=i.find(".content_slide_canvas")).css("background-position",t)})),l.on("change",".background_image_size",(function(){var t=e(this).val();i=e(this).closest(".slide_bg_wrapper"),(s=i.find(".content_slide_canvas")).css("background-size",t)})),e(".addContentButton").on("click",(function(t){t.preventDefault();var i=(n=e(this).closest(".button_config")).find(".button_text").val(),o=n.find(".button_url").val(),s=n.find(".button_target").val(),a=n.find(".button_type").val(),l=n.find(".button_size").val(),c=n.find(".button_color").val();d.find("#_button_text").val(i),d.find("#_button_url").val(o),d.find("#_button_target").val(s),d.find("#_button_type").val(a),d.find("#_button_size").val(l),d.find("#_button_color").val(c),d.addClass("is-active")})),e("#saveContentButton").on("click",(function(e){if(e.preventDefault(),!n)return d.removeClass("is-active"),!1;var t=d.find("#_button_text").val(),i=d.find("#_button_url").val(),o=d.find("#_button_target").val(),s=d.find("#_button_type").val(),a=d.find("#_button_size").val(),l=d.find("#_button_color").val();n.find(".button_text").val(t),n.find(".button_url").val(i),n.find(".button_target").val(o),n.find(".button_type").val(s),n.find(".button_size").val(a),n.find(".button_color").val(l),d.removeClass("is-active")})),e(".slide-color-picker").each((function(){i=e(this).closest(".slide_bg_wrapper"),s=i.find(".content_slide_canvas"),e(this).wpColorPicker({palettes:["#2196F3","#009688","#4CAF50","#F44336","#FFEB3B","#00D1B2","#000000","#ffffff"],change:function(e,t){s.css("background-color",t.color.toString())}})})),e(document).on("change",".link_type",(function(t){var i=e(this),o=i.val(),s=i.closest(".tab-content-link"),a=s.find(".ContentCarouselLinkFull"),n=s.find(".ContentCarouselLinkButtons");"full"===o?(n.hide(),a.show()):"button"===o?(a.hide(),n.show()):(a.hide(),n.hide())}))}(jQuery),function(e){"use strict";var t,i=e("#carousel_slider_gallery_btn"),o=s(i.data("ids"));function s(e){if(e){var t=new wp.shortcode({tag:"gallery",attrs:{ids:e},type:"single"}),i=wp.media.gallery.attachments(t),o=new wp.media.model.Selection(i.models,{props:i.props.toJSON(),multiple:!0});return o.gallery=i.gallery,o.more().done((function(){o.props.set({query:!1}),o.unmirror(),o.props.unset("orderby")})),o}return!1}i.on("click",(function(a){a.preventDefault();var n={title:i.data("create"),state:"gallery-edit",frame:"post",selection:o};function l(){t.toolbar.get("view").set({insert:{style:"primary",text:i.data("save"),click:function(){var a=t.state().get("library"),n="";a.each((function(e){n+=e.id+","})),this.el.innerHTML=i.data("progress"),e.ajax({type:"POST",url:ajaxurl,data:{ids:n,action:"carousel_slider_save_images",post_id:i.data("id")},success:function(){o=s(n),e("#_carousel_slider_images_ids").val(n),t.close()},dataType:"html"}).done((function(t){e(".carousel_slider_gallery_list").html(t)}))}}})}(t||o)&&(n.title=i.data("edit")),(t=wp.media(n).open()).menu.get("view").unset("cancel"),t.menu.get("view").unset("separateCancel"),t.menu.get("view").get("gallery-edit").el.innerHTML=i.data("edit"),t.content.get("view").sidebar.unset("gallery"),l(),t.on("toolbar:render:gallery-edit",(function(){l()})),t.on("content:render:browse",(function(e){e&&(e.sidebar.on("ready",(function(){e.sidebar.unset("gallery")})),e.toolbar.on("ready",(function(){"gallery-library"===e.toolbar.controller._state&&e.toolbar.$el.hide()})))})),t.state().get("library").on("remove",(function(){0===t.state().get("library").length&&(o=!1,e.post(ajaxurl,{ids:"",action:"carousel_slider_save_images",post_id:i.data("id")}))}))}))}(jQuery),function(e){"use strict";var t=e("body"),i=e("#CarouselSliderModal"),o=e("#_images_urls_btn"),s=e("#carouselSliderGalleryUrlTemplate").html();o.on("click",(function(t){t.preventDefault(),i.css("display","block"),e("body").addClass("overflowHidden")})),i.on("click",".carousel_slider-close",(function(t){t.preventDefault(),i.css("display","none"),e("body").removeClass("overflowHidden")}));var a=e(window).height()-148;e(".carousel_slider-modal-body").css("height",a+"px"),t.on("click",".add_row",(function(){e(this).closest(".carousel_slider-fields").after(s)})),t.on("click",".delete_row",(function(){e(this).closest(".carousel_slider-fields").remove()})),e("#carousel_slider_form").sortable()}(jQuery),function(e){"use strict";e(document).on("click",'[data-toggle="modal"]',(function(t){t.preventDefault(),e(e(this).data("target")).addClass("is-active")})),e(document).on("click",'[data-dismiss="modal"]',(function(t){t.preventDefault(),e(this).closest(".modal").removeClass("is-active")}))}(jQuery),function(e){"use strict";var t=e("#_carousel_slider_slide_type"),i=e("#section_images_settings"),o=e("#section_url_images_settings"),s=e("#section_images_general_settings"),a=e("#section_post_query"),n=e("#section_video_settings"),l=e("#section_product_query"),d=e("#section_content_carousel"),c=e("#_post_query_type"),r=e("#field-_post_date_after"),u=e("#field-_post_date_before"),_=e("#field-_post_categories"),f=e("#field-_post_tags"),p=e("#field-_post_in"),h=e("#field-_posts_per_page"),v=e("#_product_query_type"),g=e("#field-_product_query"),b=e("#field-_product_categories"),m=e("#field-_product_tags"),w=e("#field-_product_in"),y=e("#field-_products_per_page");if(t.on("change",(function(){i.hide("fast"),o.hide("fast"),s.hide("fast"),a.hide("fast"),n.hide("fast"),l.hide("fast"),d.hide("fast"),"image-carousel"===this.value&&(i.slideDown(),s.slideDown()),"image-carousel-url"===this.value&&(o.slideDown(),s.slideDown()),"post-carousel"===this.value&&a.slideDown(),"video-carousel"===this.value&&n.slideDown(),"product-carousel"===this.value&&(l.slideDown(),g.show()),"hero-banner-slider"===this.value&&d.slideDown()})),"post-carousel"===t.val()){var k=c.val();"date_range"===k&&(r.show(),u.show()),"post_categories"===k&&_.show(),"post_tags"===k&&f.show(),"specific_posts"===k&&(p.show(),h.hide())}if(c.on("change",(function(){r.hide("fast"),u.hide("fast"),_.hide("fast"),f.hide("fast"),p.hide("fast"),h.show("fast"),"date_range"===this.value&&(r.slideDown(),u.slideDown()),"post_categories"===this.value&&_.slideDown(),"post_tags"===this.value&&f.slideDown(),"specific_posts"===this.value&&(p.slideDown(),h.hide("fast"))})),"product-carousel"===t.val()){var D=v.val();"query_porduct"===D&&g.show(),"product_categories"===D&&b.show(),"product_tags"===D&&m.show(),"specific_products"===D&&w.show()}v.on("change",(function(){g.hide("fast"),b.hide("fast"),m.hide("fast"),w.hide("fast"),y.show("fast"),"query_porduct"===this.value&&g.slideDown(),"product_categories"===this.value&&b.slideDown(),"product_tags"===this.value&&m.slideDown(),"specific_products"===this.value&&(w.slideDown(),y.hide("fast"))}))}(jQuery),function(e){"use strict";e(".cs-tooltip").each((function(){e(this).tipTip()})),e("select.select2").each((function(){e(this).select2()})),e(".shapla-toggle").each((function(){"closed"===e(this).attr("data-id")?e(this).accordion({collapsible:!0,heightStyle:"content",active:!1}):e(this).accordion({collapsible:!0,heightStyle:"content"})})),e(".shapla-tabs").tabs({hide:{effect:"fadeOut",duration:200},show:{effect:"fadeIn",duration:200}}),e(".datepicker").each((function(){e(this).datepicker({dateFormat:"MM dd, yy",changeMonth:!0,changeYear:!0,onClose:function(t){e(this).datepicker("option","minDate",t)}})})),e(".color-picker").each((function(){e(this).wpColorPicker({palettes:["#2196F3","#009688","#4CAF50","#F44336","#FFEB3B","#00D1B2","#000000","#ffffff"]})}))}(jQuery);
|
1 |
+
(()=>{"use strict";class t{constructor(t){this.element=t,this.cssClasses={IS_ACTIVE:"is-active",MAIN:"shapla-tooltip",BOTTOM:"shapla-tooltip--bottom",LEFT:"shapla-tooltip--left",RIGHT:"shapla-tooltip--right",TOP:"shapla-tooltip--top"},this.init()}handleMouseEnter_(t){let e=t.target.getBoundingClientRect(),s=e.left+e.width/2,i=e.top+e.height/2,o=this.element.offsetWidth/2*-1,a=this.element.offsetHeight/2*-1;this.element.classList.contains(this.cssClasses.LEFT)||this.element.classList.contains(this.cssClasses.RIGHT)?i+a<0?(this.element.style.top="0",this.element.style.marginTop="0"):(this.element.style.top=i+"px",this.element.style.marginTop=a+"px"):s+o<0?(this.element.style.left="0",this.element.style.marginLeft="0"):(this.element.style.left=s+"px",this.element.style.marginLeft=o+"px"),this.element.classList.contains(this.cssClasses.TOP)?this.element.style.top=e.top-this.element.offsetHeight-10+"px":this.element.classList.contains(this.cssClasses.RIGHT)?this.element.style.left=e.left+e.width+10+"px":this.element.classList.contains(this.cssClasses.LEFT)?this.element.style.left=e.left-this.element.offsetWidth-10+"px":this.element.style.top=e.top+e.height+10+"px",this.element.classList.add(this.cssClasses.IS_ACTIVE)}hideTooltip_(){this.element.classList.remove(this.cssClasses.IS_ACTIVE)}init(){if(!this.element)return;let e=this.element.getAttribute("data-tooltip-for");if(e)this.forElement_=document.getElementById(e);else{let e=this.element.getAttribute("data-tooltip")||this.element.getAttribute("title"),s=t.createUUID(),i=document.createElement("div");i.classList.add(this.cssClasses.MAIN),i.setAttribute("data-tooltip-for",s),i.setAttribute("role","tooltip"),i.innerText=e,document.body.appendChild(i),this.forElement_=this.element,this.forElement_.setAttribute("data-tooltip-target",s),this.forElement_.removeAttribute("data-tooltip"),this.forElement_.removeAttribute("title"),this.element=i}this.forElement_&&(this.forElement_.hasAttribute("tabindex")||this.forElement_.setAttribute("tabindex","0"),this.boundMouseEnterHandler=this.handleMouseEnter_.bind(this),this.boundMouseLeaveAndScrollHandler=this.hideTooltip_.bind(this),this.forElement_.addEventListener("mouseenter",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("touchend",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("mouseleave",this.boundMouseLeaveAndScrollHandler,!1),window.addEventListener("scroll",this.boundMouseLeaveAndScrollHandler,!0),window.addEventListener("touchstart",this.boundMouseLeaveAndScrollHandler))}static createUUID(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(t=>{const e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)}))}static register(){let e=document.querySelectorAll("[data-tooltip-for], [data-tooltip]");e.length&&e.forEach((e=>new t(e)))}}const e=t;let s=document.querySelectorAll(".cs-tooltip");s.length&&s.forEach((t=>new e(t)))})(),function(t){"use strict";t(document).on("click",".accordion-header",(function(){t(this).toggleClass("active");var e=t(this).next();parseInt(e.css("max-height"))>0?(e.css("max-height","0"),e.css("overflow","hidden")):(e.css("max-height",e.prop("scrollHeight")+"px"),e.css("overflow","visible"))}))}(jQuery),function(t){"use strict";var e,s,i,o,a,n,l=t("body"),d=t("#contentButtonModal");l.on("click",".carousel-slider__add-slide",(function(e){e.preventDefault(),t.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"add-slide",post_id:t(this).data("post-id")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__delete_slide",(function(e){e.preventDefault(),t.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"delete-slide",post_id:t(this).data("post-id"),slide_pos:t(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__move_top",(function(e){e.preventDefault(),t.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"move-slide-top",post_id:t(this).data("post-id"),slide_pos:t(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__move_up",(function(e){e.preventDefault(),t.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"move-slide-up",post_id:t(this).data("post-id"),slide_pos:t(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__move_down",(function(e){e.preventDefault(),t.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"move-slide-down",post_id:t(this).data("post-id"),slide_pos:t(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".carousel_slider__move_bottom",(function(e){e.preventDefault(),t.ajax({url:ajaxurl,method:"POST",data:{action:"add_content_slide",task:"move-slide-bottom",post_id:t(this).data("post-id"),slide_pos:t(this).data("slide-pos")},success:function(){window.location.reload(!0)}})})),l.on("click",".slide_image_add",(function(n){n.preventDefault();var l=t(this);s=l.closest(".slide_bg_wrapper"),o=s.find(".content_slide_canvas"),i=s.find(".background_image_id"),a=s.find(".delete-bg-img"),e||(e=wp.media({title:l.data("title"),button:{text:l.data("button-text")},multiple:!1})).on("select",(function(){var t=e.state().get("selection").first().toJSON();o.css("background-image","url("+t.url+")"),i.val(t.id),a.removeClass("hidden")})),e.open()})),l.on("click",".delete-bg-img",(function(e){e.preventDefault(),s=t(this).closest(".slide_bg_wrapper"),o=s.find(".content_slide_canvas"),i=s.find(".background_image_id"),a=s.find(".delete-bg-img"),o.css("background-image",""),i.val("0"),a.addClass("hidden")})),l.on("change",".background_image_position",(function(){var e=t(this).val();s=t(this).closest(".slide_bg_wrapper"),(o=s.find(".content_slide_canvas")).css("background-position",e)})),l.on("change",".background_image_size",(function(){var e=t(this).val();s=t(this).closest(".slide_bg_wrapper"),(o=s.find(".content_slide_canvas")).css("background-size",e)})),t(".addContentButton").on("click",(function(e){e.preventDefault();var s=(n=t(this).closest(".button_config")).find(".button_text").val(),i=n.find(".button_url").val(),o=n.find(".button_target").val(),a=n.find(".button_type").val(),l=n.find(".button_size").val(),r=n.find(".button_color").val();d.find("#_button_text").val(s),d.find("#_button_url").val(i),d.find("#_button_target").val(o),d.find("#_button_type").val(a),d.find("#_button_size").val(l),d.find("#_button_color").val(r),d.addClass("is-active")})),t("#saveContentButton").on("click",(function(t){if(t.preventDefault(),!n)return d.removeClass("is-active"),!1;var e=d.find("#_button_text").val(),s=d.find("#_button_url").val(),i=d.find("#_button_target").val(),o=d.find("#_button_type").val(),a=d.find("#_button_size").val(),l=d.find("#_button_color").val();n.find(".button_text").val(e),n.find(".button_url").val(s),n.find(".button_target").val(i),n.find(".button_type").val(o),n.find(".button_size").val(a),n.find(".button_color").val(l),d.removeClass("is-active")})),t(".slide-color-picker").each((function(){s=t(this).closest(".slide_bg_wrapper"),o=s.find(".content_slide_canvas"),t(this).wpColorPicker({palettes:["#2196F3","#009688","#4CAF50","#F44336","#FFEB3B","#00D1B2","#000000","#ffffff"],change:function(t,e){o.css("background-color",e.color.toString())}})})),t(document).on("change",".link_type",(function(e){var s=t(this),i=s.val(),o=s.closest(".tab-content-link"),a=o.find(".ContentCarouselLinkFull"),n=o.find(".ContentCarouselLinkButtons");"full"===i?(n.hide(),a.show()):"button"===i?(a.hide(),n.show()):(a.hide(),n.hide())}))}(jQuery),function(t){"use strict";var e,s=t("#carousel_slider_gallery_btn"),i=o(s.data("ids"));function o(t){if(t){var e=new wp.shortcode({tag:"gallery",attrs:{ids:t},type:"single"}),s=wp.media.gallery.attachments(e),i=new wp.media.model.Selection(s.models,{props:s.props.toJSON(),multiple:!0});return i.gallery=s.gallery,i.more().done((function(){i.props.set({query:!1}),i.unmirror(),i.props.unset("orderby")})),i}return!1}s.on("click",(function(a){a.preventDefault();var n={title:s.data("create"),state:"gallery-edit",frame:"post",selection:i};function l(){e.toolbar.get("view").set({insert:{style:"primary",text:s.data("save"),click:function(){var a=e.state().get("library"),n="";a.each((function(t){n+=t.id+","})),this.el.innerHTML=s.data("progress"),t.ajax({type:"POST",url:ajaxurl,data:{ids:n,action:"carousel_slider_save_images",post_id:s.data("id")},success:function(){i=o(n),t("#_carousel_slider_images_ids").val(n),e.close()},dataType:"html"}).done((function(e){t(".carousel_slider_gallery_list").html(e)}))}}})}(e||i)&&(n.title=s.data("edit")),(e=wp.media(n).open()).menu.get("view").unset("cancel"),e.menu.get("view").unset("separateCancel"),e.menu.get("view").get("gallery-edit").el.innerHTML=s.data("edit"),e.content.get("view").sidebar.unset("gallery"),l(),e.on("toolbar:render:gallery-edit",(function(){l()})),e.on("content:render:browse",(function(t){t&&(t.sidebar.on("ready",(function(){t.sidebar.unset("gallery")})),t.toolbar.on("ready",(function(){"gallery-library"===t.toolbar.controller._state&&t.toolbar.$el.hide()})))})),e.state().get("library").on("remove",(function(){0===e.state().get("library").length&&(i=!1,t.post(ajaxurl,{ids:"",action:"carousel_slider_save_images",post_id:s.data("id")}))}))}))}(jQuery),function(t){"use strict";var e=t("body"),s=t("#CarouselSliderModal"),i=t("#_images_urls_btn"),o=t("#carouselSliderGalleryUrlTemplate").html();i.on("click",(function(e){e.preventDefault(),s.css("display","block"),t("body").addClass("overflowHidden")})),s.on("click",".carousel_slider-close",(function(e){e.preventDefault(),s.css("display","none"),t("body").removeClass("overflowHidden")}));var a=t(window).height()-148;t(".carousel_slider-modal-body").css("height",a+"px"),e.on("click",".add_row",(function(){t(this).closest(".carousel_slider-fields").after(o)})),e.on("click",".delete_row",(function(){t(this).closest(".carousel_slider-fields").remove()})),t("#carousel_slider_form").sortable()}(jQuery),function(t){"use strict";t(document).on("click",'[data-toggle="modal"]',(function(e){e.preventDefault(),t(t(this).data("target")).addClass("is-active")})),t(document).on("click",'[data-dismiss="modal"]',(function(e){e.preventDefault(),t(this).closest(".modal").removeClass("is-active")}))}(jQuery),function(t){"use strict";var e=t("#_carousel_slider_slide_type"),s=t("#section_images_settings"),i=t("#section_url_images_settings"),o=t("#section_images_general_settings"),a=t("#section_post_query"),n=t("#section_video_settings"),l=t("#section_product_query"),d=t("#section_content_carousel"),r=t("#_post_query_type"),c=t("#field-_post_date_after"),u=t("#field-_post_date_before"),h=t("#field-_post_categories"),_=t("#field-_post_tags"),f=t("#field-_post_in"),p=t("#field-_posts_per_page"),v=t("#_product_query_type"),m=t("#field-_product_query"),g=t("#field-_product_categories"),b=t("#field-_product_tags"),w=t("#field-_product_in"),y=t("#field-_products_per_page");if(e.on("change",(function(){s.hide("fast"),i.hide("fast"),o.hide("fast"),a.hide("fast"),n.hide("fast"),l.hide("fast"),d.hide("fast"),"image-carousel"===this.value&&(s.slideDown(),o.slideDown()),"image-carousel-url"===this.value&&(i.slideDown(),o.slideDown()),"post-carousel"===this.value&&a.slideDown(),"video-carousel"===this.value&&n.slideDown(),"product-carousel"===this.value&&(l.slideDown(),m.show()),"hero-banner-slider"===this.value&&d.slideDown()})),"post-carousel"===e.val()){var x=r.val();"date_range"===x&&(c.show(),u.show()),"post_categories"===x&&h.show(),"post_tags"===x&&_.show(),"specific_posts"===x&&(f.show(),p.hide())}if(r.on("change",(function(){c.hide("fast"),u.hide("fast"),h.hide("fast"),_.hide("fast"),f.hide("fast"),p.show("fast"),"date_range"===this.value&&(c.slideDown(),u.slideDown()),"post_categories"===this.value&&h.slideDown(),"post_tags"===this.value&&_.slideDown(),"specific_posts"===this.value&&(f.slideDown(),p.hide("fast"))})),"product-carousel"===e.val()){var k=v.val();"query_porduct"===k&&m.show(),"product_categories"===k&&g.show(),"product_tags"===k&&b.show(),"specific_products"===k&&w.show()}v.on("change",(function(){m.hide("fast"),g.hide("fast"),b.hide("fast"),w.hide("fast"),y.show("fast"),"query_porduct"===this.value&&m.slideDown(),"product_categories"===this.value&&g.slideDown(),"product_tags"===this.value&&b.slideDown(),"specific_products"===this.value&&(w.slideDown(),y.hide("fast"))}))}(jQuery),function(t){"use strict";t(".cs-tooltip").each((function(){})),t("select.select2").each((function(){t(this).select2()})),t(".shapla-toggle").each((function(){"closed"===t(this).attr("data-id")?t(this).accordion({collapsible:!0,heightStyle:"content",active:!1}):t(this).accordion({collapsible:!0,heightStyle:"content"})})),t(".shapla-tabs").tabs({hide:{effect:"fadeOut",duration:200},show:{effect:"fadeIn",duration:200}}),t(".datepicker").each((function(){t(this).datepicker({dateFormat:"MM dd, yy",changeMonth:!0,changeYear:!0,onClose:function(e){t(this).datepicker("option","minDate",e)}})})),t(".color-picker").each((function(){t(this).wpColorPicker({palettes:["#2196F3","#009688","#4CAF50","#F44336","#FFEB3B","#00D1B2","#000000","#ffffff"]})}))}(jQuery);
|
assets/lib/jquery-tiptip/jquery.tipTip.js
DELETED
@@ -1,191 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* TipTip
|
3 |
-
* Copyright 2010 Drew Wilson
|
4 |
-
* www.drewwilson.com
|
5 |
-
* code.drewwilson.com/entry/tiptip-jquery-plugin
|
6 |
-
*
|
7 |
-
* Version 1.3 - Updated: Mar. 23, 2010
|
8 |
-
*
|
9 |
-
* This Plug-In will create a custom tooltip to replace the default
|
10 |
-
* browser tooltip. It is extremely lightweight and very smart in
|
11 |
-
* that it detects the edges of the browser window and will make sure
|
12 |
-
* the tooltip stays within the current window size. As a result the
|
13 |
-
* tooltip will adjust itself to be displayed above, below, to the left
|
14 |
-
* or to the right depending on what is necessary to stay within the
|
15 |
-
* browser window. It is completely customizable as well via CSS.
|
16 |
-
*
|
17 |
-
* This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses:
|
18 |
-
* http://www.opensource.org/licenses/mit-license.php
|
19 |
-
* http://www.gnu.org/licenses/gpl.html
|
20 |
-
*/
|
21 |
-
|
22 |
-
(function($){
|
23 |
-
$.fn.tipTip = function(options) {
|
24 |
-
var defaults = {
|
25 |
-
activation: "hover",
|
26 |
-
keepAlive: false,
|
27 |
-
maxWidth: "200px",
|
28 |
-
edgeOffset: 3,
|
29 |
-
defaultPosition: "bottom",
|
30 |
-
delay: 400,
|
31 |
-
fadeIn: 200,
|
32 |
-
fadeOut: 200,
|
33 |
-
attribute: "title",
|
34 |
-
content: false, // HTML or String to fill TipTIp with
|
35 |
-
enter: function(){},
|
36 |
-
exit: function(){}
|
37 |
-
};
|
38 |
-
var opts = $.extend(defaults, options);
|
39 |
-
|
40 |
-
// Setup tip tip elements and render them to the DOM
|
41 |
-
if($("#tiptip_holder").length <= 0){
|
42 |
-
var tiptip_holder = $('<div id="tiptip_holder" style="max-width:'+ opts.maxWidth +';"></div>');
|
43 |
-
var tiptip_content = $('<div id="tiptip_content"></div>');
|
44 |
-
var tiptip_arrow = $('<div id="tiptip_arrow"></div>');
|
45 |
-
$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')));
|
46 |
-
} else {
|
47 |
-
var tiptip_holder = $("#tiptip_holder");
|
48 |
-
var tiptip_content = $("#tiptip_content");
|
49 |
-
var tiptip_arrow = $("#tiptip_arrow");
|
50 |
-
}
|
51 |
-
|
52 |
-
return this.each(function(){
|
53 |
-
var org_elem = $(this);
|
54 |
-
if(opts.content){
|
55 |
-
var org_title = opts.content;
|
56 |
-
} else {
|
57 |
-
var org_title = org_elem.attr(opts.attribute);
|
58 |
-
}
|
59 |
-
if(org_title != ""){
|
60 |
-
if(!opts.content){
|
61 |
-
org_elem.removeAttr(opts.attribute); //remove original Attribute
|
62 |
-
}
|
63 |
-
var timeout = false;
|
64 |
-
|
65 |
-
if(opts.activation == "hover"){
|
66 |
-
org_elem.hover(function(){
|
67 |
-
active_tiptip();
|
68 |
-
}, function(){
|
69 |
-
if(!opts.keepAlive){
|
70 |
-
deactive_tiptip();
|
71 |
-
}
|
72 |
-
});
|
73 |
-
if(opts.keepAlive){
|
74 |
-
tiptip_holder.hover(function(){}, function(){
|
75 |
-
deactive_tiptip();
|
76 |
-
});
|
77 |
-
}
|
78 |
-
} else if(opts.activation == "focus"){
|
79 |
-
org_elem.focus(function(){
|
80 |
-
active_tiptip();
|
81 |
-
}).blur(function(){
|
82 |
-
deactive_tiptip();
|
83 |
-
});
|
84 |
-
} else if(opts.activation == "click"){
|
85 |
-
org_elem.click(function(){
|
86 |
-
active_tiptip();
|
87 |
-
return false;
|
88 |
-
}).hover(function(){},function(){
|
89 |
-
if(!opts.keepAlive){
|
90 |
-
deactive_tiptip();
|
91 |
-
}
|
92 |
-
});
|
93 |
-
if(opts.keepAlive){
|
94 |
-
tiptip_holder.hover(function(){}, function(){
|
95 |
-
deactive_tiptip();
|
96 |
-
});
|
97 |
-
}
|
98 |
-
}
|
99 |
-
|
100 |
-
function active_tiptip(){
|
101 |
-
opts.enter.call(this);
|
102 |
-
tiptip_content.html(org_title);
|
103 |
-
tiptip_holder.hide().removeAttr("class").css("margin","0");
|
104 |
-
tiptip_arrow.removeAttr("style");
|
105 |
-
|
106 |
-
var top = parseInt(org_elem.offset()['top']);
|
107 |
-
var left = parseInt(org_elem.offset()['left']);
|
108 |
-
var org_width = parseInt(org_elem.outerWidth());
|
109 |
-
var org_height = parseInt(org_elem.outerHeight());
|
110 |
-
var tip_w = tiptip_holder.outerWidth();
|
111 |
-
var tip_h = tiptip_holder.outerHeight();
|
112 |
-
var w_compare = Math.round((org_width - tip_w) / 2);
|
113 |
-
var h_compare = Math.round((org_height - tip_h) / 2);
|
114 |
-
var marg_left = Math.round(left + w_compare);
|
115 |
-
var marg_top = Math.round(top + org_height + opts.edgeOffset);
|
116 |
-
var t_class = "";
|
117 |
-
var arrow_top = "";
|
118 |
-
var arrow_left = Math.round(tip_w - 12) / 2;
|
119 |
-
|
120 |
-
if(opts.defaultPosition == "bottom"){
|
121 |
-
t_class = "_bottom";
|
122 |
-
} else if(opts.defaultPosition == "top"){
|
123 |
-
t_class = "_top";
|
124 |
-
} else if(opts.defaultPosition == "left"){
|
125 |
-
t_class = "_left";
|
126 |
-
} else if(opts.defaultPosition == "right"){
|
127 |
-
t_class = "_right";
|
128 |
-
}
|
129 |
-
|
130 |
-
var right_compare = (w_compare + left) < parseInt($(window).scrollLeft());
|
131 |
-
var left_compare = (tip_w + left) > parseInt($(window).width());
|
132 |
-
|
133 |
-
if((right_compare && w_compare < 0) || (t_class == "_right" && !left_compare) || (t_class == "_left" && left < (tip_w + opts.edgeOffset + 5))){
|
134 |
-
t_class = "_right";
|
135 |
-
arrow_top = Math.round(tip_h - 13) / 2;
|
136 |
-
arrow_left = -12;
|
137 |
-
marg_left = Math.round(left + org_width + opts.edgeOffset);
|
138 |
-
marg_top = Math.round(top + h_compare);
|
139 |
-
} else if((left_compare && w_compare < 0) || (t_class == "_left" && !right_compare)){
|
140 |
-
t_class = "_left";
|
141 |
-
arrow_top = Math.round(tip_h - 13) / 2;
|
142 |
-
arrow_left = Math.round(tip_w);
|
143 |
-
marg_left = Math.round(left - (tip_w + opts.edgeOffset + 5));
|
144 |
-
marg_top = Math.round(top + h_compare);
|
145 |
-
}
|
146 |
-
|
147 |
-
var top_compare = (top + org_height + opts.edgeOffset + tip_h + 8) > parseInt($(window).height() + $(window).scrollTop());
|
148 |
-
var bottom_compare = ((top + org_height) - (opts.edgeOffset + tip_h + 8)) < 0;
|
149 |
-
|
150 |
-
if(top_compare || (t_class == "_bottom" && top_compare) || (t_class == "_top" && !bottom_compare)){
|
151 |
-
if(t_class == "_top" || t_class == "_bottom"){
|
152 |
-
t_class = "_top";
|
153 |
-
} else {
|
154 |
-
t_class = t_class+"_top";
|
155 |
-
}
|
156 |
-
arrow_top = tip_h;
|
157 |
-
marg_top = Math.round(top - (tip_h + 5 + opts.edgeOffset));
|
158 |
-
} else if(bottom_compare | (t_class == "_top" && bottom_compare) || (t_class == "_bottom" && !top_compare)){
|
159 |
-
if(t_class == "_top" || t_class == "_bottom"){
|
160 |
-
t_class = "_bottom";
|
161 |
-
} else {
|
162 |
-
t_class = t_class+"_bottom";
|
163 |
-
}
|
164 |
-
arrow_top = -12;
|
165 |
-
marg_top = Math.round(top + org_height + opts.edgeOffset);
|
166 |
-
}
|
167 |
-
|
168 |
-
if(t_class == "_right_top" || t_class == "_left_top"){
|
169 |
-
marg_top = marg_top + 5;
|
170 |
-
} else if(t_class == "_right_bottom" || t_class == "_left_bottom"){
|
171 |
-
marg_top = marg_top - 5;
|
172 |
-
}
|
173 |
-
if(t_class == "_left_top" || t_class == "_left_bottom"){
|
174 |
-
marg_left = marg_left + 5;
|
175 |
-
}
|
176 |
-
tiptip_arrow.css({"margin-left": arrow_left+"px", "margin-top": arrow_top+"px"});
|
177 |
-
tiptip_holder.css({"margin-left": marg_left+"px", "margin-top": marg_top+"px"}).attr("class","tip"+t_class);
|
178 |
-
|
179 |
-
if (timeout){ clearTimeout(timeout); }
|
180 |
-
timeout = setTimeout(function(){ tiptip_holder.stop(true,true).fadeIn(opts.fadeIn); }, opts.delay);
|
181 |
-
}
|
182 |
-
|
183 |
-
function deactive_tiptip(){
|
184 |
-
opts.exit.call(this);
|
185 |
-
if (timeout){ clearTimeout(timeout); }
|
186 |
-
tiptip_holder.fadeOut(opts.fadeOut);
|
187 |
-
}
|
188 |
-
}
|
189 |
-
});
|
190 |
-
}
|
191 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/lib/jquery-tiptip/jquery.tipTip.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
!function(t){t.fn.tipTip=function(e){var o={activation:"hover",keepAlive:!1,maxWidth:"200px",edgeOffset:3,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:!1,enter:function(){},exit:function(){}},i=t.extend(o,e);if(t("#tiptip_holder").length<=0){var n=t('<div id="tiptip_holder" style="max-width:'+i.maxWidth+';"></div>'),r=t('<div id="tiptip_content"></div>'),a=t('<div id="tiptip_arrow"></div>');t("body").append(n.html(r).prepend(a.html('<div id="tiptip_arrow_inner"></div>')))}else var n=t("#tiptip_holder"),r=t("#tiptip_content"),a=t("#tiptip_arrow");return this.each(function(){function e(){i.enter.call(this),r.html(d),n.hide().removeAttr("class").css("margin","0"),a.removeAttr("style");var e=parseInt(f.offset().top),o=parseInt(f.offset().left),p=parseInt(f.outerWidth()),l=parseInt(f.outerHeight()),h=n.outerWidth(),c=n.outerHeight(),s=Math.round((p-h)/2),_=Math.round((l-c)/2),v=Math.round(o+s),m=Math.round(e+l+i.edgeOffset),g="",b="",M=Math.round(h-12)/2;"bottom"==i.defaultPosition?g="_bottom":"top"==i.defaultPosition?g="_top":"left"==i.defaultPosition?g="_left":"right"==i.defaultPosition&&(g="_right");var w=s+o<parseInt(t(window).scrollLeft()),O=h+o>parseInt(t(window).width());w&&s<0||"_right"==g&&!O||"_left"==g&&o<h+i.edgeOffset+5?(g="_right",b=Math.round(c-13)/2,M=-12,v=Math.round(o+p+i.edgeOffset),m=Math.round(e+_)):(O&&s<0||"_left"==g&&!w)&&(g="_left",b=Math.round(c-13)/2,M=Math.round(h),v=Math.round(o-(h+i.edgeOffset+5)),m=Math.round(e+_));var x=e+l+i.edgeOffset+c+8>parseInt(t(window).height()+t(window).scrollTop()),I=e+l-(i.edgeOffset+c+8)<0;x||"_bottom"==g&&x||"_top"==g&&!I?("_top"==g||"_bottom"==g?g="_top":g+="_top",b=c,m=Math.round(e-(c+5+i.edgeOffset))):(I|("_top"==g&&I)||"_bottom"==g&&!x)&&("_top"==g||"_bottom"==g?g="_bottom":g+="_bottom",b=-12,m=Math.round(e+l+i.edgeOffset)),"_right_top"==g||"_left_top"==g?m+=5:"_right_bottom"!=g&&"_left_bottom"!=g||(m-=5),"_left_top"!=g&&"_left_bottom"!=g||(v+=5),a.css({"margin-left":M+"px","margin-top":b+"px"}),n.css({"margin-left":v+"px","margin-top":m+"px"}).attr("class","tip"+g),u&&clearTimeout(u),u=setTimeout(function(){n.stop(!0,!0).fadeIn(i.fadeIn)},i.delay)}function o(){i.exit.call(this),u&&clearTimeout(u),n.fadeOut(i.fadeOut)}var f=t(this);if(i.content)d=i.content;else var d=f.attr(i.attribute);if(""!=d){i.content||f.removeAttr(i.attribute);var u=!1;"hover"==i.activation?(f.hover(function(){e()},function(){i.keepAlive||o()}),i.keepAlive&&n.hover(function(){},function(){o()})):"focus"==i.activation?f.focus(function(){e()}).blur(function(){o()}):"click"==i.activation&&(f.click(function(){return e(),!1}).hover(function(){},function(){i.keepAlive||o()}),i.keepAlive&&n.hover(function(){},function(){o()}))}})}}(jQuery);
|
|
assets/src/admin/accordion.js
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
(function ($) {
|
2 |
-
'use strict';
|
3 |
-
$(document).on("click", ".accordion-header", function () {
|
4 |
-
$(this).toggleClass('active');
|
5 |
-
var panel = $(this).next();
|
6 |
-
|
7 |
-
if (parseInt(panel.css('max-height')) > 0) {
|
8 |
-
panel.css('max-height', '0');
|
9 |
-
panel.css('overflow', 'hidden');
|
10 |
-
} else {
|
11 |
-
panel.css('max-height', panel.prop('scrollHeight') + "px");
|
12 |
-
panel.css('overflow', 'visible');
|
13 |
-
}
|
14 |
-
});
|
15 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/admin/hero-banner.js
DELETED
@@ -1,295 +0,0 @@
|
|
1 |
-
(function ($) {
|
2 |
-
"use strict";
|
3 |
-
|
4 |
-
var body = $('body'),
|
5 |
-
contentButtonModal = $('#contentButtonModal'),
|
6 |
-
frame,
|
7 |
-
section,
|
8 |
-
imgIdInput,
|
9 |
-
slideCanvas,
|
10 |
-
delImgLink,
|
11 |
-
buttonConfig;
|
12 |
-
|
13 |
-
// Add new content slide
|
14 |
-
body.on('click', '.carousel-slider__add-slide', function (e) {
|
15 |
-
e.preventDefault();
|
16 |
-
|
17 |
-
$.ajax({
|
18 |
-
url: ajaxurl,
|
19 |
-
method: 'POST',
|
20 |
-
data: {
|
21 |
-
action: 'add_content_slide',
|
22 |
-
task: 'add-slide',
|
23 |
-
post_id: $(this).data('post-id')
|
24 |
-
},
|
25 |
-
success: function () {
|
26 |
-
window.location.reload(true);
|
27 |
-
}
|
28 |
-
});
|
29 |
-
});
|
30 |
-
|
31 |
-
// Delete a slide
|
32 |
-
body.on('click', '.carousel_slider__delete_slide', function (e) {
|
33 |
-
e.preventDefault();
|
34 |
-
|
35 |
-
$.ajax({
|
36 |
-
url: ajaxurl,
|
37 |
-
method: 'POST',
|
38 |
-
data: {
|
39 |
-
action: 'add_content_slide',
|
40 |
-
task: 'delete-slide',
|
41 |
-
post_id: $(this).data('post-id'),
|
42 |
-
slide_pos: $(this).data('slide-pos')
|
43 |
-
},
|
44 |
-
success: function () {
|
45 |
-
window.location.reload(true);
|
46 |
-
}
|
47 |
-
});
|
48 |
-
});
|
49 |
-
|
50 |
-
// Move slide to top
|
51 |
-
body.on('click', '.carousel_slider__move_top', function (e) {
|
52 |
-
e.preventDefault();
|
53 |
-
|
54 |
-
$.ajax({
|
55 |
-
url: ajaxurl,
|
56 |
-
method: 'POST',
|
57 |
-
data: {
|
58 |
-
action: 'add_content_slide',
|
59 |
-
task: 'move-slide-top',
|
60 |
-
post_id: $(this).data('post-id'),
|
61 |
-
slide_pos: $(this).data('slide-pos')
|
62 |
-
},
|
63 |
-
success: function () {
|
64 |
-
window.location.reload(true);
|
65 |
-
}
|
66 |
-
});
|
67 |
-
});
|
68 |
-
|
69 |
-
// Move slide up
|
70 |
-
body.on('click', '.carousel_slider__move_up', function (e) {
|
71 |
-
e.preventDefault();
|
72 |
-
|
73 |
-
$.ajax({
|
74 |
-
url: ajaxurl,
|
75 |
-
method: 'POST',
|
76 |
-
data: {
|
77 |
-
action: 'add_content_slide',
|
78 |
-
task: 'move-slide-up',
|
79 |
-
post_id: $(this).data('post-id'),
|
80 |
-
slide_pos: $(this).data('slide-pos')
|
81 |
-
},
|
82 |
-
success: function () {
|
83 |
-
window.location.reload(true);
|
84 |
-
}
|
85 |
-
});
|
86 |
-
});
|
87 |
-
|
88 |
-
// Move slide down
|
89 |
-
body.on('click', '.carousel_slider__move_down', function (e) {
|
90 |
-
e.preventDefault();
|
91 |
-
|
92 |
-
$.ajax({
|
93 |
-
url: ajaxurl,
|
94 |
-
method: 'POST',
|
95 |
-
data: {
|
96 |
-
action: 'add_content_slide',
|
97 |
-
task: 'move-slide-down',
|
98 |
-
post_id: $(this).data('post-id'),
|
99 |
-
slide_pos: $(this).data('slide-pos')
|
100 |
-
},
|
101 |
-
success: function () {
|
102 |
-
window.location.reload(true);
|
103 |
-
}
|
104 |
-
});
|
105 |
-
});
|
106 |
-
|
107 |
-
// Move slide to bottom
|
108 |
-
body.on('click', '.carousel_slider__move_bottom', function (e) {
|
109 |
-
e.preventDefault();
|
110 |
-
|
111 |
-
$.ajax({
|
112 |
-
url: ajaxurl,
|
113 |
-
method: 'POST',
|
114 |
-
data: {
|
115 |
-
action: 'add_content_slide',
|
116 |
-
task: 'move-slide-bottom',
|
117 |
-
post_id: $(this).data('post-id'),
|
118 |
-
slide_pos: $(this).data('slide-pos')
|
119 |
-
},
|
120 |
-
success: function () {
|
121 |
-
window.location.reload(true);
|
122 |
-
}
|
123 |
-
});
|
124 |
-
});
|
125 |
-
|
126 |
-
// Add slide image
|
127 |
-
body.on('click', '.slide_image_add', function (e) {
|
128 |
-
e.preventDefault();
|
129 |
-
|
130 |
-
var _this = $(this);
|
131 |
-
section = _this.closest('.slide_bg_wrapper');
|
132 |
-
slideCanvas = section.find('.content_slide_canvas');
|
133 |
-
imgIdInput = section.find('.background_image_id');
|
134 |
-
delImgLink = section.find('.delete-bg-img');
|
135 |
-
|
136 |
-
// If the media frame already exists, reopen it.
|
137 |
-
if (frame) {
|
138 |
-
frame.open();
|
139 |
-
return;
|
140 |
-
}
|
141 |
-
|
142 |
-
// Create a new media frame
|
143 |
-
frame = wp.media({
|
144 |
-
title: _this.data('title'),
|
145 |
-
button: {
|
146 |
-
text: _this.data('button-text')
|
147 |
-
},
|
148 |
-
multiple: false // Set to true to allow multiple files to be selected
|
149 |
-
});
|
150 |
-
|
151 |
-
// When an image is selected in the media frame...
|
152 |
-
frame.on('select', function () {
|
153 |
-
|
154 |
-
// Get media attachment details from the frame state
|
155 |
-
var attachment = frame.state().get('selection').first().toJSON();
|
156 |
-
|
157 |
-
// Send the attachment URL to our custom image input field.
|
158 |
-
slideCanvas.css('background-image', 'url(' + attachment.url + ')');
|
159 |
-
|
160 |
-
// Send the attachment id to our hidden input
|
161 |
-
imgIdInput.val(attachment.id);
|
162 |
-
|
163 |
-
// Show the remove image link
|
164 |
-
delImgLink.removeClass('hidden');
|
165 |
-
});
|
166 |
-
|
167 |
-
// Finally, open the modal on click
|
168 |
-
frame.open();
|
169 |
-
});
|
170 |
-
|
171 |
-
// Remove slide image
|
172 |
-
body.on('click', '.delete-bg-img', function (e) {
|
173 |
-
e.preventDefault();
|
174 |
-
|
175 |
-
section = $(this).closest('.slide_bg_wrapper');
|
176 |
-
slideCanvas = section.find('.content_slide_canvas');
|
177 |
-
imgIdInput = section.find('.background_image_id');
|
178 |
-
delImgLink = section.find('.delete-bg-img');
|
179 |
-
|
180 |
-
// Clear out the preview image
|
181 |
-
slideCanvas.css('background-image', '');
|
182 |
-
|
183 |
-
// Delete the image id from the hidden input
|
184 |
-
imgIdInput.val('0');
|
185 |
-
|
186 |
-
// Hide the delete image link
|
187 |
-
delImgLink.addClass('hidden');
|
188 |
-
});
|
189 |
-
|
190 |
-
// Background Position
|
191 |
-
body.on('change', '.background_image_position', function () {
|
192 |
-
var _val = $(this).val();
|
193 |
-
section = $(this).closest('.slide_bg_wrapper');
|
194 |
-
slideCanvas = section.find('.content_slide_canvas');
|
195 |
-
slideCanvas.css('background-position', _val);
|
196 |
-
});
|
197 |
-
|
198 |
-
// Background Size
|
199 |
-
body.on('change', '.background_image_size', function () {
|
200 |
-
var _val = $(this).val();
|
201 |
-
section = $(this).closest('.slide_bg_wrapper');
|
202 |
-
slideCanvas = section.find('.content_slide_canvas');
|
203 |
-
slideCanvas.css('background-size', _val);
|
204 |
-
});
|
205 |
-
|
206 |
-
// Add Button Style to Modal for Edit
|
207 |
-
$('.addContentButton').on('click', function (e) {
|
208 |
-
e.preventDefault();
|
209 |
-
|
210 |
-
buttonConfig = $(this).closest('.button_config');
|
211 |
-
var button_text = buttonConfig.find('.button_text').val();
|
212 |
-
var button_url = buttonConfig.find('.button_url').val();
|
213 |
-
var button_target = buttonConfig.find('.button_target').val();
|
214 |
-
var button_type = buttonConfig.find('.button_type').val();
|
215 |
-
var button_size = buttonConfig.find('.button_size').val();
|
216 |
-
var button_color = buttonConfig.find('.button_color').val();
|
217 |
-
|
218 |
-
contentButtonModal.find('#_button_text').val(button_text);
|
219 |
-
contentButtonModal.find('#_button_url').val(button_url);
|
220 |
-
contentButtonModal.find('#_button_target').val(button_target);
|
221 |
-
contentButtonModal.find('#_button_type').val(button_type);
|
222 |
-
contentButtonModal.find('#_button_size').val(button_size);
|
223 |
-
contentButtonModal.find('#_button_color').val(button_color);
|
224 |
-
|
225 |
-
contentButtonModal.addClass('is-active');
|
226 |
-
});
|
227 |
-
|
228 |
-
// Save Button style from modal form
|
229 |
-
$('#saveContentButton').on('click', function (e) {
|
230 |
-
e.preventDefault();
|
231 |
-
|
232 |
-
if (!buttonConfig) {
|
233 |
-
contentButtonModal.removeClass('is-active');
|
234 |
-
return false;
|
235 |
-
}
|
236 |
-
|
237 |
-
var button_text = contentButtonModal.find('#_button_text').val();
|
238 |
-
var button_url = contentButtonModal.find('#_button_url').val();
|
239 |
-
var button_target = contentButtonModal.find('#_button_target').val();
|
240 |
-
var button_type = contentButtonModal.find('#_button_type').val();
|
241 |
-
var button_size = contentButtonModal.find('#_button_size').val();
|
242 |
-
var button_color = contentButtonModal.find('#_button_color').val();
|
243 |
-
|
244 |
-
buttonConfig.find('.button_text').val(button_text);
|
245 |
-
buttonConfig.find('.button_url').val(button_url);
|
246 |
-
buttonConfig.find('.button_target').val(button_target);
|
247 |
-
buttonConfig.find('.button_type').val(button_type);
|
248 |
-
buttonConfig.find('.button_size').val(button_size);
|
249 |
-
buttonConfig.find('.button_color').val(button_color);
|
250 |
-
|
251 |
-
contentButtonModal.removeClass('is-active');
|
252 |
-
|
253 |
-
});
|
254 |
-
|
255 |
-
// Background Color
|
256 |
-
$('.slide-color-picker').each(function () {
|
257 |
-
section = $(this).closest('.slide_bg_wrapper');
|
258 |
-
slideCanvas = section.find('.content_slide_canvas');
|
259 |
-
$(this).wpColorPicker({
|
260 |
-
palettes: [
|
261 |
-
'#2196F3', // Blue
|
262 |
-
'#009688', // Teal
|
263 |
-
'#4CAF50', // Green
|
264 |
-
'#F44336', // Red
|
265 |
-
'#FFEB3B', // Yellow
|
266 |
-
'#00D1B2', // Firoza
|
267 |
-
'#000000', // Blank
|
268 |
-
'#ffffff' // White
|
269 |
-
],
|
270 |
-
change: function (event, ui) {
|
271 |
-
slideCanvas.css('background-color', ui.color.toString());
|
272 |
-
}
|
273 |
-
});
|
274 |
-
});
|
275 |
-
|
276 |
-
// Slide Link
|
277 |
-
$(document).on('change', '.link_type', function (e) {
|
278 |
-
var _this = $(this);
|
279 |
-
var _val = _this.val();
|
280 |
-
var _tab = _this.closest('.tab-content-link');
|
281 |
-
var _linkFull = _tab.find('.ContentCarouselLinkFull');
|
282 |
-
var _linkBtn = _tab.find('.ContentCarouselLinkButtons');
|
283 |
-
if (_val === 'full') {
|
284 |
-
_linkBtn.hide();
|
285 |
-
_linkFull.show();
|
286 |
-
} else if (_val === 'button') {
|
287 |
-
_linkFull.hide();
|
288 |
-
_linkBtn.show();
|
289 |
-
} else {
|
290 |
-
_linkFull.hide();
|
291 |
-
_linkBtn.hide();
|
292 |
-
}
|
293 |
-
})
|
294 |
-
|
295 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/admin/media-gallery.js
DELETED
@@ -1,131 +0,0 @@
|
|
1 |
-
(function ($) {
|
2 |
-
"use strict";
|
3 |
-
|
4 |
-
var frame,
|
5 |
-
_this = $('#carousel_slider_gallery_btn'),
|
6 |
-
images = _this.data('ids'),
|
7 |
-
selection = loadImages(images);
|
8 |
-
|
9 |
-
_this.on('click', function (e) {
|
10 |
-
e.preventDefault();
|
11 |
-
var options = {
|
12 |
-
title: _this.data('create'),
|
13 |
-
state: 'gallery-edit',
|
14 |
-
frame: 'post',
|
15 |
-
selection: selection
|
16 |
-
};
|
17 |
-
|
18 |
-
if (frame || selection) {
|
19 |
-
options['title'] = _this.data('edit');
|
20 |
-
}
|
21 |
-
|
22 |
-
frame = wp.media(options).open();
|
23 |
-
|
24 |
-
// Tweak Views
|
25 |
-
frame.menu.get('view').unset('cancel');
|
26 |
-
frame.menu.get('view').unset('separateCancel');
|
27 |
-
frame.menu.get('view').get('gallery-edit').el.innerHTML = _this.data('edit');
|
28 |
-
frame.content.get('view').sidebar.unset('gallery'); // Hide Gallery Settings in sidebar
|
29 |
-
|
30 |
-
// when editing a gallery
|
31 |
-
overrideGalleryInsert();
|
32 |
-
frame.on('toolbar:render:gallery-edit', function () {
|
33 |
-
overrideGalleryInsert();
|
34 |
-
});
|
35 |
-
|
36 |
-
frame.on('content:render:browse', function (browser) {
|
37 |
-
if (!browser) return;
|
38 |
-
// Hide Gallery Settings in sidebar
|
39 |
-
browser.sidebar.on('ready', function () {
|
40 |
-
browser.sidebar.unset('gallery');
|
41 |
-
});
|
42 |
-
// Hide filter/search as they don't work
|
43 |
-
browser.toolbar.on('ready', function () {
|
44 |
-
if (browser.toolbar.controller._state === 'gallery-library') {
|
45 |
-
browser.toolbar.$el.hide();
|
46 |
-
}
|
47 |
-
});
|
48 |
-
});
|
49 |
-
|
50 |
-
// All images removed
|
51 |
-
frame.state().get('library').on('remove', function () {
|
52 |
-
var models = frame.state().get('library');
|
53 |
-
if (models.length === 0) {
|
54 |
-
selection = false;
|
55 |
-
$.post(ajaxurl, {
|
56 |
-
ids: '',
|
57 |
-
action: 'carousel_slider_save_images',
|
58 |
-
post_id: _this.data('id')
|
59 |
-
});
|
60 |
-
}
|
61 |
-
});
|
62 |
-
|
63 |
-
function overrideGalleryInsert() {
|
64 |
-
frame.toolbar.get('view').set({
|
65 |
-
insert: {
|
66 |
-
style: 'primary',
|
67 |
-
text: _this.data('save'),
|
68 |
-
click: function () {
|
69 |
-
var models = frame.state().get('library'),
|
70 |
-
ids = '';
|
71 |
-
|
72 |
-
models.each(function (attachment) {
|
73 |
-
ids += attachment.id + ','
|
74 |
-
});
|
75 |
-
|
76 |
-
this.el.innerHTML = _this.data('progress');
|
77 |
-
|
78 |
-
$.ajax({
|
79 |
-
type: 'POST',
|
80 |
-
url: ajaxurl,
|
81 |
-
data: {
|
82 |
-
ids: ids,
|
83 |
-
action: 'carousel_slider_save_images',
|
84 |
-
post_id: _this.data('id')
|
85 |
-
},
|
86 |
-
success: function () {
|
87 |
-
selection = loadImages(ids);
|
88 |
-
$('#_carousel_slider_images_ids').val(ids);
|
89 |
-
frame.close();
|
90 |
-
},
|
91 |
-
dataType: 'html'
|
92 |
-
}).done(function (data) {
|
93 |
-
$('.carousel_slider_gallery_list').html(data);
|
94 |
-
});
|
95 |
-
}
|
96 |
-
}
|
97 |
-
});
|
98 |
-
}
|
99 |
-
|
100 |
-
});
|
101 |
-
|
102 |
-
function loadImages(images) {
|
103 |
-
if (images) {
|
104 |
-
var shortcode = new wp.shortcode({
|
105 |
-
tag: 'gallery',
|
106 |
-
attrs: {ids: images},
|
107 |
-
type: 'single'
|
108 |
-
});
|
109 |
-
|
110 |
-
var attachments = wp.media.gallery.attachments(shortcode);
|
111 |
-
|
112 |
-
var selection = new wp.media.model.Selection(attachments.models, {
|
113 |
-
props: attachments.props.toJSON(),
|
114 |
-
multiple: true
|
115 |
-
});
|
116 |
-
|
117 |
-
selection.gallery = attachments.gallery;
|
118 |
-
|
119 |
-
selection.more().done(function () {
|
120 |
-
// Break ties with the query.
|
121 |
-
selection.props.set({query: false});
|
122 |
-
selection.unmirror();
|
123 |
-
selection.props.unset('orderby');
|
124 |
-
});
|
125 |
-
|
126 |
-
return selection;
|
127 |
-
}
|
128 |
-
return false;
|
129 |
-
}
|
130 |
-
|
131 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/admin/media-url.js
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* Carousel Slider Gallery from URL
|
3 |
-
*/
|
4 |
-
(function ($) {
|
5 |
-
'use strict';
|
6 |
-
|
7 |
-
var body = $('body'),
|
8 |
-
modal = $('#CarouselSliderModal'),
|
9 |
-
modalOpenBtn = $('#_images_urls_btn'),
|
10 |
-
template = $('#carouselSliderGalleryUrlTemplate').html();
|
11 |
-
|
12 |
-
// URL Images Model
|
13 |
-
modalOpenBtn.on('click', function (e) {
|
14 |
-
e.preventDefault();
|
15 |
-
modal.css("display", "block");
|
16 |
-
$("body").addClass("overflowHidden");
|
17 |
-
});
|
18 |
-
modal.on('click', '.carousel_slider-close', function (e) {
|
19 |
-
e.preventDefault();
|
20 |
-
modal.css("display", "none");
|
21 |
-
$("body").removeClass("overflowHidden");
|
22 |
-
});
|
23 |
-
|
24 |
-
var carouselSliderBodyHeight = $(window).height() - (38 + 48 + 32 + 30);
|
25 |
-
$('.carousel_slider-modal-body').css('height', carouselSliderBodyHeight + 'px');
|
26 |
-
|
27 |
-
// Append new row
|
28 |
-
body.on('click', '.add_row', function () {
|
29 |
-
$(this).closest('.carousel_slider-fields').after(template);
|
30 |
-
});
|
31 |
-
|
32 |
-
// Delete current row
|
33 |
-
body.on('click', '.delete_row', function () {
|
34 |
-
$(this).closest('.carousel_slider-fields').remove();
|
35 |
-
});
|
36 |
-
|
37 |
-
// Make fields sortable
|
38 |
-
$('#carousel_slider_form').sortable();
|
39 |
-
|
40 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/admin/modal.js
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
(function ($) {
|
2 |
-
'use strict';
|
3 |
-
|
4 |
-
// Open modal
|
5 |
-
$(document).on('click', '[data-toggle="modal"]', function (e) {
|
6 |
-
e.preventDefault();
|
7 |
-
$($(this).data('target')).addClass('is-active');
|
8 |
-
});
|
9 |
-
|
10 |
-
// Close modal
|
11 |
-
$(document).on('click', '[data-dismiss="modal"]', function (e) {
|
12 |
-
e.preventDefault();
|
13 |
-
$(this).closest('.modal').removeClass('is-active');
|
14 |
-
});
|
15 |
-
|
16 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/admin/slide-type.js
DELETED
@@ -1,144 +0,0 @@
|
|
1 |
-
(function ($) {
|
2 |
-
"use strict";
|
3 |
-
|
4 |
-
var slide_type = $('#_carousel_slider_slide_type'),
|
5 |
-
section_images_settings = $('#section_images_settings'),
|
6 |
-
section_url_images_settings = $('#section_url_images_settings'),
|
7 |
-
section_images_general_settings = $('#section_images_general_settings'),
|
8 |
-
section_post_query = $('#section_post_query'),
|
9 |
-
section_video_settings = $('#section_video_settings'),
|
10 |
-
section_product_query = $('#section_product_query'),
|
11 |
-
section_content_carousel = $('#section_content_carousel'),
|
12 |
-
// Slide Type -- Post
|
13 |
-
_post_query_type = $('#_post_query_type'),
|
14 |
-
_post_date_after = $('#field-_post_date_after'),
|
15 |
-
_post_date_before = $('#field-_post_date_before'),
|
16 |
-
_post_categories = $('#field-_post_categories'),
|
17 |
-
_post_tags = $('#field-_post_tags'),
|
18 |
-
_post_in = $('#field-_post_in'),
|
19 |
-
_posts_per_page = $('#field-_posts_per_page'),
|
20 |
-
// Slide Type -- Product
|
21 |
-
_product_query_type = $('#_product_query_type'),
|
22 |
-
_product_query = $('#field-_product_query'),
|
23 |
-
_product_categories = $('#field-_product_categories'),
|
24 |
-
_product_tags = $('#field-_product_tags'),
|
25 |
-
_product_in = $('#field-_product_in'),
|
26 |
-
_products_per_page = $('#field-_products_per_page');
|
27 |
-
|
28 |
-
// Slide Type
|
29 |
-
slide_type.on('change', function () {
|
30 |
-
section_images_settings.hide('fast');
|
31 |
-
section_url_images_settings.hide('fast');
|
32 |
-
section_images_general_settings.hide('fast');
|
33 |
-
section_post_query.hide('fast');
|
34 |
-
section_video_settings.hide('fast');
|
35 |
-
section_product_query.hide('fast');
|
36 |
-
section_content_carousel.hide('fast');
|
37 |
-
|
38 |
-
if (this.value === 'image-carousel') {
|
39 |
-
section_images_settings.slideDown();
|
40 |
-
section_images_general_settings.slideDown();
|
41 |
-
}
|
42 |
-
if (this.value === 'image-carousel-url') {
|
43 |
-
section_url_images_settings.slideDown();
|
44 |
-
section_images_general_settings.slideDown();
|
45 |
-
}
|
46 |
-
if (this.value === 'post-carousel') {
|
47 |
-
section_post_query.slideDown();
|
48 |
-
}
|
49 |
-
if (this.value === 'video-carousel') {
|
50 |
-
section_video_settings.slideDown();
|
51 |
-
}
|
52 |
-
if (this.value === 'product-carousel') {
|
53 |
-
section_product_query.slideDown();
|
54 |
-
_product_query.show();
|
55 |
-
}
|
56 |
-
if (this.value === 'hero-banner-slider') {
|
57 |
-
section_content_carousel.slideDown();
|
58 |
-
}
|
59 |
-
});
|
60 |
-
|
61 |
-
// Slide Type -- Post Carousel
|
62 |
-
if (slide_type.val() === 'post-carousel') {
|
63 |
-
var _postQueryType = _post_query_type.val();
|
64 |
-
if (_postQueryType === 'date_range') {
|
65 |
-
_post_date_after.show();
|
66 |
-
_post_date_before.show();
|
67 |
-
}
|
68 |
-
if (_postQueryType === 'post_categories') {
|
69 |
-
_post_categories.show();
|
70 |
-
}
|
71 |
-
if (_postQueryType === 'post_tags') {
|
72 |
-
_post_tags.show();
|
73 |
-
}
|
74 |
-
if (_postQueryType === 'specific_posts') {
|
75 |
-
_post_in.show();
|
76 |
-
_posts_per_page.hide();
|
77 |
-
}
|
78 |
-
}
|
79 |
-
|
80 |
-
_post_query_type.on('change', function () {
|
81 |
-
|
82 |
-
_post_date_after.hide('fast');
|
83 |
-
_post_date_before.hide('fast');
|
84 |
-
_post_categories.hide('fast');
|
85 |
-
_post_tags.hide('fast');
|
86 |
-
_post_in.hide('fast');
|
87 |
-
_posts_per_page.show('fast');
|
88 |
-
|
89 |
-
if (this.value === 'date_range') {
|
90 |
-
_post_date_after.slideDown();
|
91 |
-
_post_date_before.slideDown();
|
92 |
-
}
|
93 |
-
if (this.value === 'post_categories') {
|
94 |
-
_post_categories.slideDown();
|
95 |
-
}
|
96 |
-
if (this.value === 'post_tags') {
|
97 |
-
_post_tags.slideDown();
|
98 |
-
}
|
99 |
-
if (this.value === 'specific_posts') {
|
100 |
-
_post_in.slideDown();
|
101 |
-
_posts_per_page.hide('fast');
|
102 |
-
}
|
103 |
-
});
|
104 |
-
|
105 |
-
// Slide Type -- Product Carousel
|
106 |
-
if (slide_type.val() === 'product-carousel') {
|
107 |
-
var _productQueryType = _product_query_type.val();
|
108 |
-
if (_productQueryType === 'query_porduct') {
|
109 |
-
_product_query.show();
|
110 |
-
}
|
111 |
-
if (_productQueryType === 'product_categories') {
|
112 |
-
_product_categories.show();
|
113 |
-
}
|
114 |
-
if (_productQueryType === 'product_tags') {
|
115 |
-
_product_tags.show();
|
116 |
-
}
|
117 |
-
if (_productQueryType === 'specific_products') {
|
118 |
-
_product_in.show();
|
119 |
-
}
|
120 |
-
}
|
121 |
-
|
122 |
-
_product_query_type.on('change', function () {
|
123 |
-
|
124 |
-
_product_query.hide('fast');
|
125 |
-
_product_categories.hide('fast');
|
126 |
-
_product_tags.hide('fast');
|
127 |
-
_product_in.hide('fast');
|
128 |
-
_products_per_page.show('fast');
|
129 |
-
|
130 |
-
if (this.value === 'query_porduct') {
|
131 |
-
_product_query.slideDown();
|
132 |
-
}
|
133 |
-
if (this.value === 'product_categories') {
|
134 |
-
_product_categories.slideDown();
|
135 |
-
}
|
136 |
-
if (this.value === 'product_tags') {
|
137 |
-
_product_tags.slideDown();
|
138 |
-
}
|
139 |
-
if (this.value === 'specific_products') {
|
140 |
-
_product_in.slideDown();
|
141 |
-
_products_per_page.hide('fast');
|
142 |
-
}
|
143 |
-
});
|
144 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/admin/vendors.js
DELETED
@@ -1,69 +0,0 @@
|
|
1 |
-
(function ($) {
|
2 |
-
"use strict";
|
3 |
-
|
4 |
-
// Initializing TipTip
|
5 |
-
$(".cs-tooltip").each(function () {
|
6 |
-
$(this).tipTip();
|
7 |
-
});
|
8 |
-
|
9 |
-
// Initializing Select2
|
10 |
-
$("select.select2").each(function () {
|
11 |
-
$(this).select2();
|
12 |
-
});
|
13 |
-
|
14 |
-
// Initializing jQuery UI Accordion
|
15 |
-
$(".shapla-toggle").each(function () {
|
16 |
-
if ($(this).attr('data-id') === 'closed') {
|
17 |
-
$(this).accordion({
|
18 |
-
collapsible: true,
|
19 |
-
heightStyle: "content",
|
20 |
-
active: false
|
21 |
-
});
|
22 |
-
} else {
|
23 |
-
$(this).accordion({
|
24 |
-
collapsible: true,
|
25 |
-
heightStyle: "content"
|
26 |
-
});
|
27 |
-
}
|
28 |
-
});
|
29 |
-
|
30 |
-
// Initializing jQuery UI Tab
|
31 |
-
$(".shapla-tabs").tabs({
|
32 |
-
hide: {
|
33 |
-
effect: "fadeOut",
|
34 |
-
duration: 200
|
35 |
-
},
|
36 |
-
show: {
|
37 |
-
effect: "fadeIn",
|
38 |
-
duration: 200
|
39 |
-
}
|
40 |
-
});
|
41 |
-
|
42 |
-
//Initializing jQuery UI Date picker
|
43 |
-
$('.datepicker').each(function () {
|
44 |
-
$(this).datepicker({
|
45 |
-
dateFormat: 'MM dd, yy',
|
46 |
-
changeMonth: true,
|
47 |
-
changeYear: true,
|
48 |
-
onClose: function (selectedDate) {
|
49 |
-
$(this).datepicker('option', 'minDate', selectedDate);
|
50 |
-
}
|
51 |
-
});
|
52 |
-
});
|
53 |
-
|
54 |
-
// Initializing WP Color Picker
|
55 |
-
$('.color-picker').each(function () {
|
56 |
-
$(this).wpColorPicker({
|
57 |
-
palettes: [
|
58 |
-
'#2196F3', // Blue
|
59 |
-
'#009688', // Teal
|
60 |
-
'#4CAF50', // Green
|
61 |
-
'#F44336', // Red
|
62 |
-
'#FFEB3B', // Yellow
|
63 |
-
'#00D1B2', // Firoza
|
64 |
-
'#000000', // Blank
|
65 |
-
'#ffffff' // White
|
66 |
-
]
|
67 |
-
});
|
68 |
-
});
|
69 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/frontend/main.js
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
jQuery('body').find('.carousel-slider').each(function () {
|
2 |
-
let _this = jQuery(this);
|
3 |
-
let autoWidth = _this.data('auto-width');
|
4 |
-
let stagePadding = parseInt(_this.data('stage-padding'));
|
5 |
-
stagePadding = stagePadding > 0 ? stagePadding : 0;
|
6 |
-
|
7 |
-
if (jQuery().owlCarousel) {
|
8 |
-
_this.owlCarousel({
|
9 |
-
stagePadding: stagePadding,
|
10 |
-
nav: _this.data('nav'),
|
11 |
-
dots: _this.data('dots'),
|
12 |
-
margin: _this.data('margin'),
|
13 |
-
loop: _this.data('loop'),
|
14 |
-
autoplay: _this.data('autoplay'),
|
15 |
-
autoplayTimeout: _this.data('autoplay-timeout'),
|
16 |
-
autoplaySpeed: _this.data('autoplay-speed'),
|
17 |
-
autoplayHoverPause: _this.data('autoplay-hover-pause'),
|
18 |
-
slideBy: _this.data('slide-by'),
|
19 |
-
lazyLoad: _this.data('lazy-load'),
|
20 |
-
autoWidth: autoWidth,
|
21 |
-
navText: [
|
22 |
-
'<svg class="carousel-slider-nav-icon" viewBox="0 0 20 20"><path d="M14 5l-5 5 5 5-1 2-7-7 7-7z"></path></use></svg>',
|
23 |
-
'<svg class="carousel-slider-nav-icon" viewBox="0 0 20 20"><path d="M6 15l5-5-5-5 1-2 7 7-7 7z"></path></svg>'
|
24 |
-
],
|
25 |
-
responsive: {
|
26 |
-
320: {items: _this.data('colums-mobile')},
|
27 |
-
600: {items: _this.data('colums-small-tablet')},
|
28 |
-
768: {items: _this.data('colums-tablet')},
|
29 |
-
993: {items: _this.data('colums-small-desktop')},
|
30 |
-
1200: {items: _this.data('colums-desktop')},
|
31 |
-
1921: {items: _this.data('colums')}
|
32 |
-
}
|
33 |
-
});
|
34 |
-
|
35 |
-
if ('hero-banner-slider' === _this.data('slide-type')) {
|
36 |
-
let animation = _this.data('animation');
|
37 |
-
if (animation.length) {
|
38 |
-
_this.on('change.owl.carousel', function () {
|
39 |
-
let sliderContent = _this.find('.carousel-slider-hero__cell__content');
|
40 |
-
sliderContent.removeClass('animated' + ' ' + animation).hide();
|
41 |
-
});
|
42 |
-
_this.on('changed.owl.carousel', function (e) {
|
43 |
-
setTimeout(function () {
|
44 |
-
let current = jQuery(e.target).find('.carousel-slider-hero__cell__content').eq(e.item.index);
|
45 |
-
current.show().addClass('animated' + ' ' + animation);
|
46 |
-
}, _this.data('autoplay-speed'));
|
47 |
-
});
|
48 |
-
}
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
if (jQuery().magnificPopup) {
|
53 |
-
if (_this.data('slide-type') === 'product-carousel') {
|
54 |
-
jQuery(this).find('.magnific-popup').magnificPopup({
|
55 |
-
type: 'ajax'
|
56 |
-
});
|
57 |
-
} else if ('video-carousel' === _this.data('slide-type')) {
|
58 |
-
jQuery(this).find('.magnific-popup').magnificPopup({
|
59 |
-
type: 'iframe'
|
60 |
-
});
|
61 |
-
} else {
|
62 |
-
jQuery(this).find('.magnific-popup').magnificPopup({
|
63 |
-
type: 'image',
|
64 |
-
gallery: {
|
65 |
-
enabled: true
|
66 |
-
},
|
67 |
-
zoom: {
|
68 |
-
enabled: true,
|
69 |
-
duration: 300,
|
70 |
-
easing: 'ease-in-out'
|
71 |
-
}
|
72 |
-
});
|
73 |
-
}
|
74 |
-
}
|
75 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/gutenberg-block/main.js
DELETED
@@ -1,223 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* Carousel Slider Block
|
3 |
-
*
|
4 |
-
* A block for embedding a carousel slider into a post/page.
|
5 |
-
*/
|
6 |
-
(function (blocks, i18n, editor, element, components) {
|
7 |
-
|
8 |
-
var el = element.createElement, // function to create elements
|
9 |
-
settings = window.carousel_slider_gutenberg_block,
|
10 |
-
TextControl = components.TextControl,// text input control
|
11 |
-
InspectorControls = editor.InspectorControls; // sidebar controls
|
12 |
-
|
13 |
-
// register our block
|
14 |
-
blocks.registerBlockType('carousel-slider/slider', {
|
15 |
-
title: settings.block_title,
|
16 |
-
icon: 'slides',
|
17 |
-
category: 'common',
|
18 |
-
|
19 |
-
attributes: {
|
20 |
-
sliderID: {type: 'integer', default: 0},
|
21 |
-
sliderName: {type: 'string', default: ''}
|
22 |
-
},
|
23 |
-
|
24 |
-
edit: function (props) {
|
25 |
-
var sliderID = props.attributes.sliderID,
|
26 |
-
sliderName = props.attributes.sliderName,
|
27 |
-
children = [];
|
28 |
-
|
29 |
-
if (!sliderID) sliderID = ''; // Default.
|
30 |
-
if (!sliderName) sliderName = ''; // Default
|
31 |
-
|
32 |
-
// this function is required, but we don't need it to do anything
|
33 |
-
function carouselSliderOnValueChange(sliderName) {
|
34 |
-
}
|
35 |
-
|
36 |
-
// show the dropdown when we click on the input
|
37 |
-
function carouselSliderFocusClick(event) {
|
38 |
-
var elementID = event.target.getAttribute('id');
|
39 |
-
var idArray = elementID.split('-');
|
40 |
-
var carouselSliderOptions = document.getElementById('carousel-slider-filter-container-' + idArray[idArray.length - 1]);
|
41 |
-
// get the related input element
|
42 |
-
var carouselSliderInput = document.getElementById('carousel-slider-sliderFilter-' + idArray[idArray.length - 1]);
|
43 |
-
// set focus to the element so the onBlur function runs properly
|
44 |
-
carouselSliderInput.focus();
|
45 |
-
carouselSliderOptions.style.display = 'block';
|
46 |
-
}
|
47 |
-
|
48 |
-
// function for select the slider on filter drop down item click
|
49 |
-
function selectSlider(event) {
|
50 |
-
//set the attributes from the selected for item
|
51 |
-
props.setAttributes({
|
52 |
-
sliderID: parseInt(event.target.getAttribute('data-slider_id')),
|
53 |
-
sliderName: event.target.innerText
|
54 |
-
});
|
55 |
-
/**
|
56 |
-
* Get the main div of the filter to tell if this is being
|
57 |
-
* selected from the sidebar or block so we can hide the dropdown
|
58 |
-
*/
|
59 |
-
var elementID = event.target.parentNode.parentNode;
|
60 |
-
var idArray = elementID.getAttribute('id').split('-');
|
61 |
-
var carouselSliderOptions = document.getElementById('carousel-slider-filter-container-' + idArray[idArray.length - 1]);
|
62 |
-
var inputEl = document.getElementById('carousel-slider-sliderFilter-sidebar');
|
63 |
-
|
64 |
-
if (inputEl) {
|
65 |
-
inputEl.value = '';
|
66 |
-
}
|
67 |
-
carouselSliderOptions.style.display = 'none';
|
68 |
-
}
|
69 |
-
|
70 |
-
function carouselSliderHideOptions(event) {
|
71 |
-
/**
|
72 |
-
* Get the main div of the filter to tell if this is being
|
73 |
-
* selected from the sidebar or block so we can hide the dropdown
|
74 |
-
*/
|
75 |
-
var elementID = event.target.getAttribute('id');
|
76 |
-
var idArray = elementID.split('-');
|
77 |
-
var carouselSliderOptions = document.getElementById('carousel-slider-filter-container-' + idArray[idArray.length - 1]);
|
78 |
-
carouselSliderOptions.style.display = 'none';
|
79 |
-
}
|
80 |
-
|
81 |
-
function carouselSliderInputKeyUp(event) {
|
82 |
-
var val = event.target.value;
|
83 |
-
/**
|
84 |
-
* Get the main div of the filter to tell if this is being
|
85 |
-
* selected from the sidebar or block so we can SHOW the dropdown
|
86 |
-
*/
|
87 |
-
var filterInputContainer = event.target.parentNode.parentNode.parentNode;
|
88 |
-
filterInputContainer.querySelector('.carousel-slider-filter-option-container').style.display = 'block';
|
89 |
-
filterInputContainer.style.display = 'block';
|
90 |
-
|
91 |
-
// Let's filter the sliders here
|
92 |
-
_.each(settings.sliders, function (slider, index) {
|
93 |
-
var liEl = filterInputContainer.querySelector("[data-slider_id='" + slider.value + "']");
|
94 |
-
if (0 <= slider.label.toLowerCase().indexOf(val.toLowerCase())) {
|
95 |
-
// shows options that DO contain the text entered
|
96 |
-
liEl.style.display = 'block';
|
97 |
-
} else {
|
98 |
-
// hides options the do not contain the text entered
|
99 |
-
liEl.style.display = 'none';
|
100 |
-
}
|
101 |
-
});
|
102 |
-
}
|
103 |
-
|
104 |
-
// Set up the slider items from the localized php variables
|
105 |
-
var sliderItems = [];
|
106 |
-
_.each(settings.sliders, function (slider, index) {
|
107 |
-
sliderItems.push(el('li', {
|
108 |
-
className: 'carousel-slider-filter-option',
|
109 |
-
'data-slider_id': slider.value, onMouseDown: selectSlider
|
110 |
-
},
|
111 |
-
slider.label + " ( ID: " + slider.value + " )"))
|
112 |
-
});
|
113 |
-
|
114 |
-
// Set up slider filter for the block
|
115 |
-
var inputFilterMain = el('div', {
|
116 |
-
id: 'carousel-slider-filter-input-main',
|
117 |
-
className: 'carousel-slider-filter-input'
|
118 |
-
},
|
119 |
-
el(TextControl, {
|
120 |
-
id: 'carousel-slider-sliderFilter-main',
|
121 |
-
placeHolder: settings.select_slider,
|
122 |
-
className: 'carousel-slider-filter-input-el blocks-select-control__input',
|
123 |
-
onChange: carouselSliderOnValueChange,
|
124 |
-
onClick: carouselSliderFocusClick,
|
125 |
-
onKeyUp: carouselSliderInputKeyUp,
|
126 |
-
onBlur: carouselSliderHideOptions
|
127 |
-
}),
|
128 |
-
el('span', {
|
129 |
-
id: 'carousel-slider-filter-input-icon-main',
|
130 |
-
className: 'carousel-slider-filter-input-icon',
|
131 |
-
onClick: carouselSliderFocusClick,
|
132 |
-
dangerouslySetInnerHTML: {__html: '▾'}
|
133 |
-
}),
|
134 |
-
el('div', {
|
135 |
-
id: 'carousel-slider-filter-container-main',
|
136 |
-
className: 'carousel-slider-filter-option-container'
|
137 |
-
},
|
138 |
-
el('ul', null, sliderItems)
|
139 |
-
)
|
140 |
-
);
|
141 |
-
// Create filter input for the sidebar blocks settings
|
142 |
-
var inputFilterSidebar = el('div', {
|
143 |
-
id: 'carousel-slider-filter-input-sidebar',
|
144 |
-
className: 'carousel-slider-filter-input'
|
145 |
-
},
|
146 |
-
el(TextControl, {
|
147 |
-
id: 'carousel-slider-sliderFilter-sidebar',
|
148 |
-
placeHolder: settings.select_slider,
|
149 |
-
className: 'carousel-slider-filter-input-el blocks-select-control__input',
|
150 |
-
onChange: carouselSliderOnValueChange,
|
151 |
-
onClick: carouselSliderFocusClick,
|
152 |
-
onKeyUp: carouselSliderInputKeyUp,
|
153 |
-
onBlur: carouselSliderHideOptions
|
154 |
-
}),
|
155 |
-
el('span', {
|
156 |
-
id: 'carousel-slider-filter-input-icon-sidebar',
|
157 |
-
className: 'carousel-slider-filter-input-icon',
|
158 |
-
onClick: carouselSliderFocusClick,
|
159 |
-
dangerouslySetInnerHTML: {__html: '▾'}
|
160 |
-
}),
|
161 |
-
el('div', {
|
162 |
-
id: 'carousel-slider-filter-container-sidebar',
|
163 |
-
className: 'carousel-slider-filter-option-container'
|
164 |
-
},
|
165 |
-
el('ul', null, sliderItems)
|
166 |
-
)
|
167 |
-
);
|
168 |
-
|
169 |
-
// Set up the slider filter dropdown in the side bar 'block' settings
|
170 |
-
var inspectorControls = el(InspectorControls, {},
|
171 |
-
el('span', null, settings.selected_slider),
|
172 |
-
el('br', null),
|
173 |
-
el('span', null, sliderName),
|
174 |
-
el('br', null),
|
175 |
-
el('hr', null),
|
176 |
-
el('label', {for: 'carousel-slider-sliderFilter-sidebar'}, settings.filter_slider),
|
177 |
-
inputFilterSidebar
|
178 |
-
);
|
179 |
-
|
180 |
-
/**
|
181 |
-
* Create the div container, add an overlay so the user can interact
|
182 |
-
* with the slider in Gutenberg, then render the iframe with slider
|
183 |
-
*/
|
184 |
-
if ('' === sliderID) {
|
185 |
-
children.push(el('div', {style: {width: '100%'}},
|
186 |
-
el('img', {className: 'carousel-slider-block-logo', src: settings.block_logo}),
|
187 |
-
el('div', null, settings.block_title),
|
188 |
-
inputFilterMain
|
189 |
-
));
|
190 |
-
} else {
|
191 |
-
children.push(
|
192 |
-
el('div', {className: 'carousel-slider-iframe-container'},
|
193 |
-
el('div', {className: 'carousel-slider-iframe-overlay'}),
|
194 |
-
el('iframe', {
|
195 |
-
className: 'carousel-slider-iframe',
|
196 |
-
src: settings.site_url + '?carousel_slider_preview=1&carousel_slider_iframe=1&slider_id=' + sliderID,
|
197 |
-
height: '0',
|
198 |
-
width: '500',
|
199 |
-
scrolling: 'no'
|
200 |
-
})
|
201 |
-
)
|
202 |
-
)
|
203 |
-
}
|
204 |
-
children.push(inspectorControls);
|
205 |
-
return [children];
|
206 |
-
},
|
207 |
-
|
208 |
-
save: function (props) {
|
209 |
-
var sliderID = props.attributes.sliderID;
|
210 |
-
|
211 |
-
if (!sliderID) return '';
|
212 |
-
/**
|
213 |
-
* we're essentially just adding a short code, here is where
|
214 |
-
* it's save in the editor
|
215 |
-
*
|
216 |
-
* return content wrapped in DIV b/c raw HTML is unsupported
|
217 |
-
* going forward
|
218 |
-
*/
|
219 |
-
var returnHTML = '[carousel_slide id=' + parseInt(sliderID) + ']';
|
220 |
-
return el('div', null, returnHTML);
|
221 |
-
}
|
222 |
-
});
|
223 |
-
})(window.wp.blocks, window.wp.i18n, window.wp.editor, window.wp.element, window.wp.components);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/img/ajax-loader.gif
DELETED
Binary file
|
assets/src/img/play.svg
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40" fill="#f1f1f1"><path d="M12.1 6.7 35.1 20.2 12.1 33.7l0-26.9z"/><path d="m19.7 40c-11 0-20-9-20-20 0-11 9-20 20-20 11 0 20 9 20 20 0 11-9 20-20 20zm0-38c-9.9 0-18 8.1-18 18 0 9.9 8.1 18 18 18 9.9 0 18-8.1 18-18 0-9.9-8.1-18-18-18z"/></svg>
|
|
assets/src/scss/admin.scss
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
$imagePath: '../img/';
|
2 |
-
|
3 |
-
@import "utilities/variables";
|
4 |
-
@import "utilities/mixins";
|
5 |
-
@import 'admin/widget';
|
6 |
-
@import 'admin/toggle';
|
7 |
-
@import 'admin/meta-box';
|
8 |
-
@import 'admin/datepicker';
|
9 |
-
@import 'admin/select2';
|
10 |
-
@import 'admin/model';
|
11 |
-
@import 'admin/modal';
|
12 |
-
@import 'admin/tooltip';
|
13 |
-
@import 'admin/tab';
|
14 |
-
@import 'admin/documentation';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_datepicker.scss
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
/* jQuery UI Datepicker */
|
2 |
-
.ui-datepicker{
|
3 |
-
background-color: #ffffff;
|
4 |
-
border:1px solid #cccccc;
|
5 |
-
box-shadow:0 2px 4px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);
|
6 |
-
padding: 8px;
|
7 |
-
display: none;
|
8 |
-
}
|
9 |
-
.ui-datepicker-header {
|
10 |
-
background-color: #f1f1f1;
|
11 |
-
}
|
12 |
-
.ui-datepicker-prev,
|
13 |
-
.ui-datepicker-next {
|
14 |
-
color:#000;
|
15 |
-
padding: 6px;
|
16 |
-
cursor: pointer;
|
17 |
-
}
|
18 |
-
.ui-datepicker-prev:hover,
|
19 |
-
.ui-datepicker-next:hover {
|
20 |
-
color:#000;
|
21 |
-
}
|
22 |
-
.ui-datepicker-prev {
|
23 |
-
float: left;
|
24 |
-
}
|
25 |
-
.ui-datepicker-next {
|
26 |
-
float: right;
|
27 |
-
}
|
28 |
-
.ui-datepicker-calendar td > a {
|
29 |
-
border: 1px solid #ddd;
|
30 |
-
display: block;
|
31 |
-
padding: 6px;
|
32 |
-
text-decoration: none;
|
33 |
-
color:#000;
|
34 |
-
background-color:#f1f1f1;
|
35 |
-
}
|
36 |
-
.ui-datepicker-calendar td.ui-datepicker-today > a {
|
37 |
-
color:#000;
|
38 |
-
background-color:#ffeb3b;
|
39 |
-
}
|
40 |
-
.ui-datepicker-calendar td.ui-datepicker-current-day > a {
|
41 |
-
color:#fff;
|
42 |
-
background-color:#f44336;
|
43 |
-
}
|
44 |
-
.sp-wp-editor-container {
|
45 |
-
max-width: 560px;
|
46 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_documentation.scss
DELETED
@@ -1,44 +0,0 @@
|
|
1 |
-
.carousel_slider_iframe {
|
2 |
-
position: relative;
|
3 |
-
padding-bottom: 56.25%;
|
4 |
-
padding-top: 25px;
|
5 |
-
height: 0;
|
6 |
-
}
|
7 |
-
|
8 |
-
.carousel_slider_iframe > iframe {
|
9 |
-
position: absolute;
|
10 |
-
top: 0;
|
11 |
-
left: 0;
|
12 |
-
width: 100%;
|
13 |
-
height: 100%;
|
14 |
-
}
|
15 |
-
|
16 |
-
.carousel_slider_columns {
|
17 |
-
display: flex;
|
18 |
-
flex-wrap: wrap;
|
19 |
-
box-sizing: border-box;
|
20 |
-
}
|
21 |
-
|
22 |
-
.carousel_slider_column {
|
23 |
-
flex: 0 0 100%;
|
24 |
-
padding: 1rem;
|
25 |
-
box-sizing: border-box;
|
26 |
-
}
|
27 |
-
|
28 |
-
@media screen and (min-width: 601px) {
|
29 |
-
.carousel_slider_column {
|
30 |
-
flex: 0 0 50%;
|
31 |
-
}
|
32 |
-
}
|
33 |
-
|
34 |
-
@media screen and (min-width: 1025px) {
|
35 |
-
.carousel_slider_column {
|
36 |
-
flex: 0 0 33.333333%;
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
@media screen and (min-width: 1400px) {
|
41 |
-
.carousel_slider_column {
|
42 |
-
flex: 0 0 25%;
|
43 |
-
}
|
44 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_meta-box.scss
DELETED
@@ -1,239 +0,0 @@
|
|
1 |
-
// Global
|
2 |
-
.overflowHidden {
|
3 |
-
overflow: hidden;
|
4 |
-
}
|
5 |
-
|
6 |
-
.overflowVisible {
|
7 |
-
overflow: visible;
|
8 |
-
}
|
9 |
-
|
10 |
-
// Meta box fields
|
11 |
-
.sp {
|
12 |
-
&-input-group {
|
13 |
-
margin-bottom: 10px;
|
14 |
-
&:after {
|
15 |
-
content: "";
|
16 |
-
display: table;
|
17 |
-
clear: both
|
18 |
-
}
|
19 |
-
}
|
20 |
-
|
21 |
-
&-input-label {
|
22 |
-
label {
|
23 |
-
font-weight: 600;
|
24 |
-
margin-right: 30px;
|
25 |
-
}
|
26 |
-
}
|
27 |
-
&-input-field {
|
28 |
-
}
|
29 |
-
|
30 |
-
&-input-label,
|
31 |
-
&-input-field {
|
32 |
-
float: left;
|
33 |
-
width: 100%;
|
34 |
-
}
|
35 |
-
&-input-desc {
|
36 |
-
color: #999;
|
37 |
-
font-size: 0.9em;
|
38 |
-
line-height: 1.3em;
|
39 |
-
margin: 10px 30px 10px 0;
|
40 |
-
}
|
41 |
-
&-input-text {
|
42 |
-
width: 100%;
|
43 |
-
padding: 8px 8px 8px 16px;
|
44 |
-
height: 35px !important;
|
45 |
-
|
46 |
-
option {
|
47 |
-
padding: 8px 4px;
|
48 |
-
}
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
.spacing-text {
|
53 |
-
width: 62px;
|
54 |
-
}
|
55 |
-
|
56 |
-
@media only screen and (min-width: 600px) {
|
57 |
-
.sp {
|
58 |
-
&-input-label {
|
59 |
-
width: 40%;
|
60 |
-
}
|
61 |
-
&-input-field {
|
62 |
-
width: 60%;
|
63 |
-
}
|
64 |
-
}
|
65 |
-
}
|
66 |
-
|
67 |
-
@media only screen and (min-width: 783px) {
|
68 |
-
.sp-input-label {
|
69 |
-
width: 30%;
|
70 |
-
}
|
71 |
-
.sp-input-field {
|
72 |
-
width: 70%;
|
73 |
-
}
|
74 |
-
.sp-input-text {
|
75 |
-
width: 25em;
|
76 |
-
}
|
77 |
-
}
|
78 |
-
|
79 |
-
@media only screen and (min-width: 851px) {
|
80 |
-
.sp-input-label,
|
81 |
-
.sp-input-field {
|
82 |
-
width: 100%;
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
@media only screen and (min-width: 1200px) {
|
87 |
-
.sp-input-label {
|
88 |
-
width: 40%;
|
89 |
-
}
|
90 |
-
.sp-input-field {
|
91 |
-
width: 60%;
|
92 |
-
}
|
93 |
-
}
|
94 |
-
|
95 |
-
@media only screen and (min-width: 1600px) {
|
96 |
-
.sp-input-label {
|
97 |
-
width: 30%;
|
98 |
-
}
|
99 |
-
.sp-input-field {
|
100 |
-
width: 70%;
|
101 |
-
}
|
102 |
-
}
|
103 |
-
|
104 |
-
// Admin Media gallery
|
105 |
-
.carousel_slider {
|
106 |
-
&_images {
|
107 |
-
&:before,
|
108 |
-
&:after {
|
109 |
-
display: table;
|
110 |
-
content: "";
|
111 |
-
}
|
112 |
-
&:after {
|
113 |
-
clear: both;
|
114 |
-
}
|
115 |
-
}
|
116 |
-
&_gallery_btn {
|
117 |
-
border: 1px solid #616161;
|
118 |
-
color: #616161;
|
119 |
-
background-color: #f1f1f1;
|
120 |
-
padding: 5px 15px;
|
121 |
-
text-decoration: none;
|
122 |
-
|
123 |
-
&:hover {
|
124 |
-
background-color: #ffffff;
|
125 |
-
color: #616161;
|
126 |
-
}
|
127 |
-
}
|
128 |
-
&_gallery_list {
|
129 |
-
margin: 15px 0 0 0;
|
130 |
-
padding: 0;
|
131 |
-
list-style: none;
|
132 |
-
box-sizing: border-box;
|
133 |
-
&:before,
|
134 |
-
&:after {
|
135 |
-
display: table;
|
136 |
-
content: "";
|
137 |
-
}
|
138 |
-
&:after {
|
139 |
-
clear: both;
|
140 |
-
}
|
141 |
-
|
142 |
-
li {
|
143 |
-
float: left;
|
144 |
-
margin: 0;
|
145 |
-
padding: 0;
|
146 |
-
|
147 |
-
> img {
|
148 |
-
margin-right: 10px;
|
149 |
-
margin-bottom: 10px;
|
150 |
-
display: block;
|
151 |
-
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
|
152 |
-
}
|
153 |
-
}
|
154 |
-
}
|
155 |
-
}
|
156 |
-
|
157 |
-
// Hide Post carousel fields
|
158 |
-
// Related fields will be open by jQuery
|
159 |
-
#field-_post_date_after,
|
160 |
-
#field-_post_date_before,
|
161 |
-
#field-_post_categories,
|
162 |
-
#field-_post_tags,
|
163 |
-
#field-_post_in {
|
164 |
-
display: none;
|
165 |
-
}
|
166 |
-
|
167 |
-
// Hide Post carousel fields
|
168 |
-
// Related fields will be open by jQuery
|
169 |
-
#field-_product_query,
|
170 |
-
#field-_product_categories,
|
171 |
-
#field-_product_tags,
|
172 |
-
#field-_product_in {
|
173 |
-
display: none;
|
174 |
-
}
|
175 |
-
|
176 |
-
#carousel-slider-navigation-settings,
|
177 |
-
#carousel-slider-responsive-settings,
|
178 |
-
#carousel-slider-autoplay-settings {
|
179 |
-
p {
|
180 |
-
overflow: hidden;
|
181 |
-
}
|
182 |
-
input.small-text,
|
183 |
-
select.small-text {
|
184 |
-
float: right;
|
185 |
-
}
|
186 |
-
}
|
187 |
-
|
188 |
-
// Content Carousel Meta
|
189 |
-
.tab-background {
|
190 |
-
.slide_bg_wrapper {
|
191 |
-
display: flex;
|
192 |
-
padding: 1rem 0;
|
193 |
-
}
|
194 |
-
.slide_thumb {
|
195 |
-
position: relative;
|
196 |
-
float: left;
|
197 |
-
margin-right: 1rem;
|
198 |
-
border: solid 1px #e0e0e0;
|
199 |
-
padding: 5px;
|
200 |
-
|
201 |
-
> div {
|
202 |
-
width: 320px;
|
203 |
-
height: 180px;
|
204 |
-
background-color: #f1f1f1;
|
205 |
-
background-repeat: no-repeat;
|
206 |
-
background-position: top left;
|
207 |
-
background-size: 100% auto;
|
208 |
-
}
|
209 |
-
|
210 |
-
> span {
|
211 |
-
display: inline-block;
|
212 |
-
position: absolute;
|
213 |
-
top: 0;
|
214 |
-
right: 0;
|
215 |
-
font-family: Arial, Helvetica, sans-serif;
|
216 |
-
font-size: 14px;
|
217 |
-
line-height: 14px;
|
218 |
-
padding: 3px 3px;
|
219 |
-
background-color: rgba(0, 0, 0, 0.5);
|
220 |
-
color: #ffffff;
|
221 |
-
cursor: pointer;
|
222 |
-
transition: all .3s ease-in-out;
|
223 |
-
|
224 |
-
&.hidden {
|
225 |
-
display: none !important;
|
226 |
-
}
|
227 |
-
}
|
228 |
-
}
|
229 |
-
|
230 |
-
.slide_image_settings_line {
|
231 |
-
display: block;
|
232 |
-
margin: 0.5rem 0;
|
233 |
-
|
234 |
-
> span {
|
235 |
-
width: 150px;
|
236 |
-
display: inline-block;
|
237 |
-
}
|
238 |
-
}
|
239 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_modal.scss
DELETED
@@ -1,108 +0,0 @@
|
|
1 |
-
.modal {
|
2 |
-
@include overlay;
|
3 |
-
align-items: center;
|
4 |
-
display: none;
|
5 |
-
justify-content: center;
|
6 |
-
overflow: hidden;
|
7 |
-
position: fixed;
|
8 |
-
z-index: 10000;
|
9 |
-
|
10 |
-
.admin-bar & {
|
11 |
-
top: 32px;
|
12 |
-
}
|
13 |
-
|
14 |
-
.delete-icon {
|
15 |
-
@include delete;
|
16 |
-
}
|
17 |
-
|
18 |
-
// Modifiers
|
19 |
-
&.is-active {
|
20 |
-
display: flex;
|
21 |
-
}
|
22 |
-
|
23 |
-
&-background {
|
24 |
-
@include overlay;
|
25 |
-
background-color: rgba($black, 0.86);
|
26 |
-
}
|
27 |
-
|
28 |
-
&-content,
|
29 |
-
&-card {
|
30 |
-
margin: 0 20px;
|
31 |
-
max-height: calc(100vh - 160px);
|
32 |
-
overflow: auto;
|
33 |
-
position: relative;
|
34 |
-
width: 100%;
|
35 |
-
// Responsiveness
|
36 |
-
@media screen and (min-width: 769px), print {
|
37 |
-
margin: 0 auto;
|
38 |
-
max-height: calc(100vh - 40px);
|
39 |
-
width: 640px;
|
40 |
-
}
|
41 |
-
}
|
42 |
-
|
43 |
-
&-close {
|
44 |
-
@include delete;
|
45 |
-
background: none;
|
46 |
-
height: 40px;
|
47 |
-
position: fixed;
|
48 |
-
right: 20px;
|
49 |
-
top: 20px;
|
50 |
-
width: 40px;
|
51 |
-
}
|
52 |
-
|
53 |
-
&-card {
|
54 |
-
display: flex;
|
55 |
-
flex-direction: column;
|
56 |
-
max-height: calc(100vh - 40px);
|
57 |
-
overflow: hidden;
|
58 |
-
}
|
59 |
-
|
60 |
-
&-card-head,
|
61 |
-
&-card-foot {
|
62 |
-
align-items: center;
|
63 |
-
background-color: $background;
|
64 |
-
display: flex;
|
65 |
-
flex-shrink: 0;
|
66 |
-
justify-content: flex-start;
|
67 |
-
margin: 0;
|
68 |
-
padding: 20px;
|
69 |
-
position: relative;
|
70 |
-
}
|
71 |
-
|
72 |
-
&-card-head {
|
73 |
-
border-bottom: 1px solid $border;
|
74 |
-
border-top-left-radius: $radius-large;
|
75 |
-
border-top-right-radius: $radius-large;
|
76 |
-
}
|
77 |
-
|
78 |
-
&-card-title {
|
79 |
-
color: $text-strong;
|
80 |
-
flex-grow: 1;
|
81 |
-
flex-shrink: 0;
|
82 |
-
font-size: $size-4;
|
83 |
-
line-height: 1;
|
84 |
-
margin: 0;
|
85 |
-
padding: 0;
|
86 |
-
}
|
87 |
-
|
88 |
-
&-card-foot {
|
89 |
-
border-bottom-left-radius: $radius-large;
|
90 |
-
border-bottom-right-radius: $radius-large;
|
91 |
-
border-top: 1px solid $border;
|
92 |
-
.button {
|
93 |
-
&:not(:last-child) {
|
94 |
-
margin-right: 10px;
|
95 |
-
}
|
96 |
-
}
|
97 |
-
}
|
98 |
-
|
99 |
-
&-card-body {
|
100 |
-
-webkit-overflow-scrolling: touch;
|
101 |
-
background-color: $white;
|
102 |
-
flex-grow: 1;
|
103 |
-
flex-shrink: 1;
|
104 |
-
overflow: auto;
|
105 |
-
margin: 0;
|
106 |
-
padding: 20px;
|
107 |
-
}
|
108 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_model.scss
DELETED
@@ -1,140 +0,0 @@
|
|
1 |
-
.carousel_slider {
|
2 |
-
&-modal{
|
3 |
-
display: none;
|
4 |
-
position: fixed;
|
5 |
-
z-index: 10000;
|
6 |
-
left: 0;
|
7 |
-
top: 0;
|
8 |
-
width: 100%;
|
9 |
-
height: 100%;
|
10 |
-
overflow: hidden;
|
11 |
-
background-color: rgb(0,0,0);
|
12 |
-
background-color: rgba(0,0,0,0.8);
|
13 |
-
|
14 |
-
&-content{
|
15 |
-
position: relative;
|
16 |
-
background-color: #fefefe;
|
17 |
-
margin: 50px auto 18px;
|
18 |
-
padding: 0;
|
19 |
-
border: 1px solid #23282d;
|
20 |
-
min-height: 300px;
|
21 |
-
width: 412px;
|
22 |
-
// height: 90%;
|
23 |
-
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
|
24 |
-
}
|
25 |
-
|
26 |
-
&-header {
|
27 |
-
background-color: #23282d;
|
28 |
-
color: white;
|
29 |
-
font-weight: bold;
|
30 |
-
padding: 10px 16px;
|
31 |
-
}
|
32 |
-
&-body {
|
33 |
-
// max-height: 300px;
|
34 |
-
overflow-x: hidden;
|
35 |
-
overflow-y: scroll;
|
36 |
-
padding: 2px 16px;
|
37 |
-
}
|
38 |
-
|
39 |
-
&-footer {
|
40 |
-
background-color: #23282d;
|
41 |
-
color: white;
|
42 |
-
font-weight: bold;
|
43 |
-
padding: 10px 16px;
|
44 |
-
|
45 |
-
img {
|
46 |
-
display: none;
|
47 |
-
height: 14px;
|
48 |
-
vertical-align: middle;
|
49 |
-
width: 14px;
|
50 |
-
}
|
51 |
-
}
|
52 |
-
}
|
53 |
-
|
54 |
-
&-form {
|
55 |
-
margin-left: -15px;
|
56 |
-
margin-right: -15px;
|
57 |
-
}
|
58 |
-
|
59 |
-
// Carousel Slider Images URL
|
60 |
-
&-fields {
|
61 |
-
background-color: #f1f1f1;
|
62 |
-
margin: 15px;
|
63 |
-
padding: 15px 25px 15px 15px;
|
64 |
-
position: relative;
|
65 |
-
display: inline-block;
|
66 |
-
float: left;
|
67 |
-
|
68 |
-
label.setting {
|
69 |
-
display: block;
|
70 |
-
margin-bottom: 5px;
|
71 |
-
|
72 |
-
.name {
|
73 |
-
display: inline-block;
|
74 |
-
vertical-align: top;
|
75 |
-
width: 75px;
|
76 |
-
}
|
77 |
-
input, textarea {
|
78 |
-
width: 250px;
|
79 |
-
}
|
80 |
-
}
|
81 |
-
.actions {
|
82 |
-
position: absolute;
|
83 |
-
right: 0;
|
84 |
-
top: 0;
|
85 |
-
|
86 |
-
> span {
|
87 |
-
background: #fff none repeat scroll 0 0;
|
88 |
-
display: block;
|
89 |
-
float: none;
|
90 |
-
cursor: pointer;
|
91 |
-
|
92 |
-
.dashicons-plus-alt:hover {
|
93 |
-
color: green;
|
94 |
-
}
|
95 |
-
|
96 |
-
.dashicons-trash:hover {
|
97 |
-
color: red;
|
98 |
-
}
|
99 |
-
}
|
100 |
-
}
|
101 |
-
}
|
102 |
-
|
103 |
-
&-close {
|
104 |
-
color: #f1f1f1;
|
105 |
-
float: right;
|
106 |
-
font-size: 28px;
|
107 |
-
font-weight: bold;
|
108 |
-
|
109 |
-
&:hover,
|
110 |
-
&:focus {
|
111 |
-
color: #fff;
|
112 |
-
text-decoration: none;
|
113 |
-
cursor: pointer;
|
114 |
-
}
|
115 |
-
}
|
116 |
-
}
|
117 |
-
|
118 |
-
.carousel_slider_url_images_list {
|
119 |
-
margin: 15px 0 0;
|
120 |
-
padding: 0;
|
121 |
-
list-style: none;
|
122 |
-
|
123 |
-
li {
|
124 |
-
float: left;
|
125 |
-
display: inline-block;
|
126 |
-
margin: 0 5px 5px 0;
|
127 |
-
}
|
128 |
-
}
|
129 |
-
|
130 |
-
@media only screen and (min-width: 820px ){
|
131 |
-
.carousel_slider-modal-content {
|
132 |
-
width: 810px;
|
133 |
-
}
|
134 |
-
}
|
135 |
-
|
136 |
-
@media only screen and (min-width: 1230px ){
|
137 |
-
.carousel_slider-modal-content {
|
138 |
-
width: 1220px;
|
139 |
-
}
|
140 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_select2.scss
DELETED
@@ -1,634 +0,0 @@
|
|
1 |
-
.select2-container {
|
2 |
-
box-sizing: border-box;
|
3 |
-
display: inline-block;
|
4 |
-
margin: 0;
|
5 |
-
position: relative;
|
6 |
-
vertical-align: middle;
|
7 |
-
}
|
8 |
-
|
9 |
-
.select2-container .select2-selection--single {
|
10 |
-
box-sizing: border-box;
|
11 |
-
cursor: pointer;
|
12 |
-
display: block;
|
13 |
-
height: 28px;
|
14 |
-
user-select: none;
|
15 |
-
-webkit-user-select: none;
|
16 |
-
}
|
17 |
-
|
18 |
-
.select2-container .select2-selection--single .select2-selection__rendered {
|
19 |
-
display: block;
|
20 |
-
padding-left: 8px;
|
21 |
-
padding-right: 20px;
|
22 |
-
overflow: hidden;
|
23 |
-
text-overflow: ellipsis;
|
24 |
-
white-space: nowrap;
|
25 |
-
}
|
26 |
-
|
27 |
-
.select2-container .select2-selection--single .select2-selection__clear {
|
28 |
-
position: relative;
|
29 |
-
}
|
30 |
-
|
31 |
-
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
|
32 |
-
padding-right: 8px;
|
33 |
-
padding-left: 20px;
|
34 |
-
}
|
35 |
-
|
36 |
-
.select2-container .select2-selection--multiple {
|
37 |
-
box-sizing: border-box;
|
38 |
-
cursor: pointer;
|
39 |
-
display: block;
|
40 |
-
min-height: 32px;
|
41 |
-
user-select: none;
|
42 |
-
-webkit-user-select: none;
|
43 |
-
}
|
44 |
-
|
45 |
-
.select2-container .select2-selection--multiple .select2-selection__rendered {
|
46 |
-
display: inline-block;
|
47 |
-
overflow: hidden;
|
48 |
-
padding-left: 8px;
|
49 |
-
text-overflow: ellipsis;
|
50 |
-
white-space: nowrap;
|
51 |
-
}
|
52 |
-
|
53 |
-
.select2-container .select2-search--inline {
|
54 |
-
float: left;
|
55 |
-
}
|
56 |
-
|
57 |
-
.select2-container .select2-search--inline .select2-search__field {
|
58 |
-
box-sizing: border-box;
|
59 |
-
border: none;
|
60 |
-
font-size: 100%;
|
61 |
-
margin-top: 5px;
|
62 |
-
padding: 0;
|
63 |
-
}
|
64 |
-
|
65 |
-
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
|
66 |
-
-webkit-appearance: none;
|
67 |
-
}
|
68 |
-
|
69 |
-
.select2-dropdown {
|
70 |
-
background-color: white;
|
71 |
-
border: 1px solid #aaa;
|
72 |
-
border-radius: 0;
|
73 |
-
box-sizing: border-box;
|
74 |
-
display: block;
|
75 |
-
position: absolute;
|
76 |
-
left: -100000px;
|
77 |
-
width: 100%;
|
78 |
-
z-index: 1051;
|
79 |
-
}
|
80 |
-
|
81 |
-
.select2-results {
|
82 |
-
display: block;
|
83 |
-
}
|
84 |
-
|
85 |
-
.select2-results__options {
|
86 |
-
list-style: none;
|
87 |
-
margin: 0;
|
88 |
-
padding: 0;
|
89 |
-
}
|
90 |
-
|
91 |
-
.select2-results__option {
|
92 |
-
padding: 6px;
|
93 |
-
user-select: none;
|
94 |
-
-webkit-user-select: none;
|
95 |
-
}
|
96 |
-
|
97 |
-
.select2-results__option[aria-selected] {
|
98 |
-
cursor: pointer;
|
99 |
-
}
|
100 |
-
|
101 |
-
.select2-container--open .select2-dropdown {
|
102 |
-
left: 0;
|
103 |
-
}
|
104 |
-
|
105 |
-
.select2-container--open .select2-dropdown--above {
|
106 |
-
border-bottom: none;
|
107 |
-
border-bottom-left-radius: 0;
|
108 |
-
border-bottom-right-radius: 0;
|
109 |
-
}
|
110 |
-
|
111 |
-
.select2-container--open .select2-dropdown--below {
|
112 |
-
border-top: none;
|
113 |
-
border-top-left-radius: 0;
|
114 |
-
border-top-right-radius: 0;
|
115 |
-
}
|
116 |
-
|
117 |
-
.select2-search--dropdown {
|
118 |
-
display: block;
|
119 |
-
padding: 4px;
|
120 |
-
}
|
121 |
-
|
122 |
-
.select2-search--dropdown .select2-search__field {
|
123 |
-
padding: 4px;
|
124 |
-
width: 100%;
|
125 |
-
box-sizing: border-box;
|
126 |
-
}
|
127 |
-
|
128 |
-
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
|
129 |
-
-webkit-appearance: none;
|
130 |
-
}
|
131 |
-
|
132 |
-
.select2-search--dropdown.select2-search--hide {
|
133 |
-
display: none;
|
134 |
-
}
|
135 |
-
|
136 |
-
.select2-close-mask {
|
137 |
-
border: 0;
|
138 |
-
margin: 0;
|
139 |
-
padding: 0;
|
140 |
-
display: block;
|
141 |
-
position: fixed;
|
142 |
-
left: 0;
|
143 |
-
top: 0;
|
144 |
-
min-height: 100%;
|
145 |
-
min-width: 100%;
|
146 |
-
height: auto;
|
147 |
-
width: auto;
|
148 |
-
opacity: 0;
|
149 |
-
z-index: 99;
|
150 |
-
background-color: #fff;
|
151 |
-
filter: alpha(opacity=0);
|
152 |
-
}
|
153 |
-
|
154 |
-
.select2-hidden-accessible {
|
155 |
-
border: 0 !important;
|
156 |
-
clip: rect(0 0 0 0) !important;
|
157 |
-
height: 1px !important;
|
158 |
-
margin: -1px !important;
|
159 |
-
overflow: hidden !important;
|
160 |
-
padding: 0 !important;
|
161 |
-
position: absolute !important;
|
162 |
-
width: 1px !important;
|
163 |
-
}
|
164 |
-
|
165 |
-
.select2-container--default .select2-selection--single {
|
166 |
-
background-color: #fff;
|
167 |
-
border: 1px solid #aaa;
|
168 |
-
border-radius: 0;
|
169 |
-
}
|
170 |
-
|
171 |
-
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
172 |
-
color: #444;
|
173 |
-
line-height: 28px;
|
174 |
-
}
|
175 |
-
|
176 |
-
.select2-container--default .select2-selection--single .select2-selection__clear {
|
177 |
-
cursor: pointer;
|
178 |
-
float: right;
|
179 |
-
font-weight: bold;
|
180 |
-
}
|
181 |
-
|
182 |
-
.select2-container--default .select2-selection--single .select2-selection__placeholder {
|
183 |
-
color: #999;
|
184 |
-
}
|
185 |
-
|
186 |
-
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
187 |
-
height: 26px;
|
188 |
-
position: absolute;
|
189 |
-
top: 1px;
|
190 |
-
right: 1px;
|
191 |
-
width: 20px;
|
192 |
-
}
|
193 |
-
|
194 |
-
.select2-container--default .select2-selection--single .select2-selection__arrow b {
|
195 |
-
border-color: #888 transparent transparent transparent;
|
196 |
-
border-style: solid;
|
197 |
-
border-width: 5px 4px 0 4px;
|
198 |
-
height: 0;
|
199 |
-
left: 50%;
|
200 |
-
margin-left: -4px;
|
201 |
-
margin-top: -2px;
|
202 |
-
position: absolute;
|
203 |
-
top: 50%;
|
204 |
-
width: 0;
|
205 |
-
}
|
206 |
-
|
207 |
-
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
208 |
-
float: left;
|
209 |
-
}
|
210 |
-
|
211 |
-
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
212 |
-
left: 1px;
|
213 |
-
right: auto;
|
214 |
-
}
|
215 |
-
|
216 |
-
.select2-container--default.select2-container--disabled .select2-selection--single {
|
217 |
-
background-color: #eee;
|
218 |
-
cursor: default;
|
219 |
-
}
|
220 |
-
|
221 |
-
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
|
222 |
-
display: none;
|
223 |
-
}
|
224 |
-
|
225 |
-
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
226 |
-
border-color: transparent transparent #888 transparent;
|
227 |
-
border-width: 0 4px 5px 4px;
|
228 |
-
}
|
229 |
-
|
230 |
-
.select2-container--default .select2-selection--multiple {
|
231 |
-
background-color: white;
|
232 |
-
border: 1px solid #aaa;
|
233 |
-
border-radius: 0;
|
234 |
-
cursor: text;
|
235 |
-
}
|
236 |
-
|
237 |
-
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
|
238 |
-
box-sizing: border-box;
|
239 |
-
list-style: none;
|
240 |
-
margin: 0;
|
241 |
-
padding: 0 5px;
|
242 |
-
width: 100%;
|
243 |
-
}
|
244 |
-
|
245 |
-
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
|
246 |
-
list-style: none;
|
247 |
-
}
|
248 |
-
|
249 |
-
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
|
250 |
-
color: #999;
|
251 |
-
margin-top: 5px;
|
252 |
-
float: left;
|
253 |
-
}
|
254 |
-
|
255 |
-
.select2-container--default .select2-selection--multiple .select2-selection__clear {
|
256 |
-
cursor: pointer;
|
257 |
-
float: right;
|
258 |
-
font-weight: bold;
|
259 |
-
margin-top: 5px;
|
260 |
-
margin-right: 10px;
|
261 |
-
}
|
262 |
-
|
263 |
-
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
264 |
-
background-color: #e4e4e4;
|
265 |
-
border: 1px solid #aaa;
|
266 |
-
border-radius: 0;
|
267 |
-
cursor: default;
|
268 |
-
float: left;
|
269 |
-
margin-right: 5px;
|
270 |
-
margin-top: 5px;
|
271 |
-
padding: 0 5px;
|
272 |
-
}
|
273 |
-
|
274 |
-
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
275 |
-
color: #999;
|
276 |
-
cursor: pointer;
|
277 |
-
display: inline-block;
|
278 |
-
font-weight: bold;
|
279 |
-
margin-right: 2px;
|
280 |
-
}
|
281 |
-
|
282 |
-
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
|
283 |
-
color: #333;
|
284 |
-
}
|
285 |
-
|
286 |
-
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
|
287 |
-
float: right;
|
288 |
-
}
|
289 |
-
|
290 |
-
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
291 |
-
margin-left: 5px;
|
292 |
-
margin-right: auto;
|
293 |
-
}
|
294 |
-
|
295 |
-
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
296 |
-
margin-left: 2px;
|
297 |
-
margin-right: auto;
|
298 |
-
}
|
299 |
-
|
300 |
-
.select2-container--default.select2-container--focus .select2-selection--multiple {
|
301 |
-
border: solid black 1px;
|
302 |
-
outline: 0;
|
303 |
-
}
|
304 |
-
|
305 |
-
.select2-container--default.select2-container--disabled .select2-selection--multiple {
|
306 |
-
background-color: #eee;
|
307 |
-
cursor: default;
|
308 |
-
}
|
309 |
-
|
310 |
-
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
|
311 |
-
display: none;
|
312 |
-
}
|
313 |
-
|
314 |
-
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
|
315 |
-
border-top-left-radius: 0;
|
316 |
-
border-top-right-radius: 0;
|
317 |
-
}
|
318 |
-
|
319 |
-
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
|
320 |
-
border-bottom-left-radius: 0;
|
321 |
-
border-bottom-right-radius: 0;
|
322 |
-
}
|
323 |
-
|
324 |
-
.select2-container--default .select2-search--dropdown .select2-search__field {
|
325 |
-
border: 1px solid #aaa;
|
326 |
-
}
|
327 |
-
|
328 |
-
.select2-container--default .select2-search--inline .select2-search__field {
|
329 |
-
background: transparent;
|
330 |
-
border: none;
|
331 |
-
outline: 0;
|
332 |
-
box-shadow: none;
|
333 |
-
-webkit-appearance: textfield;
|
334 |
-
}
|
335 |
-
|
336 |
-
.select2-container--default .select2-results > .select2-results__options {
|
337 |
-
max-height: 200px;
|
338 |
-
overflow-y: auto;
|
339 |
-
}
|
340 |
-
|
341 |
-
.select2-container--default .select2-results__option[role=group] {
|
342 |
-
padding: 0;
|
343 |
-
}
|
344 |
-
|
345 |
-
.select2-container--default .select2-results__option[aria-disabled=true] {
|
346 |
-
color: #999;
|
347 |
-
}
|
348 |
-
|
349 |
-
.select2-container--default .select2-results__option[aria-selected=true] {
|
350 |
-
background-color: #ddd;
|
351 |
-
}
|
352 |
-
|
353 |
-
.select2-container--default .select2-results__option .select2-results__option {
|
354 |
-
padding-left: 1em;
|
355 |
-
}
|
356 |
-
|
357 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
|
358 |
-
padding-left: 0;
|
359 |
-
}
|
360 |
-
|
361 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
|
362 |
-
margin-left: -1em;
|
363 |
-
padding-left: 2em;
|
364 |
-
}
|
365 |
-
|
366 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
367 |
-
margin-left: -2em;
|
368 |
-
padding-left: 3em;
|
369 |
-
}
|
370 |
-
|
371 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
372 |
-
margin-left: -3em;
|
373 |
-
padding-left: 4em;
|
374 |
-
}
|
375 |
-
|
376 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
377 |
-
margin-left: -4em;
|
378 |
-
padding-left: 5em;
|
379 |
-
}
|
380 |
-
|
381 |
-
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
382 |
-
margin-left: -5em;
|
383 |
-
padding-left: 6em;
|
384 |
-
}
|
385 |
-
|
386 |
-
.select2-container--default .select2-results__option--highlighted[aria-selected] {
|
387 |
-
background-color: #5897fb;
|
388 |
-
color: white;
|
389 |
-
}
|
390 |
-
|
391 |
-
.select2-container--default .select2-results__group {
|
392 |
-
cursor: default;
|
393 |
-
display: block;
|
394 |
-
padding: 6px;
|
395 |
-
}
|
396 |
-
|
397 |
-
.select2-container--classic .select2-selection--single {
|
398 |
-
background-color: #f7f7f7;
|
399 |
-
border: 1px solid #aaa;
|
400 |
-
border-radius: 0;
|
401 |
-
outline: 0;
|
402 |
-
background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
|
403 |
-
background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
|
404 |
-
background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
|
405 |
-
background-repeat: repeat-x;
|
406 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0);
|
407 |
-
}
|
408 |
-
|
409 |
-
.select2-container--classic .select2-selection--single:focus {
|
410 |
-
border: 1px solid #5897fb;
|
411 |
-
}
|
412 |
-
|
413 |
-
.select2-container--classic .select2-selection--single .select2-selection__rendered {
|
414 |
-
color: #444;
|
415 |
-
line-height: 28px;
|
416 |
-
}
|
417 |
-
|
418 |
-
.select2-container--classic .select2-selection--single .select2-selection__clear {
|
419 |
-
cursor: pointer;
|
420 |
-
float: right;
|
421 |
-
font-weight: bold;
|
422 |
-
margin-right: 10px;
|
423 |
-
}
|
424 |
-
|
425 |
-
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
|
426 |
-
color: #999;
|
427 |
-
}
|
428 |
-
|
429 |
-
.select2-container--classic .select2-selection--single .select2-selection__arrow {
|
430 |
-
background-color: #ddd;
|
431 |
-
border: none;
|
432 |
-
border-left: 1px solid #aaa;
|
433 |
-
border-top-right-radius: 4px;
|
434 |
-
border-bottom-right-radius: 4px;
|
435 |
-
height: 26px;
|
436 |
-
position: absolute;
|
437 |
-
top: 1px;
|
438 |
-
right: 1px;
|
439 |
-
width: 20px;
|
440 |
-
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
441 |
-
background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
442 |
-
background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
|
443 |
-
background-repeat: repeat-x;
|
444 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0);
|
445 |
-
}
|
446 |
-
|
447 |
-
.select2-container--classic .select2-selection--single .select2-selection__arrow b {
|
448 |
-
border-color: #888 transparent transparent transparent;
|
449 |
-
border-style: solid;
|
450 |
-
border-width: 5px 4px 0 4px;
|
451 |
-
height: 0;
|
452 |
-
left: 50%;
|
453 |
-
margin-left: -4px;
|
454 |
-
margin-top: -2px;
|
455 |
-
position: absolute;
|
456 |
-
top: 50%;
|
457 |
-
width: 0;
|
458 |
-
}
|
459 |
-
|
460 |
-
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
461 |
-
float: left;
|
462 |
-
}
|
463 |
-
|
464 |
-
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
465 |
-
border: none;
|
466 |
-
border-right: 1px solid #aaa;
|
467 |
-
border-radius: 0;
|
468 |
-
border-top-left-radius: 4px;
|
469 |
-
border-bottom-left-radius: 4px;
|
470 |
-
left: 1px;
|
471 |
-
right: auto;
|
472 |
-
}
|
473 |
-
|
474 |
-
.select2-container--classic.select2-container--open .select2-selection--single {
|
475 |
-
border: 1px solid #5897fb;
|
476 |
-
}
|
477 |
-
|
478 |
-
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
|
479 |
-
background: transparent;
|
480 |
-
border: none;
|
481 |
-
}
|
482 |
-
|
483 |
-
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
484 |
-
border-color: transparent transparent #888 transparent;
|
485 |
-
border-width: 0 4px 5px 4px;
|
486 |
-
}
|
487 |
-
|
488 |
-
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
|
489 |
-
border-top: none;
|
490 |
-
border-top-left-radius: 0;
|
491 |
-
border-top-right-radius: 0;
|
492 |
-
background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
|
493 |
-
background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
|
494 |
-
background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
|
495 |
-
background-repeat: repeat-x;
|
496 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0);
|
497 |
-
}
|
498 |
-
|
499 |
-
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
|
500 |
-
border-bottom: none;
|
501 |
-
border-bottom-left-radius: 0;
|
502 |
-
border-bottom-right-radius: 0;
|
503 |
-
background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
|
504 |
-
background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
|
505 |
-
background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
|
506 |
-
background-repeat: repeat-x;
|
507 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0);
|
508 |
-
}
|
509 |
-
|
510 |
-
.select2-container--classic .select2-selection--multiple {
|
511 |
-
background-color: white;
|
512 |
-
border: 1px solid #aaa;
|
513 |
-
border-radius: 0;
|
514 |
-
cursor: text;
|
515 |
-
outline: 0;
|
516 |
-
}
|
517 |
-
|
518 |
-
.select2-container--classic .select2-selection--multiple:focus {
|
519 |
-
border: 1px solid #5897fb;
|
520 |
-
}
|
521 |
-
|
522 |
-
.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
|
523 |
-
list-style: none;
|
524 |
-
margin: 0;
|
525 |
-
padding: 0 5px;
|
526 |
-
}
|
527 |
-
|
528 |
-
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
|
529 |
-
display: none;
|
530 |
-
}
|
531 |
-
|
532 |
-
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
|
533 |
-
background-color: #e4e4e4;
|
534 |
-
border: 1px solid #aaa;
|
535 |
-
border-radius: 0;
|
536 |
-
cursor: default;
|
537 |
-
float: left;
|
538 |
-
margin-right: 5px;
|
539 |
-
margin-top: 5px;
|
540 |
-
padding: 0 5px;
|
541 |
-
}
|
542 |
-
|
543 |
-
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
|
544 |
-
color: #888;
|
545 |
-
cursor: pointer;
|
546 |
-
display: inline-block;
|
547 |
-
font-weight: bold;
|
548 |
-
margin-right: 2px;
|
549 |
-
}
|
550 |
-
|
551 |
-
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
|
552 |
-
color: #555;
|
553 |
-
}
|
554 |
-
|
555 |
-
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
556 |
-
float: right;
|
557 |
-
}
|
558 |
-
|
559 |
-
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
560 |
-
margin-left: 5px;
|
561 |
-
margin-right: auto;
|
562 |
-
}
|
563 |
-
|
564 |
-
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
565 |
-
margin-left: 2px;
|
566 |
-
margin-right: auto;
|
567 |
-
}
|
568 |
-
|
569 |
-
.select2-container--classic.select2-container--open .select2-selection--multiple {
|
570 |
-
border: 1px solid #5897fb;
|
571 |
-
}
|
572 |
-
|
573 |
-
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
|
574 |
-
border-top: none;
|
575 |
-
border-top-left-radius: 0;
|
576 |
-
border-top-right-radius: 0;
|
577 |
-
}
|
578 |
-
|
579 |
-
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
|
580 |
-
border-bottom: none;
|
581 |
-
border-bottom-left-radius: 0;
|
582 |
-
border-bottom-right-radius: 0;
|
583 |
-
}
|
584 |
-
|
585 |
-
.select2-container--classic .select2-search--dropdown .select2-search__field {
|
586 |
-
border: 1px solid #aaa;
|
587 |
-
outline: 0;
|
588 |
-
}
|
589 |
-
|
590 |
-
.select2-container--classic .select2-search--inline .select2-search__field {
|
591 |
-
outline: 0;
|
592 |
-
box-shadow: none;
|
593 |
-
}
|
594 |
-
|
595 |
-
.select2-container--classic .select2-dropdown {
|
596 |
-
background-color: white;
|
597 |
-
border: 1px solid transparent;
|
598 |
-
}
|
599 |
-
|
600 |
-
.select2-container--classic .select2-dropdown--above {
|
601 |
-
border-bottom: none;
|
602 |
-
}
|
603 |
-
|
604 |
-
.select2-container--classic .select2-dropdown--below {
|
605 |
-
border-top: none;
|
606 |
-
}
|
607 |
-
|
608 |
-
.select2-container--classic .select2-results > .select2-results__options {
|
609 |
-
max-height: 200px;
|
610 |
-
overflow-y: auto;
|
611 |
-
}
|
612 |
-
|
613 |
-
.select2-container--classic .select2-results__option[role=group] {
|
614 |
-
padding: 0;
|
615 |
-
}
|
616 |
-
|
617 |
-
.select2-container--classic .select2-results__option[aria-disabled=true] {
|
618 |
-
color: grey;
|
619 |
-
}
|
620 |
-
|
621 |
-
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
|
622 |
-
background-color: #3875d7;
|
623 |
-
color: white;
|
624 |
-
}
|
625 |
-
|
626 |
-
.select2-container--classic .select2-results__group {
|
627 |
-
cursor: default;
|
628 |
-
display: block;
|
629 |
-
padding: 6px;
|
630 |
-
}
|
631 |
-
|
632 |
-
.select2-container--classic.select2-container--open .select2-dropdown {
|
633 |
-
border-color: #5897fb;
|
634 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_tab.scss
DELETED
@@ -1,79 +0,0 @@
|
|
1 |
-
/* Tabs */
|
2 |
-
$accent: #323232;
|
3 |
-
|
4 |
-
.shapla-nav {
|
5 |
-
list-style: none !important;
|
6 |
-
margin: 0;
|
7 |
-
padding: 0;
|
8 |
-
|
9 |
-
&:before,
|
10 |
-
&:after {
|
11 |
-
display: table;
|
12 |
-
content: ' ';
|
13 |
-
}
|
14 |
-
|
15 |
-
&:after {
|
16 |
-
clear: both;
|
17 |
-
}
|
18 |
-
|
19 |
-
li {
|
20 |
-
float: left;
|
21 |
-
position: relative;
|
22 |
-
margin: 0 1px -1px 0 !important;
|
23 |
-
z-index: 1;
|
24 |
-
outline: 0;
|
25 |
-
}
|
26 |
-
a {
|
27 |
-
text-decoration: none;
|
28 |
-
display: block;
|
29 |
-
padding: 15px 10px;
|
30 |
-
line-height: 1;
|
31 |
-
outline: 0;
|
32 |
-
}
|
33 |
-
}
|
34 |
-
|
35 |
-
.shapla-tab {
|
36 |
-
margin: 0 0 2em 0;
|
37 |
-
padding: 21px 20px 20px 20px;
|
38 |
-
|
39 |
-
p:first-of-type {
|
40 |
-
margin-top: 0;
|
41 |
-
}
|
42 |
-
p:last-of-type {
|
43 |
-
margin-bottom: 0;
|
44 |
-
}
|
45 |
-
}
|
46 |
-
|
47 |
-
.shapla-tabs--normal {
|
48 |
-
.shapla-nav {
|
49 |
-
a {
|
50 |
-
background: $accent;
|
51 |
-
color: #fff;
|
52 |
-
}
|
53 |
-
.ui-tabs-active a {
|
54 |
-
background: #f1f1f1;
|
55 |
-
color: $accent;
|
56 |
-
outline: 0;
|
57 |
-
}
|
58 |
-
}
|
59 |
-
.shapla-tab {
|
60 |
-
background: #f1f1f1;
|
61 |
-
}
|
62 |
-
}
|
63 |
-
|
64 |
-
.shapla-tabs--stroke {
|
65 |
-
.shapla-nav li {
|
66 |
-
margin: 0 -1px 0 0 !important;
|
67 |
-
}
|
68 |
-
.shapla-nav a {
|
69 |
-
border: 1px solid $accent;
|
70 |
-
color: $accent;
|
71 |
-
}
|
72 |
-
.shapla-nav .ui-tabs-active a {
|
73 |
-
border-bottom-color: white;
|
74 |
-
}
|
75 |
-
.shapla-tab {
|
76 |
-
border: 1px solid $accent;
|
77 |
-
margin-top: -1px;
|
78 |
-
}
|
79 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_toggle.scss
DELETED
@@ -1,51 +0,0 @@
|
|
1 |
-
.shapla-toggle {
|
2 |
-
margin: 1em 0 !important;
|
3 |
-
|
4 |
-
&-title {
|
5 |
-
display: block;
|
6 |
-
padding: 15px 10px;
|
7 |
-
outline: 0;
|
8 |
-
cursor: pointer;
|
9 |
-
position: relative;
|
10 |
-
|
11 |
-
&:after {
|
12 |
-
position: absolute;
|
13 |
-
right: 15px;
|
14 |
-
font: 400 20px/1 dashicons;
|
15 |
-
margin-left: -1px;
|
16 |
-
padding-right: 3px;
|
17 |
-
vertical-align: top;
|
18 |
-
content: "\f132";
|
19 |
-
}
|
20 |
-
|
21 |
-
&.ui-state-active:after {
|
22 |
-
content: "\f460";
|
23 |
-
}
|
24 |
-
}
|
25 |
-
|
26 |
-
&-content {
|
27 |
-
padding: 20px;
|
28 |
-
background-color: #f1f1f1;
|
29 |
-
}
|
30 |
-
|
31 |
-
&--normal .shapla-toggle-title {
|
32 |
-
background: #9e9e9e;
|
33 |
-
color: white;
|
34 |
-
font-weight: 600;
|
35 |
-
}
|
36 |
-
|
37 |
-
&--stroke .shapla-toggle-title {
|
38 |
-
border: 1px solid #363f48;
|
39 |
-
font-weight: 600;
|
40 |
-
|
41 |
-
&:after {
|
42 |
-
color: #363f48;
|
43 |
-
}
|
44 |
-
}
|
45 |
-
&--stroke .shapla-toggle-content {
|
46 |
-
padding: 20px;
|
47 |
-
background-color: #ffffff;
|
48 |
-
border: 1px solid #363f48;
|
49 |
-
border-top: none;
|
50 |
-
}
|
51 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_tooltip.scss
DELETED
@@ -1,133 +0,0 @@
|
|
1 |
-
.cs-tooltip {
|
2 |
-
display: inline-block;
|
3 |
-
width: 1.5em;
|
4 |
-
height: 1.5em;
|
5 |
-
float: right;
|
6 |
-
|
7 |
-
&:after {
|
8 |
-
font-family: Dashicons;
|
9 |
-
speak: none;
|
10 |
-
font-weight: 400;
|
11 |
-
text-transform: none;
|
12 |
-
-webkit-font-smoothing: antialiased;
|
13 |
-
width: 100%;
|
14 |
-
height: 100%;
|
15 |
-
text-align: center;
|
16 |
-
content: "\f223";
|
17 |
-
cursor: help;
|
18 |
-
}
|
19 |
-
}
|
20 |
-
|
21 |
-
/* TipTip CSS - Version 1.2 */
|
22 |
-
|
23 |
-
#tiptip_holder {
|
24 |
-
display: none;
|
25 |
-
position: absolute;
|
26 |
-
top: 0;
|
27 |
-
left: 0;
|
28 |
-
z-index: 99999;
|
29 |
-
}
|
30 |
-
|
31 |
-
#tiptip_holder.tip_top {
|
32 |
-
padding-bottom: 5px;
|
33 |
-
}
|
34 |
-
|
35 |
-
#tiptip_holder.tip_bottom {
|
36 |
-
padding-top: 5px;
|
37 |
-
}
|
38 |
-
|
39 |
-
#tiptip_holder.tip_right {
|
40 |
-
padding-left: 5px;
|
41 |
-
}
|
42 |
-
|
43 |
-
#tiptip_holder.tip_left {
|
44 |
-
padding-right: 5px;
|
45 |
-
}
|
46 |
-
|
47 |
-
#tiptip_content {
|
48 |
-
font-size: 11px;
|
49 |
-
color: #fff;
|
50 |
-
text-shadow: 0 0 2px #000;
|
51 |
-
padding: 4px 8px;
|
52 |
-
border: 1px solid rgba(255,255,255,0.25);
|
53 |
-
background-color: rgb(25,25,25);
|
54 |
-
background-color: rgba(25,25,25,0.92);
|
55 |
-
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(transparent), to(#000));
|
56 |
-
border-radius: 3px;
|
57 |
-
-webkit-border-radius: 3px;
|
58 |
-
-moz-border-radius: 3px;
|
59 |
-
box-shadow: 0 0 3px #555;
|
60 |
-
-webkit-box-shadow: 0 0 3px #555;
|
61 |
-
-moz-box-shadow: 0 0 3px #555;
|
62 |
-
}
|
63 |
-
|
64 |
-
#tiptip_arrow, #tiptip_arrow_inner {
|
65 |
-
position: absolute;
|
66 |
-
border-color: transparent;
|
67 |
-
border-style: solid;
|
68 |
-
border-width: 6px;
|
69 |
-
height: 0;
|
70 |
-
width: 0;
|
71 |
-
}
|
72 |
-
|
73 |
-
#tiptip_holder.tip_top #tiptip_arrow {
|
74 |
-
border-top-color: #fff;
|
75 |
-
border-top-color: rgba(255,255,255,0.35);
|
76 |
-
}
|
77 |
-
|
78 |
-
#tiptip_holder.tip_bottom #tiptip_arrow {
|
79 |
-
border-bottom-color: #fff;
|
80 |
-
border-bottom-color: rgba(255,255,255,0.35);
|
81 |
-
}
|
82 |
-
|
83 |
-
#tiptip_holder.tip_right #tiptip_arrow {
|
84 |
-
border-right-color: #fff;
|
85 |
-
border-right-color: rgba(255,255,255,0.35);
|
86 |
-
}
|
87 |
-
|
88 |
-
#tiptip_holder.tip_left #tiptip_arrow {
|
89 |
-
border-left-color: #fff;
|
90 |
-
border-left-color: rgba(255,255,255,0.35);
|
91 |
-
}
|
92 |
-
|
93 |
-
#tiptip_holder.tip_top #tiptip_arrow_inner {
|
94 |
-
margin-top: -7px;
|
95 |
-
margin-left: -6px;
|
96 |
-
border-top-color: rgb(25,25,25);
|
97 |
-
border-top-color: rgba(25,25,25,0.92);
|
98 |
-
}
|
99 |
-
|
100 |
-
#tiptip_holder.tip_bottom #tiptip_arrow_inner {
|
101 |
-
margin-top: -5px;
|
102 |
-
margin-left: -6px;
|
103 |
-
border-bottom-color: rgb(25,25,25);
|
104 |
-
border-bottom-color: rgba(25,25,25,0.92);
|
105 |
-
}
|
106 |
-
|
107 |
-
#tiptip_holder.tip_right #tiptip_arrow_inner {
|
108 |
-
margin-top: -6px;
|
109 |
-
margin-left: -5px;
|
110 |
-
border-right-color: rgb(25,25,25);
|
111 |
-
border-right-color: rgba(25,25,25,0.92);
|
112 |
-
}
|
113 |
-
|
114 |
-
#tiptip_holder.tip_left #tiptip_arrow_inner {
|
115 |
-
margin-top: -6px;
|
116 |
-
margin-left: -7px;
|
117 |
-
border-left-color: rgb(25,25,25);
|
118 |
-
border-left-color: rgba(25,25,25,0.92);
|
119 |
-
}
|
120 |
-
|
121 |
-
/* Webkit Hacks */
|
122 |
-
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
123 |
-
#tiptip_content {
|
124 |
-
padding: 4px 8px 5px 8px;
|
125 |
-
background-color: rgba(45,45,45,0.88);
|
126 |
-
}
|
127 |
-
#tiptip_holder.tip_bottom #tiptip_arrow_inner {
|
128 |
-
border-bottom-color: rgba(45,45,45,0.88);
|
129 |
-
}
|
130 |
-
#tiptip_holder.tip_top #tiptip_arrow_inner {
|
131 |
-
border-top-color: rgba(20,20,20,0.92);
|
132 |
-
}
|
133 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/admin/_widget.scss
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
// Widget Styles
|
2 |
-
div[id*="_carousel_slider"] .widget-top{
|
3 |
-
background: #ddffff !important;
|
4 |
-
border: 1px solid #2196f3 !important;
|
5 |
-
|
6 |
-
&:hover {
|
7 |
-
background: #ffdddd !important;
|
8 |
-
border: 1px solid #f44336 !important;
|
9 |
-
}
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/frontend.scss
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
$imagePath: '../img/';
|
2 |
-
|
3 |
-
@import 'public/variables';
|
4 |
-
@import 'public/core';
|
5 |
-
@import 'public/animate';
|
6 |
-
@import 'public/autoheight';
|
7 |
-
@import 'public/lazyload';
|
8 |
-
@import 'public/video';
|
9 |
-
@import 'public/theme';
|
10 |
-
@import 'public/post-carousel';
|
11 |
-
@import 'public/product-carousel';
|
12 |
-
@import 'public/content-carousel';
|
13 |
-
@import 'public/image-carousel';
|
14 |
-
@import 'public/button';
|
15 |
-
@import 'public/magnific-popup';
|
16 |
-
@import 'public/product_modal';
|
17 |
-
|
18 |
-
// Disable magnific popup counter as it show wrong count
|
19 |
-
.mfp-counter {
|
20 |
-
display: none;
|
21 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/gutenberg-block.scss
DELETED
@@ -1,108 +0,0 @@
|
|
1 |
-
.carousel-slider-block-logo {
|
2 |
-
max-width: 50px !important;
|
3 |
-
max-height: 50px;
|
4 |
-
float: left;
|
5 |
-
margin-right: 15px;
|
6 |
-
margin-bottom: 10px;
|
7 |
-
}
|
8 |
-
|
9 |
-
#carousel-slider-filter-input-main {
|
10 |
-
clear: both;
|
11 |
-
}
|
12 |
-
|
13 |
-
.carousel-slider-iframe-container {
|
14 |
-
position: relative;
|
15 |
-
}
|
16 |
-
|
17 |
-
.carousel-slider-iframe-overlay {
|
18 |
-
position: absolute;
|
19 |
-
top: 0;
|
20 |
-
right: 0;
|
21 |
-
bottom: 0;
|
22 |
-
left: 0;
|
23 |
-
}
|
24 |
-
|
25 |
-
.carousel-slider-block-slider-selector {
|
26 |
-
background-color: lightgrey;
|
27 |
-
border-bottom: 1px solid;
|
28 |
-
margin-bottom: 5px;
|
29 |
-
padding: 4px;
|
30 |
-
}
|
31 |
-
|
32 |
-
.carousel-slider-filter-input {
|
33 |
-
border: 1px solid #ddd;
|
34 |
-
border-radius: 5px;
|
35 |
-
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .07);
|
36 |
-
padding: 0;
|
37 |
-
width: 100%;
|
38 |
-
margin-top: 10px;
|
39 |
-
margin-bottom: 10px;
|
40 |
-
position: relative;
|
41 |
-
}
|
42 |
-
|
43 |
-
.carousel-slider-filter-input .blocks-select-control__input {
|
44 |
-
margin: 0 0 0 0;
|
45 |
-
}
|
46 |
-
|
47 |
-
.carousel-slider-filter-input-el {
|
48 |
-
border: none !important;
|
49 |
-
box-shadow: none !important;
|
50 |
-
width: 95%;
|
51 |
-
position: relative;
|
52 |
-
display: inline-block;
|
53 |
-
}
|
54 |
-
|
55 |
-
.carousel-slider-filter-input-icon {
|
56 |
-
display: inline-block;
|
57 |
-
content: '▾';
|
58 |
-
color: #999;
|
59 |
-
font-size: 14px;
|
60 |
-
right: .77em;
|
61 |
-
position: absolute;
|
62 |
-
top: .2em;
|
63 |
-
}
|
64 |
-
|
65 |
-
#carousel-slider-sliderFilter-main {
|
66 |
-
border-top: none;
|
67 |
-
border-left: none;
|
68 |
-
border-bottom: none;
|
69 |
-
}
|
70 |
-
|
71 |
-
#carousel-slider-sliderFilter-sidebar {
|
72 |
-
border-top: none;
|
73 |
-
border-left: none;
|
74 |
-
border-bottom: none;
|
75 |
-
width: 95%;
|
76 |
-
}
|
77 |
-
|
78 |
-
#carousel-slider-filter-input-icon-sidebar {
|
79 |
-
font-size: 1.4em;
|
80 |
-
top: .35em;
|
81 |
-
right: .45em;
|
82 |
-
}
|
83 |
-
|
84 |
-
.carousel-slider-filter-input-el.blocks-select-control__input > .components-base-control__field {
|
85 |
-
margin-bottom: 0;
|
86 |
-
}
|
87 |
-
|
88 |
-
.carousel-slider-filter-option-container {
|
89 |
-
display: none;
|
90 |
-
position: absolute;
|
91 |
-
background-color: #edeff0;
|
92 |
-
z-index: 10000;
|
93 |
-
padding: 4px;
|
94 |
-
width: 100%;
|
95 |
-
border-radius: 5px;
|
96 |
-
max-height: 200px;
|
97 |
-
overflow: scroll;
|
98 |
-
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !important;
|
99 |
-
}
|
100 |
-
|
101 |
-
.carousel-slider-filter-option {
|
102 |
-
list-style: none;
|
103 |
-
}
|
104 |
-
|
105 |
-
.carousel-slider-filter-option:hover {
|
106 |
-
background-color: #0073aa;
|
107 |
-
color: white;
|
108 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_animate.scss
DELETED
@@ -1,96 +0,0 @@
|
|
1 |
-
// Owl Carousel - Animate Plugin
|
2 |
-
.carousel-slider {
|
3 |
-
|
4 |
-
.animated {
|
5 |
-
animation-duration: 1000ms;
|
6 |
-
animation-fill-mode: both;
|
7 |
-
}
|
8 |
-
.owl-animated-in {
|
9 |
-
z-index: 0;
|
10 |
-
}
|
11 |
-
.owl-animated-out {
|
12 |
-
z-index: 1;
|
13 |
-
}
|
14 |
-
.fadeOut {
|
15 |
-
animation-name: fadeOut;
|
16 |
-
}
|
17 |
-
.fadeInDown {
|
18 |
-
animation-name: fadeInDown;
|
19 |
-
}
|
20 |
-
.fadeInUp {
|
21 |
-
animation-name: fadeInUp;
|
22 |
-
}
|
23 |
-
.fadeInRight {
|
24 |
-
animation-name: fadeInRight;
|
25 |
-
}
|
26 |
-
.fadeInLeft {
|
27 |
-
animation-name: fadeInLeft;
|
28 |
-
}
|
29 |
-
.zoomIn {
|
30 |
-
animation-name: zoomIn;
|
31 |
-
}
|
32 |
-
}
|
33 |
-
|
34 |
-
@keyframes fadeOut {
|
35 |
-
0% {
|
36 |
-
opacity: 1;
|
37 |
-
}
|
38 |
-
|
39 |
-
100% {
|
40 |
-
opacity: 0;
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
-
@keyframes fadeInDown {
|
45 |
-
from {
|
46 |
-
opacity: 0;
|
47 |
-
transform: translate3d(0, -100%, 0)
|
48 |
-
}
|
49 |
-
to {
|
50 |
-
opacity: 1;
|
51 |
-
transform: none
|
52 |
-
}
|
53 |
-
}
|
54 |
-
|
55 |
-
@keyframes fadeInUp {
|
56 |
-
from {
|
57 |
-
opacity: 0;
|
58 |
-
transform: translate3d(0, 100%, 0)
|
59 |
-
}
|
60 |
-
to {
|
61 |
-
opacity: 1;
|
62 |
-
transform: none
|
63 |
-
}
|
64 |
-
}
|
65 |
-
|
66 |
-
@keyframes fadeInRight {
|
67 |
-
from {
|
68 |
-
opacity: 0;
|
69 |
-
transform: translate3d(100%, 0, 0)
|
70 |
-
}
|
71 |
-
to {
|
72 |
-
opacity: 1;
|
73 |
-
transform: none
|
74 |
-
}
|
75 |
-
}
|
76 |
-
|
77 |
-
@keyframes fadeInLeft {
|
78 |
-
from {
|
79 |
-
opacity: 0;
|
80 |
-
transform: translate3d(-100%, 0, 0)
|
81 |
-
}
|
82 |
-
to {
|
83 |
-
opacity: 1;
|
84 |
-
transform: none
|
85 |
-
}
|
86 |
-
}
|
87 |
-
|
88 |
-
@keyframes zoomIn {
|
89 |
-
from {
|
90 |
-
opacity: 0;
|
91 |
-
transform: scale3d(.3, .3, .3)
|
92 |
-
}
|
93 |
-
50% {
|
94 |
-
opacity: 1
|
95 |
-
}
|
96 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_autoheight.scss
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* Owl Carousel - Auto Height Plugin
|
3 |
-
*/
|
4 |
-
|
5 |
-
.owl-height {
|
6 |
-
transition: height 500ms ease-in-out;
|
7 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_button.scss
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
.cs-hero-button {
|
2 |
-
-webkit-appearance: none;
|
3 |
-
-webkit-font-smoothing: inherit;
|
4 |
-
display: inline-block;
|
5 |
-
font-size: 1rem;
|
6 |
-
line-height: 1;
|
7 |
-
padding: 0.75em 1em;
|
8 |
-
border-radius: 0;
|
9 |
-
text-decoration: none;
|
10 |
-
text-align: center;
|
11 |
-
box-sizing: border-box;
|
12 |
-
transition: all 200ms ease-in-out;
|
13 |
-
|
14 |
-
&:hover {
|
15 |
-
text-decoration: none;
|
16 |
-
}
|
17 |
-
|
18 |
-
&--normal {
|
19 |
-
opacity: 0.9;
|
20 |
-
filter: alpha(opacity=90);
|
21 |
-
}
|
22 |
-
|
23 |
-
&--stroke {
|
24 |
-
background: transparent;
|
25 |
-
border-width: 1px;
|
26 |
-
border-style: solid;
|
27 |
-
border-color: transparent;
|
28 |
-
}
|
29 |
-
|
30 |
-
&--medium {
|
31 |
-
font-size: 1.2rem;
|
32 |
-
padding: 0.9em 1.2em;
|
33 |
-
}
|
34 |
-
|
35 |
-
&--large {
|
36 |
-
font-size: 1.5rem;
|
37 |
-
padding: 0.9em 1.6em;
|
38 |
-
}
|
39 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_content-carousel.scss
DELETED
@@ -1,162 +0,0 @@
|
|
1 |
-
.carousel-slider-hero {
|
2 |
-
// Cell background
|
3 |
-
&__cell__background {
|
4 |
-
background-size: cover;
|
5 |
-
background-position: center;
|
6 |
-
background-repeat: no-repeat;
|
7 |
-
min-width: 100%;
|
8 |
-
min-height: 100%;
|
9 |
-
transition-property: transform;
|
10 |
-
transition-duration: 10s;
|
11 |
-
|
12 |
-
&.carousel-slider-hero-ken-out {
|
13 |
-
transform: scale(1.3);
|
14 |
-
}
|
15 |
-
|
16 |
-
// Active Slide
|
17 |
-
.carousel-slider .active & {
|
18 |
-
animation-timing-function: linear;
|
19 |
-
animation-duration: 20s;
|
20 |
-
|
21 |
-
&.carousel-slider-hero-ken-in {
|
22 |
-
transform: scale(1.3);
|
23 |
-
animation-name: ken-burns-in;
|
24 |
-
}
|
25 |
-
|
26 |
-
&.carousel-slider-hero-ken-out {
|
27 |
-
transform: scale(1);
|
28 |
-
animation-name: ken-burns-out;
|
29 |
-
}
|
30 |
-
}
|
31 |
-
}
|
32 |
-
|
33 |
-
// Cell
|
34 |
-
&__cell {
|
35 |
-
display: flex;
|
36 |
-
justify-content: center;
|
37 |
-
align-items: center;
|
38 |
-
position: relative;
|
39 |
-
overflow: hidden;
|
40 |
-
height: 400px;
|
41 |
-
|
42 |
-
&:focus {
|
43 |
-
outline: 0;
|
44 |
-
}
|
45 |
-
}
|
46 |
-
|
47 |
-
// Slide Inner
|
48 |
-
&__cell__inner {
|
49 |
-
background-repeat: no-repeat;
|
50 |
-
background-position: center;
|
51 |
-
position: absolute;
|
52 |
-
top: 0;
|
53 |
-
left: 0;
|
54 |
-
bottom: 0;
|
55 |
-
right: 0;
|
56 |
-
padding: 50px;
|
57 |
-
|
58 |
-
&, &:hover {
|
59 |
-
color: white;
|
60 |
-
display: flex;
|
61 |
-
}
|
62 |
-
}
|
63 |
-
|
64 |
-
&__cell__background_overlay {
|
65 |
-
position: absolute;
|
66 |
-
z-index: 0;
|
67 |
-
top: 0;
|
68 |
-
bottom: 0;
|
69 |
-
left: 0;
|
70 |
-
right: 0;
|
71 |
-
}
|
72 |
-
|
73 |
-
&__cell__content {
|
74 |
-
position: relative;
|
75 |
-
z-index: 1;
|
76 |
-
width: 100%;
|
77 |
-
max-width: 1140px;
|
78 |
-
}
|
79 |
-
|
80 |
-
&__cell__heading {
|
81 |
-
font-size: 40px;
|
82 |
-
font-weight: bold;
|
83 |
-
line-height: 1;
|
84 |
-
}
|
85 |
-
|
86 |
-
&__cell__description {
|
87 |
-
font-size: 20px;
|
88 |
-
line-height: 1.4;
|
89 |
-
}
|
90 |
-
|
91 |
-
&__cell__heading:not(:last-child),
|
92 |
-
&__cell__description:not(:last-child) {
|
93 |
-
margin-bottom: 30px;
|
94 |
-
}
|
95 |
-
|
96 |
-
&__cell__button__one {
|
97 |
-
margin-right: 5px;
|
98 |
-
}
|
99 |
-
&__cell__button__two {
|
100 |
-
margin-left: 5px;
|
101 |
-
}
|
102 |
-
&__cell__button__one,
|
103 |
-
&__cell__button__two {
|
104 |
-
display: inline-flex;
|
105 |
-
}
|
106 |
-
}
|
107 |
-
|
108 |
-
.carousel-slider-hero__cell__inner {
|
109 |
-
&.carousel-slider--v-position {
|
110 |
-
&-top {
|
111 |
-
align-items: flex-start;
|
112 |
-
}
|
113 |
-
&-bottom {
|
114 |
-
align-items: flex-end;
|
115 |
-
}
|
116 |
-
&-middle {
|
117 |
-
align-items: center;
|
118 |
-
}
|
119 |
-
}
|
120 |
-
|
121 |
-
&.carousel-slider--h-position {
|
122 |
-
&-left {
|
123 |
-
justify-content: flex-start;
|
124 |
-
}
|
125 |
-
&-right {
|
126 |
-
justify-content: flex-end;
|
127 |
-
}
|
128 |
-
&-center {
|
129 |
-
justify-content: center;
|
130 |
-
}
|
131 |
-
}
|
132 |
-
|
133 |
-
&.carousel-slider--text {
|
134 |
-
&-left {
|
135 |
-
text-align: left;
|
136 |
-
}
|
137 |
-
&-right {
|
138 |
-
text-align: right;
|
139 |
-
}
|
140 |
-
&-center {
|
141 |
-
text-align: center;
|
142 |
-
}
|
143 |
-
}
|
144 |
-
}
|
145 |
-
|
146 |
-
@media (max-width: 767px) {
|
147 |
-
.carousel-slider-hero__cell__inner {
|
148 |
-
padding: 30px;
|
149 |
-
}
|
150 |
-
|
151 |
-
.carousel-slider-hero__cell__heading {
|
152 |
-
font-size: 24px;
|
153 |
-
line-height: 1;
|
154 |
-
margin-bottom: 15px;
|
155 |
-
}
|
156 |
-
|
157 |
-
.carousel-slider-hero__cell__description {
|
158 |
-
font-size: 14px;
|
159 |
-
line-height: 1.4;
|
160 |
-
margin-bottom: 15px;
|
161 |
-
}
|
162 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_core.scss
DELETED
@@ -1,109 +0,0 @@
|
|
1 |
-
// Owl Carousel - Core
|
2 |
-
.carousel-slider {
|
3 |
-
display: none;
|
4 |
-
width: 100%;
|
5 |
-
-webkit-tap-highlight-color: transparent;
|
6 |
-
position: relative;
|
7 |
-
z-index: 1;
|
8 |
-
|
9 |
-
.owl-stage {
|
10 |
-
position: relative;
|
11 |
-
-ms-touch-action: pan-Y;
|
12 |
-
touch-action: manipulation;
|
13 |
-
backface-visibility: hidden;
|
14 |
-
|
15 |
-
&:after {
|
16 |
-
content: ".";
|
17 |
-
display: block;
|
18 |
-
clear: both;
|
19 |
-
visibility: hidden;
|
20 |
-
line-height: 0;
|
21 |
-
height: 0;
|
22 |
-
}
|
23 |
-
}
|
24 |
-
|
25 |
-
.owl-stage-outer {
|
26 |
-
position: relative;
|
27 |
-
overflow: hidden;
|
28 |
-
transform: translate3d(0px, 0px, 0px);
|
29 |
-
}
|
30 |
-
.owl-carousel .owl-wrapper,
|
31 |
-
.owl-carousel .owl-item {
|
32 |
-
backface-visibility: hidden;
|
33 |
-
transform: translate3d(0, 0, 0);
|
34 |
-
}
|
35 |
-
|
36 |
-
.owl-item {
|
37 |
-
position: relative;
|
38 |
-
min-height: 1px;
|
39 |
-
float: left;
|
40 |
-
backface-visibility: hidden;
|
41 |
-
-webkit-tap-highlight-color: transparent;
|
42 |
-
-webkit-touch-callout: none;
|
43 |
-
}
|
44 |
-
.owl-item img {
|
45 |
-
display: block;
|
46 |
-
width: 100%;
|
47 |
-
}
|
48 |
-
|
49 |
-
.owl-nav.disabled,
|
50 |
-
.owl-dots.disabled {
|
51 |
-
display: none;
|
52 |
-
}
|
53 |
-
|
54 |
-
.owl-nav .owl-prev,
|
55 |
-
.owl-nav .owl-next,
|
56 |
-
.owl-dot {
|
57 |
-
cursor: pointer;
|
58 |
-
user-select: none;
|
59 |
-
}
|
60 |
-
.owl-nav button.owl-prev,
|
61 |
-
.owl-nav button.owl-next,
|
62 |
-
button.owl-dot {
|
63 |
-
background: none;
|
64 |
-
color: inherit;
|
65 |
-
border: none;
|
66 |
-
padding: 0 !important;
|
67 |
-
font: inherit;
|
68 |
-
}
|
69 |
-
|
70 |
-
&.owl-loaded {
|
71 |
-
display: block;
|
72 |
-
}
|
73 |
-
|
74 |
-
&.owl-loading {
|
75 |
-
opacity: 0;
|
76 |
-
display: block;
|
77 |
-
}
|
78 |
-
|
79 |
-
&.owl-hidden {
|
80 |
-
opacity: 0;
|
81 |
-
}
|
82 |
-
|
83 |
-
&.owl-refresh .owl-item {
|
84 |
-
visibility: hidden;
|
85 |
-
}
|
86 |
-
|
87 |
-
&.owl-drag .owl-item {
|
88 |
-
touch-action: pan-y;
|
89 |
-
user-select: none;
|
90 |
-
}
|
91 |
-
|
92 |
-
&.owl-grab {
|
93 |
-
cursor: move;
|
94 |
-
cursor: grab;
|
95 |
-
}
|
96 |
-
|
97 |
-
&.owl-rtl {
|
98 |
-
direction: rtl;
|
99 |
-
}
|
100 |
-
|
101 |
-
&.owl-rtl .owl-item {
|
102 |
-
float: right;
|
103 |
-
}
|
104 |
-
}
|
105 |
-
|
106 |
-
// No Js
|
107 |
-
.no-js .carousel-slider {
|
108 |
-
display: block;
|
109 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_image-carousel.scss
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
.carousel-slider {
|
2 |
-
// Styling item
|
3 |
-
.carousel-slider__item {
|
4 |
-
position: relative;
|
5 |
-
|
6 |
-
img {
|
7 |
-
display: block;
|
8 |
-
margin-left: auto;
|
9 |
-
margin-right: auto;
|
10 |
-
max-width: 100%;
|
11 |
-
height: auto;
|
12 |
-
}
|
13 |
-
}
|
14 |
-
.carousel-slider__caption {
|
15 |
-
position: relative;
|
16 |
-
|
17 |
-
.title {
|
18 |
-
overflow: hidden;
|
19 |
-
text-overflow: ellipsis;
|
20 |
-
color: #474747;
|
21 |
-
font-size: 16px;
|
22 |
-
font-weight: 500;
|
23 |
-
margin: 10px 0 0;
|
24 |
-
text-align: center;
|
25 |
-
}
|
26 |
-
|
27 |
-
.caption {
|
28 |
-
font-size: 14px;
|
29 |
-
font-weight: 300;
|
30 |
-
margin: 10px 0 0;
|
31 |
-
text-align: center;
|
32 |
-
}
|
33 |
-
}
|
34 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_lazyload.scss
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
// Owl Carousel - Lazy Load Plugin
|
2 |
-
.carousel-slider {
|
3 |
-
.owl-item {
|
4 |
-
.owl-lazy {
|
5 |
-
// opacity: 0;
|
6 |
-
// transition: opacity 400ms ease;
|
7 |
-
}
|
8 |
-
|
9 |
-
img.owl-lazy {
|
10 |
-
// transform-style: preserve-3d;
|
11 |
-
background: url($ajax-loader-url) no-repeat center;
|
12 |
-
min-width: 32px;
|
13 |
-
min-height: 32px;
|
14 |
-
}
|
15 |
-
}
|
16 |
-
}
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_magnific-popup.scss
DELETED
@@ -1,603 +0,0 @@
|
|
1 |
-
/* Magnific Popup CSS */
|
2 |
-
|
3 |
-
////////////////////////
|
4 |
-
// Settings //
|
5 |
-
////////////////////////
|
6 |
-
|
7 |
-
// overlay
|
8 |
-
$mfp-overlay-color: #0b0b0b !default; // Color of overlay screen
|
9 |
-
$mfp-overlay-opacity: 0.8 !default; // Opacity of overlay screen
|
10 |
-
$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // Shadow on image or iframe
|
11 |
-
|
12 |
-
// spacing
|
13 |
-
$mfp-popup-padding-left: 8px !default; // Padding from left and from right side
|
14 |
-
$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px
|
15 |
-
|
16 |
-
$mfp-z-index-base: 1040 !default; // Base z-index of popup
|
17 |
-
|
18 |
-
// controls
|
19 |
-
$mfp-include-arrows: true !default; // Include styles for nav arrows
|
20 |
-
$mfp-controls-opacity: 0.65 !default; // Opacity of controls
|
21 |
-
$mfp-controls-color: #FFF !default; // Color of controls
|
22 |
-
$mfp-controls-border-color: #3F3F3F !default; // Border color of controls
|
23 |
-
$mfp-inner-close-icon-color: #333 !default; // Color of close button when inside
|
24 |
-
$mfp-controls-text-color: #CCC !default; // Color of preloader and "1 of X" indicator
|
25 |
-
$mfp-controls-text-color-hover: #FFF !default; // Hover color of preloader and "1 of X" indicator
|
26 |
-
|
27 |
-
// Iframe-type options
|
28 |
-
$mfp-include-iframe-type: true !default; // Enable Iframe-type popups
|
29 |
-
$mfp-iframe-padding-top: 40px !default; // Iframe padding top
|
30 |
-
$mfp-iframe-background: #000 !default; // Background color of iframes
|
31 |
-
$mfp-iframe-max-width: 900px !default; // Maximum width of iframes
|
32 |
-
$mfp-iframe-ratio: 9/16 !default; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)
|
33 |
-
|
34 |
-
// Image-type options
|
35 |
-
$mfp-include-image-type: true !default; // Enable Image-type popups
|
36 |
-
$mfp-image-background: #444 !default;
|
37 |
-
$mfp-image-padding-top: 40px !default; // Image padding top
|
38 |
-
$mfp-image-padding-bottom: 40px !default; // Image padding bottom
|
39 |
-
$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom
|
40 |
-
|
41 |
-
// Image caption options
|
42 |
-
$mfp-caption-title-color: #F3F3F3 !default; // Caption title color
|
43 |
-
$mfp-caption-subtitle-color: #BDBDBD !default; // Caption subtitle color
|
44 |
-
|
45 |
-
// A11y
|
46 |
-
$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers
|
47 |
-
|
48 |
-
////////////////////////
|
49 |
-
//
|
50 |
-
// Contents:
|
51 |
-
//
|
52 |
-
// 1. General styles
|
53 |
-
// - Transluscent overlay
|
54 |
-
// - Containers, wrappers
|
55 |
-
// - Cursors
|
56 |
-
// - Helper classes
|
57 |
-
// 2. Appearance
|
58 |
-
// - Preloader & text that displays error messages
|
59 |
-
// - CSS reset for buttons
|
60 |
-
// - Close icon
|
61 |
-
// - "1 of X" counter
|
62 |
-
// - Navigation (left/right) arrows
|
63 |
-
// - Iframe content type styles
|
64 |
-
// - Image content type styles
|
65 |
-
// - Media query where size of arrows is reduced
|
66 |
-
// - IE7 support
|
67 |
-
//
|
68 |
-
////////////////////////
|
69 |
-
|
70 |
-
////////////////////////
|
71 |
-
// 1. General styles
|
72 |
-
////////////////////////
|
73 |
-
|
74 |
-
// Transluscent overlay
|
75 |
-
.mfp-bg {
|
76 |
-
top: 0;
|
77 |
-
left: 0;
|
78 |
-
width: 100%;
|
79 |
-
height: 100%;
|
80 |
-
z-index: $mfp-z-index-base + 2;
|
81 |
-
overflow: hidden;
|
82 |
-
position: fixed;
|
83 |
-
|
84 |
-
background: $mfp-overlay-color;
|
85 |
-
opacity: $mfp-overlay-opacity;
|
86 |
-
}
|
87 |
-
|
88 |
-
// Wrapper for popup
|
89 |
-
.mfp-wrap {
|
90 |
-
top: 0;
|
91 |
-
left: 0;
|
92 |
-
width: 100%;
|
93 |
-
height: 100%;
|
94 |
-
z-index: $mfp-z-index-base + 3;
|
95 |
-
position: fixed;
|
96 |
-
outline: none !important;
|
97 |
-
-webkit-backface-visibility: hidden; // fixes webkit bug that can cause "false" scrollbar
|
98 |
-
}
|
99 |
-
|
100 |
-
// Root container
|
101 |
-
.mfp-container {
|
102 |
-
text-align: center;
|
103 |
-
position: absolute;
|
104 |
-
width: 100%;
|
105 |
-
height: 100%;
|
106 |
-
left: 0;
|
107 |
-
top: 0;
|
108 |
-
padding: 0 $mfp-popup-padding-left;
|
109 |
-
box-sizing: border-box;
|
110 |
-
}
|
111 |
-
|
112 |
-
// Vertical centerer helper
|
113 |
-
.mfp-container {
|
114 |
-
&:before {
|
115 |
-
content: '';
|
116 |
-
display: inline-block;
|
117 |
-
height: 100%;
|
118 |
-
vertical-align: middle;
|
119 |
-
}
|
120 |
-
}
|
121 |
-
|
122 |
-
// Remove vertical centering when popup has class `mfp-align-top`
|
123 |
-
.mfp-align-top {
|
124 |
-
.mfp-container {
|
125 |
-
&:before {
|
126 |
-
display: none;
|
127 |
-
}
|
128 |
-
}
|
129 |
-
}
|
130 |
-
|
131 |
-
// Popup content holder
|
132 |
-
.mfp-content {
|
133 |
-
position: relative;
|
134 |
-
display: inline-block;
|
135 |
-
vertical-align: middle;
|
136 |
-
margin: 0 auto;
|
137 |
-
text-align: left;
|
138 |
-
z-index: $mfp-z-index-base + 5;
|
139 |
-
}
|
140 |
-
|
141 |
-
.mfp-inline-holder,
|
142 |
-
.mfp-ajax-holder {
|
143 |
-
.mfp-content {
|
144 |
-
width: 100%;
|
145 |
-
cursor: auto;
|
146 |
-
}
|
147 |
-
}
|
148 |
-
|
149 |
-
// Cursors
|
150 |
-
.mfp-ajax-cur {
|
151 |
-
cursor: progress;
|
152 |
-
}
|
153 |
-
|
154 |
-
.mfp-zoom-out-cur {
|
155 |
-
&, .mfp-image-holder .mfp-close {
|
156 |
-
cursor: -moz-zoom-out;
|
157 |
-
cursor: -webkit-zoom-out;
|
158 |
-
cursor: zoom-out;
|
159 |
-
}
|
160 |
-
}
|
161 |
-
|
162 |
-
.mfp-zoom {
|
163 |
-
cursor: pointer;
|
164 |
-
cursor: -webkit-zoom-in;
|
165 |
-
cursor: -moz-zoom-in;
|
166 |
-
cursor: zoom-in;
|
167 |
-
}
|
168 |
-
|
169 |
-
.mfp-auto-cursor {
|
170 |
-
.mfp-content {
|
171 |
-
cursor: auto;
|
172 |
-
}
|
173 |
-
}
|
174 |
-
|
175 |
-
.mfp-close,
|
176 |
-
.mfp-arrow,
|
177 |
-
.mfp-preloader,
|
178 |
-
.mfp-counter {
|
179 |
-
-webkit-user-select: none;
|
180 |
-
-moz-user-select: none;
|
181 |
-
user-select: none;
|
182 |
-
}
|
183 |
-
|
184 |
-
// Hide the image during the loading
|
185 |
-
.mfp-loading {
|
186 |
-
&.mfp-figure {
|
187 |
-
display: none;
|
188 |
-
}
|
189 |
-
}
|
190 |
-
|
191 |
-
// Helper class that hides stuff
|
192 |
-
@if $mfp-use-visuallyhidden {
|
193 |
-
// From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden
|
194 |
-
.mfp-hide {
|
195 |
-
border: 0 !important;
|
196 |
-
clip: rect(0 0 0 0) !important;
|
197 |
-
height: 1px !important;
|
198 |
-
margin: -1px !important;
|
199 |
-
overflow: hidden !important;
|
200 |
-
padding: 0 !important;
|
201 |
-
position: absolute !important;
|
202 |
-
width: 1px !important;
|
203 |
-
}
|
204 |
-
} @else {
|
205 |
-
.mfp-hide {
|
206 |
-
display: none !important;
|
207 |
-
}
|
208 |
-
}
|
209 |
-
|
210 |
-
////////////////////////
|
211 |
-
// 2. Appearance
|
212 |
-
////////////////////////
|
213 |
-
|
214 |
-
// Preloader and text that displays error messages
|
215 |
-
.mfp-preloader {
|
216 |
-
color: $mfp-controls-text-color;
|
217 |
-
position: absolute;
|
218 |
-
top: 50%;
|
219 |
-
width: auto;
|
220 |
-
text-align: center;
|
221 |
-
margin-top: -0.8em;
|
222 |
-
left: 8px;
|
223 |
-
right: 8px;
|
224 |
-
z-index: $mfp-z-index-base + 4;
|
225 |
-
a {
|
226 |
-
color: $mfp-controls-text-color;
|
227 |
-
&:hover {
|
228 |
-
color: $mfp-controls-text-color-hover;
|
229 |
-
}
|
230 |
-
}
|
231 |
-
}
|
232 |
-
|
233 |
-
// Hide preloader when content successfully loaded
|
234 |
-
.mfp-s-ready {
|
235 |
-
.mfp-preloader {
|
236 |
-
display: none;
|
237 |
-
}
|
238 |
-
}
|
239 |
-
|
240 |
-
// Hide content when it was not loaded
|
241 |
-
.mfp-s-error {
|
242 |
-
.mfp-content {
|
243 |
-
display: none;
|
244 |
-
}
|
245 |
-
}
|
246 |
-
|
247 |
-
// CSS-reset for buttons
|
248 |
-
button {
|
249 |
-
&.mfp-close,
|
250 |
-
&.mfp-arrow {
|
251 |
-
overflow: visible;
|
252 |
-
cursor: pointer;
|
253 |
-
background: transparent;
|
254 |
-
border: 0;
|
255 |
-
-webkit-appearance: none;
|
256 |
-
display: block;
|
257 |
-
outline: none;
|
258 |
-
padding: 0;
|
259 |
-
z-index: $mfp-z-index-base + 6;
|
260 |
-
box-shadow: none;
|
261 |
-
touch-action: manipulation;
|
262 |
-
}
|
263 |
-
&::-moz-focus-inner {
|
264 |
-
padding: 0;
|
265 |
-
border: 0
|
266 |
-
}
|
267 |
-
}
|
268 |
-
|
269 |
-
// Close icon
|
270 |
-
.mfp-close {
|
271 |
-
width: 44px;
|
272 |
-
height: 44px;
|
273 |
-
line-height: 44px;
|
274 |
-
|
275 |
-
position: absolute;
|
276 |
-
right: 0;
|
277 |
-
top: 0;
|
278 |
-
text-decoration: none;
|
279 |
-
text-align: center;
|
280 |
-
opacity: $mfp-controls-opacity;
|
281 |
-
padding: 0 0 18px 10px;
|
282 |
-
color: $mfp-controls-color;
|
283 |
-
|
284 |
-
font-style: normal;
|
285 |
-
font-size: 28px;
|
286 |
-
font-family: Arial, Baskerville, monospace;
|
287 |
-
|
288 |
-
&:hover,
|
289 |
-
&:focus {
|
290 |
-
opacity: 1;
|
291 |
-
}
|
292 |
-
|
293 |
-
&:active {
|
294 |
-
top: 1px;
|
295 |
-
}
|
296 |
-
}
|
297 |
-
|
298 |
-
.mfp-close-btn-in {
|
299 |
-
.mfp-close {
|
300 |
-
color: $mfp-inner-close-icon-color;
|
301 |
-
}
|
302 |
-
}
|
303 |
-
|
304 |
-
.mfp-image-holder,
|
305 |
-
.mfp-iframe-holder {
|
306 |
-
.mfp-close {
|
307 |
-
color: $mfp-controls-color;
|
308 |
-
right: -6px;
|
309 |
-
text-align: right;
|
310 |
-
padding-right: 6px;
|
311 |
-
width: 100%;
|
312 |
-
}
|
313 |
-
}
|
314 |
-
|
315 |
-
// "1 of X" counter
|
316 |
-
.mfp-counter {
|
317 |
-
position: absolute;
|
318 |
-
top: 0;
|
319 |
-
right: 0;
|
320 |
-
color: $mfp-controls-text-color;
|
321 |
-
font-size: 12px;
|
322 |
-
line-height: 18px;
|
323 |
-
white-space: nowrap;
|
324 |
-
}
|
325 |
-
|
326 |
-
// Navigation arrows
|
327 |
-
@if $mfp-include-arrows {
|
328 |
-
.mfp-arrow {
|
329 |
-
position: absolute;
|
330 |
-
opacity: $mfp-controls-opacity;
|
331 |
-
top: 50%;
|
332 |
-
margin: -55px 0 0;
|
333 |
-
padding: 0;
|
334 |
-
width: 90px;
|
335 |
-
height: 110px;
|
336 |
-
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
337 |
-
&:active {
|
338 |
-
margin-top: -54px;
|
339 |
-
}
|
340 |
-
&:hover,
|
341 |
-
&:focus {
|
342 |
-
opacity: 1;
|
343 |
-
}
|
344 |
-
&:before,
|
345 |
-
&:after {
|
346 |
-
content: '';
|
347 |
-
display: block;
|
348 |
-
width: 0;
|
349 |
-
height: 0;
|
350 |
-
position: absolute;
|
351 |
-
left: 0;
|
352 |
-
top: 0;
|
353 |
-
margin-top: 35px;
|
354 |
-
margin-left: 35px;
|
355 |
-
border: medium inset transparent;
|
356 |
-
}
|
357 |
-
|
358 |
-
&:after {
|
359 |
-
|
360 |
-
border-top-width: 13px;
|
361 |
-
border-bottom-width: 13px;
|
362 |
-
top: 8px;
|
363 |
-
}
|
364 |
-
|
365 |
-
&:before {
|
366 |
-
border-top-width: 21px;
|
367 |
-
border-bottom-width: 21px;
|
368 |
-
opacity: 0.7;
|
369 |
-
}
|
370 |
-
|
371 |
-
}
|
372 |
-
|
373 |
-
.mfp-arrow-left {
|
374 |
-
left: 0;
|
375 |
-
&:after {
|
376 |
-
border-right: 17px solid $mfp-controls-color;
|
377 |
-
margin-left: 31px;
|
378 |
-
}
|
379 |
-
&:before {
|
380 |
-
margin-left: 25px;
|
381 |
-
border-right: 27px solid $mfp-controls-border-color;
|
382 |
-
}
|
383 |
-
}
|
384 |
-
|
385 |
-
.mfp-arrow-right {
|
386 |
-
right: 0;
|
387 |
-
&:after {
|
388 |
-
border-left: 17px solid $mfp-controls-color;
|
389 |
-
margin-left: 39px
|
390 |
-
}
|
391 |
-
&:before {
|
392 |
-
border-left: 27px solid $mfp-controls-border-color;
|
393 |
-
}
|
394 |
-
}
|
395 |
-
}
|
396 |
-
|
397 |
-
// Iframe content type
|
398 |
-
@if $mfp-include-iframe-type {
|
399 |
-
.mfp-iframe-holder {
|
400 |
-
padding-top: $mfp-iframe-padding-top;
|
401 |
-
padding-bottom: $mfp-iframe-padding-top;
|
402 |
-
.mfp-content {
|
403 |
-
line-height: 0;
|
404 |
-
width: 100%;
|
405 |
-
max-width: $mfp-iframe-max-width;
|
406 |
-
}
|
407 |
-
.mfp-close {
|
408 |
-
top: -40px;
|
409 |
-
}
|
410 |
-
}
|
411 |
-
.mfp-iframe-scaler {
|
412 |
-
width: 100%;
|
413 |
-
height: 0;
|
414 |
-
overflow: hidden;
|
415 |
-
padding-top: $mfp-iframe-ratio * 100%;
|
416 |
-
iframe {
|
417 |
-
position: absolute;
|
418 |
-
display: block;
|
419 |
-
top: 0;
|
420 |
-
left: 0;
|
421 |
-
width: 100%;
|
422 |
-
height: 100%;
|
423 |
-
box-shadow: $mfp-shadow;
|
424 |
-
background: $mfp-iframe-background;
|
425 |
-
}
|
426 |
-
}
|
427 |
-
}
|
428 |
-
|
429 |
-
// Image content type
|
430 |
-
@if $mfp-include-image-type {
|
431 |
-
|
432 |
-
/* Main image in popup */
|
433 |
-
img {
|
434 |
-
&.mfp-img {
|
435 |
-
width: auto;
|
436 |
-
max-width: 100%;
|
437 |
-
height: auto;
|
438 |
-
display: block;
|
439 |
-
line-height: 0;
|
440 |
-
box-sizing: border-box;
|
441 |
-
padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom;
|
442 |
-
margin: 0 auto;
|
443 |
-
}
|
444 |
-
}
|
445 |
-
|
446 |
-
/* The shadow behind the image */
|
447 |
-
.mfp-figure {
|
448 |
-
line-height: 0;
|
449 |
-
&:after {
|
450 |
-
content: '';
|
451 |
-
position: absolute;
|
452 |
-
left: 0;
|
453 |
-
top: $mfp-image-padding-top;
|
454 |
-
bottom: $mfp-image-padding-bottom;
|
455 |
-
display: block;
|
456 |
-
right: 0;
|
457 |
-
width: auto;
|
458 |
-
height: auto;
|
459 |
-
z-index: -1;
|
460 |
-
box-shadow: $mfp-shadow;
|
461 |
-
background: $mfp-image-background;
|
462 |
-
}
|
463 |
-
small {
|
464 |
-
color: $mfp-caption-subtitle-color;
|
465 |
-
display: block;
|
466 |
-
font-size: 12px;
|
467 |
-
line-height: 14px;
|
468 |
-
}
|
469 |
-
figure {
|
470 |
-
margin: 0;
|
471 |
-
}
|
472 |
-
}
|
473 |
-
.mfp-bottom-bar {
|
474 |
-
margin-top: -$mfp-image-padding-bottom + 4;
|
475 |
-
position: absolute;
|
476 |
-
top: 100%;
|
477 |
-
left: 0;
|
478 |
-
width: 100%;
|
479 |
-
cursor: auto;
|
480 |
-
}
|
481 |
-
.mfp-title {
|
482 |
-
text-align: left;
|
483 |
-
line-height: 18px;
|
484 |
-
color: $mfp-caption-title-color;
|
485 |
-
word-wrap: break-word;
|
486 |
-
padding-right: 36px; // leave some space for counter at right side
|
487 |
-
}
|
488 |
-
|
489 |
-
.mfp-image-holder {
|
490 |
-
.mfp-content {
|
491 |
-
max-width: 100%;
|
492 |
-
}
|
493 |
-
}
|
494 |
-
|
495 |
-
.mfp-gallery {
|
496 |
-
.mfp-image-holder {
|
497 |
-
.mfp-figure {
|
498 |
-
cursor: pointer;
|
499 |
-
}
|
500 |
-
}
|
501 |
-
}
|
502 |
-
|
503 |
-
@if $mfp-include-mobile-layout-for-image {
|
504 |
-
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
|
505 |
-
/**
|
506 |
-
* Remove all paddings around the image on small screen
|
507 |
-
*/
|
508 |
-
.mfp-img-mobile {
|
509 |
-
.mfp-image-holder {
|
510 |
-
padding-left: 0;
|
511 |
-
padding-right: 0;
|
512 |
-
}
|
513 |
-
img {
|
514 |
-
&.mfp-img {
|
515 |
-
padding: 0;
|
516 |
-
}
|
517 |
-
}
|
518 |
-
.mfp-figure {
|
519 |
-
// The shadow behind the image
|
520 |
-
&:after {
|
521 |
-
top: 0;
|
522 |
-
bottom: 0;
|
523 |
-
}
|
524 |
-
small {
|
525 |
-
display: inline;
|
526 |
-
margin-left: 5px;
|
527 |
-
}
|
528 |
-
}
|
529 |
-
.mfp-bottom-bar {
|
530 |
-
background: rgba(0, 0, 0, 0.6);
|
531 |
-
bottom: 0;
|
532 |
-
margin: 0;
|
533 |
-
top: auto;
|
534 |
-
padding: 3px 5px;
|
535 |
-
position: fixed;
|
536 |
-
box-sizing: border-box;
|
537 |
-
&:empty {
|
538 |
-
padding: 0;
|
539 |
-
}
|
540 |
-
}
|
541 |
-
.mfp-counter {
|
542 |
-
right: 5px;
|
543 |
-
top: 3px;
|
544 |
-
}
|
545 |
-
.mfp-close {
|
546 |
-
top: 0;
|
547 |
-
right: 0;
|
548 |
-
width: 35px;
|
549 |
-
height: 35px;
|
550 |
-
line-height: 35px;
|
551 |
-
background: rgba(0, 0, 0, 0.6);
|
552 |
-
position: fixed;
|
553 |
-
text-align: center;
|
554 |
-
padding: 0;
|
555 |
-
}
|
556 |
-
}
|
557 |
-
}
|
558 |
-
}
|
559 |
-
}
|
560 |
-
|
561 |
-
// Scale navigation arrows and reduce padding from sides
|
562 |
-
@media all and (max-width: 900px) {
|
563 |
-
.mfp-arrow {
|
564 |
-
-webkit-transform: scale(0.75);
|
565 |
-
transform: scale(0.75);
|
566 |
-
}
|
567 |
-
.mfp-arrow-left {
|
568 |
-
-webkit-transform-origin: 0;
|
569 |
-
transform-origin: 0;
|
570 |
-
}
|
571 |
-
.mfp-arrow-right {
|
572 |
-
-webkit-transform-origin: 100%;
|
573 |
-
transform-origin: 100%;
|
574 |
-
}
|
575 |
-
.mfp-container {
|
576 |
-
padding-left: $mfp-popup-padding-left-mobile;
|
577 |
-
padding-right: $mfp-popup-padding-left-mobile;
|
578 |
-
}
|
579 |
-
}
|
580 |
-
|
581 |
-
.mfp-with-zoom .mfp-container,
|
582 |
-
.mfp-with-zoom.mfp-bg {
|
583 |
-
opacity: 0;
|
584 |
-
-webkit-backface-visibility: hidden;
|
585 |
-
/* ideally, transition speed should match zoom duration */
|
586 |
-
-webkit-transition: all 0.3s ease-out;
|
587 |
-
-moz-transition: all 0.3s ease-out;
|
588 |
-
-o-transition: all 0.3s ease-out;
|
589 |
-
transition: all 0.3s ease-out;
|
590 |
-
}
|
591 |
-
|
592 |
-
.mfp-with-zoom.mfp-ready .mfp-container {
|
593 |
-
opacity: 1;
|
594 |
-
}
|
595 |
-
|
596 |
-
.mfp-with-zoom.mfp-ready.mfp-bg {
|
597 |
-
opacity: 0.8;
|
598 |
-
}
|
599 |
-
|
600 |
-
.mfp-with-zoom.mfp-removing .mfp-container,
|
601 |
-
.mfp-with-zoom.mfp-removing.mfp-bg {
|
602 |
-
opacity: 0;
|
603 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_post-carousel.scss
DELETED
@@ -1,100 +0,0 @@
|
|
1 |
-
.carousel-slider {
|
2 |
-
|
3 |
-
&[data-slide-type="post-carousel"] {
|
4 |
-
.owl-stage {
|
5 |
-
display: flex;
|
6 |
-
flex-wrap: wrap;
|
7 |
-
}
|
8 |
-
|
9 |
-
.owl-item {
|
10 |
-
display: flex;
|
11 |
-
height: auto;
|
12 |
-
}
|
13 |
-
}
|
14 |
-
|
15 |
-
&__post {
|
16 |
-
border-radius: 4px;
|
17 |
-
box-shadow: 0 1px 2px rgba(#000, 0.1), 0 0 0 1px rgba(#000, 0.1);
|
18 |
-
margin: 2px;
|
19 |
-
position: relative;
|
20 |
-
width: 100%;
|
21 |
-
|
22 |
-
&-content {
|
23 |
-
display: flex;
|
24 |
-
flex-direction: column;
|
25 |
-
height: 100%;
|
26 |
-
justify-content: space-between;
|
27 |
-
}
|
28 |
-
|
29 |
-
&-image {
|
30 |
-
background-color: #f1f1f1;
|
31 |
-
background-size: cover;
|
32 |
-
background-position: center center;
|
33 |
-
border-top-left-radius: 4px;
|
34 |
-
border-top-right-radius: 4px;
|
35 |
-
display: block;
|
36 |
-
line-height: 0;
|
37 |
-
margin: 0 auto;
|
38 |
-
overflow: hidden;
|
39 |
-
padding-top: 66.6666%; // 3by2
|
40 |
-
position: relative;
|
41 |
-
text-align: center;
|
42 |
-
width: 100%;
|
43 |
-
}
|
44 |
-
|
45 |
-
&-title {
|
46 |
-
display: block;
|
47 |
-
margin: 1rem;
|
48 |
-
min-height: 3.75em;
|
49 |
-
|
50 |
-
h1 {
|
51 |
-
font-size: 1.25rem;
|
52 |
-
margin: 0;
|
53 |
-
}
|
54 |
-
}
|
55 |
-
|
56 |
-
&-excerpt {
|
57 |
-
font-size: 1rem;
|
58 |
-
line-height: 1.6;
|
59 |
-
margin: 1rem 1rem 2rem;
|
60 |
-
text-align: left;
|
61 |
-
}
|
62 |
-
|
63 |
-
&-meta {
|
64 |
-
align-items: flex-end;
|
65 |
-
display: flex;
|
66 |
-
font-size: 0.75rem;
|
67 |
-
justify-content: space-between;
|
68 |
-
margin: auto 1rem 1rem;
|
69 |
-
}
|
70 |
-
|
71 |
-
&-publication-meta {
|
72 |
-
display: block;
|
73 |
-
overflow: hidden;
|
74 |
-
text-overflow: ellipsis;
|
75 |
-
white-space: nowrap;
|
76 |
-
}
|
77 |
-
|
78 |
-
&-author {
|
79 |
-
display: block;
|
80 |
-
font-style: normal;
|
81 |
-
line-height: 1.6;
|
82 |
-
overflow: hidden;
|
83 |
-
text-overflow: ellipsis;
|
84 |
-
white-space: nowrap;
|
85 |
-
|
86 |
-
&-link {
|
87 |
-
display: inline-block;
|
88 |
-
max-width: 175px;
|
89 |
-
overflow: hidden;
|
90 |
-
text-overflow: ellipsis;
|
91 |
-
vertical-align: middle;
|
92 |
-
white-space: nowrap;
|
93 |
-
}
|
94 |
-
}
|
95 |
-
|
96 |
-
&-category {
|
97 |
-
text-transform: uppercase;
|
98 |
-
}
|
99 |
-
}
|
100 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_post-carousel2.scss
DELETED
@@ -1,63 +0,0 @@
|
|
1 |
-
.carousel-slider {
|
2 |
-
.blog-grid-inside {
|
3 |
-
display: flex;
|
4 |
-
flex-direction: column;
|
5 |
-
height: 100%;
|
6 |
-
border-radius: 3px;
|
7 |
-
border: 1px solid rgba(#000, 0.1);
|
8 |
-
|
9 |
-
.post-thumbnail {
|
10 |
-
margin: 0;
|
11 |
-
padding: 0;
|
12 |
-
|
13 |
-
img {
|
14 |
-
width: 100%;
|
15 |
-
height: auto;
|
16 |
-
}
|
17 |
-
}
|
18 |
-
.entry-header {
|
19 |
-
margin: 1rem;
|
20 |
-
padding: 0;
|
21 |
-
border: none;
|
22 |
-
}
|
23 |
-
.cat-links {
|
24 |
-
display: block;
|
25 |
-
margin-top: 0;
|
26 |
-
margin-bottom: .5rem;
|
27 |
-
line-height: 1.25;
|
28 |
-
}
|
29 |
-
.entry-title {
|
30 |
-
margin: 0;
|
31 |
-
padding: 0;
|
32 |
-
font-size: 1.25rem;
|
33 |
-
overflow-wrap: break-word;
|
34 |
-
}
|
35 |
-
.entry-summary {
|
36 |
-
margin: 0 1rem 1rem;
|
37 |
-
overflow-wrap: break-word;
|
38 |
-
}
|
39 |
-
.tags-links {
|
40 |
-
margin: 0 1rem 1rem;
|
41 |
-
}
|
42 |
-
.entry-footer {
|
43 |
-
margin: 0 1em 1.25rem;
|
44 |
-
overflow: hidden;
|
45 |
-
}
|
46 |
-
.byline,
|
47 |
-
.posted-on {
|
48 |
-
float: left;
|
49 |
-
font-size: .875rem;
|
50 |
-
line-height: 1.33;
|
51 |
-
}
|
52 |
-
.vcard img {
|
53 |
-
display: inline-block;
|
54 |
-
width: auto;
|
55 |
-
}
|
56 |
-
.posted-on {
|
57 |
-
float: right;
|
58 |
-
}
|
59 |
-
.published:not(.updated) {
|
60 |
-
display: none;
|
61 |
-
}
|
62 |
-
}
|
63 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_product-carousel.scss
DELETED
@@ -1,197 +0,0 @@
|
|
1 |
-
@import "../utilities/mixins";
|
2 |
-
|
3 |
-
$text-color: #333333;
|
4 |
-
$btn-color: #f1f1f1;
|
5 |
-
$btn-background: #96588a;
|
6 |
-
|
7 |
-
.carousel-slider {
|
8 |
-
&[data-slide-type="product-carousel"] {
|
9 |
-
.owl-stage {
|
10 |
-
display: flex;
|
11 |
-
flex-wrap: wrap;
|
12 |
-
}
|
13 |
-
|
14 |
-
.owl-item {
|
15 |
-
display: flex;
|
16 |
-
height: auto;
|
17 |
-
}
|
18 |
-
}
|
19 |
-
|
20 |
-
.woocommerce-loop-category__title {
|
21 |
-
font-size: 1.25rem;
|
22 |
-
margin: 1rem;
|
23 |
-
}
|
24 |
-
|
25 |
-
&__product {
|
26 |
-
position: relative;
|
27 |
-
text-align: center;
|
28 |
-
box-shadow: 0 1px 2px rgba(#000, 0.1), 0 0 0 1px rgba(#000, 0.1);
|
29 |
-
margin: 2px;
|
30 |
-
width: 100%;
|
31 |
-
|
32 |
-
.woocommerce-LoopProduct-link {
|
33 |
-
display: block;
|
34 |
-
overflow: hidden;
|
35 |
-
margin: 0;
|
36 |
-
}
|
37 |
-
|
38 |
-
.onsale {
|
39 |
-
border: 0 none;
|
40 |
-
line-height: 1;
|
41 |
-
margin: 0;
|
42 |
-
padding: 0.5rem;
|
43 |
-
color: $btn-color;
|
44 |
-
background-color: $btn-background;
|
45 |
-
position: absolute;
|
46 |
-
left: 1rem;
|
47 |
-
top: 1rem;
|
48 |
-
}
|
49 |
-
|
50 |
-
h3 {
|
51 |
-
padding: 0;
|
52 |
-
text-align: left;
|
53 |
-
margin: 1rem;
|
54 |
-
font-size: 1.25rem;
|
55 |
-
color: $text-color;
|
56 |
-
}
|
57 |
-
|
58 |
-
a {
|
59 |
-
text-decoration: none;
|
60 |
-
box-shadow: none;
|
61 |
-
|
62 |
-
img {
|
63 |
-
width: 100%;
|
64 |
-
height: auto;
|
65 |
-
display: block;
|
66 |
-
box-shadow: none;
|
67 |
-
}
|
68 |
-
}
|
69 |
-
|
70 |
-
strong {
|
71 |
-
display: block;
|
72 |
-
}
|
73 |
-
|
74 |
-
// Price
|
75 |
-
.price {
|
76 |
-
color: $text-color;
|
77 |
-
display: inline-block;
|
78 |
-
font-weight: normal;
|
79 |
-
margin: 0 0.5rem 0 1rem;
|
80 |
-
font-size: .875rem;
|
81 |
-
float: left;
|
82 |
-
|
83 |
-
del {
|
84 |
-
color: inherit;
|
85 |
-
background-color: transparent;
|
86 |
-
opacity: 0.5;
|
87 |
-
display: inline-block;
|
88 |
-
}
|
89 |
-
|
90 |
-
ins {
|
91 |
-
color: inherit;
|
92 |
-
background-color: transparent;
|
93 |
-
font-weight: bold;
|
94 |
-
}
|
95 |
-
}
|
96 |
-
|
97 |
-
// Star ratings
|
98 |
-
.star-rating {
|
99 |
-
display: inline-block;
|
100 |
-
margin: 0 1rem 0 0.5rem;
|
101 |
-
float: right;
|
102 |
-
overflow: hidden;
|
103 |
-
position: relative;
|
104 |
-
height: 1em;
|
105 |
-
line-height: 1;
|
106 |
-
font-size: 1em;
|
107 |
-
width: 5.4em;
|
108 |
-
font-family: 'star';
|
109 |
-
|
110 |
-
&:before {
|
111 |
-
content: "\73\73\73\73\73";
|
112 |
-
float: left;
|
113 |
-
top: 0;
|
114 |
-
left: 0;
|
115 |
-
position: absolute;
|
116 |
-
}
|
117 |
-
|
118 |
-
span {
|
119 |
-
overflow: hidden;
|
120 |
-
float: left;
|
121 |
-
top: 0;
|
122 |
-
left: 0;
|
123 |
-
position: absolute;
|
124 |
-
padding-top: 1.5em;
|
125 |
-
|
126 |
-
&:before {
|
127 |
-
color: $btn-background;
|
128 |
-
content: "\53\53\53\53\53";
|
129 |
-
top: 0;
|
130 |
-
position: absolute;
|
131 |
-
left: 0;
|
132 |
-
}
|
133 |
-
}
|
134 |
-
}
|
135 |
-
|
136 |
-
a.add_to_cart_button,
|
137 |
-
a.added_to_cart,
|
138 |
-
a.quick_view {
|
139 |
-
color: $btn-color;
|
140 |
-
background-color: $btn-background;
|
141 |
-
margin: 1rem;
|
142 |
-
line-height: 1;
|
143 |
-
cursor: pointer;
|
144 |
-
position: relative;
|
145 |
-
text-decoration: none;
|
146 |
-
overflow: visible;
|
147 |
-
padding: .5em 1em;
|
148 |
-
font-weight: normal;
|
149 |
-
border-radius: 3px;
|
150 |
-
left: auto;
|
151 |
-
border: 0;
|
152 |
-
white-space: nowrap;
|
153 |
-
display: block;
|
154 |
-
background-image: none;
|
155 |
-
box-shadow: none;
|
156 |
-
-webkit-box-shadow: none;
|
157 |
-
text-shadow: none;
|
158 |
-
|
159 |
-
&:hover {
|
160 |
-
color: $btn-color;
|
161 |
-
background-color: $btn-background;
|
162 |
-
text-decoration: none;
|
163 |
-
background-image: none;
|
164 |
-
}
|
165 |
-
}
|
166 |
-
|
167 |
-
// Buttons
|
168 |
-
a.add_to_cart_button {
|
169 |
-
|
170 |
-
&.loading {
|
171 |
-
opacity: 0.25;
|
172 |
-
padding-right: 2.618em;
|
173 |
-
|
174 |
-
&:after {
|
175 |
-
font-family: "WooCommerce";
|
176 |
-
content: "\e01c";
|
177 |
-
vertical-align: top;
|
178 |
-
-webkit-font-smoothing: antialiased;
|
179 |
-
font-weight: normal;
|
180 |
-
position: absolute;
|
181 |
-
top: .618em;
|
182 |
-
right: 1em;
|
183 |
-
animation: spin 2s linear infinite;
|
184 |
-
}
|
185 |
-
}
|
186 |
-
|
187 |
-
&.added {
|
188 |
-
&:after {
|
189 |
-
font-family: 'WooCommerce';
|
190 |
-
content: "\e017";
|
191 |
-
margin-left: .53em;
|
192 |
-
vertical-align: bottom;
|
193 |
-
}
|
194 |
-
}
|
195 |
-
}
|
196 |
-
}
|
197 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_product_modal.scss
DELETED
@@ -1,197 +0,0 @@
|
|
1 |
-
.mfp-content {
|
2 |
-
|
3 |
-
.product {
|
4 |
-
background-color: #ffffff;
|
5 |
-
display: table;
|
6 |
-
margin: 0 auto;
|
7 |
-
padding: 15px;
|
8 |
-
|
9 |
-
.images {
|
10 |
-
display: inline-block;
|
11 |
-
float: left;
|
12 |
-
max-width: 600px;
|
13 |
-
|
14 |
-
img {
|
15 |
-
display: block;
|
16 |
-
}
|
17 |
-
}
|
18 |
-
|
19 |
-
.onsale {
|
20 |
-
left: 24px;
|
21 |
-
top: 24px;
|
22 |
-
position: absolute;
|
23 |
-
}
|
24 |
-
|
25 |
-
.summary {
|
26 |
-
display: inline-block;
|
27 |
-
margin-left: 15px;
|
28 |
-
width: 300px;
|
29 |
-
}
|
30 |
-
|
31 |
-
.product_title,
|
32 |
-
.description {
|
33 |
-
margin: 1em 0;
|
34 |
-
}
|
35 |
-
|
36 |
-
// Price
|
37 |
-
.price {
|
38 |
-
// color: $text-color;
|
39 |
-
display: inline-block;
|
40 |
-
font-weight: normal;
|
41 |
-
margin: .5em 1em;
|
42 |
-
font-size: .857em;
|
43 |
-
float: left;
|
44 |
-
|
45 |
-
del {
|
46 |
-
color: inherit;
|
47 |
-
background-color: transparent;
|
48 |
-
opacity: 0.5;
|
49 |
-
display: inline-block;
|
50 |
-
}
|
51 |
-
|
52 |
-
ins {
|
53 |
-
color: inherit;
|
54 |
-
background-color: transparent;
|
55 |
-
font-weight: bold;
|
56 |
-
}
|
57 |
-
}
|
58 |
-
|
59 |
-
// Star ratings
|
60 |
-
.star-rating {
|
61 |
-
// color: $btn-background;
|
62 |
-
display: inline-block;
|
63 |
-
margin: .5em 1em;
|
64 |
-
float: right;
|
65 |
-
overflow: hidden;
|
66 |
-
position: relative;
|
67 |
-
height: 1em;
|
68 |
-
line-height: 1;
|
69 |
-
font-size: 1em;
|
70 |
-
width: 5.4em;
|
71 |
-
font-family: 'star';
|
72 |
-
|
73 |
-
&:before {
|
74 |
-
content: "\73\73\73\73\73";
|
75 |
-
float: left;
|
76 |
-
top: 0;
|
77 |
-
left: 0;
|
78 |
-
position: absolute;
|
79 |
-
}
|
80 |
-
|
81 |
-
span {
|
82 |
-
overflow: hidden;
|
83 |
-
float: left;
|
84 |
-
top: 0;
|
85 |
-
left: 0;
|
86 |
-
position: absolute;
|
87 |
-
padding-top: 1.5em;
|
88 |
-
}
|
89 |
-
|
90 |
-
span:before {
|
91 |
-
content: "\53\53\53\53\53";
|
92 |
-
top: 0;
|
93 |
-
position: absolute;
|
94 |
-
left: 0;
|
95 |
-
}
|
96 |
-
}
|
97 |
-
|
98 |
-
// Buttons
|
99 |
-
|
100 |
-
a.add_to_cart_button,
|
101 |
-
a.added_to_cart {
|
102 |
-
// color: $btn-color;
|
103 |
-
// background-color: $btn-background;
|
104 |
-
margin: 0;
|
105 |
-
line-height: 1;
|
106 |
-
cursor: pointer;
|
107 |
-
position: relative;
|
108 |
-
text-decoration: none;
|
109 |
-
overflow: visible;
|
110 |
-
padding: .5em 1em;
|
111 |
-
font-weight: normal;
|
112 |
-
border-radius: 3px;
|
113 |
-
left: auto;
|
114 |
-
border: 0;
|
115 |
-
white-space: nowrap;
|
116 |
-
display: inline-block;
|
117 |
-
background-image: none;
|
118 |
-
box-shadow: none;
|
119 |
-
-webkit-box-shadow: none;
|
120 |
-
text-shadow: none;
|
121 |
-
|
122 |
-
&:hover {
|
123 |
-
// color: $btn-color;
|
124 |
-
// background-color: $btn-background;
|
125 |
-
text-decoration: none;
|
126 |
-
background-image: none;
|
127 |
-
}
|
128 |
-
}
|
129 |
-
a.add_to_cart_button {
|
130 |
-
|
131 |
-
&.loading {
|
132 |
-
opacity: 0.25;
|
133 |
-
padding-right: 2.618em;
|
134 |
-
|
135 |
-
&:after {
|
136 |
-
font-family: "WooCommerce";
|
137 |
-
content: "\e01c";
|
138 |
-
vertical-align: top;
|
139 |
-
-webkit-font-smoothing: antialiased;
|
140 |
-
font-weight: normal;
|
141 |
-
position: absolute;
|
142 |
-
top: .618em;
|
143 |
-
right: 1em;
|
144 |
-
-webkit-animation: spin 2s linear infinite;
|
145 |
-
-moz-animation: spin 2s linear infinite;
|
146 |
-
animation: spin 2s linear infinite;
|
147 |
-
}
|
148 |
-
}
|
149 |
-
|
150 |
-
&.added {
|
151 |
-
&:after {
|
152 |
-
font-family: 'WooCommerce';
|
153 |
-
content: "\e017";
|
154 |
-
margin-left: .53em;
|
155 |
-
vertical-align: bottom;
|
156 |
-
}
|
157 |
-
}
|
158 |
-
}
|
159 |
-
}
|
160 |
-
}
|
161 |
-
|
162 |
-
.mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content {
|
163 |
-
max-width: 945px;
|
164 |
-
margin-top: 40px;
|
165 |
-
margin-bottom: 40px;
|
166 |
-
}
|
167 |
-
|
168 |
-
@media ( max-width: 600px ) {
|
169 |
-
.mfp-content {
|
170 |
-
.product {
|
171 |
-
.images {
|
172 |
-
margin-bottom: 30px;
|
173 |
-
}
|
174 |
-
.summary {
|
175 |
-
display: block;
|
176 |
-
margin: 0;
|
177 |
-
width: 100%;
|
178 |
-
}
|
179 |
-
}
|
180 |
-
}
|
181 |
-
}
|
182 |
-
|
183 |
-
@media ( min-width: 601px ) {
|
184 |
-
.mfp-content {
|
185 |
-
.product {
|
186 |
-
.images {
|
187 |
-
display: inline-block;
|
188 |
-
width: 49%;
|
189 |
-
}
|
190 |
-
.summary {
|
191 |
-
display: inline-block;
|
192 |
-
margin: 0 0 0 1%;
|
193 |
-
width: 49%;
|
194 |
-
}
|
195 |
-
}
|
196 |
-
}
|
197 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_theme.scss
DELETED
@@ -1,136 +0,0 @@
|
|
1 |
-
.carousel-slider {
|
2 |
-
|
3 |
-
// Styling Next and Prev buttons
|
4 |
-
.owl-nav {
|
5 |
-
.owl-prev,
|
6 |
-
.owl-next {
|
7 |
-
height: 48px;
|
8 |
-
width: 48px;
|
9 |
-
display: inline-block;
|
10 |
-
position: absolute;
|
11 |
-
top: 50%;
|
12 |
-
transform: translateY(-50%);
|
13 |
-
opacity: 0;
|
14 |
-
margin: 0;
|
15 |
-
padding: 0;
|
16 |
-
transition: all .3s ease-in-out;
|
17 |
-
}
|
18 |
-
|
19 |
-
.owl-prev {
|
20 |
-
left: 0;
|
21 |
-
}
|
22 |
-
|
23 |
-
.owl-next {
|
24 |
-
right: 0;
|
25 |
-
}
|
26 |
-
}
|
27 |
-
|
28 |
-
&:hover {
|
29 |
-
.owl-nav {
|
30 |
-
.owl-prev,
|
31 |
-
.owl-next {
|
32 |
-
opacity: 1;
|
33 |
-
}
|
34 |
-
}
|
35 |
-
}
|
36 |
-
|
37 |
-
&.arrows-visible-always {
|
38 |
-
.owl-prev,
|
39 |
-
.owl-next {
|
40 |
-
opacity: 1;
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
-
&.arrows-outside {
|
45 |
-
.owl-nav {
|
46 |
-
.owl-prev {
|
47 |
-
left: -48px;
|
48 |
-
}
|
49 |
-
|
50 |
-
.owl-next {
|
51 |
-
right: -48px;
|
52 |
-
}
|
53 |
-
}
|
54 |
-
}
|
55 |
-
|
56 |
-
// Styling dots
|
57 |
-
.owl-dots {
|
58 |
-
text-align: center;
|
59 |
-
-webkit-tap-highlight-color: transparent;
|
60 |
-
margin-top: 10px;
|
61 |
-
|
62 |
-
.owl-dot {
|
63 |
-
display: inline-block;
|
64 |
-
zoom: 1;
|
65 |
-
*display: inline;
|
66 |
-
|
67 |
-
span {
|
68 |
-
width: 10px;
|
69 |
-
height: 10px;
|
70 |
-
margin: 4px 8px;
|
71 |
-
background-color: $background-color;
|
72 |
-
display: block;
|
73 |
-
-webkit-backface-visibility: visible;
|
74 |
-
transition: opacity 200ms ease;
|
75 |
-
}
|
76 |
-
|
77 |
-
&.active,
|
78 |
-
&:hover {
|
79 |
-
span {
|
80 |
-
background-color: $background-hover-color;
|
81 |
-
}
|
82 |
-
}
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
// Dots positions
|
87 |
-
&.dots-center {
|
88 |
-
.owl-dots {
|
89 |
-
text-align: center;
|
90 |
-
}
|
91 |
-
}
|
92 |
-
&.dots-left {
|
93 |
-
.owl-dots {
|
94 |
-
text-align: left;
|
95 |
-
|
96 |
-
&:first-child {
|
97 |
-
span {
|
98 |
-
margin-left: 0;
|
99 |
-
}
|
100 |
-
}
|
101 |
-
}
|
102 |
-
}
|
103 |
-
&.dots-right {
|
104 |
-
.owl-dots {
|
105 |
-
text-align: right;
|
106 |
-
|
107 |
-
&:last-child {
|
108 |
-
span {
|
109 |
-
margin-right: 0;
|
110 |
-
}
|
111 |
-
}
|
112 |
-
}
|
113 |
-
}
|
114 |
-
|
115 |
-
// Dots visibility
|
116 |
-
&.dots-visible-hover {
|
117 |
-
.owl-dots {
|
118 |
-
opacity: 0;
|
119 |
-
}
|
120 |
-
|
121 |
-
&:hover .owl-dots {
|
122 |
-
opacity: 1;
|
123 |
-
}
|
124 |
-
}
|
125 |
-
|
126 |
-
// Dots shape
|
127 |
-
&.dots-circle {
|
128 |
-
.owl-dots {
|
129 |
-
.owl-dot {
|
130 |
-
span {
|
131 |
-
border-radius: 9999px;
|
132 |
-
}
|
133 |
-
}
|
134 |
-
}
|
135 |
-
}
|
136 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_variables.scss
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
// Variables
|
2 |
-
$background-color : #9e9e9e;
|
3 |
-
$background-hover-color : #4caf50;
|
4 |
-
$owl-video-play-icon : "#{$imagePath}play.svg";
|
5 |
-
$ajax-loader-url : "#{$imagePath}ajax-loader.gif";
|
|
|
|
|
|
|
|
|
|
assets/src/scss/public/_video.scss
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
// Owl Carousel - Video Plugin
|
2 |
-
.carousel-slider {
|
3 |
-
|
4 |
-
.carousel-slider-video-wrapper {
|
5 |
-
position: relative;
|
6 |
-
height: 100%;
|
7 |
-
background: #000;
|
8 |
-
}
|
9 |
-
|
10 |
-
.carousel-slider-video-play-icon {
|
11 |
-
position: absolute;
|
12 |
-
height: 40px;
|
13 |
-
width: 40px;
|
14 |
-
left: 50%;
|
15 |
-
top: 50%;
|
16 |
-
margin-left: -20px;
|
17 |
-
margin-top: -20px;
|
18 |
-
background: url($owl-video-play-icon) no-repeat;
|
19 |
-
cursor: pointer;
|
20 |
-
z-index: 2;
|
21 |
-
-webkit-backface-visibility: hidden;
|
22 |
-
transition: transform 100ms ease;
|
23 |
-
}
|
24 |
-
|
25 |
-
.carousel-slider-video-overlay {
|
26 |
-
position: absolute;
|
27 |
-
height: 100%;
|
28 |
-
width: 100%;
|
29 |
-
left: 0;
|
30 |
-
top: 0;
|
31 |
-
background-color: rgba(#000000, 0.5);
|
32 |
-
z-index: 1;
|
33 |
-
}
|
34 |
-
|
35 |
-
.carousel-slider-video-play-icon:hover {
|
36 |
-
transform: scale(1.3, 1.3);
|
37 |
-
}
|
38 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/utilities/_mixins.scss
DELETED
@@ -1,84 +0,0 @@
|
|
1 |
-
@mixin overlay($offset: 0) {
|
2 |
-
bottom: $offset;
|
3 |
-
left: $offset;
|
4 |
-
position: absolute;
|
5 |
-
right: $offset;
|
6 |
-
top: $offset;
|
7 |
-
}
|
8 |
-
|
9 |
-
@mixin delete {
|
10 |
-
user-select: none;
|
11 |
-
-moz-appearance: none;
|
12 |
-
-webkit-appearance: none;
|
13 |
-
background-color: rgba($black, 0.2);
|
14 |
-
border: none;
|
15 |
-
border-radius: 32px;
|
16 |
-
cursor: pointer;
|
17 |
-
display: inline-block;
|
18 |
-
flex-grow: 0;
|
19 |
-
flex-shrink: 0;
|
20 |
-
font-size: $size-normal;
|
21 |
-
outline: none;
|
22 |
-
position: relative;
|
23 |
-
vertical-align: top;
|
24 |
-
height: 20px;
|
25 |
-
width: 20px;
|
26 |
-
|
27 |
-
&:before,
|
28 |
-
&:after {
|
29 |
-
background-color: $white;
|
30 |
-
content: "";
|
31 |
-
display: block;
|
32 |
-
left: 50%;
|
33 |
-
position: absolute;
|
34 |
-
top: 50%;
|
35 |
-
transform: translateX(-50%) translateY(-50%) rotate(45deg);
|
36 |
-
transform-origin: center center;
|
37 |
-
}
|
38 |
-
|
39 |
-
&:before {
|
40 |
-
height: 2px;
|
41 |
-
width: 50%;
|
42 |
-
}
|
43 |
-
|
44 |
-
&:after {
|
45 |
-
height: 50%;
|
46 |
-
width: 2px;
|
47 |
-
}
|
48 |
-
|
49 |
-
&:hover,
|
50 |
-
&:focus {
|
51 |
-
background-color: rgba($black, 0.3);
|
52 |
-
}
|
53 |
-
|
54 |
-
&:active {
|
55 |
-
background-color: rgba($black, 0.4);
|
56 |
-
}
|
57 |
-
|
58 |
-
// Sizes
|
59 |
-
&.is-small {
|
60 |
-
height: 16px;
|
61 |
-
width: 16px;
|
62 |
-
}
|
63 |
-
|
64 |
-
&.is-medium {
|
65 |
-
height: 24px;
|
66 |
-
width: 24px;
|
67 |
-
}
|
68 |
-
|
69 |
-
&.is-large {
|
70 |
-
height: 32px;
|
71 |
-
width: 32px;
|
72 |
-
}
|
73 |
-
}
|
74 |
-
|
75 |
-
// Focus shadow mixin.
|
76 |
-
@mixin focus-shadow() {
|
77 |
-
box-shadow: 0 0 8px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .36);
|
78 |
-
}
|
79 |
-
|
80 |
-
@mixin shadow-2dp() {
|
81 |
-
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),
|
82 |
-
0 3px 1px -2px rgba(0, 0, 0, 0.2),
|
83 |
-
0 1px 5px 0 rgba(0, 0, 0, 0.12);
|
84 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/src/scss/utilities/_variables.scss
DELETED
@@ -1,145 +0,0 @@
|
|
1 |
-
// == Colors
|
2 |
-
// Start with assigning color names to specific hex values.
|
3 |
-
|
4 |
-
$black: #000000 !default;
|
5 |
-
$grey-darker: #212121 !default;
|
6 |
-
$grey-dark: #616161 !default;
|
7 |
-
$grey: #9e9e9e !default;
|
8 |
-
$grey-light: #e0e0e0 !default;
|
9 |
-
$grey-lighter: #f5f5f5 !default;
|
10 |
-
$white: #ffffff !default;
|
11 |
-
$teal: #009688 !default;
|
12 |
-
$blue: #2196f3 !default;
|
13 |
-
$green: #4caf50 !default;
|
14 |
-
$yellow: #ffeb3b !default;
|
15 |
-
$amber: #ffc107 !default;
|
16 |
-
$orange: #ff9800 !default;
|
17 |
-
$red: #f44336 !default;
|
18 |
-
$purple: #9c27b0 !default;
|
19 |
-
$turquoise: #00d1b2 !default;
|
20 |
-
$pink: #e91e63 !default;
|
21 |
-
|
22 |
-
// Reassign color vars to semantic color scheme
|
23 |
-
$primary: $teal !default;
|
24 |
-
$info: $blue !default;
|
25 |
-
$success: $green !default;
|
26 |
-
$warning: $amber !default;
|
27 |
-
$danger: $red !default;
|
28 |
-
$light: $grey-lighter !default;
|
29 |
-
$dark: $grey-darker !default;
|
30 |
-
|
31 |
-
$colors: (
|
32 |
-
'teal': $teal,
|
33 |
-
'blue': $blue,
|
34 |
-
'green': $green,
|
35 |
-
'yellow': $yellow,
|
36 |
-
'amber': $amber,
|
37 |
-
'orange': $orange,
|
38 |
-
'red': $red,
|
39 |
-
'purple': $purple,
|
40 |
-
'turquoise': $turquoise,
|
41 |
-
'pink': $pink,
|
42 |
-
'white': $white,
|
43 |
-
'light': $grey-lighter,
|
44 |
-
'grey-light': $grey-light,
|
45 |
-
'grey': $grey,
|
46 |
-
'grey-dark': $grey-dark,
|
47 |
-
'dark': $grey-darker,
|
48 |
-
'black': $black,
|
49 |
-
);
|
50 |
-
|
51 |
-
// General colors
|
52 |
-
$background: $grey-lighter !default;
|
53 |
-
|
54 |
-
$border: $grey-lighter !default;
|
55 |
-
$border-hover: $grey-light !default;
|
56 |
-
|
57 |
-
//== Link colors
|
58 |
-
$link: $primary !default;
|
59 |
-
$link-invert: $primary !default;
|
60 |
-
$link-visited: $purple !default;
|
61 |
-
|
62 |
-
$link-hover: $grey-darker !default;
|
63 |
-
$link-hover-border: $grey-light !default;
|
64 |
-
|
65 |
-
$link-focus: $grey-darker !default;
|
66 |
-
$link-focus-border: $primary !default;
|
67 |
-
|
68 |
-
$link-active: $grey-darker !default;
|
69 |
-
$link-active-border: $grey-dark !default;
|
70 |
-
|
71 |
-
//== Button
|
72 |
-
$button: $grey-darker !default;
|
73 |
-
$button-background: $white !default;
|
74 |
-
$button-border: $grey-lighter !default;
|
75 |
-
|
76 |
-
$button-hover: $link-hover !default;
|
77 |
-
$button-hover-border: $link-hover-border !default;
|
78 |
-
|
79 |
-
$button-focus: $link-focus !default;
|
80 |
-
$button-focus-border: $link-focus-border !default;
|
81 |
-
|
82 |
-
$button-active: $link-active !default;
|
83 |
-
$button-active-border: $link-active-border !default;
|
84 |
-
|
85 |
-
$button-shadow-inset: inset 0 1px 2px rgba($black, 0.2) !default;
|
86 |
-
|
87 |
-
// Typography
|
88 |
-
$family-sans-serif: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !default;
|
89 |
-
$family-monospace: monospace !default;
|
90 |
-
|
91 |
-
$family-primary: $family-sans-serif !default;
|
92 |
-
$family-code: $family-monospace !default;
|
93 |
-
|
94 |
-
$size-1: 3rem !default;
|
95 |
-
$size-2: 2.5rem !default;
|
96 |
-
$size-3: 2rem !default;
|
97 |
-
$size-4: 1.5rem !default;
|
98 |
-
$size-5: 1.25rem !default;
|
99 |
-
$size-6: 1rem !default;
|
100 |
-
$size-7: 0.75rem !default;
|
101 |
-
|
102 |
-
$size-small: $size-7 !default;
|
103 |
-
$size-normal: $size-6 !default;
|
104 |
-
$size-medium: $size-5 !default;
|
105 |
-
$size-large: $size-4 !default;
|
106 |
-
|
107 |
-
$weight-light: 300 !default;
|
108 |
-
$weight-normal: 400 !default;
|
109 |
-
$weight-semibold: 500 !default;
|
110 |
-
$weight-bold: 700 !default;
|
111 |
-
|
112 |
-
// Text colors
|
113 |
-
$text: $grey-dark !default;
|
114 |
-
$text-invert: $text !default;
|
115 |
-
$text-light: $grey !default;
|
116 |
-
$text-strong: $grey-darker !default;
|
117 |
-
|
118 |
-
// Miscellaneous
|
119 |
-
$radius-small: 2px !default;
|
120 |
-
$radius: 3px !default;
|
121 |
-
$radius-large: 5px !default;
|
122 |
-
|
123 |
-
//== Grid breakpoints
|
124 |
-
$screen-sm: 576px !default;
|
125 |
-
$screen-md: 769px !default;
|
126 |
-
$screen-lg: 1000px !default;
|
127 |
-
$screen-xl: 1192px !default;
|
128 |
-
$screen-hd: 1384px !default;
|
129 |
-
|
130 |
-
//== Grid containers
|
131 |
-
$container-sm: 540px !default;
|
132 |
-
$container-md: 720px !default;
|
133 |
-
$container-lg: 960px !default;
|
134 |
-
$container-xl: 1140px !default;
|
135 |
-
$container-hd: 1340px !default;
|
136 |
-
|
137 |
-
// Responsiveness
|
138 |
-
// 960, 1152, and 1344 have been chosen because they are divisible by both 12 and 16
|
139 |
-
$tablet: 769px !default;
|
140 |
-
// 960px container + 40px
|
141 |
-
$desktop: 1000px !default;
|
142 |
-
// 1152px container + 40
|
143 |
-
$widescreen: 1192px !default;
|
144 |
-
// 1344px container + 40
|
145 |
-
$fullhd: 1384px !default;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
carousel-slider.php
CHANGED
@@ -3,14 +3,15 @@
|
|
3 |
* Plugin Name: Carousel Slider
|
4 |
* Plugin URI: http://wordpress.org/plugins/carousel-slider
|
5 |
* Description: <strong>Carousel Slider</strong> allows you to create beautiful, touch enabled, responsive carousels and sliders. It let you create SEO friendly Image carousel from Media Library or from custom URL, Video carousel using Youtube and Vimeo video, Post carousel, Hero banner slider and various types of WooCommerce products carousels.
|
6 |
-
* Version: 1.
|
7 |
* Author: Sayful Islam
|
8 |
* Author URI: https://sayfulislam.com
|
9 |
-
* Requires
|
10 |
-
*
|
|
|
11 |
*
|
12 |
-
* WC requires at least:
|
13 |
-
* WC tested up to:
|
14 |
*
|
15 |
* Text Domain: carousel-slider
|
16 |
*
|
@@ -48,14 +49,14 @@ if ( ! class_exists( 'Carousel_Slider' ) ) {
|
|
48 |
*
|
49 |
* @var string
|
50 |
*/
|
51 |
-
private $version = '1.
|
52 |
|
53 |
/**
|
54 |
* Minimum PHP version required
|
55 |
*
|
56 |
* @var string
|
57 |
*/
|
58 |
-
private $min_php = '
|
59 |
|
60 |
/**
|
61 |
* The instance of the class
|
@@ -75,8 +76,12 @@ if ( ! class_exists( 'Carousel_Slider' ) ) {
|
|
75 |
if ( is_null( self::$instance ) ) {
|
76 |
self::$instance = new self();
|
77 |
|
|
|
78 |
self::$instance->define_constants();
|
79 |
|
|
|
|
|
|
|
80 |
// Check if PHP version is supported for our plugin
|
81 |
if ( ! self::$instance->is_supported_php() ) {
|
82 |
register_activation_hook( __FILE__, array( self::$instance, 'auto_deactivate' ) );
|
@@ -85,6 +90,9 @@ if ( ! class_exists( 'Carousel_Slider' ) ) {
|
|
85 |
return self::$instance;
|
86 |
}
|
87 |
|
|
|
|
|
|
|
88 |
self::$instance->includes();
|
89 |
|
90 |
register_activation_hook( __FILE__, array( self::$instance, 'activation' ) );
|
@@ -100,6 +108,7 @@ if ( ! class_exists( 'Carousel_Slider' ) ) {
|
|
100 |
* Define plugin constants
|
101 |
*/
|
102 |
public function define_constants() {
|
|
|
103 |
define( 'CAROUSEL_SLIDER_VERSION', $this->version );
|
104 |
define( 'CAROUSEL_SLIDER_POST_TYPE', $this->post_type );
|
105 |
define( 'CAROUSEL_SLIDER_FILE', __FILE__ );
|
@@ -112,45 +121,49 @@ if ( ! class_exists( 'Carousel_Slider' ) ) {
|
|
112 |
}
|
113 |
|
114 |
/**
|
115 |
-
*
|
116 |
-
*
|
117 |
-
* @param string $name
|
118 |
-
* @param string|bool $value
|
119 |
*/
|
120 |
-
private function
|
121 |
-
if (
|
122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
}
|
124 |
}
|
125 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
/**
|
127 |
* Include admin and front facing files
|
128 |
*/
|
129 |
private function includes() {
|
130 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-i18n.php';
|
131 |
require_once CAROUSEL_SLIDER_INCLUDES . '/functions-carousel-slider.php';
|
132 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-activator.php';
|
133 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-product.php';
|
134 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-script.php';
|
135 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-preview.php';
|
136 |
-
require_once CAROUSEL_SLIDER_WIDGETS . '/widget-carousel_slider.php';
|
137 |
|
138 |
if ( $this->is_request( 'admin' ) ) {
|
139 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-setting-api.php';
|
140 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-setting.php';
|
141 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-credit.php';
|
142 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-documentation.php';
|
143 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-vc-element.php';
|
144 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-form.php';
|
145 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-admin.php';
|
146 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-meta-box.php';
|
147 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-hero-carousel.php';
|
148 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-gutenberg-block.php';
|
149 |
}
|
150 |
-
|
151 |
-
require_once CAROUSEL_SLIDER_PATH . '/shortcodes/class-carousel-slider-shortcode.php';
|
152 |
-
require_once CAROUSEL_SLIDER_PATH . '/shortcodes/class-carousel-slider-deprecated-shortcode.php';
|
153 |
-
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-structured-data.php';
|
154 |
}
|
155 |
|
156 |
/**
|
@@ -158,8 +171,7 @@ if ( ! class_exists( 'Carousel_Slider' ) ) {
|
|
158 |
* @return void
|
159 |
*/
|
160 |
public function activation() {
|
161 |
-
do_action( '
|
162 |
-
flush_rewrite_rules();
|
163 |
}
|
164 |
|
165 |
/**
|
@@ -167,8 +179,7 @@ if ( ! class_exists( 'Carousel_Slider' ) ) {
|
|
167 |
* @return void
|
168 |
*/
|
169 |
public function deactivation() {
|
170 |
-
do_action( '
|
171 |
-
flush_rewrite_rules();
|
172 |
}
|
173 |
|
174 |
/**
|
@@ -186,9 +197,9 @@ if ( ! class_exists( 'Carousel_Slider' ) ) {
|
|
186 |
$error .= sprintf( __( 'The Carousel Slider plugin requires PHP version %s or greater.',
|
187 |
'carousel-slider' ), $this->min_php );
|
188 |
?>
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
<?php
|
193 |
}
|
194 |
|
3 |
* Plugin Name: Carousel Slider
|
4 |
* Plugin URI: http://wordpress.org/plugins/carousel-slider
|
5 |
* Description: <strong>Carousel Slider</strong> allows you to create beautiful, touch enabled, responsive carousels and sliders. It let you create SEO friendly Image carousel from Media Library or from custom URL, Video carousel using Youtube and Vimeo video, Post carousel, Hero banner slider and various types of WooCommerce products carousels.
|
6 |
+
* Version: 1.10.2
|
7 |
* Author: Sayful Islam
|
8 |
* Author URI: https://sayfulislam.com
|
9 |
+
* Requires PHP: 7.0
|
10 |
+
* Requires at least: 5.2
|
11 |
+
* Tested up to: 5.8
|
12 |
*
|
13 |
+
* WC requires at least: 4.0
|
14 |
+
* WC tested up to: 5.5
|
15 |
*
|
16 |
* Text Domain: carousel-slider
|
17 |
*
|
49 |
*
|
50 |
* @var string
|
51 |
*/
|
52 |
+
private $version = '1.10.2';
|
53 |
|
54 |
/**
|
55 |
* Minimum PHP version required
|
56 |
*
|
57 |
* @var string
|
58 |
*/
|
59 |
+
private $min_php = '7.0';
|
60 |
|
61 |
/**
|
62 |
* The instance of the class
|
76 |
if ( is_null( self::$instance ) ) {
|
77 |
self::$instance = new self();
|
78 |
|
79 |
+
// define constants
|
80 |
self::$instance->define_constants();
|
81 |
|
82 |
+
// Register autoloader
|
83 |
+
self::$instance->register_autoloader();
|
84 |
+
|
85 |
// Check if PHP version is supported for our plugin
|
86 |
if ( ! self::$instance->is_supported_php() ) {
|
87 |
register_activation_hook( __FILE__, array( self::$instance, 'auto_deactivate' ) );
|
90 |
return self::$instance;
|
91 |
}
|
92 |
|
93 |
+
// bootstrap main class
|
94 |
+
self::$instance->bootstrap_plugin();
|
95 |
+
|
96 |
self::$instance->includes();
|
97 |
|
98 |
register_activation_hook( __FILE__, array( self::$instance, 'activation' ) );
|
108 |
* Define plugin constants
|
109 |
*/
|
110 |
public function define_constants() {
|
111 |
+
define( 'CAROUSEL_SLIDER', $this->plugin_name );
|
112 |
define( 'CAROUSEL_SLIDER_VERSION', $this->version );
|
113 |
define( 'CAROUSEL_SLIDER_POST_TYPE', $this->post_type );
|
114 |
define( 'CAROUSEL_SLIDER_FILE', __FILE__ );
|
121 |
}
|
122 |
|
123 |
/**
|
124 |
+
* Load plugin classes
|
|
|
|
|
|
|
125 |
*/
|
126 |
+
private function register_autoloader() {
|
127 |
+
if ( file_exists( CAROUSEL_SLIDER_PATH . '/vendor/autoload.php' ) ) {
|
128 |
+
include CAROUSEL_SLIDER_PATH . '/vendor/autoload.php';
|
129 |
+
} else {
|
130 |
+
include_once CAROUSEL_SLIDER_PATH . '/classes/Autoloader.php';
|
131 |
+
|
132 |
+
// instantiate the loader
|
133 |
+
$loader = new CarouselSlider\Autoloader;
|
134 |
+
|
135 |
+
// register the base directories for the namespace prefix
|
136 |
+
$loader->add_namespace( 'CarouselSlider', CAROUSEL_SLIDER_PATH . '/classes' );
|
137 |
+
$loader->add_namespace( 'CarouselSlider\Modules', CAROUSEL_SLIDER_PATH . '/modules' );
|
138 |
+
|
139 |
+
// register the autoloader
|
140 |
+
$loader->register();
|
141 |
}
|
142 |
}
|
143 |
|
144 |
+
/**
|
145 |
+
* Instantiate the required classes
|
146 |
+
*
|
147 |
+
* @return void
|
148 |
+
*/
|
149 |
+
public function bootstrap_plugin() {
|
150 |
+
CarouselSlider\Plugin::init();
|
151 |
+
}
|
152 |
+
|
153 |
/**
|
154 |
* Include admin and front facing files
|
155 |
*/
|
156 |
private function includes() {
|
|
|
157 |
require_once CAROUSEL_SLIDER_INCLUDES . '/functions-carousel-slider.php';
|
158 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-activator.php';
|
159 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-product.php';
|
|
|
|
|
|
|
160 |
|
161 |
if ( $this->is_request( 'admin' ) ) {
|
|
|
|
|
|
|
|
|
|
|
162 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-form.php';
|
163 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-admin.php';
|
164 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-meta-box.php';
|
165 |
require_once CAROUSEL_SLIDER_INCLUDES . '/class-carousel-slider-hero-carousel.php';
|
|
|
166 |
}
|
|
|
|
|
|
|
|
|
167 |
}
|
168 |
|
169 |
/**
|
171 |
* @return void
|
172 |
*/
|
173 |
public function activation() {
|
174 |
+
do_action( 'carousel_slider/activation' );
|
|
|
175 |
}
|
176 |
|
177 |
/**
|
179 |
* @return void
|
180 |
*/
|
181 |
public function deactivation() {
|
182 |
+
do_action( 'carousel_slider/deactivation' );
|
|
|
183 |
}
|
184 |
|
185 |
/**
|
197 |
$error .= sprintf( __( 'The Carousel Slider plugin requires PHP version %s or greater.',
|
198 |
'carousel-slider' ), $this->min_php );
|
199 |
?>
|
200 |
+
<div class="error">
|
201 |
+
<p><?php printf( $error ); ?></p>
|
202 |
+
</div>
|
203 |
<?php
|
204 |
}
|
205 |
|
classes/Admin/Admin.php
ADDED
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider\Admin;
|
4 |
+
|
5 |
+
defined( 'ABSPATH' ) || exit;
|
6 |
+
|
7 |
+
class Admin {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* The instance of the class
|
11 |
+
*
|
12 |
+
* @var self
|
13 |
+
*/
|
14 |
+
protected static $instance;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Ensures only one instance of the class is loaded or can be loaded.
|
18 |
+
*
|
19 |
+
* @return self
|
20 |
+
*/
|
21 |
+
public static function init() {
|
22 |
+
if ( is_null( self::$instance ) ) {
|
23 |
+
self::$instance = new self();
|
24 |
+
|
25 |
+
add_action( 'admin_enqueue_scripts', [ self::$instance, 'admin_scripts' ], 10 );
|
26 |
+
add_action( 'admin_menu', [ self::$instance, 'documentation_menu' ] );
|
27 |
+
add_filter( 'admin_footer_text', [ self::$instance, 'admin_footer_text' ] );
|
28 |
+
}
|
29 |
+
|
30 |
+
return self::$instance;
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Load admin scripts
|
35 |
+
*
|
36 |
+
* @param $hook
|
37 |
+
*/
|
38 |
+
public function admin_scripts( $hook ) {
|
39 |
+
global $post;
|
40 |
+
|
41 |
+
$_is_carousel = is_a( $post, 'WP_Post' ) && ( 'carousels' == $post->post_type );
|
42 |
+
$_is_doc = ( 'carousels_page_carousel-slider-documentation' == $hook );
|
43 |
+
$_is_plugin_page = 'plugins.php' == $hook;
|
44 |
+
|
45 |
+
if ( ! ( $_is_carousel || $_is_doc || $_is_plugin_page ) ) {
|
46 |
+
return;
|
47 |
+
}
|
48 |
+
|
49 |
+
wp_enqueue_media();
|
50 |
+
wp_enqueue_style( 'carousel-slider-admin' );
|
51 |
+
wp_enqueue_script( 'carousel-slider-admin' );
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Add documentation menu
|
56 |
+
*/
|
57 |
+
public function documentation_menu() {
|
58 |
+
add_submenu_page(
|
59 |
+
'edit.php?post_type=carousels',
|
60 |
+
__( 'Documentation', 'carousel-slider' ),
|
61 |
+
__( 'Documentation', 'carousel-slider' ),
|
62 |
+
'manage_options',
|
63 |
+
'carousel-slider-documentation',
|
64 |
+
[ $this, 'documentation_page_callback' ]
|
65 |
+
);
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Documentation page callback
|
70 |
+
*/
|
71 |
+
public function documentation_page_callback() {
|
72 |
+
include_once CAROUSEL_SLIDER_TEMPLATES . '/admin/documentation.php';
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Add custom footer text on plugins page.
|
77 |
+
*
|
78 |
+
* @param string $text
|
79 |
+
*
|
80 |
+
* @return string
|
81 |
+
*/
|
82 |
+
public function admin_footer_text( $text ) {
|
83 |
+
global $post_type, $hook_suffix;
|
84 |
+
|
85 |
+
$footer_text = sprintf(
|
86 |
+
__( 'If you like %1$s Carousel Slider %2$s please leave us a %3$s rating. A huge thanks in advance!', 'carousel-slider' ),
|
87 |
+
'<strong>',
|
88 |
+
'</strong>',
|
89 |
+
'<a href="https://wordpress.org/support/view/plugin-reviews/carousel-slider?filter=5#postform" target="_blank" data-rated="Thanks :)">★★★★★</a>'
|
90 |
+
);
|
91 |
+
|
92 |
+
if ( $post_type == 'carousels' || $hook_suffix == 'carousels_page_carousel-slider-documentation' ) {
|
93 |
+
return $footer_text;
|
94 |
+
}
|
95 |
+
|
96 |
+
return $text;
|
97 |
+
}
|
98 |
+
}
|
classes/Admin/GutenbergBlock.php
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider\Admin;
|
4 |
+
|
5 |
+
use WP_Post;
|
6 |
+
|
7 |
+
defined( 'ABSPATH' ) || exit;
|
8 |
+
|
9 |
+
class GutenbergBlock {
|
10 |
+
/**
|
11 |
+
* The instance of the class
|
12 |
+
*
|
13 |
+
* @var self
|
14 |
+
*/
|
15 |
+
protected static $instance;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Ensures only one instance of this class is loaded or can be loaded.
|
19 |
+
*
|
20 |
+
* @return self
|
21 |
+
*/
|
22 |
+
public static function init() {
|
23 |
+
if ( is_null( self::$instance ) ) {
|
24 |
+
self::$instance = new self();
|
25 |
+
|
26 |
+
add_action( 'init', array( self::$instance, 'gutenberg_block' ) );
|
27 |
+
}
|
28 |
+
|
29 |
+
return self::$instance;
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Register gutenberg block
|
34 |
+
*/
|
35 |
+
public function gutenberg_block() {
|
36 |
+
if ( ! function_exists( 'register_block_type' ) ) {
|
37 |
+
return;
|
38 |
+
}
|
39 |
+
wp_register_script( 'carousel-slider-gutenberg-block',
|
40 |
+
CAROUSEL_SLIDER_ASSETS . '/js/gutenberg-block.js',
|
41 |
+
[ 'underscore', 'wp-blocks', 'wp-element', 'wp-components', 'wp-editor', 'wp-i18n' ]
|
42 |
+
);
|
43 |
+
wp_register_style( 'carousel-slider-gutenberg-style',
|
44 |
+
CAROUSEL_SLIDER_ASSETS . '/css/gutenberg-block.css',
|
45 |
+
[ 'wp-edit-blocks' ]
|
46 |
+
);
|
47 |
+
wp_localize_script( 'carousel-slider-gutenberg-block',
|
48 |
+
'carousel_slider_gutenberg_block', $this->block_localize_data()
|
49 |
+
);
|
50 |
+
|
51 |
+
register_block_type( 'carousel-slider/slider', [
|
52 |
+
'editor_script' => 'carousel-slider-gutenberg-block',
|
53 |
+
'editor_style' => 'carousel-slider-gutenberg-style',
|
54 |
+
] );
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Get localize data
|
59 |
+
*
|
60 |
+
* @return array
|
61 |
+
*/
|
62 |
+
private function block_localize_data(): array {
|
63 |
+
$_sliders = get_posts( [
|
64 |
+
'posts_per_page' => - 1,
|
65 |
+
'orderby' => 'date',
|
66 |
+
'order' => 'DESC',
|
67 |
+
'post_type' => 'carousels',
|
68 |
+
'post_status' => 'publish',
|
69 |
+
] );
|
70 |
+
$sliders = [];
|
71 |
+
foreach ( $_sliders as $form ) {
|
72 |
+
if ( ! $form instanceof WP_Post ) {
|
73 |
+
continue;
|
74 |
+
}
|
75 |
+
$sliders[] = array(
|
76 |
+
'value' => absint( $form->ID ),
|
77 |
+
'label' => esc_attr( $form->post_title ),
|
78 |
+
);
|
79 |
+
}
|
80 |
+
|
81 |
+
return array(
|
82 |
+
'sliders' => $sliders,
|
83 |
+
'site_url' => site_url(),
|
84 |
+
'block_logo' => CAROUSEL_SLIDER_ASSETS . '/static-images/logo.svg',
|
85 |
+
'block_title' => __( 'Carousel Slider', 'carousel-slider' ),
|
86 |
+
'select_slider' => __( 'Select a Slider', 'carousel-slider' ),
|
87 |
+
'selected_slider' => __( 'Current Selected Slider', 'carousel-slider' ),
|
88 |
+
'filter_slider' => __( 'Type to filter sliders', 'carousel-slider' ),
|
89 |
+
);
|
90 |
+
}
|
91 |
+
}
|
classes/Admin/Setting.php
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider\Admin;
|
4 |
+
|
5 |
+
use CarouselSlider\Supports\SettingAPI;
|
6 |
+
use Exception;
|
7 |
+
|
8 |
+
defined( 'ABSPATH' ) || exit;
|
9 |
+
|
10 |
+
class Setting {
|
11 |
+
/**
|
12 |
+
* Instance of current class
|
13 |
+
*
|
14 |
+
* @var self
|
15 |
+
*/
|
16 |
+
private static $instance;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @return self
|
20 |
+
*/
|
21 |
+
public static function init() {
|
22 |
+
if ( is_null( self::$instance ) ) {
|
23 |
+
self::$instance = new self();
|
24 |
+
|
25 |
+
add_action( 'init', array( self::$instance, 'settings' ) );
|
26 |
+
}
|
27 |
+
|
28 |
+
return self::$instance;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Plugin setting fields
|
33 |
+
*
|
34 |
+
* @throws Exception
|
35 |
+
*/
|
36 |
+
public function settings() {
|
37 |
+
$settings = new SettingAPI;
|
38 |
+
$settings->add_menu( array(
|
39 |
+
'page_title' => __( 'Carousel Slider Settings', 'carousel-slider' ),
|
40 |
+
'menu_title' => __( 'Settings', 'carousel-slider' ),
|
41 |
+
'about_text' => __( 'Thank you for choosing Carousel Slider. We hope you enjoy it!', 'carousel-slider' ),
|
42 |
+
'menu_slug' => 'settings',
|
43 |
+
'parent_slug' => 'edit.php?post_type=carousels',
|
44 |
+
'option_name' => 'carousel_slider_settings',
|
45 |
+
) );
|
46 |
+
|
47 |
+
// Add settings page tab
|
48 |
+
$settings->add_tab( array(
|
49 |
+
'id' => 'general',
|
50 |
+
'title' => __( 'General', 'carousel-slider' ),
|
51 |
+
) );
|
52 |
+
|
53 |
+
$settings->add_field( array(
|
54 |
+
'id' => 'load_scripts',
|
55 |
+
'type' => 'radio',
|
56 |
+
'std' => 'optimized',
|
57 |
+
'name' => __( 'Style & Scrips', 'carousel-slider' ),
|
58 |
+
'desc' => __( 'If you choose Optimized, then scrips and styles will be loaded only on page where you are using shortcode. If Optimized is not working for you then choose Always.', 'carousel-slider' ),
|
59 |
+
'options' => array(
|
60 |
+
'always' => __( 'Always', 'carousel-slider' ),
|
61 |
+
'optimized' => __( 'Optimized (recommended)', 'carousel-slider' ),
|
62 |
+
),
|
63 |
+
'tab' => 'general',
|
64 |
+
) );
|
65 |
+
}
|
66 |
+
}
|
classes/Ajax.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider;
|
4 |
+
|
5 |
+
defined( 'ABSPATH' ) || exit;
|
6 |
+
|
7 |
+
class Ajax {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* The instance of the class
|
11 |
+
*
|
12 |
+
* @var self
|
13 |
+
*/
|
14 |
+
protected static $instance;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Ensures only one instance of the class is loaded or can be loaded.
|
18 |
+
*
|
19 |
+
* @return self
|
20 |
+
*/
|
21 |
+
public static function init() {
|
22 |
+
if ( is_null( self::$instance ) ) {
|
23 |
+
self::$instance = new self();
|
24 |
+
|
25 |
+
add_action( 'wp_ajax_carousel_slider_test', [ self::$instance, 'test' ] );
|
26 |
+
}
|
27 |
+
|
28 |
+
return self::$instance;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* A AJAX method just to test some data
|
33 |
+
*/
|
34 |
+
public function test() {
|
35 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
36 |
+
wp_die( 'Sorry. This link only for developer to do some testing.' );
|
37 |
+
}
|
38 |
+
|
39 |
+
var_dump( 'Testing some data on AJAX' );
|
40 |
+
die();
|
41 |
+
}
|
42 |
+
}
|
classes/Assets.php
ADDED
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider;
|
4 |
+
|
5 |
+
defined( 'ABSPATH' ) || exit;
|
6 |
+
|
7 |
+
class Assets {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* The instance of the class
|
11 |
+
*
|
12 |
+
* @var self
|
13 |
+
*/
|
14 |
+
private static $instance;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Plugin name slug
|
18 |
+
*
|
19 |
+
* @var string
|
20 |
+
*/
|
21 |
+
private $plugin_name;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* plugin version
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
private $version;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Ensures only one instance of the class is loaded or can be loaded.
|
32 |
+
*
|
33 |
+
* @return self
|
34 |
+
*/
|
35 |
+
public static function init() {
|
36 |
+
if ( is_null( self::$instance ) ) {
|
37 |
+
self::$instance = new self();
|
38 |
+
|
39 |
+
add_action( 'wp_loaded', [ self::$instance, 'register' ] );
|
40 |
+
}
|
41 |
+
|
42 |
+
return self::$instance;
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Check if script debugging is enabled
|
47 |
+
*
|
48 |
+
* @return bool
|
49 |
+
*/
|
50 |
+
private function is_script_debug_enabled(): bool {
|
51 |
+
return defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG;
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Checks to see if the site has SSL enabled or not.
|
56 |
+
*
|
57 |
+
* @return bool
|
58 |
+
*/
|
59 |
+
public static function is_ssl(): bool {
|
60 |
+
if ( is_ssl() ) {
|
61 |
+
return true;
|
62 |
+
} elseif ( 0 === stripos( get_option( 'siteurl' ), 'https://' ) ) {
|
63 |
+
return true;
|
64 |
+
} elseif ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
|
65 |
+
return true;
|
66 |
+
}
|
67 |
+
|
68 |
+
return false;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Get assets URL
|
73 |
+
*
|
74 |
+
* @param string $path
|
75 |
+
*
|
76 |
+
* @return string
|
77 |
+
*/
|
78 |
+
public static function get_assets_url( $path = '' ): string {
|
79 |
+
$url = CAROUSEL_SLIDER_ASSETS;
|
80 |
+
|
81 |
+
if ( static::is_ssl() && 0 === stripos( $url, 'http://' ) ) {
|
82 |
+
$url = str_replace( 'http://', 'https://', $url );
|
83 |
+
}
|
84 |
+
|
85 |
+
if ( ! empty( $path ) ) {
|
86 |
+
return rtrim( $url, '/' ) . '/' . ltrim( $path, '/' );
|
87 |
+
}
|
88 |
+
|
89 |
+
return $url;
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Register our app scripts and styles
|
94 |
+
*
|
95 |
+
* @return void
|
96 |
+
*/
|
97 |
+
public function register() {
|
98 |
+
$this->plugin_name = CAROUSEL_SLIDER;
|
99 |
+
$this->version = CAROUSEL_SLIDER_VERSION;
|
100 |
+
|
101 |
+
if ( $this->is_script_debug_enabled() ) {
|
102 |
+
$this->version = $this->version . '-' . time();
|
103 |
+
}
|
104 |
+
|
105 |
+
$this->register_scripts( $this->get_scripts() );
|
106 |
+
$this->register_styles( $this->get_styles() );
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Register scripts
|
111 |
+
*
|
112 |
+
* @param array $scripts
|
113 |
+
*
|
114 |
+
* @return void
|
115 |
+
*/
|
116 |
+
private function register_scripts( array $scripts ) {
|
117 |
+
foreach ( $scripts as $handle => $script ) {
|
118 |
+
$deps = isset( $script['deps'] ) ? $script['deps'] : false;
|
119 |
+
$in_footer = isset( $script['in_footer'] ) ? $script['in_footer'] : true;
|
120 |
+
$version = isset( $script['version'] ) ? $script['version'] : $this->version;
|
121 |
+
wp_register_script( $handle, $script['src'], $deps, $version, $in_footer );
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Register styles
|
127 |
+
*
|
128 |
+
* @param array $styles
|
129 |
+
*
|
130 |
+
* @return void
|
131 |
+
*/
|
132 |
+
public function register_styles( array $styles ) {
|
133 |
+
foreach ( $styles as $handle => $style ) {
|
134 |
+
$deps = isset( $style['deps'] ) ? $style['deps'] : false;
|
135 |
+
wp_register_style( $handle, $style['src'], $deps, $this->version );
|
136 |
+
}
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Get all registered scripts
|
141 |
+
*
|
142 |
+
* @return array
|
143 |
+
*/
|
144 |
+
public function get_scripts(): array {
|
145 |
+
return [
|
146 |
+
'select2' => [
|
147 |
+
'src' => static::get_assets_url( 'lib/select2/select2.min.js' ),
|
148 |
+
'deps' => [ 'jquery' ],
|
149 |
+
'version' => '4.0.5',
|
150 |
+
],
|
151 |
+
'wp-color-picker-alpha' => [
|
152 |
+
'src' => static::get_assets_url( 'lib/wp-color-picker-alpha/wp-color-picker-alpha.min.js' ),
|
153 |
+
'deps' => [ 'jquery', 'wp-color-picker' ],
|
154 |
+
'version' => '2.1.3',
|
155 |
+
],
|
156 |
+
"carousel-slider-admin" => [
|
157 |
+
'src' => static::get_assets_url( 'js/admin.js' ),
|
158 |
+
'deps' => [
|
159 |
+
'jquery',
|
160 |
+
'select2',
|
161 |
+
'wp-color-picker-alpha',
|
162 |
+
'jquery-ui-accordion',
|
163 |
+
'jquery-ui-datepicker',
|
164 |
+
'jquery-ui-sortable',
|
165 |
+
'jquery-ui-tabs',
|
166 |
+
],
|
167 |
+
],
|
168 |
+
'owl-carousel' => [
|
169 |
+
'src' => static::get_assets_url( 'lib/owl-carousel/owl.carousel.min.js' ),
|
170 |
+
'deps' => [ 'jquery' ],
|
171 |
+
'version' => '2.3.4',
|
172 |
+
],
|
173 |
+
'magnific-popup' => [
|
174 |
+
'src' => static::get_assets_url( 'lib/magnific-popup/jquery.magnific-popup.min.js' ),
|
175 |
+
'deps' => [ 'jquery' ],
|
176 |
+
'version' => '1.1.0',
|
177 |
+
],
|
178 |
+
"carousel-slider-frontend" => [
|
179 |
+
'src' => static::get_assets_url( 'js/frontend.js' ),
|
180 |
+
'deps' => [ 'jquery', 'owl-carousel', 'magnific-popup' ],
|
181 |
+
],
|
182 |
+
];
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* Get registered styles
|
187 |
+
*
|
188 |
+
* @return array
|
189 |
+
*/
|
190 |
+
public function get_styles(): array {
|
191 |
+
return [
|
192 |
+
"carousel-slider-frontend" => [
|
193 |
+
'src' => static::get_assets_url( 'css/frontend.css' )
|
194 |
+
],
|
195 |
+
"carousel-slider-admin" => [
|
196 |
+
'src' => static::get_assets_url( 'css/admin.css' ),
|
197 |
+
'deps' => [ 'wp-color-picker' ],
|
198 |
+
],
|
199 |
+
];
|
200 |
+
}
|
201 |
+
}
|
classes/Autoloader.php
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider;
|
4 |
+
|
5 |
+
defined( 'ABSPATH' ) || exit;
|
6 |
+
|
7 |
+
class Autoloader {
|
8 |
+
/**
|
9 |
+
* An associative array where the key is a namespace prefix and the value
|
10 |
+
* is an array of base directories for classes in that namespace.
|
11 |
+
*
|
12 |
+
* @var array
|
13 |
+
*/
|
14 |
+
protected $prefixes = [];
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Register loader with SPL autoloader stack.
|
18 |
+
*
|
19 |
+
* @return void
|
20 |
+
*/
|
21 |
+
public function register() {
|
22 |
+
spl_autoload_register( [ $this, 'load_class' ] );
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Adds a base directory for a namespace prefix.
|
27 |
+
*
|
28 |
+
* @param string $prefix The namespace prefix.
|
29 |
+
* @param string $base_dir A base directory for class files in the
|
30 |
+
* namespace.
|
31 |
+
* @param bool $prepend If true, prepend the base directory to the stack
|
32 |
+
* instead of appending it; this causes it to be searched first rather
|
33 |
+
* than last.
|
34 |
+
*
|
35 |
+
* @return void
|
36 |
+
*/
|
37 |
+
public function add_namespace( $prefix, $base_dir, $prepend = false ) {
|
38 |
+
// normalize namespace prefix
|
39 |
+
$prefix = trim( $prefix, '\\' ) . '\\';
|
40 |
+
|
41 |
+
// normalize the base directory with a trailing separator
|
42 |
+
$base_dir = rtrim( $base_dir, DIRECTORY_SEPARATOR ) . '/';
|
43 |
+
|
44 |
+
// initialize the namespace prefix array
|
45 |
+
if ( isset( $this->prefixes[ $prefix ] ) === false ) {
|
46 |
+
$this->prefixes[ $prefix ] = array();
|
47 |
+
}
|
48 |
+
|
49 |
+
// retain the base directory for the namespace prefix
|
50 |
+
if ( $prepend ) {
|
51 |
+
array_unshift( $this->prefixes[ $prefix ], $base_dir );
|
52 |
+
} else {
|
53 |
+
array_push( $this->prefixes[ $prefix ], $base_dir );
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Loads the class file for a given class name.
|
59 |
+
*
|
60 |
+
* @param string $class The fully-qualified class name.
|
61 |
+
*
|
62 |
+
* @return mixed The mapped file name on success, or boolean false on
|
63 |
+
* failure.
|
64 |
+
*/
|
65 |
+
public function load_class( $class ) {
|
66 |
+
// the current namespace prefix
|
67 |
+
$prefix = $class;
|
68 |
+
|
69 |
+
// work backwards through the namespace names of the fully-qualified
|
70 |
+
// class name to find a mapped file name
|
71 |
+
while ( false !== $pos = strrpos( $prefix, '\\' ) ) {
|
72 |
+
|
73 |
+
// retain the trailing namespace separator in the prefix
|
74 |
+
$prefix = substr( $class, 0, $pos + 1 );
|
75 |
+
|
76 |
+
// the rest is the relative class name
|
77 |
+
$relative_class = substr( $class, $pos + 1 );
|
78 |
+
|
79 |
+
// try to load a mapped file for the prefix and relative class
|
80 |
+
$mapped_file = $this->load_mapped_file( $prefix, $relative_class );
|
81 |
+
if ( $mapped_file ) {
|
82 |
+
return $mapped_file;
|
83 |
+
}
|
84 |
+
|
85 |
+
// remove the trailing namespace separator for the next iteration
|
86 |
+
// of strrpos()
|
87 |
+
$prefix = rtrim( $prefix, '\\' );
|
88 |
+
}
|
89 |
+
|
90 |
+
// never found a mapped file
|
91 |
+
return false;
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Load the mapped file for a namespace prefix and relative class.
|
96 |
+
*
|
97 |
+
* @param string $prefix The namespace prefix.
|
98 |
+
* @param string $relative_class The relative class name.
|
99 |
+
*
|
100 |
+
* @return mixed Boolean false if no mapped file can be loaded, or the
|
101 |
+
* name of the mapped file that was loaded.
|
102 |
+
*/
|
103 |
+
protected function load_mapped_file( $prefix, $relative_class ) {
|
104 |
+
// are there any base directories for this namespace prefix?
|
105 |
+
if ( isset( $this->prefixes[ $prefix ] ) === false ) {
|
106 |
+
return false;
|
107 |
+
}
|
108 |
+
|
109 |
+
// look through base directories for this namespace prefix
|
110 |
+
foreach ( $this->prefixes[ $prefix ] as $base_dir ) {
|
111 |
+
|
112 |
+
// replace the namespace prefix with the base directory,
|
113 |
+
// replace namespace separators with directory separators
|
114 |
+
// in the relative class name, append with .php
|
115 |
+
$file = $base_dir
|
116 |
+
. str_replace( '\\', '/', $relative_class )
|
117 |
+
. '.php';
|
118 |
+
|
119 |
+
// if the mapped file exists, require it
|
120 |
+
if ( $this->require_file( $file ) ) {
|
121 |
+
// yes, we're done
|
122 |
+
return $file;
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
// never found it
|
127 |
+
return false;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* If a file exists, require it from the file system.
|
132 |
+
*
|
133 |
+
* @param string $file The file to require.
|
134 |
+
*
|
135 |
+
* @return bool True if the file exists, false if not.
|
136 |
+
*/
|
137 |
+
protected function require_file( $file ) {
|
138 |
+
if ( file_exists( $file ) ) {
|
139 |
+
require $file;
|
140 |
+
|
141 |
+
return true;
|
142 |
+
}
|
143 |
+
|
144 |
+
return false;
|
145 |
+
}
|
146 |
+
}
|
classes/Frontend/Frontend.php
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider\Frontend;
|
4 |
+
|
5 |
+
defined( 'ABSPATH' ) || exit;
|
6 |
+
|
7 |
+
class Frontend {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* The instance of the class
|
11 |
+
*
|
12 |
+
* @var self
|
13 |
+
*/
|
14 |
+
protected static $instance;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Ensures only one instance of the class is loaded or can be loaded.
|
18 |
+
*
|
19 |
+
* @return self
|
20 |
+
*/
|
21 |
+
public static function init() {
|
22 |
+
if ( is_null( self::$instance ) ) {
|
23 |
+
self::$instance = new self();
|
24 |
+
|
25 |
+
add_action( 'wp_enqueue_scripts', [ self::$instance, 'frontend_scripts' ], 15 );
|
26 |
+
}
|
27 |
+
|
28 |
+
return self::$instance;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Load frontend scripts
|
33 |
+
*/
|
34 |
+
public function frontend_scripts() {
|
35 |
+
if ( ! $this->should_load_scripts() ) {
|
36 |
+
return;
|
37 |
+
}
|
38 |
+
|
39 |
+
wp_enqueue_style( 'carousel-slider-frontend' );
|
40 |
+
wp_enqueue_script( 'carousel-slider-frontend' );
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Check if it should load frontend scripts
|
45 |
+
*
|
46 |
+
* @return bool
|
47 |
+
*/
|
48 |
+
private function should_load_scripts(): bool {
|
49 |
+
$settings = get_option( 'carousel_slider_settings' );
|
50 |
+
$settings = is_array( $settings ) ? $settings : [];
|
51 |
+
if ( isset( $settings['load_scripts'] ) && 'always' == $settings['load_scripts'] ) {
|
52 |
+
return true;
|
53 |
+
}
|
54 |
+
|
55 |
+
global $post;
|
56 |
+
$load_scripts = is_active_widget( false, false, 'widget_carousel_slider', true ) ||
|
57 |
+
( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'carousel_slide' ) ) ||
|
58 |
+
( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'carousel' ) );
|
59 |
+
|
60 |
+
return apply_filters( 'carousel_slider_load_scripts', $load_scripts );
|
61 |
+
}
|
62 |
+
}
|
classes/Frontend/Preview.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider\Frontend;
|
4 |
+
|
5 |
+
class Preview {
|
6 |
+
/**
|
7 |
+
* The instance of the class
|
8 |
+
*
|
9 |
+
* @var self
|
10 |
+
*/
|
11 |
+
protected static $instance;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Ensures only one instance of this class is loaded or can be loaded.
|
15 |
+
*
|
16 |
+
* @return self
|
17 |
+
*/
|
18 |
+
public static function init() {
|
19 |
+
if ( is_null( self::$instance ) ) {
|
20 |
+
self::$instance = new self();
|
21 |
+
|
22 |
+
add_filter( 'template_include', array( self::$instance, 'template_include' ) );
|
23 |
+
}
|
24 |
+
|
25 |
+
return self::$instance;
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Include custom template
|
30 |
+
*
|
31 |
+
* @param $template
|
32 |
+
*
|
33 |
+
* @return mixed|string
|
34 |
+
*/
|
35 |
+
public function template_include( $template ) {
|
36 |
+
if ( isset( $_GET['carousel_slider_preview'], $_GET['carousel_slider_iframe'], $_GET['slider_id'] ) ) {
|
37 |
+
if ( current_user_can( 'edit_pages' ) ) {
|
38 |
+
$template = CAROUSEL_SLIDER_TEMPLATES . '/public/preview-slider.php';
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
return $template;
|
43 |
+
}
|
44 |
+
}
|
classes/Frontend/Shortcode.php
ADDED
@@ -0,0 +1,376 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider\Frontend;
|
4 |
+
|
5 |
+
defined( 'ABSPATH' ) || exit;
|
6 |
+
|
7 |
+
class Shortcode {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* The instance of the class
|
11 |
+
*
|
12 |
+
* @var self
|
13 |
+
*/
|
14 |
+
protected static $instance = null;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Ensures only one instance of this class is loaded or can be loaded.
|
18 |
+
*
|
19 |
+
* @return self
|
20 |
+
*/
|
21 |
+
public static function init() {
|
22 |
+
if ( is_null( self::$instance ) ) {
|
23 |
+
self::$instance = new self();
|
24 |
+
|
25 |
+
add_shortcode( 'carousel_slide', [ self::$instance, 'carousel_slide' ] );
|
26 |
+
}
|
27 |
+
|
28 |
+
return self::$instance;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* A shortcode for rendering the carousel slide.
|
33 |
+
*
|
34 |
+
* @param array $attributes Shortcode attributes.
|
35 |
+
*
|
36 |
+
* @return string The shortcode output
|
37 |
+
*/
|
38 |
+
public function carousel_slide( $attributes ) {
|
39 |
+
if ( empty( $attributes['id'] ) ) {
|
40 |
+
return '';
|
41 |
+
}
|
42 |
+
|
43 |
+
$id = intval( $attributes['id'] );
|
44 |
+
|
45 |
+
$slide_type = get_post_meta( $id, '_slide_type', true );
|
46 |
+
$slide_type = in_array( $slide_type, carousel_slider_slide_type() ) ? $slide_type : 'image-carousel';
|
47 |
+
|
48 |
+
if ( $slide_type == 'post-carousel' ) {
|
49 |
+
ob_start();
|
50 |
+
require CAROUSEL_SLIDER_TEMPLATES . '/public/post-carousel.php';
|
51 |
+
$html = ob_get_contents();
|
52 |
+
ob_end_clean();
|
53 |
+
|
54 |
+
return apply_filters( 'carousel_slider_posts_carousel', $html, $id );
|
55 |
+
}
|
56 |
+
|
57 |
+
if ( $slide_type == 'video-carousel' ) {
|
58 |
+
wp_enqueue_script( 'magnific-popup' );
|
59 |
+
$_video_urls = array_filter( explode( ',', $this->get_meta( $id, '_video_url' ) ) );
|
60 |
+
$urls = $this->get_video_url( $_video_urls );
|
61 |
+
|
62 |
+
ob_start();
|
63 |
+
require CAROUSEL_SLIDER_TEMPLATES . '/public/video-carousel.php';
|
64 |
+
$html = ob_get_contents();
|
65 |
+
ob_end_clean();
|
66 |
+
|
67 |
+
return apply_filters( 'carousel_slider_videos_carousel', $html, $id );
|
68 |
+
}
|
69 |
+
|
70 |
+
if ( $slide_type == 'image-carousel-url' ) {
|
71 |
+
ob_start();
|
72 |
+
require CAROUSEL_SLIDER_TEMPLATES . '/public/images-carousel-url.php';
|
73 |
+
$html = ob_get_contents();
|
74 |
+
ob_end_clean();
|
75 |
+
|
76 |
+
return apply_filters( 'carousel_slider_link_images_carousel', $html, $id );
|
77 |
+
}
|
78 |
+
|
79 |
+
if ( $slide_type == 'image-carousel' ) {
|
80 |
+
ob_start();
|
81 |
+
require CAROUSEL_SLIDER_TEMPLATES . '/public/images-carousel.php';
|
82 |
+
$html = ob_get_contents();
|
83 |
+
ob_end_clean();
|
84 |
+
|
85 |
+
return apply_filters( 'carousel_slider_gallery_images_carousel', $html, $id );
|
86 |
+
}
|
87 |
+
|
88 |
+
if ( $slide_type == 'product-carousel' ) {
|
89 |
+
|
90 |
+
$query_type = get_post_meta( $id, '_product_query_type', true );
|
91 |
+
$query_type = empty( $query_type ) ? 'query_product' : $query_type;
|
92 |
+
// Type mistake
|
93 |
+
$query_type = ( 'query_porduct' == $query_type ) ? 'query_product' : $query_type;
|
94 |
+
$product_query = get_post_meta( $id, '_product_query', true );
|
95 |
+
|
96 |
+
if ( $query_type == 'query_product' && $product_query == 'product_categories_list' ) {
|
97 |
+
ob_start();
|
98 |
+
|
99 |
+
echo $this->product_categories( $id );
|
100 |
+
$html = ob_get_contents();
|
101 |
+
ob_end_clean();
|
102 |
+
|
103 |
+
return apply_filters( 'carousel_slider_product_carousel', $html, $id );
|
104 |
+
}
|
105 |
+
|
106 |
+
ob_start();
|
107 |
+
require CAROUSEL_SLIDER_TEMPLATES . '/public/product-carousel.php';
|
108 |
+
$html = ob_get_contents();
|
109 |
+
ob_end_clean();
|
110 |
+
|
111 |
+
return apply_filters( 'carousel_slider_product_carousel', $html, $id );
|
112 |
+
}
|
113 |
+
|
114 |
+
if ( $slide_type == 'hero-banner-slider' ) {
|
115 |
+
|
116 |
+
ob_start();
|
117 |
+
require CAROUSEL_SLIDER_TEMPLATES . '/public/hero-banner-slider.php';
|
118 |
+
$html = ob_get_contents();
|
119 |
+
ob_end_clean();
|
120 |
+
|
121 |
+
return apply_filters( 'Carousel_Slider_Hero_Carousel', $html, $id );
|
122 |
+
}
|
123 |
+
|
124 |
+
return '';
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Generate carousel options for slider
|
129 |
+
*
|
130 |
+
* @param $id
|
131 |
+
*
|
132 |
+
* @return array
|
133 |
+
*/
|
134 |
+
private function carousel_options( $id ) {
|
135 |
+
$_nav_button = get_post_meta( $id, '_nav_button', true );
|
136 |
+
$_arrow_position = get_post_meta( $id, '_arrow_position', true );
|
137 |
+
$_dot_nav = get_post_meta( $id, '_dot_nav', true );
|
138 |
+
$_bullet_position = get_post_meta( $id, '_bullet_position', true );
|
139 |
+
$_bullet_shape = get_post_meta( $id, '_bullet_shape', true );
|
140 |
+
|
141 |
+
$class = 'owl-carousel carousel-slider';
|
142 |
+
|
143 |
+
// Arrows position
|
144 |
+
if ( $_arrow_position == 'inside' ) {
|
145 |
+
$class .= ' arrows-inside';
|
146 |
+
} else {
|
147 |
+
$class .= ' arrows-outside';
|
148 |
+
}
|
149 |
+
|
150 |
+
// Arrows visibility
|
151 |
+
if ( $_nav_button == 'always' ) {
|
152 |
+
$class .= ' arrows-visible-always';
|
153 |
+
} elseif ( $_nav_button == 'off' ) {
|
154 |
+
$class .= ' arrows-hidden';
|
155 |
+
} else {
|
156 |
+
$class .= ' arrows-visible-hover';
|
157 |
+
}
|
158 |
+
|
159 |
+
// Dots visibility
|
160 |
+
if ( $_dot_nav == 'on' ) {
|
161 |
+
$class .= ' dots-visible-always';
|
162 |
+
} elseif ( $_dot_nav == 'off' ) {
|
163 |
+
$class .= ' dots-hidden';
|
164 |
+
} else {
|
165 |
+
$class .= ' dots-visible-hover';
|
166 |
+
}
|
167 |
+
|
168 |
+
// Dots position
|
169 |
+
if ( $_bullet_position == 'left' ) {
|
170 |
+
$class .= ' dots-left';
|
171 |
+
} elseif ( $_bullet_position == 'right' ) {
|
172 |
+
$class .= ' dots-right';
|
173 |
+
} else {
|
174 |
+
$class .= ' dots-center';
|
175 |
+
}
|
176 |
+
|
177 |
+
// Dots shape
|
178 |
+
if ( $_bullet_shape == 'circle' ) {
|
179 |
+
$class .= ' dots-circle';
|
180 |
+
} else {
|
181 |
+
$class .= ' dots-square';
|
182 |
+
}
|
183 |
+
|
184 |
+
$_dot_nav = ( get_post_meta( $id, '_dot_nav', true ) != 'off' );
|
185 |
+
$_nav_button = ( get_post_meta( $id, '_nav_button', true ) != 'off' );
|
186 |
+
|
187 |
+
$options_array = array(
|
188 |
+
'id' => 'id-' . $id,
|
189 |
+
'class' => $class,
|
190 |
+
// General
|
191 |
+
'data-slide-type' => $this->get_meta( $id, '_slide_type', 'image-carousel' ),
|
192 |
+
'data-margin' => $this->get_meta( $id, '_margin_right', '10' ),
|
193 |
+
'data-slide-by' => $this->get_meta( $id, '_slide_by', '1' ),
|
194 |
+
'data-loop' => $this->get_meta( $id, '_inifnity_loop', 'true' ),
|
195 |
+
'data-lazy-load' => $this->get_meta( $id, '_lazy_load_image', 'false' ),
|
196 |
+
'data-stage-padding' => $this->get_meta( $id, '_stage_padding', '0' ),
|
197 |
+
'data-auto-width' => $this->get_meta( $id, '_auto_width', 'false' ),
|
198 |
+
// Navigation
|
199 |
+
'data-dots' => $_dot_nav,
|
200 |
+
'data-nav' => $_nav_button,
|
201 |
+
// Autoplay
|
202 |
+
'data-autoplay' => $this->get_meta( $id, '_autoplay', 'true' ),
|
203 |
+
'data-autoplay-timeout' => $this->get_meta( $id, '_autoplay_timeout', '5000' ),
|
204 |
+
'data-autoplay-speed' => $this->get_meta( $id, '_autoplay_speed', '500' ),
|
205 |
+
'data-autoplay-hover-pause' => $this->get_meta( $id, '_autoplay_pause', 'false' ),
|
206 |
+
// Responsive
|
207 |
+
'data-colums' => $this->get_meta( $id, '_items', '4' ),
|
208 |
+
'data-colums-desktop' => $this->get_meta( $id, '_items_desktop', '4' ),
|
209 |
+
'data-colums-small-desktop' => $this->get_meta( $id, '_items_small_desktop', '4' ),
|
210 |
+
'data-colums-tablet' => $this->get_meta( $id, '_items_portrait_tablet', '3' ),
|
211 |
+
'data-colums-small-tablet' => $this->get_meta( $id, '_items_small_portrait_tablet', '2' ),
|
212 |
+
'data-colums-mobile' => $this->get_meta( $id, '_items_portrait_mobile', '1' ),
|
213 |
+
);
|
214 |
+
|
215 |
+
return $this->array_to_data( $options_array );
|
216 |
+
}
|
217 |
+
|
218 |
+
/**
|
219 |
+
* Get post meta by id and key
|
220 |
+
*
|
221 |
+
* @param $id
|
222 |
+
* @param $key
|
223 |
+
* @param null $default
|
224 |
+
*
|
225 |
+
* @return string
|
226 |
+
*/
|
227 |
+
public function get_meta( $id, $key, $default = null ) {
|
228 |
+
return carousel_slider_get_meta( $id, $key, $default );
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* Convert array to html data attribute
|
233 |
+
*
|
234 |
+
* @param $array
|
235 |
+
*
|
236 |
+
* @return array
|
237 |
+
*/
|
238 |
+
public function array_to_data( $array ) {
|
239 |
+
return carousel_slider_array_to_attribute( $array );
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* Get product categories list carousel
|
244 |
+
*
|
245 |
+
* @param int $id
|
246 |
+
*
|
247 |
+
* @return string
|
248 |
+
*/
|
249 |
+
private function product_categories( $id = 0 ) {
|
250 |
+
$product_categories = get_terms( array(
|
251 |
+
'taxonomy' => 'product_cat',
|
252 |
+
'hide_empty' => 1,
|
253 |
+
'orderby' => 'name',
|
254 |
+
'order' => 'ASC',
|
255 |
+
) );
|
256 |
+
|
257 |
+
$options = $this->carousel_options( $id );
|
258 |
+
$options = join( " ", $options );
|
259 |
+
|
260 |
+
ob_start();
|
261 |
+
if ( $product_categories ) {
|
262 |
+
echo '<div class="carousel-slider-outer carousel-slider-outer-products carousel-slider-outer-' . $id . '">';
|
263 |
+
carousel_slider_inline_style( $id );
|
264 |
+
echo '<div ' . $options . '>';
|
265 |
+
|
266 |
+
|
267 |
+
foreach ( $product_categories as $category ) {
|
268 |
+
echo '<div class="product carousel-slider__product">';
|
269 |
+
do_action( 'woocommerce_before_subcategory', $category );
|
270 |
+
do_action( 'woocommerce_before_subcategory_title', $category );
|
271 |
+
do_action( 'woocommerce_shop_loop_subcategory_title', $category );
|
272 |
+
do_action( 'woocommerce_after_subcategory_title', $category );
|
273 |
+
do_action( 'woocommerce_after_subcategory', $category );
|
274 |
+
echo '</div>';
|
275 |
+
}
|
276 |
+
|
277 |
+
echo '</div>';
|
278 |
+
echo '</div>';
|
279 |
+
}
|
280 |
+
|
281 |
+
$html = ob_get_contents();
|
282 |
+
ob_end_clean();
|
283 |
+
|
284 |
+
return $html;
|
285 |
+
}
|
286 |
+
|
287 |
+
/**
|
288 |
+
* Get Youtube video ID from URL
|
289 |
+
*
|
290 |
+
* @param string $url
|
291 |
+
*
|
292 |
+
* @return mixed Youtube video ID or FALSE if not found
|
293 |
+
*/
|
294 |
+
private function get_youtube_id_from_url( $url ) {
|
295 |
+
$parts = parse_url( $url );
|
296 |
+
if ( isset( $parts['query'] ) ) {
|
297 |
+
parse_str( $parts['query'], $qs );
|
298 |
+
if ( isset( $qs['v'] ) ) {
|
299 |
+
return $qs['v'];
|
300 |
+
} elseif ( isset( $qs['vi'] ) ) {
|
301 |
+
return $qs['vi'];
|
302 |
+
}
|
303 |
+
}
|
304 |
+
if ( isset( $parts['path'] ) ) {
|
305 |
+
$path = explode( '/', trim( $parts['path'], '/' ) );
|
306 |
+
|
307 |
+
return $path[ count( $path ) - 1 ];
|
308 |
+
}
|
309 |
+
|
310 |
+
return false;
|
311 |
+
}
|
312 |
+
|
313 |
+
/**
|
314 |
+
* Get Vimeo video ID from URL
|
315 |
+
*
|
316 |
+
* @param string $url
|
317 |
+
*
|
318 |
+
* @return mixed Vimeo video ID or FALSE if not found
|
319 |
+
*/
|
320 |
+
private function get_vimeo_id_from_url( $url ) {
|
321 |
+
$parts = parse_url( $url );
|
322 |
+
if ( isset( $parts['path'] ) ) {
|
323 |
+
$path = explode( '/', trim( $parts['path'], '/' ) );
|
324 |
+
|
325 |
+
return $path[ count( $path ) - 1 ];
|
326 |
+
}
|
327 |
+
|
328 |
+
return false;
|
329 |
+
}
|
330 |
+
|
331 |
+
/**
|
332 |
+
* @param $video_urls
|
333 |
+
*
|
334 |
+
* @return array
|
335 |
+
*/
|
336 |
+
public function get_video_url( array $video_urls ) {
|
337 |
+
$_url = array();
|
338 |
+
foreach ( $video_urls as $video_url ) {
|
339 |
+
if ( ! filter_var( $video_url, FILTER_VALIDATE_URL ) ) {
|
340 |
+
continue;
|
341 |
+
}
|
342 |
+
$provider = '';
|
343 |
+
$video_id = '';
|
344 |
+
$thumbnail = '';
|
345 |
+
if ( false !== strpos( $video_url, 'youtube.com' ) ) {
|
346 |
+
$provider = 'youtube';
|
347 |
+
$video_id = $this->get_youtube_id_from_url( $video_url );
|
348 |
+
$thumbnail = array(
|
349 |
+
'large' => 'https://img.youtube.com/vi/' . $video_id . '/hqdefault.jpg',
|
350 |
+
'medium' => 'https://img.youtube.com/vi/' . $video_id . '/mqdefault.jpg',
|
351 |
+
'small' => 'https://img.youtube.com/vi/' . $video_id . '/sddefault.jpg',
|
352 |
+
);
|
353 |
+
|
354 |
+
} elseif ( false !== strpos( $video_url, 'vimeo.com' ) ) {
|
355 |
+
$provider = 'vimeo';
|
356 |
+
$video_id = $this->get_vimeo_id_from_url( $video_url );
|
357 |
+
$response = wp_remote_get( "https://vimeo.com/api/v2/video/$video_id.json" );
|
358 |
+
$thumbnail = json_decode( wp_remote_retrieve_body( $response ), true );
|
359 |
+
$thumbnail = array(
|
360 |
+
'large' => isset( $thumbnail[0]['thumbnail_large'] ) ? $thumbnail[0]['thumbnail_large'] : null,
|
361 |
+
'medium' => isset( $thumbnail[0]['thumbnail_medium'] ) ? $thumbnail[0]['thumbnail_medium'] : null,
|
362 |
+
'small' => isset( $thumbnail[0]['thumbnail_small'] ) ? $thumbnail[0]['thumbnail_small'] : null,
|
363 |
+
);
|
364 |
+
}
|
365 |
+
|
366 |
+
$_url[] = array(
|
367 |
+
'provider' => $provider,
|
368 |
+
'url' => $video_url,
|
369 |
+
'video_id' => $video_id,
|
370 |
+
'thumbnail' => $thumbnail,
|
371 |
+
);
|
372 |
+
}
|
373 |
+
|
374 |
+
return $_url;
|
375 |
+
}
|
376 |
+
}
|
classes/Frontend/StructuredData.php
ADDED
@@ -0,0 +1,298 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider\Frontend;
|
4 |
+
|
5 |
+
defined( 'ABSPATH' ) || exit;
|
6 |
+
|
7 |
+
class StructuredData {
|
8 |
+
protected static $instance = null;
|
9 |
+
private $_product_data = array();
|
10 |
+
private $_image_data = array();
|
11 |
+
private $_post_data = array();
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Ensures only one instance of this class is loaded or can be loaded.
|
15 |
+
*
|
16 |
+
* @return self
|
17 |
+
*/
|
18 |
+
public static function init() {
|
19 |
+
if ( is_null( self::$instance ) ) {
|
20 |
+
self::$instance = new self();
|
21 |
+
|
22 |
+
add_action( 'carousel_slider_image_gallery_loop', [ self::$instance, 'generate_image_data' ] );
|
23 |
+
add_action( 'carousel_slider_post_loop', [ self::$instance, 'generate_post_data' ] );
|
24 |
+
add_action( 'carousel_slider_product_loop', [ self::$instance, 'generate_product_data' ], 10, 2 );
|
25 |
+
// Output structured data.
|
26 |
+
add_action( 'wp_footer', [ self::$instance, 'output_structured_data' ], 90 );
|
27 |
+
}
|
28 |
+
|
29 |
+
return self::$instance;
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Outputs structured data.
|
34 |
+
*
|
35 |
+
* Hooked into `wp_footer` action hook.
|
36 |
+
*/
|
37 |
+
public function output_structured_data() {
|
38 |
+
$data = $this->get_structured_product_data();
|
39 |
+
if ( $data ) {
|
40 |
+
echo '<script type="application/ld+json">' . wp_json_encode( $data ) . '</script>' . "\n";
|
41 |
+
}
|
42 |
+
$gallery_data = $this->get_structured_image_data();
|
43 |
+
if ( $gallery_data ) {
|
44 |
+
echo '<script type="application/ld+json">' . wp_json_encode( $gallery_data ) . '</script>' . "\n";
|
45 |
+
}
|
46 |
+
$post_data = $this->get_structured_post_data();
|
47 |
+
if ( $post_data ) {
|
48 |
+
echo '<script type="application/ld+json">' . wp_json_encode( $post_data ) . '</script>' . "\n";
|
49 |
+
}
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Structures and returns product data.
|
54 |
+
* @return array
|
55 |
+
*/
|
56 |
+
private function get_structured_product_data() {
|
57 |
+
$data = array(
|
58 |
+
'@context' => 'http://schema.org/',
|
59 |
+
"@graph" => $this->get_product_data()
|
60 |
+
);
|
61 |
+
|
62 |
+
return $this->get_product_data() ? $data : array();
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Gets product data.
|
67 |
+
*
|
68 |
+
* @return array
|
69 |
+
*/
|
70 |
+
private function get_product_data() {
|
71 |
+
return $this->_product_data;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Structures and returns image data.
|
76 |
+
* @return array
|
77 |
+
*/
|
78 |
+
private function get_structured_image_data() {
|
79 |
+
$data = array(
|
80 |
+
'@context' => 'http://schema.org/',
|
81 |
+
"@type" => "ImageGallery",
|
82 |
+
"associatedMedia" => $this->get_image_data()
|
83 |
+
);
|
84 |
+
|
85 |
+
return $this->get_image_data() ? $data : array();
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Get image data
|
90 |
+
*
|
91 |
+
* @return array
|
92 |
+
*/
|
93 |
+
private function get_image_data() {
|
94 |
+
return $this->_image_data;
|
95 |
+
}
|
96 |
+
|
97 |
+
private function get_structured_post_data() {
|
98 |
+
$data = array(
|
99 |
+
'@context' => 'http://schema.org/',
|
100 |
+
"@graph" => $this->get_post_data()
|
101 |
+
);
|
102 |
+
|
103 |
+
return $this->get_post_data() ? $data : array();
|
104 |
+
}
|
105 |
+
|
106 |
+
private function get_post_data() {
|
107 |
+
return $this->_post_data;
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Generates Image structured data.
|
112 |
+
*
|
113 |
+
* Hooked into `carousel_slider_image_gallery_loop` action hook.
|
114 |
+
*
|
115 |
+
* @param WP_Post $_post Post data (default: null).
|
116 |
+
*/
|
117 |
+
public function generate_image_data( $_post ) {
|
118 |
+
$image = wp_get_attachment_image_src( $_post->ID, 'full' );
|
119 |
+
$markup['@type'] = 'ImageObject';
|
120 |
+
$markup['contentUrl'] = $image[0];
|
121 |
+
$markup['name'] = $_post->post_title;
|
122 |
+
|
123 |
+
$this->set_data( apply_filters( 'carousel_slider_structured_data_image', $markup, $_post ) );
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Sets data.
|
128 |
+
*
|
129 |
+
* @param array $data Structured data.
|
130 |
+
*
|
131 |
+
* @return bool
|
132 |
+
*/
|
133 |
+
private function set_data( $data ) {
|
134 |
+
if ( ! isset( $data['@type'] ) || ! preg_match( '|^[a-zA-Z]{1,20}$|', $data['@type'] ) ) {
|
135 |
+
return false;
|
136 |
+
}
|
137 |
+
|
138 |
+
if ( $data['@type'] == 'ImageObject' ) {
|
139 |
+
if ( ! $this->maybe_image_added( $data['contentUrl'] ) ) {
|
140 |
+
$this->_image_data[] = $data;
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
if ( $data['@type'] == 'Product' ) {
|
145 |
+
if ( ! $this->maybe_product_added( $data['@id'] ) ) {
|
146 |
+
$this->_product_data[] = $data;
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
if ( $data['@type'] == 'BlogPosting' ) {
|
151 |
+
if ( ! $this->maybe_post_added( $data['mainEntityOfPage']['@id'] ) ) {
|
152 |
+
$this->_post_data[] = $data;
|
153 |
+
}
|
154 |
+
}
|
155 |
+
|
156 |
+
return true;
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Check if image is already added to list
|
161 |
+
*
|
162 |
+
* @param string $image_id
|
163 |
+
*
|
164 |
+
* @return boolean
|
165 |
+
*/
|
166 |
+
private function maybe_image_added( $image_id = null ) {
|
167 |
+
$image_data = $this->get_image_data();
|
168 |
+
if ( count( $image_data ) > 0 ) {
|
169 |
+
$image_data = array_map( function ( $data ) {
|
170 |
+
return $data['contentUrl'];
|
171 |
+
}, $image_data );
|
172 |
+
|
173 |
+
return in_array( $image_id, $image_data );
|
174 |
+
}
|
175 |
+
|
176 |
+
return false;
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* Check if product is already added to list
|
181 |
+
*
|
182 |
+
* @param string $product_id
|
183 |
+
*
|
184 |
+
* @return boolean
|
185 |
+
*/
|
186 |
+
private function maybe_product_added( $product_id = null ) {
|
187 |
+
$product_data = $this->get_product_data();
|
188 |
+
if ( count( $product_data ) > 0 ) {
|
189 |
+
$product_data = array_map( function ( $data ) {
|
190 |
+
return $data['@id'];
|
191 |
+
}, $product_data );
|
192 |
+
|
193 |
+
return in_array( $product_id, $product_data );
|
194 |
+
}
|
195 |
+
|
196 |
+
return false;
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
* Check if post is already added to list
|
201 |
+
*
|
202 |
+
* @param string $post_id
|
203 |
+
*
|
204 |
+
* @return boolean
|
205 |
+
*/
|
206 |
+
private function maybe_post_added( $post_id ) {
|
207 |
+
$post_data = $this->get_post_data();
|
208 |
+
if ( count( $post_data ) > 0 ) {
|
209 |
+
$post_data = array_map( function ( $data ) {
|
210 |
+
return $data['mainEntityOfPage']['@id'];
|
211 |
+
}, $post_data );
|
212 |
+
|
213 |
+
return in_array( $post_id, $post_data );
|
214 |
+
}
|
215 |
+
|
216 |
+
return false;
|
217 |
+
}
|
218 |
+
|
219 |
+
/**
|
220 |
+
* Generates post structured data.
|
221 |
+
*
|
222 |
+
* Hooked into `carousel_slider_post_loop` action hook.
|
223 |
+
*
|
224 |
+
* @param WP_Post $_post
|
225 |
+
*/
|
226 |
+
public function generate_post_data( $_post ) {
|
227 |
+
if ( ! $_post instanceof WP_Post ) {
|
228 |
+
return;
|
229 |
+
}
|
230 |
+
|
231 |
+
$image = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'normal' );
|
232 |
+
|
233 |
+
$json['@type'] = 'BlogPosting';
|
234 |
+
|
235 |
+
$json['mainEntityOfPage'] = array(
|
236 |
+
'@type' => 'webpage',
|
237 |
+
'@id' => get_the_permalink(),
|
238 |
+
);
|
239 |
+
|
240 |
+
|
241 |
+
$json['publisher'] = array(
|
242 |
+
'@type' => 'organization',
|
243 |
+
'name' => get_bloginfo( 'name' ),
|
244 |
+
);
|
245 |
+
|
246 |
+
$json['author'] = array(
|
247 |
+
'@type' => 'person',
|
248 |
+
'name' => get_the_author(),
|
249 |
+
);
|
250 |
+
|
251 |
+
if ( $image ) {
|
252 |
+
$json['image'] = array(
|
253 |
+
'@type' => 'ImageObject',
|
254 |
+
'url' => $image[0],
|
255 |
+
'width' => $image[1],
|
256 |
+
'height' => $image[2],
|
257 |
+
);
|
258 |
+
}
|
259 |
+
|
260 |
+
$json['datePublished'] = get_post_time( 'c' );
|
261 |
+
$json['dateModified'] = get_the_modified_date( 'c' );
|
262 |
+
$json['name'] = get_the_title();
|
263 |
+
$json['headline'] = $json['name'];
|
264 |
+
$json['description'] = get_the_excerpt();
|
265 |
+
|
266 |
+
|
267 |
+
$this->set_data( apply_filters( 'carousel_slider_structured_data_post', $json, $_post ) );
|
268 |
+
}
|
269 |
+
|
270 |
+
/**
|
271 |
+
* Generates Product structured data.
|
272 |
+
*
|
273 |
+
* Hooked into `carousel_slider_product_loop` action hook.
|
274 |
+
*
|
275 |
+
* @param WC_Product $product Product data (default: null).
|
276 |
+
* @param WP_Post $post
|
277 |
+
*/
|
278 |
+
public function generate_product_data( $product, $post ) {
|
279 |
+
if ( ! $product instanceof WC_Product ) {
|
280 |
+
return;
|
281 |
+
}
|
282 |
+
|
283 |
+
if ( defined( 'WC_VERSION' ) && version_compare( WC_VERSION, "3.0.0", ">=" ) ) {
|
284 |
+
$name = $product->get_name();
|
285 |
+
$permalink = get_permalink( $product->get_id() );
|
286 |
+
} else {
|
287 |
+
$name = get_the_title( $post->ID );
|
288 |
+
$permalink = get_permalink( $post->ID );
|
289 |
+
}
|
290 |
+
|
291 |
+
$markup['@type'] = 'Product';
|
292 |
+
$markup['@id'] = $permalink;
|
293 |
+
$markup['url'] = $markup['@id'];
|
294 |
+
$markup['name'] = $name;
|
295 |
+
|
296 |
+
$this->set_data( apply_filters( 'carousel_slider_structured_data_product', $markup, $product ) );
|
297 |
+
}
|
298 |
+
}
|
classes/Integration/VisualComposerElement.php
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider\Integration;
|
4 |
+
|
5 |
+
defined( 'ABSPATH' ) || exit;
|
6 |
+
|
7 |
+
class VisualComposerElement {
|
8 |
+
/**
|
9 |
+
* The instance of the class
|
10 |
+
*
|
11 |
+
* @var self
|
12 |
+
*/
|
13 |
+
private static $instance = null;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Ensures only one instance of this class is loaded or can be loaded.
|
17 |
+
*
|
18 |
+
* @return self
|
19 |
+
*/
|
20 |
+
public static function init() {
|
21 |
+
if ( is_null( self::$instance ) ) {
|
22 |
+
self::$instance = new self();
|
23 |
+
|
24 |
+
add_action( 'init', array( self::$instance, 'integrate_with_vc' ) );
|
25 |
+
}
|
26 |
+
|
27 |
+
return self::$instance;
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Integrate with visual composer
|
32 |
+
*/
|
33 |
+
public function integrate_with_vc() {
|
34 |
+
// Check if Visual Composer is installed
|
35 |
+
if ( ! function_exists( 'vc_map' ) ) {
|
36 |
+
return;
|
37 |
+
}
|
38 |
+
|
39 |
+
vc_map( array(
|
40 |
+
"name" => __( "Carousel Slider", 'carousel-slider' ),
|
41 |
+
"description" => __( "Place Carousel Slider.", 'carousel-slider' ),
|
42 |
+
"base" => "carousel_slide",
|
43 |
+
"controls" => "full",
|
44 |
+
"icon" => CAROUSEL_SLIDER_ASSETS . '/static-images/logo.svg',
|
45 |
+
"category" => __( 'Content', 'carousel-slider' ),
|
46 |
+
"params" => array(
|
47 |
+
array(
|
48 |
+
"type" => "dropdown",
|
49 |
+
"holder" => "div",
|
50 |
+
"class" => "carousel-slider-id",
|
51 |
+
"param_name" => "id",
|
52 |
+
"value" => $this->carousels_list(),
|
53 |
+
"heading" => __( "Choose Carousel Slide", 'carousel-slider' ),
|
54 |
+
),
|
55 |
+
),
|
56 |
+
) );
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Generate array for carousel slider
|
61 |
+
*
|
62 |
+
* @return array
|
63 |
+
*/
|
64 |
+
private function carousels_list(): array {
|
65 |
+
$carousels = get_posts( [
|
66 |
+
'post_type' => 'carousels',
|
67 |
+
'post_status' => 'publish',
|
68 |
+
'posts_per_page' => - 1,
|
69 |
+
] );
|
70 |
+
|
71 |
+
$result = [];
|
72 |
+
|
73 |
+
if ( count( $carousels ) ) {
|
74 |
+
foreach ( $carousels as $carousel ) {
|
75 |
+
$result[ esc_html( $carousel->post_title ) ] = $carousel->ID;
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
return $result;
|
80 |
+
}
|
81 |
+
}
|
classes/Plugin.php
ADDED
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider;
|
4 |
+
|
5 |
+
use CarouselSlider\Admin\Admin;
|
6 |
+
use CarouselSlider\Admin\GutenbergBlock;
|
7 |
+
use CarouselSlider\Admin\Setting;
|
8 |
+
use CarouselSlider\Frontend\Frontend;
|
9 |
+
use CarouselSlider\Frontend\Preview;
|
10 |
+
use CarouselSlider\Frontend\Shortcode;
|
11 |
+
use CarouselSlider\Frontend\StructuredData;
|
12 |
+
use CarouselSlider\Integration\VisualComposerElement;
|
13 |
+
use CarouselSlider\Widget\CarouselSliderWidget;
|
14 |
+
|
15 |
+
defined( 'ABSPATH' ) || exit;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* The main plugin handler class is responsible for initializing plugin. The
|
19 |
+
* class registers all the components required to run the plugin.
|
20 |
+
*/
|
21 |
+
class Plugin {
|
22 |
+
|
23 |
+
/**
|
24 |
+
* The instance of the class
|
25 |
+
*
|
26 |
+
* @var self
|
27 |
+
*/
|
28 |
+
private static $instance;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Holds various class instances
|
32 |
+
*
|
33 |
+
* @var array
|
34 |
+
*/
|
35 |
+
private $container = [];
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Ensures only one instance of the class is loaded or can be loaded.
|
39 |
+
*
|
40 |
+
* @return self
|
41 |
+
*/
|
42 |
+
public static function init() {
|
43 |
+
if ( is_null( self::$instance ) ) {
|
44 |
+
self::$instance = new self();
|
45 |
+
|
46 |
+
add_action( 'plugins_loaded', [ self::$instance, 'includes' ] );
|
47 |
+
add_action( 'carousel_slider/activation', [ self::$instance, 'activation_includes' ] );
|
48 |
+
add_action( 'carousel_slider/deactivation', [ self::$instance, 'deactivation_includes' ] );
|
49 |
+
|
50 |
+
add_action( 'in_plugin_update_message-carousel-slider/carousel-slider.php',
|
51 |
+
[ self::$instance, 'in_plugin_update_message' ] );
|
52 |
+
}
|
53 |
+
|
54 |
+
return self::$instance;
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Instantiate the required classes
|
59 |
+
*
|
60 |
+
* @return void
|
61 |
+
*/
|
62 |
+
public function includes() {
|
63 |
+
$this->container['i18n'] = i18n::init();
|
64 |
+
$this->container['assets'] = Assets::init();
|
65 |
+
$this->container['widget'] = CarouselSliderWidget::init();
|
66 |
+
$this->container['vc_element'] = VisualComposerElement::init();
|
67 |
+
$this->container['shortcode'] = Shortcode::init();
|
68 |
+
|
69 |
+
// Load classes for admin area
|
70 |
+
if ( $this->is_request( 'admin' ) ) {
|
71 |
+
$this->admin_includes();
|
72 |
+
}
|
73 |
+
|
74 |
+
// Load classes for frontend area
|
75 |
+
if ( $this->is_request( 'frontend' ) ) {
|
76 |
+
$this->frontend_includes();
|
77 |
+
}
|
78 |
+
|
79 |
+
// Load classes for ajax functionality
|
80 |
+
if ( $this->is_request( 'ajax' ) ) {
|
81 |
+
$this->ajax_includes();
|
82 |
+
}
|
83 |
+
|
84 |
+
$this->modules_includes();
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Include modules main classes
|
89 |
+
*
|
90 |
+
* @return void
|
91 |
+
*/
|
92 |
+
public function modules_includes() {
|
93 |
+
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Include admin classes
|
98 |
+
*
|
99 |
+
* @return void
|
100 |
+
*/
|
101 |
+
public function admin_includes() {
|
102 |
+
$this->container['admin'] = Admin::init();
|
103 |
+
$this->container['setting'] = Setting::init();
|
104 |
+
$this->container['gutenberg_block'] = GutenbergBlock::init();
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Include frontend classes
|
109 |
+
*
|
110 |
+
* @return void
|
111 |
+
*/
|
112 |
+
public function frontend_includes() {
|
113 |
+
$this->container['frontend'] = Frontend::init();
|
114 |
+
$this->container['preview'] = Preview::init();
|
115 |
+
$this->container['structured_data'] = StructuredData::init();
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Include frontend classes
|
120 |
+
*
|
121 |
+
* @return void
|
122 |
+
*/
|
123 |
+
public function ajax_includes() {
|
124 |
+
$this->container['ajax'] = Ajax::init();
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Run on plugin activation
|
129 |
+
*
|
130 |
+
* @return void
|
131 |
+
*/
|
132 |
+
public function activation_includes() {
|
133 |
+
flush_rewrite_rules();
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Run on plugin deactivation
|
138 |
+
*
|
139 |
+
* @return void
|
140 |
+
*/
|
141 |
+
public function deactivation_includes() {
|
142 |
+
flush_rewrite_rules();
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* What type of request is this?
|
147 |
+
*
|
148 |
+
* @param string $type admin, ajax, rest, cron or frontend.
|
149 |
+
*
|
150 |
+
* @return bool
|
151 |
+
*/
|
152 |
+
private function is_request( string $type ): bool {
|
153 |
+
switch ( $type ) {
|
154 |
+
case 'admin' :
|
155 |
+
return is_admin();
|
156 |
+
case 'ajax' :
|
157 |
+
return defined( 'DOING_AJAX' );
|
158 |
+
case 'rest' :
|
159 |
+
return defined( 'REST_REQUEST' );
|
160 |
+
case 'cron' :
|
161 |
+
return defined( 'DOING_CRON' );
|
162 |
+
case 'frontend' :
|
163 |
+
return ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' );
|
164 |
+
}
|
165 |
+
|
166 |
+
return false;
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Show in plugin update message
|
171 |
+
*
|
172 |
+
* @param array $plugin_data
|
173 |
+
*/
|
174 |
+
public function in_plugin_update_message( array $plugin_data ) {
|
175 |
+
$current_version = CAROUSEL_SLIDER_VERSION;
|
176 |
+
$current_version_array = explode( '.', $current_version );
|
177 |
+
$new_version = $plugin_data['new_version'];
|
178 |
+
$new_version_array = explode( '.', $new_version );
|
179 |
+
|
180 |
+
$html = '';
|
181 |
+
if ( version_compare( $current_version_array[0], $new_version_array[0], '<' ) ) {
|
182 |
+
$html .= '</p><div class="cs_plugin_upgrade_notice extensions_warning major_update">';
|
183 |
+
$html .= '<div class="cs_plugin_upgrade_notice__title">';
|
184 |
+
$html .= sprintf( __( "<strong>%s</strong> version <strong>%s</strong> is a major update.", 'carousel-slider' ), $plugin_data['Title'], $new_version );
|
185 |
+
$html .= '</div>';
|
186 |
+
$html .= '<div class="cs_plugin_upgrade_notice__description">';
|
187 |
+
$html .= __( 'We made a lot of major changes to this version.', 'carousel-slider' ) . ' ';
|
188 |
+
$html .= __( 'We believe that all functionality will remain same after update (remember to refresh you cache plugin).', 'carousel-slider' ) . ' ';
|
189 |
+
$html .= __( 'Still make sure that you took a backup so you can role back if anything happen wrong to you.', 'carousel-slider' );
|
190 |
+
$html .= '</div>';
|
191 |
+
$html .= '</div><p class="dummy" style="display: none">';
|
192 |
+
}
|
193 |
+
|
194 |
+
echo apply_filters( 'carousel_slider/in_plugin_update_message', $html, $plugin_data );
|
195 |
+
}
|
196 |
+
}
|
classes/Supports/SettingAPI.php
ADDED
@@ -0,0 +1,669 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider\Supports;
|
4 |
+
|
5 |
+
use Exception;
|
6 |
+
|
7 |
+
defined( 'ABSPATH' ) || exit;
|
8 |
+
|
9 |
+
class SettingAPI {
|
10 |
+
/**
|
11 |
+
* Setting page options
|
12 |
+
*
|
13 |
+
* @var array
|
14 |
+
*/
|
15 |
+
private $options = array();
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Setting page menu fields
|
19 |
+
*
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
private $menu_fields = array();
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Fields list
|
26 |
+
*
|
27 |
+
* @var array
|
28 |
+
*/
|
29 |
+
private $fields = array();
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Setting page tabs settings
|
33 |
+
*
|
34 |
+
* @var array
|
35 |
+
*/
|
36 |
+
private $tabs = array();
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Setting page form action attribute value
|
40 |
+
*
|
41 |
+
* @var string
|
42 |
+
*/
|
43 |
+
private $action = 'options.php';
|
44 |
+
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Filterable_Portfolio_Setting_API constructor.
|
48 |
+
*/
|
49 |
+
public function __construct() {
|
50 |
+
if ( is_admin() ) {
|
51 |
+
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
|
52 |
+
add_action( 'admin_init', array( $this, 'admin_init' ) );
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Add new admin menu
|
58 |
+
*
|
59 |
+
* This method is accessible outside the class for creating menu
|
60 |
+
*
|
61 |
+
* @param array $menu_fields
|
62 |
+
*
|
63 |
+
* @throws Exception
|
64 |
+
*/
|
65 |
+
public function add_menu( array $menu_fields ) {
|
66 |
+
if ( ! isset( $menu_fields['page_title'], $menu_fields['menu_title'], $menu_fields['menu_slug'] ) ) {
|
67 |
+
throw new Exception( 'Required key is not set properly for creating menu.' );
|
68 |
+
}
|
69 |
+
|
70 |
+
$this->menu_fields = $menu_fields;
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Add new settings field
|
75 |
+
*
|
76 |
+
* This method is accessible outside the class for creating settings field
|
77 |
+
*
|
78 |
+
* @param array $field
|
79 |
+
*
|
80 |
+
* @throws Exception
|
81 |
+
*/
|
82 |
+
public function add_field( array $field ) {
|
83 |
+
if ( ! isset( $field['id'], $field['name'] ) ) {
|
84 |
+
throw new Exception( 'Required key is not set properly for creating tab.' );
|
85 |
+
}
|
86 |
+
|
87 |
+
$this->fields[] = $field;
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Add setting page tab
|
92 |
+
*
|
93 |
+
* This method is accessible outside the class for creating page tab
|
94 |
+
*
|
95 |
+
* @param array $tab
|
96 |
+
*
|
97 |
+
* @throws Exception
|
98 |
+
*/
|
99 |
+
public function add_tab( array $tab ) {
|
100 |
+
if ( ! isset( $tab['id'], $tab['title'] ) ) {
|
101 |
+
throw new Exception( 'Required key is not set properly for creating tab.' );
|
102 |
+
}
|
103 |
+
|
104 |
+
$this->tabs[] = $tab;
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Register setting and its sanitize callback.
|
109 |
+
*/
|
110 |
+
public function admin_init() {
|
111 |
+
register_setting(
|
112 |
+
$this->menu_fields['option_name'],
|
113 |
+
$this->menu_fields['option_name'],
|
114 |
+
array( $this, 'sanitize_callback' )
|
115 |
+
);
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Create admin menu
|
120 |
+
*/
|
121 |
+
public function admin_menu() {
|
122 |
+
$page_title = $this->menu_fields['page_title'];
|
123 |
+
$menu_title = $this->menu_fields['menu_title'];
|
124 |
+
$menu_slug = $this->menu_fields['menu_slug'];
|
125 |
+
$capability = isset( $this->menu_fields['capability'] ) ? $this->menu_fields['capability'] : 'manage_options';
|
126 |
+
$parent_slug = isset( $this->menu_fields['parent_slug'] ) ? $this->menu_fields['parent_slug'] : null;
|
127 |
+
|
128 |
+
if ( $parent_slug ) {
|
129 |
+
add_submenu_page(
|
130 |
+
$parent_slug,
|
131 |
+
$page_title,
|
132 |
+
$menu_title,
|
133 |
+
$capability,
|
134 |
+
$menu_slug,
|
135 |
+
array( $this, 'page_content' )
|
136 |
+
);
|
137 |
+
} else {
|
138 |
+
add_menu_page(
|
139 |
+
$page_title,
|
140 |
+
$menu_title,
|
141 |
+
$capability,
|
142 |
+
$menu_slug,
|
143 |
+
array( $this, 'page_content' )
|
144 |
+
);
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
/**
|
149 |
+
* Load page content
|
150 |
+
*/
|
151 |
+
public function page_content() {
|
152 |
+
ob_start(); ?>
|
153 |
+
<div class="wrap about-wrap">
|
154 |
+
<h1><?php echo $this->menu_fields['page_title']; ?></h1>
|
155 |
+
<div class="about-text"><?php echo $this->menu_fields['about_text']; ?></div>
|
156 |
+
<?php $this->option_page_tabs(); ?>
|
157 |
+
<form autocomplete="off" method="POST" action="<?php echo $this->action; ?>">
|
158 |
+
<?php
|
159 |
+
$this->get_options();
|
160 |
+
settings_fields( $this->menu_fields['option_name'] );
|
161 |
+
$this->setting_fields( $this->filter_fields_by_tab() );
|
162 |
+
submit_button();
|
163 |
+
?>
|
164 |
+
</form>
|
165 |
+
</div>
|
166 |
+
<?php
|
167 |
+
echo ob_get_clean();
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* Generate Option Page Tabs
|
172 |
+
* @return void
|
173 |
+
*/
|
174 |
+
private function option_page_tabs() {
|
175 |
+
if ( count( $this->tabs ) < 1 ) {
|
176 |
+
return;
|
177 |
+
}
|
178 |
+
|
179 |
+
$current_tab = isset ( $_GET['tab'] ) ? $_GET['tab'] : $this->tabs[0]['id'];
|
180 |
+
$page = $this->menu_fields['menu_slug'];
|
181 |
+
|
182 |
+
echo '<h2 class="nav-tab-wrapper wp-clearfix">';
|
183 |
+
foreach ( $this->tabs as $tab ) {
|
184 |
+
$class = ( $tab['id'] === $current_tab ) ? ' nav-tab-active' : '';
|
185 |
+
$page_url = esc_url( add_query_arg( array(
|
186 |
+
'page' => $page,
|
187 |
+
'tab' => $tab['id']
|
188 |
+
), admin_url( $this->menu_fields['parent_slug'] ) ) );
|
189 |
+
echo '<a class="nav-tab' . $class . '" href="' . $page_url . '">' . $tab['title'] . '</a>';
|
190 |
+
}
|
191 |
+
echo '</h2>';
|
192 |
+
}
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Filter settings fields by page tab
|
196 |
+
*
|
197 |
+
* @param string $current_tab
|
198 |
+
*
|
199 |
+
* @return array
|
200 |
+
*/
|
201 |
+
public function filter_fields_by_tab( $current_tab = null ) {
|
202 |
+
|
203 |
+
if ( count( $this->tabs ) < 1 ) {
|
204 |
+
return $this->fields;
|
205 |
+
}
|
206 |
+
|
207 |
+
if ( ! $current_tab ) {
|
208 |
+
$current_tab = isset ( $_GET['tab'] ) ? $_GET['tab'] : $this->tabs[0]['id'];
|
209 |
+
}
|
210 |
+
|
211 |
+
$new_array = array();
|
212 |
+
if ( is_array( $this->fields ) && count( $this->fields ) > 0 ) {
|
213 |
+
foreach ( array_keys( $this->fields ) as $key ) {
|
214 |
+
if ( isset( $this->fields[ $key ]['tab'] ) ) {
|
215 |
+
$temp[ $key ] = $this->fields[ $key ]['tab'];
|
216 |
+
if ( $temp[ $key ] == $current_tab ) {
|
217 |
+
$new_array[ $key ] = $this->fields[ $key ];
|
218 |
+
}
|
219 |
+
} else {
|
220 |
+
if ( $current_tab == $this->tabs[0]['id'] ) {
|
221 |
+
$new_array[ $key ] = $this->fields[ $key ];
|
222 |
+
}
|
223 |
+
}
|
224 |
+
}
|
225 |
+
}
|
226 |
+
|
227 |
+
return $new_array;
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* Sanitize each setting field as needed
|
232 |
+
*
|
233 |
+
* @param array $input Contains all settings fields as array keys
|
234 |
+
*
|
235 |
+
* @return array
|
236 |
+
*/
|
237 |
+
public function sanitize_callback( array $input ) {
|
238 |
+
$output_array = array();
|
239 |
+
$fields = $this->fields;
|
240 |
+
$options = (array) get_option( $this->menu_fields['option_name'] );
|
241 |
+
$options = array_filter( $options );
|
242 |
+
|
243 |
+
if ( empty( $options ) ) {
|
244 |
+
$options = (array) $this->get_options();
|
245 |
+
}
|
246 |
+
|
247 |
+
if ( count( $this->tabs ) > 0 ) {
|
248 |
+
parse_str( $_POST['_wp_http_referer'], $referrer );
|
249 |
+
$tab = isset( $referrer['tab'] ) ? $referrer['tab'] : $this->tabs[0]['id'];
|
250 |
+
$fields = $this->filter_fields_by_tab( $tab );
|
251 |
+
}
|
252 |
+
|
253 |
+
// Loop through each setting being saved and
|
254 |
+
// pass it through a sanitize filter
|
255 |
+
foreach ( $input as $key => $value ) {
|
256 |
+
foreach ( $fields as $field ) {
|
257 |
+
if ( $field['id'] == $key ) {
|
258 |
+
$rule = empty( $field['validate'] ) ? $field['type'] : $field['validate'];
|
259 |
+
$output_array[ $key ] = $this->validate( $value, $rule );
|
260 |
+
}
|
261 |
+
}
|
262 |
+
}
|
263 |
+
|
264 |
+
return array_merge( $options, $output_array );
|
265 |
+
}
|
266 |
+
|
267 |
+
/**
|
268 |
+
* Get options parsed with default value
|
269 |
+
* @return array
|
270 |
+
*/
|
271 |
+
public function get_options() {
|
272 |
+
$options_array = array();
|
273 |
+
|
274 |
+
foreach ( $this->fields as $value ) {
|
275 |
+
$std_value = ( isset( $value['std'] ) ) ? $value['std'] : '';
|
276 |
+
$options_array[ $value['id'] ] = $std_value;
|
277 |
+
}
|
278 |
+
|
279 |
+
$options = wp_parse_args(
|
280 |
+
get_option( $this->menu_fields['option_name'] ),
|
281 |
+
$options_array
|
282 |
+
);
|
283 |
+
|
284 |
+
return $this->options = $options;
|
285 |
+
}
|
286 |
+
|
287 |
+
/**
|
288 |
+
* Validate the option's value
|
289 |
+
*
|
290 |
+
* @param mixed $input
|
291 |
+
* @param string $validation_rule
|
292 |
+
*
|
293 |
+
* @return mixed
|
294 |
+
*/
|
295 |
+
private function validate( $input, $validation_rule = 'text' ) {
|
296 |
+
switch ( $validation_rule ) {
|
297 |
+
case 'text':
|
298 |
+
return sanitize_text_field( $input );
|
299 |
+
break;
|
300 |
+
|
301 |
+
case 'number':
|
302 |
+
return is_int( $input ) ? trim( $input ) : intval( $input );
|
303 |
+
break;
|
304 |
+
|
305 |
+
case 'url':
|
306 |
+
return esc_url_raw( trim( $input ) );
|
307 |
+
break;
|
308 |
+
|
309 |
+
case 'email':
|
310 |
+
return sanitize_email( $input );
|
311 |
+
break;
|
312 |
+
|
313 |
+
case 'checkbox':
|
314 |
+
return ( $input == 1 ) ? 1 : 0;
|
315 |
+
break;
|
316 |
+
|
317 |
+
case 'multi_checkbox':
|
318 |
+
return $input;
|
319 |
+
break;
|
320 |
+
|
321 |
+
case 'radio':
|
322 |
+
return sanitize_text_field( $input );
|
323 |
+
break;
|
324 |
+
|
325 |
+
case 'select':
|
326 |
+
return sanitize_text_field( $input );
|
327 |
+
break;
|
328 |
+
|
329 |
+
case 'date':
|
330 |
+
return date( 'F d, Y', strtotime( $input ) );
|
331 |
+
break;
|
332 |
+
|
333 |
+
case 'textarea':
|
334 |
+
return wp_filter_nohtml_kses( $input );
|
335 |
+
break;
|
336 |
+
|
337 |
+
case 'inlinehtml':
|
338 |
+
return wp_filter_kses( force_balance_tags( $input ) );
|
339 |
+
break;
|
340 |
+
|
341 |
+
case 'linebreaks':
|
342 |
+
return wp_strip_all_tags( $input );
|
343 |
+
break;
|
344 |
+
|
345 |
+
case 'wp_editor':
|
346 |
+
return wp_kses_post( $input );
|
347 |
+
break;
|
348 |
+
|
349 |
+
default:
|
350 |
+
return sanitize_text_field( $input );
|
351 |
+
break;
|
352 |
+
}
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Settings fields
|
357 |
+
*
|
358 |
+
* @param array $fields
|
359 |
+
*
|
360 |
+
* @return void
|
361 |
+
*/
|
362 |
+
private function setting_fields( $fields = null ) {
|
363 |
+
$fields = is_array( $fields ) ? $fields : $this->fields;
|
364 |
+
|
365 |
+
$table = "";
|
366 |
+
$table .= "<table class='form-table'>";
|
367 |
+
|
368 |
+
foreach ( $fields as $field ) {
|
369 |
+
$name = sprintf( '%s[%s]', $this->menu_fields['option_name'], $field['id'] );
|
370 |
+
$type = isset( $field['type'] ) ? $field['type'] : 'text';
|
371 |
+
$value = isset( $this->options[ $field['id'] ] ) ? $this->options[ $field['id'] ] : '';
|
372 |
+
|
373 |
+
$table .= "<tr>";
|
374 |
+
$table .= sprintf( '<th scope="row"><label for="%1$s">%2$s</label></th>', $field['id'],
|
375 |
+
$field['name'] );
|
376 |
+
$table .= "<td>";
|
377 |
+
|
378 |
+
if ( method_exists( $this, $type ) ) {
|
379 |
+
$table .= $this->$type( $field, $name, $value );
|
380 |
+
} else {
|
381 |
+
$table .= $this->text( $field, $name, $value );
|
382 |
+
}
|
383 |
+
|
384 |
+
if ( ! empty( $field['desc'] ) ) {
|
385 |
+
$table .= sprintf( '<p class="description">%s</p>', $field['desc'] );
|
386 |
+
}
|
387 |
+
$table .= "</td>";
|
388 |
+
$table .= "</tr>";
|
389 |
+
}
|
390 |
+
|
391 |
+
$table .= "</table>";
|
392 |
+
echo $table;
|
393 |
+
}
|
394 |
+
|
395 |
+
/**
|
396 |
+
* text input field
|
397 |
+
*
|
398 |
+
* @param array $field
|
399 |
+
* @param string $name
|
400 |
+
* @param string $value
|
401 |
+
*
|
402 |
+
* @return string
|
403 |
+
*/
|
404 |
+
public function text( $field, $name, $value ) {
|
405 |
+
return sprintf( '<input type="text" class="regular-text" value="%1$s" id="%2$s" name="%3$s">', $value,
|
406 |
+
$field['id'], $name );
|
407 |
+
}
|
408 |
+
|
409 |
+
/**
|
410 |
+
* email input field
|
411 |
+
*
|
412 |
+
* @param array $field
|
413 |
+
* @param string $name
|
414 |
+
* @param string $value
|
415 |
+
*
|
416 |
+
* @return string
|
417 |
+
*/
|
418 |
+
public function email( $field, $name, $value ) {
|
419 |
+
return sprintf( '<input type="email" class="regular-text" value="%1$s" id="%2$s" name="%3$s">', $value,
|
420 |
+
$field['id'], $name );
|
421 |
+
}
|
422 |
+
|
423 |
+
/**
|
424 |
+
* password input field
|
425 |
+
*
|
426 |
+
* @param array $field
|
427 |
+
* @param string $name
|
428 |
+
* @param string $value
|
429 |
+
*
|
430 |
+
* @return string
|
431 |
+
*/
|
432 |
+
public function password( $field, $name, $value ) {
|
433 |
+
return sprintf( '<input type="password" class="regular-text" value="" id="%2$s" name="%3$s">', $value,
|
434 |
+
$field['id'], $name );
|
435 |
+
}
|
436 |
+
|
437 |
+
/**
|
438 |
+
* number input field
|
439 |
+
*
|
440 |
+
* @param array $field
|
441 |
+
* @param string $name
|
442 |
+
* @param string $value
|
443 |
+
*
|
444 |
+
* @return string
|
445 |
+
*/
|
446 |
+
public function number( $field, $name, $value ) {
|
447 |
+
return sprintf( '<input type="number" class="regular-text" value="%1$s" id="%2$s" name="%3$s">', $value,
|
448 |
+
$field['id'], $name );
|
449 |
+
}
|
450 |
+
|
451 |
+
/**
|
452 |
+
* url input field
|
453 |
+
*
|
454 |
+
* @param array $field
|
455 |
+
* @param string $name
|
456 |
+
* @param string $value
|
457 |
+
*
|
458 |
+
* @return string
|
459 |
+
*/
|
460 |
+
public function url( $field, $name, $value ) {
|
461 |
+
return sprintf( '<input type="url" class="regular-text" value="%1$s" id="%2$s" name="%3$s">', $value,
|
462 |
+
$field['id'], $name );
|
463 |
+
}
|
464 |
+
|
465 |
+
/**
|
466 |
+
* color input field
|
467 |
+
*
|
468 |
+
* @param array $field
|
469 |
+
* @param string $name
|
470 |
+
* @param string $value
|
471 |
+
*
|
472 |
+
* @return string
|
473 |
+
*/
|
474 |
+
public function color( $field, $name, $value ) {
|
475 |
+
$default_color = ( isset( $field['std'] ) ) ? $field['std'] : "";
|
476 |
+
|
477 |
+
return sprintf( '<input type="text" class="color-picker" value="%1$s" id="%2$s" name="%3$s" data-alpha="true" data-default-color="%4$s">',
|
478 |
+
$value, $field['id'], $name, $default_color );
|
479 |
+
}
|
480 |
+
|
481 |
+
/**
|
482 |
+
* date input field
|
483 |
+
*
|
484 |
+
* @param array $field
|
485 |
+
* @param string $name
|
486 |
+
* @param string $value
|
487 |
+
*
|
488 |
+
* @return string
|
489 |
+
*/
|
490 |
+
public function date( $field, $name, $value ) {
|
491 |
+
$value = date( "F d, Y", strtotime( $value ) );
|
492 |
+
|
493 |
+
return sprintf( '<input type="text" class="regular-text datepicker" value="%1$s" id="%2$s" name="%3$s">',
|
494 |
+
$value, $field['id'], $name );
|
495 |
+
}
|
496 |
+
|
497 |
+
/**
|
498 |
+
* textarea input field
|
499 |
+
*
|
500 |
+
* @param array $field
|
501 |
+
* @param string $name
|
502 |
+
* @param string $value
|
503 |
+
*
|
504 |
+
* @return string
|
505 |
+
*/
|
506 |
+
public function textarea( $field, $name, $value ) {
|
507 |
+
$rows = ( isset( $field['rows'] ) ) ? $field['rows'] : 5;
|
508 |
+
$cols = ( isset( $field['cols'] ) ) ? $field['cols'] : 40;
|
509 |
+
$placeholder = ( isset( $field['placeholder'] ) ) ? sprintf( 'placeholder="%s"',
|
510 |
+
esc_attr( $field['placeholder'] ) ) : '';
|
511 |
+
|
512 |
+
return '<textarea id="' . $field['id'] . '" name="' . $name . '" rows="' . $rows . '" cols="' . $cols . '" ' . $placeholder . '>' . $value . '</textarea>';
|
513 |
+
}
|
514 |
+
|
515 |
+
/**
|
516 |
+
* checkbox input field
|
517 |
+
*
|
518 |
+
* @param array $field
|
519 |
+
* @param string $name
|
520 |
+
* @param string $value
|
521 |
+
*
|
522 |
+
* @return string
|
523 |
+
*/
|
524 |
+
public function checkbox( $field, $name, $value ) {
|
525 |
+
$checked = ( 1 == $value ) ? 'checked' : '';
|
526 |
+
$table = '<input type="hidden" name="' . $name . '" value="0">';
|
527 |
+
$table .= '<fieldset><legend class="screen-reader-text"><span>' . $field['name'] . '</span></legend>';
|
528 |
+
$table .= '<label for="' . $field['id'] . '">';
|
529 |
+
$table .= '<input type="checkbox" value="1" id="' . $field['id'] . '" name="' . $name . '" ' . $checked . '>';
|
530 |
+
$table .= $field['name'] . '</label></fieldset>';
|
531 |
+
|
532 |
+
return $table;
|
533 |
+
}
|
534 |
+
|
535 |
+
/**
|
536 |
+
* multi checkbox input field
|
537 |
+
*
|
538 |
+
* @param array $field
|
539 |
+
* @param string $name
|
540 |
+
* @param array $value
|
541 |
+
*
|
542 |
+
* @return string
|
543 |
+
*/
|
544 |
+
public function multi_checkbox( $field, $name, $value ) {
|
545 |
+
$table = "<fieldset>";
|
546 |
+
$name = $name . "[]";
|
547 |
+
|
548 |
+
$table .= sprintf( '<input type="hidden" name="%1$s" value="0">', $name );
|
549 |
+
foreach ( $field['options'] as $key => $label ) {
|
550 |
+
$checked = ( in_array( $key, $value ) ) ? 'checked="checked"' : '';
|
551 |
+
$table .= '<label for="' . $key . '"><input type="checkbox" value="' . $key . '" id="' . $key . '" name="' . $name . '" ' . $checked . '>' . $label . '</label><br>';
|
552 |
+
}
|
553 |
+
$table .= "</fieldset>";
|
554 |
+
|
555 |
+
return $table;
|
556 |
+
}
|
557 |
+
|
558 |
+
/**
|
559 |
+
* radio input field
|
560 |
+
*
|
561 |
+
* @param array $field
|
562 |
+
* @param string $name
|
563 |
+
* @param string $value
|
564 |
+
*
|
565 |
+
* @return string
|
566 |
+
*/
|
567 |
+
public function radio( $field, $name, $value ) {
|
568 |
+
$table = '<fieldset><legend class="screen-reader-text"><span>' . $field['name'] . '</span></legend><p>';
|
569 |
+
|
570 |
+
foreach ( $field['options'] as $key => $label ) {
|
571 |
+
|
572 |
+
$checked = ( $value == $key ) ? 'checked="checked"' : '';
|
573 |
+
$table .= '<label><input type="radio" ' . $checked . ' value="' . $key . '" name="' . $name . '">' . $label . '</label><br>';
|
574 |
+
}
|
575 |
+
$table .= "</p></fieldset>";
|
576 |
+
|
577 |
+
return $table;
|
578 |
+
}
|
579 |
+
|
580 |
+
/**
|
581 |
+
* select input field
|
582 |
+
*
|
583 |
+
* @param array $field
|
584 |
+
* @param string $name
|
585 |
+
* @param string $value
|
586 |
+
*
|
587 |
+
* @return string
|
588 |
+
*/
|
589 |
+
public function select( $field, $name, $value ) {
|
590 |
+
$table = sprintf( '<select id="%1$s" name="%2$s" class="regular-text">', $field['id'], $name );
|
591 |
+
foreach ( $field['options'] as $key => $label ) {
|
592 |
+
$selected = ( $value == $key ) ? 'selected="selected"' : '';
|
593 |
+
$table .= '<option value="' . $key . '" ' . $selected . '>' . $label . '</option>';
|
594 |
+
}
|
595 |
+
$table .= "</select>";
|
596 |
+
|
597 |
+
return $table;
|
598 |
+
}
|
599 |
+
|
600 |
+
/**
|
601 |
+
* Get available image sizes
|
602 |
+
*
|
603 |
+
* @param $field
|
604 |
+
* @param $name
|
605 |
+
* @param $value
|
606 |
+
*
|
607 |
+
* @return string
|
608 |
+
*/
|
609 |
+
public function image_sizes( $field, $name, $value ) {
|
610 |
+
|
611 |
+
global $_wp_additional_image_sizes;
|
612 |
+
|
613 |
+
$sizes = array();
|
614 |
+
|
615 |
+
foreach ( get_intermediate_image_sizes() as $_size ) {
|
616 |
+
if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
|
617 |
+
|
618 |
+
$width = get_option( "{$_size}_size_w" );
|
619 |
+
$height = get_option( "{$_size}_size_h" );
|
620 |
+
$crop = (bool) get_option( "{$_size}_crop" ) ? 'hard' : 'soft';
|
621 |
+
|
622 |
+
$sizes[ $_size ] = "{$_size} - {$width}x{$height} ($crop crop)";
|
623 |
+
|
624 |
+
} elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
|
625 |
+
|
626 |
+
$width = $_wp_additional_image_sizes[ $_size ]['width'];
|
627 |
+
$height = $_wp_additional_image_sizes[ $_size ]['height'];
|
628 |
+
$crop = $_wp_additional_image_sizes[ $_size ]['crop'] ? 'hard' : 'soft';
|
629 |
+
|
630 |
+
$sizes[ $_size ] = "{$_size} - {$width}x{$height} ($crop crop)";
|
631 |
+
}
|
632 |
+
}
|
633 |
+
|
634 |
+
$sizes = array_merge( $sizes, array( 'full' => 'original uploaded image' ) );
|
635 |
+
|
636 |
+
$table = '<select name="' . $name . '" id="' . $field['id'] . '" class="regular-text select2">';
|
637 |
+
foreach ( $sizes as $key => $option ) {
|
638 |
+
$selected = ( $value == $key ) ? ' selected="selected"' : '';
|
639 |
+
$table .= '<option value="' . $key . '" ' . $selected . '>' . $option . '</option>';
|
640 |
+
}
|
641 |
+
$table .= '</select>';
|
642 |
+
|
643 |
+
return $table;
|
644 |
+
}
|
645 |
+
|
646 |
+
/**
|
647 |
+
* wp_editor input field
|
648 |
+
*
|
649 |
+
* @param array $field
|
650 |
+
* @param string $name
|
651 |
+
* @param string $value
|
652 |
+
*
|
653 |
+
* @return string
|
654 |
+
*/
|
655 |
+
public function wp_editor( $field, $name, $value ) {
|
656 |
+
ob_start();
|
657 |
+
echo "<div class='sp-wp-editor-container'>";
|
658 |
+
wp_editor( $value, $field['id'], array(
|
659 |
+
'textarea_name' => $name,
|
660 |
+
'tinymce' => false,
|
661 |
+
'media_buttons' => false,
|
662 |
+
'textarea_rows' => isset( $field['rows'] ) ? $field['rows'] : 6,
|
663 |
+
'quicktags' => array( "buttons" => "strong,em,link,img,ul,li,ol" ),
|
664 |
+
) );
|
665 |
+
echo "</div>";
|
666 |
+
|
667 |
+
return ob_get_clean();
|
668 |
+
}
|
669 |
+
}
|
widgets/widget-carousel_slider.php → classes/Widget/CarouselSliderWidget.php
RENAMED
@@ -1,10 +1,66 @@
|
|
1 |
<?php
|
2 |
-
// If this file is called directly, abort.
|
3 |
-
if ( ! defined( 'WPINC' ) ) {
|
4 |
-
die;
|
5 |
-
}
|
6 |
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
/**
|
10 |
* Sets up the widgets name etc
|
@@ -25,8 +81,7 @@ class Carousel_Slider_Widget extends WP_Widget {
|
|
25 |
* @param array $instance The settings for the particular instance of the widget.
|
26 |
*/
|
27 |
public function widget( $args, $instance ) {
|
28 |
-
|
29 |
-
$title = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : null;
|
30 |
$carousel_id = isset( $instance['carousel_id'] ) ? absint( $instance['carousel_id'] ) : 0;
|
31 |
|
32 |
if ( ! $carousel_id ) {
|
@@ -51,7 +106,7 @@ class Carousel_Slider_Widget extends WP_Widget {
|
|
51 |
* @return void
|
52 |
*/
|
53 |
public function form( $instance ) {
|
54 |
-
$carousels =
|
55 |
$carousel_id = ! empty( $instance['carousel_id'] ) ? absint( $instance['carousel_id'] ) : null;
|
56 |
$title = ! empty( $instance['title'] ) ? esc_attr( $instance['title'] ) : '';
|
57 |
|
@@ -63,11 +118,11 @@ class Carousel_Slider_Widget extends WP_Widget {
|
|
63 |
printf( '<p><label>%s</label>', __( 'Choose Slide', 'carousel-slider' ) );
|
64 |
printf( '<select class="widefat" name="%s">', $this->get_field_name( 'carousel_id' ) );
|
65 |
foreach ( $carousels as $carousel ) {
|
66 |
-
$selected = $carousel
|
67 |
printf(
|
68 |
'<option value="%1$d" %3$s>%2$s</option>',
|
69 |
-
$carousel
|
70 |
-
$carousel
|
71 |
$selected
|
72 |
);
|
73 |
}
|
@@ -82,32 +137,6 @@ class Carousel_Slider_Widget extends WP_Widget {
|
|
82 |
}
|
83 |
}
|
84 |
|
85 |
-
/**
|
86 |
-
* Get the list of carousel sliders
|
87 |
-
*
|
88 |
-
* @return array
|
89 |
-
*/
|
90 |
-
private function carousels_list() {
|
91 |
-
$carousels = get_posts( array(
|
92 |
-
'post_type' => 'carousels',
|
93 |
-
'post_status' => 'publish',
|
94 |
-
'posts_per_page' => - 1,
|
95 |
-
'orderby' => 'date',
|
96 |
-
'order' => 'DESC',
|
97 |
-
) );
|
98 |
-
|
99 |
-
if ( count( $carousels ) < 1 ) {
|
100 |
-
return array();
|
101 |
-
}
|
102 |
-
|
103 |
-
return array_map( function ( $carousel ) {
|
104 |
-
return (object) array(
|
105 |
-
'id' => absint( $carousel->ID ),
|
106 |
-
'title' => esc_html( $carousel->post_title ),
|
107 |
-
);
|
108 |
-
}, $carousels );
|
109 |
-
}
|
110 |
-
|
111 |
/**
|
112 |
* Processing widget options on save
|
113 |
*
|
@@ -122,10 +151,4 @@ class Carousel_Slider_Widget extends WP_Widget {
|
|
122 |
|
123 |
return $old_instance;
|
124 |
}
|
125 |
-
|
126 |
-
public static function register() {
|
127 |
-
register_widget( __CLASS__ );
|
128 |
-
}
|
129 |
}
|
130 |
-
|
131 |
-
add_action( 'widgets_init', array( 'Carousel_Slider_Widget', 'register' ) );
|
1 |
<?php
|
|
|
|
|
|
|
|
|
2 |
|
3 |
+
namespace CarouselSlider\Widget;
|
4 |
+
|
5 |
+
use WP_Widget;
|
6 |
+
|
7 |
+
defined( 'ABSPATH' ) || exit;
|
8 |
+
|
9 |
+
class CarouselSliderWidget extends WP_Widget {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* The instance of the class
|
13 |
+
*
|
14 |
+
* @var self
|
15 |
+
*/
|
16 |
+
protected static $instance;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Ensures only one instance of the class is loaded or can be loaded.
|
20 |
+
*
|
21 |
+
* @return self
|
22 |
+
*/
|
23 |
+
public static function init() {
|
24 |
+
if ( is_null( self::$instance ) ) {
|
25 |
+
self::$instance = new self();
|
26 |
+
|
27 |
+
add_action( 'widgets_init', [ self::$instance, 'register' ] );
|
28 |
+
}
|
29 |
+
|
30 |
+
return self::$instance;
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Register current class as widget
|
35 |
+
*/
|
36 |
+
public static function register() {
|
37 |
+
register_widget( __CLASS__ );
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Get the list of carousel sliders
|
42 |
+
*
|
43 |
+
* @return array
|
44 |
+
*/
|
45 |
+
private static function carousels_list(): array {
|
46 |
+
$posts = get_posts( [
|
47 |
+
'post_type' => 'carousels',
|
48 |
+
'post_status' => 'publish',
|
49 |
+
'posts_per_page' => 100,
|
50 |
+
'orderby' => 'date',
|
51 |
+
'order' => 'DESC',
|
52 |
+
] );
|
53 |
+
|
54 |
+
$items = [];
|
55 |
+
|
56 |
+
if ( count( $posts ) ) {
|
57 |
+
foreach ( $posts as $post ) {
|
58 |
+
$items[] = [ 'id' => $post->ID, 'title' => $post->post_title ];
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
return $items;
|
63 |
+
}
|
64 |
|
65 |
/**
|
66 |
* Sets up the widgets name etc
|
81 |
* @param array $instance The settings for the particular instance of the widget.
|
82 |
*/
|
83 |
public function widget( $args, $instance ) {
|
84 |
+
$title = isset( $instance['title'] ) ? esc_html( $instance['title'] ) : null;
|
|
|
85 |
$carousel_id = isset( $instance['carousel_id'] ) ? absint( $instance['carousel_id'] ) : 0;
|
86 |
|
87 |
if ( ! $carousel_id ) {
|
106 |
* @return void
|
107 |
*/
|
108 |
public function form( $instance ) {
|
109 |
+
$carousels = static::carousels_list();
|
110 |
$carousel_id = ! empty( $instance['carousel_id'] ) ? absint( $instance['carousel_id'] ) : null;
|
111 |
$title = ! empty( $instance['title'] ) ? esc_attr( $instance['title'] ) : '';
|
112 |
|
118 |
printf( '<p><label>%s</label>', __( 'Choose Slide', 'carousel-slider' ) );
|
119 |
printf( '<select class="widefat" name="%s">', $this->get_field_name( 'carousel_id' ) );
|
120 |
foreach ( $carousels as $carousel ) {
|
121 |
+
$selected = $carousel['id'] == $carousel_id ? 'selected="selected"' : '';
|
122 |
printf(
|
123 |
'<option value="%1$d" %3$s>%2$s</option>',
|
124 |
+
absint( $carousel['id'] ),
|
125 |
+
esc_html( $carousel['title'] ),
|
126 |
$selected
|
127 |
);
|
128 |
}
|
137 |
}
|
138 |
}
|
139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
/**
|
141 |
* Processing widget options on save
|
142 |
*
|
151 |
|
152 |
return $old_instance;
|
153 |
}
|
|
|
|
|
|
|
|
|
154 |
}
|
|
|
|
classes/i18n.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace CarouselSlider;
|
4 |
+
|
5 |
+
defined( 'ABSPATH' ) || exit;
|
6 |
+
|
7 |
+
class i18n {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* The instance of the class
|
11 |
+
*
|
12 |
+
* @var self
|
13 |
+
*/
|
14 |
+
protected static $instance;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Ensures only one instance of the class is loaded or can be loaded.
|
18 |
+
*
|
19 |
+
* @return self
|
20 |
+
*/
|
21 |
+
public static function init() {
|
22 |
+
if ( is_null( self::$instance ) ) {
|
23 |
+
self::$instance = new self();
|
24 |
+
|
25 |
+
add_action( 'init', [ self::$instance, 'load_plugin_textdomain' ] );
|
26 |
+
}
|
27 |
+
|
28 |
+
return self::$instance;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Load the plugin text domain for translation.
|
33 |
+
*
|
34 |
+
* @return void
|
35 |
+
*/
|
36 |
+
public function load_plugin_textdomain() {
|
37 |
+
$domain = CAROUSEL_SLIDER;
|
38 |
+
$lan_dir = CAROUSEL_SLIDER_PATH . '/languages/';
|
39 |
+
|
40 |
+
load_plugin_textdomain( $domain, false, $lan_dir );
|
41 |
+
}
|
42 |
+
}
|
dummy-data/carousel-slider.xml
DELETED
@@ -1,739 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8" ?>
|
2 |
-
|
3 |
-
<rss version="2.0"
|
4 |
-
xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/"
|
5 |
-
xmlns:content="http://purl.org/rss/1.0/modules/content/"
|
6 |
-
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
|
7 |
-
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
8 |
-
xmlns:wp="http://wordpress.org/export/1.2/"
|
9 |
-
>
|
10 |
-
|
11 |
-
<channel>
|
12 |
-
<title>WordPress</title>
|
13 |
-
<link>http://wordpress.dev</link>
|
14 |
-
<description>Just another WordPress site</description>
|
15 |
-
<pubDate>Thu, 12 Jan 2017 15:03:49 +0000</pubDate>
|
16 |
-
<language>en-US</language>
|
17 |
-
<wp:wxr_version>1.2</wp:wxr_version>
|
18 |
-
<wp:base_site_url>http://wordpress.dev</wp:base_site_url>
|
19 |
-
<wp:base_blog_url>http://wordpress.dev</wp:base_blog_url>
|
20 |
-
|
21 |
-
<wp:author><wp:author_id>1</wp:author_id><wp:author_login><![CDATA[sayful]]></wp:author_login><wp:author_email><![CDATA[sayful@gmail.com]]></wp:author_email><wp:author_display_name><![CDATA[sayful]]></wp:author_display_name><wp:author_first_name><![CDATA[]]></wp:author_first_name><wp:author_last_name><![CDATA[]]></wp:author_last_name></wp:author>
|
22 |
-
|
23 |
-
|
24 |
-
<generator>https://wordpress.org/?v=4.7.2-alpha-39883</generator>
|
25 |
-
|
26 |
-
<item>
|
27 |
-
<title>Image carousel example from URL</title>
|
28 |
-
<link>http://wordpress.dev/?carousels=image-carousel-from-url-example</link>
|
29 |
-
<pubDate>Thu, 12 Jan 2017 14:51:13 +0000</pubDate>
|
30 |
-
<dc:creator><![CDATA[sayful]]></dc:creator>
|
31 |
-
<guid isPermaLink="false">http://wordpress.dev/?post_type=carousels&p=1717</guid>
|
32 |
-
<description></description>
|
33 |
-
<content:encoded><![CDATA[]]></content:encoded>
|
34 |
-
<excerpt:encoded><![CDATA[]]></excerpt:encoded>
|
35 |
-
<wp:post_id>1717</wp:post_id>
|
36 |
-
<wp:post_date><![CDATA[2017-01-12 14:51:13]]></wp:post_date>
|
37 |
-
<wp:post_date_gmt><![CDATA[2017-01-12 14:51:13]]></wp:post_date_gmt>
|
38 |
-
<wp:comment_status><![CDATA[closed]]></wp:comment_status>
|
39 |
-
<wp:ping_status><![CDATA[closed]]></wp:ping_status>
|
40 |
-
<wp:post_name><![CDATA[image-carousel-from-url-example]]></wp:post_name>
|
41 |
-
<wp:status><![CDATA[publish]]></wp:status>
|
42 |
-
<wp:post_parent>0</wp:post_parent>
|
43 |
-
<wp:menu_order>0</wp:menu_order>
|
44 |
-
<wp:post_type><![CDATA[carousels]]></wp:post_type>
|
45 |
-
<wp:post_password><![CDATA[]]></wp:post_password>
|
46 |
-
<wp:is_sticky>0</wp:is_sticky>
|
47 |
-
<wp:postmeta>
|
48 |
-
<wp:meta_key><![CDATA[_edit_last]]></wp:meta_key>
|
49 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
50 |
-
</wp:postmeta>
|
51 |
-
<wp:postmeta>
|
52 |
-
<wp:meta_key><![CDATA[_slide_type]]></wp:meta_key>
|
53 |
-
<wp:meta_value><![CDATA[image-carousel-url]]></wp:meta_value>
|
54 |
-
</wp:postmeta>
|
55 |
-
<wp:postmeta>
|
56 |
-
<wp:meta_key><![CDATA[_wpdh_image_ids]]></wp:meta_key>
|
57 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
58 |
-
</wp:postmeta>
|
59 |
-
<wp:postmeta>
|
60 |
-
<wp:meta_key><![CDATA[_post_query_type]]></wp:meta_key>
|
61 |
-
<wp:meta_value><![CDATA[latest_posts]]></wp:meta_value>
|
62 |
-
</wp:postmeta>
|
63 |
-
<wp:postmeta>
|
64 |
-
<wp:meta_key><![CDATA[_post_date_after]]></wp:meta_key>
|
65 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
66 |
-
</wp:postmeta>
|
67 |
-
<wp:postmeta>
|
68 |
-
<wp:meta_key><![CDATA[_post_date_before]]></wp:meta_key>
|
69 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
70 |
-
</wp:postmeta>
|
71 |
-
<wp:postmeta>
|
72 |
-
<wp:meta_key><![CDATA[_posts_per_page]]></wp:meta_key>
|
73 |
-
<wp:meta_value><![CDATA[12]]></wp:meta_value>
|
74 |
-
</wp:postmeta>
|
75 |
-
<wp:postmeta>
|
76 |
-
<wp:meta_key><![CDATA[_post_order]]></wp:meta_key>
|
77 |
-
<wp:meta_value><![CDATA[DESC]]></wp:meta_value>
|
78 |
-
</wp:postmeta>
|
79 |
-
<wp:postmeta>
|
80 |
-
<wp:meta_key><![CDATA[_post_orderby]]></wp:meta_key>
|
81 |
-
<wp:meta_value><![CDATA[ID]]></wp:meta_value>
|
82 |
-
</wp:postmeta>
|
83 |
-
<wp:postmeta>
|
84 |
-
<wp:meta_key><![CDATA[_post_height]]></wp:meta_key>
|
85 |
-
<wp:meta_value><![CDATA[450]]></wp:meta_value>
|
86 |
-
</wp:postmeta>
|
87 |
-
<wp:postmeta>
|
88 |
-
<wp:meta_key><![CDATA[_video_url]]></wp:meta_key>
|
89 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
90 |
-
</wp:postmeta>
|
91 |
-
<wp:postmeta>
|
92 |
-
<wp:meta_key><![CDATA[_video_width]]></wp:meta_key>
|
93 |
-
<wp:meta_value><![CDATA[560]]></wp:meta_value>
|
94 |
-
</wp:postmeta>
|
95 |
-
<wp:postmeta>
|
96 |
-
<wp:meta_key><![CDATA[_video_height]]></wp:meta_key>
|
97 |
-
<wp:meta_value><![CDATA[315]]></wp:meta_value>
|
98 |
-
</wp:postmeta>
|
99 |
-
<wp:postmeta>
|
100 |
-
<wp:meta_key><![CDATA[_slide_by]]></wp:meta_key>
|
101 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
102 |
-
</wp:postmeta>
|
103 |
-
<wp:postmeta>
|
104 |
-
<wp:meta_key><![CDATA[_margin_right]]></wp:meta_key>
|
105 |
-
<wp:meta_value><![CDATA[10]]></wp:meta_value>
|
106 |
-
</wp:postmeta>
|
107 |
-
<wp:postmeta>
|
108 |
-
<wp:meta_key><![CDATA[_inifnity_loop]]></wp:meta_key>
|
109 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
110 |
-
</wp:postmeta>
|
111 |
-
<wp:postmeta>
|
112 |
-
<wp:meta_key><![CDATA[_lazy_load_image]]></wp:meta_key>
|
113 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
114 |
-
</wp:postmeta>
|
115 |
-
<wp:postmeta>
|
116 |
-
<wp:meta_key><![CDATA[_show_attachment_title]]></wp:meta_key>
|
117 |
-
<wp:meta_value><![CDATA[off]]></wp:meta_value>
|
118 |
-
</wp:postmeta>
|
119 |
-
<wp:postmeta>
|
120 |
-
<wp:meta_key><![CDATA[_show_attachment_caption]]></wp:meta_key>
|
121 |
-
<wp:meta_value><![CDATA[off]]></wp:meta_value>
|
122 |
-
</wp:postmeta>
|
123 |
-
<wp:postmeta>
|
124 |
-
<wp:meta_key><![CDATA[_image_size]]></wp:meta_key>
|
125 |
-
<wp:meta_value><![CDATA[thumbnail]]></wp:meta_value>
|
126 |
-
</wp:postmeta>
|
127 |
-
<wp:postmeta>
|
128 |
-
<wp:meta_key><![CDATA[_image_target]]></wp:meta_key>
|
129 |
-
<wp:meta_value><![CDATA[_blank]]></wp:meta_value>
|
130 |
-
</wp:postmeta>
|
131 |
-
<wp:postmeta>
|
132 |
-
<wp:meta_key><![CDATA[_nav_button]]></wp:meta_key>
|
133 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
134 |
-
</wp:postmeta>
|
135 |
-
<wp:postmeta>
|
136 |
-
<wp:meta_key><![CDATA[_dot_nav]]></wp:meta_key>
|
137 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
138 |
-
</wp:postmeta>
|
139 |
-
<wp:postmeta>
|
140 |
-
<wp:meta_key><![CDATA[_nav_color]]></wp:meta_key>
|
141 |
-
<wp:meta_value><![CDATA[#9e9e9e]]></wp:meta_value>
|
142 |
-
</wp:postmeta>
|
143 |
-
<wp:postmeta>
|
144 |
-
<wp:meta_key><![CDATA[_nav_active_color]]></wp:meta_key>
|
145 |
-
<wp:meta_value><![CDATA[#4caf50]]></wp:meta_value>
|
146 |
-
</wp:postmeta>
|
147 |
-
<wp:postmeta>
|
148 |
-
<wp:meta_key><![CDATA[_autoplay]]></wp:meta_key>
|
149 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
150 |
-
</wp:postmeta>
|
151 |
-
<wp:postmeta>
|
152 |
-
<wp:meta_key><![CDATA[_autoplay_timeout]]></wp:meta_key>
|
153 |
-
<wp:meta_value><![CDATA[5000]]></wp:meta_value>
|
154 |
-
</wp:postmeta>
|
155 |
-
<wp:postmeta>
|
156 |
-
<wp:meta_key><![CDATA[_autoplay_speed]]></wp:meta_key>
|
157 |
-
<wp:meta_value><![CDATA[500]]></wp:meta_value>
|
158 |
-
</wp:postmeta>
|
159 |
-
<wp:postmeta>
|
160 |
-
<wp:meta_key><![CDATA[_autoplay_pause]]></wp:meta_key>
|
161 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
162 |
-
</wp:postmeta>
|
163 |
-
<wp:postmeta>
|
164 |
-
<wp:meta_key><![CDATA[_items]]></wp:meta_key>
|
165 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
166 |
-
</wp:postmeta>
|
167 |
-
<wp:postmeta>
|
168 |
-
<wp:meta_key><![CDATA[_items_desktop]]></wp:meta_key>
|
169 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
170 |
-
</wp:postmeta>
|
171 |
-
<wp:postmeta>
|
172 |
-
<wp:meta_key><![CDATA[_items_small_desktop]]></wp:meta_key>
|
173 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
174 |
-
</wp:postmeta>
|
175 |
-
<wp:postmeta>
|
176 |
-
<wp:meta_key><![CDATA[_items_portrait_tablet]]></wp:meta_key>
|
177 |
-
<wp:meta_value><![CDATA[3]]></wp:meta_value>
|
178 |
-
</wp:postmeta>
|
179 |
-
<wp:postmeta>
|
180 |
-
<wp:meta_key><![CDATA[_items_small_portrait_tablet]]></wp:meta_key>
|
181 |
-
<wp:meta_value><![CDATA[2]]></wp:meta_value>
|
182 |
-
</wp:postmeta>
|
183 |
-
<wp:postmeta>
|
184 |
-
<wp:meta_key><![CDATA[_items_portrait_mobile]]></wp:meta_key>
|
185 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
186 |
-
</wp:postmeta>
|
187 |
-
<wp:postmeta>
|
188 |
-
<wp:meta_key><![CDATA[_post_categories]]></wp:meta_key>
|
189 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
190 |
-
</wp:postmeta>
|
191 |
-
<wp:postmeta>
|
192 |
-
<wp:meta_key><![CDATA[_post_tags]]></wp:meta_key>
|
193 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
194 |
-
</wp:postmeta>
|
195 |
-
<wp:postmeta>
|
196 |
-
<wp:meta_key><![CDATA[_post_in]]></wp:meta_key>
|
197 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
198 |
-
</wp:postmeta>
|
199 |
-
<wp:postmeta>
|
200 |
-
<wp:meta_key><![CDATA[_images_urls]]></wp:meta_key>
|
201 |
-
<wp:meta_value><![CDATA[a:9:{i:0;a:5:{s:3:"url";s:39:"http://lorempixel.com/400/400/sports/1/";s:5:"title";s:27:"Lorempixel Sports Image one";s:7:"caption";s:27:"Lorempixel Sports Image one";s:3:"alt";s:27:"Lorempixel Sports Image one";s:8:"link_url";s:39:"http://lorempixel.com/400/400/sports/1/";}i:1;a:5:{s:3:"url";s:36:"http://lorempixel.com/400/400/city/2";s:5:"title";s:27:"Lorempixel Sports Image two";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:37:"http://lorempixel.com/400/400/city/1/";}i:2;a:5:{s:3:"url";s:38:"http://lorempixel.com/400/400/sports/3";s:5:"title";s:29:"Lorempixel Sports Image three";s:7:"caption";s:29:"Lorempixel Sports Image three";s:3:"alt";s:29:"Lorempixel Sports Image three";s:8:"link_url";s:0:"";}i:3;a:5:{s:3:"url";s:39:"http://lorempixel.com/400/400/sports/1/";s:5:"title";s:0:"";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:0:"";}i:4;a:5:{s:3:"url";s:38:"http://lorempixel.com/400/400/sports/2";s:5:"title";s:0:"";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:0:"";}i:5;a:5:{s:3:"url";s:38:"http://lorempixel.com/400/400/sports/3";s:5:"title";s:0:"";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:0:"";}i:6;a:5:{s:3:"url";s:39:"http://lorempixel.com/400/400/sports/1/";s:5:"title";s:0:"";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:0:"";}i:7;a:5:{s:3:"url";s:38:"http://lorempixel.com/400/400/sports/2";s:5:"title";s:0:"";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:0:"";}i:8;a:5:{s:3:"url";s:38:"http://lorempixel.com/400/400/sports/3";s:5:"title";s:0:"";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:0:"";}}]]></wp:meta_value>
|
202 |
-
</wp:postmeta>
|
203 |
-
</item>
|
204 |
-
<item>
|
205 |
-
<title>Post Carousel Example</title>
|
206 |
-
<link>http://wordpress.dev/?carousels=post-carousel-example</link>
|
207 |
-
<pubDate>Thu, 12 Jan 2017 15:00:08 +0000</pubDate>
|
208 |
-
<dc:creator><![CDATA[sayful]]></dc:creator>
|
209 |
-
<guid isPermaLink="false">http://wordpress.dev/?post_type=carousels&p=1720</guid>
|
210 |
-
<description></description>
|
211 |
-
<content:encoded><![CDATA[]]></content:encoded>
|
212 |
-
<excerpt:encoded><![CDATA[]]></excerpt:encoded>
|
213 |
-
<wp:post_id>1720</wp:post_id>
|
214 |
-
<wp:post_date><![CDATA[2017-01-12 15:00:08]]></wp:post_date>
|
215 |
-
<wp:post_date_gmt><![CDATA[2017-01-12 15:00:08]]></wp:post_date_gmt>
|
216 |
-
<wp:comment_status><![CDATA[closed]]></wp:comment_status>
|
217 |
-
<wp:ping_status><![CDATA[closed]]></wp:ping_status>
|
218 |
-
<wp:post_name><![CDATA[post-carousel-example]]></wp:post_name>
|
219 |
-
<wp:status><![CDATA[publish]]></wp:status>
|
220 |
-
<wp:post_parent>0</wp:post_parent>
|
221 |
-
<wp:menu_order>0</wp:menu_order>
|
222 |
-
<wp:post_type><![CDATA[carousels]]></wp:post_type>
|
223 |
-
<wp:post_password><![CDATA[]]></wp:post_password>
|
224 |
-
<wp:is_sticky>0</wp:is_sticky>
|
225 |
-
<wp:postmeta>
|
226 |
-
<wp:meta_key><![CDATA[_edit_last]]></wp:meta_key>
|
227 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
228 |
-
</wp:postmeta>
|
229 |
-
<wp:postmeta>
|
230 |
-
<wp:meta_key><![CDATA[_slide_type]]></wp:meta_key>
|
231 |
-
<wp:meta_value><![CDATA[post-carousel]]></wp:meta_value>
|
232 |
-
</wp:postmeta>
|
233 |
-
<wp:postmeta>
|
234 |
-
<wp:meta_key><![CDATA[_wpdh_image_ids]]></wp:meta_key>
|
235 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
236 |
-
</wp:postmeta>
|
237 |
-
<wp:postmeta>
|
238 |
-
<wp:meta_key><![CDATA[_post_query_type]]></wp:meta_key>
|
239 |
-
<wp:meta_value><![CDATA[latest_posts]]></wp:meta_value>
|
240 |
-
</wp:postmeta>
|
241 |
-
<wp:postmeta>
|
242 |
-
<wp:meta_key><![CDATA[_post_date_after]]></wp:meta_key>
|
243 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
244 |
-
</wp:postmeta>
|
245 |
-
<wp:postmeta>
|
246 |
-
<wp:meta_key><![CDATA[_post_date_before]]></wp:meta_key>
|
247 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
248 |
-
</wp:postmeta>
|
249 |
-
<wp:postmeta>
|
250 |
-
<wp:meta_key><![CDATA[_posts_per_page]]></wp:meta_key>
|
251 |
-
<wp:meta_value><![CDATA[20]]></wp:meta_value>
|
252 |
-
</wp:postmeta>
|
253 |
-
<wp:postmeta>
|
254 |
-
<wp:meta_key><![CDATA[_post_order]]></wp:meta_key>
|
255 |
-
<wp:meta_value><![CDATA[DESC]]></wp:meta_value>
|
256 |
-
</wp:postmeta>
|
257 |
-
<wp:postmeta>
|
258 |
-
<wp:meta_key><![CDATA[_post_orderby]]></wp:meta_key>
|
259 |
-
<wp:meta_value><![CDATA[ID]]></wp:meta_value>
|
260 |
-
</wp:postmeta>
|
261 |
-
<wp:postmeta>
|
262 |
-
<wp:meta_key><![CDATA[_post_height]]></wp:meta_key>
|
263 |
-
<wp:meta_value><![CDATA[500]]></wp:meta_value>
|
264 |
-
</wp:postmeta>
|
265 |
-
<wp:postmeta>
|
266 |
-
<wp:meta_key><![CDATA[_video_url]]></wp:meta_key>
|
267 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
268 |
-
</wp:postmeta>
|
269 |
-
<wp:postmeta>
|
270 |
-
<wp:meta_key><![CDATA[_video_width]]></wp:meta_key>
|
271 |
-
<wp:meta_value><![CDATA[560]]></wp:meta_value>
|
272 |
-
</wp:postmeta>
|
273 |
-
<wp:postmeta>
|
274 |
-
<wp:meta_key><![CDATA[_video_height]]></wp:meta_key>
|
275 |
-
<wp:meta_value><![CDATA[315]]></wp:meta_value>
|
276 |
-
</wp:postmeta>
|
277 |
-
<wp:postmeta>
|
278 |
-
<wp:meta_key><![CDATA[_slide_by]]></wp:meta_key>
|
279 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
280 |
-
</wp:postmeta>
|
281 |
-
<wp:postmeta>
|
282 |
-
<wp:meta_key><![CDATA[_margin_right]]></wp:meta_key>
|
283 |
-
<wp:meta_value><![CDATA[10]]></wp:meta_value>
|
284 |
-
</wp:postmeta>
|
285 |
-
<wp:postmeta>
|
286 |
-
<wp:meta_key><![CDATA[_inifnity_loop]]></wp:meta_key>
|
287 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
288 |
-
</wp:postmeta>
|
289 |
-
<wp:postmeta>
|
290 |
-
<wp:meta_key><![CDATA[_lazy_load_image]]></wp:meta_key>
|
291 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
292 |
-
</wp:postmeta>
|
293 |
-
<wp:postmeta>
|
294 |
-
<wp:meta_key><![CDATA[_show_attachment_title]]></wp:meta_key>
|
295 |
-
<wp:meta_value><![CDATA[off]]></wp:meta_value>
|
296 |
-
</wp:postmeta>
|
297 |
-
<wp:postmeta>
|
298 |
-
<wp:meta_key><![CDATA[_show_attachment_caption]]></wp:meta_key>
|
299 |
-
<wp:meta_value><![CDATA[off]]></wp:meta_value>
|
300 |
-
</wp:postmeta>
|
301 |
-
<wp:postmeta>
|
302 |
-
<wp:meta_key><![CDATA[_image_size]]></wp:meta_key>
|
303 |
-
<wp:meta_value><![CDATA[medium]]></wp:meta_value>
|
304 |
-
</wp:postmeta>
|
305 |
-
<wp:postmeta>
|
306 |
-
<wp:meta_key><![CDATA[_image_target]]></wp:meta_key>
|
307 |
-
<wp:meta_value><![CDATA[_self]]></wp:meta_value>
|
308 |
-
</wp:postmeta>
|
309 |
-
<wp:postmeta>
|
310 |
-
<wp:meta_key><![CDATA[_nav_button]]></wp:meta_key>
|
311 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
312 |
-
</wp:postmeta>
|
313 |
-
<wp:postmeta>
|
314 |
-
<wp:meta_key><![CDATA[_dot_nav]]></wp:meta_key>
|
315 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
316 |
-
</wp:postmeta>
|
317 |
-
<wp:postmeta>
|
318 |
-
<wp:meta_key><![CDATA[_nav_color]]></wp:meta_key>
|
319 |
-
<wp:meta_value><![CDATA[#b7b7b7]]></wp:meta_value>
|
320 |
-
</wp:postmeta>
|
321 |
-
<wp:postmeta>
|
322 |
-
<wp:meta_key><![CDATA[_nav_active_color]]></wp:meta_key>
|
323 |
-
<wp:meta_value><![CDATA[#4caf50]]></wp:meta_value>
|
324 |
-
</wp:postmeta>
|
325 |
-
<wp:postmeta>
|
326 |
-
<wp:meta_key><![CDATA[_autoplay]]></wp:meta_key>
|
327 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
328 |
-
</wp:postmeta>
|
329 |
-
<wp:postmeta>
|
330 |
-
<wp:meta_key><![CDATA[_autoplay_timeout]]></wp:meta_key>
|
331 |
-
<wp:meta_value><![CDATA[5000]]></wp:meta_value>
|
332 |
-
</wp:postmeta>
|
333 |
-
<wp:postmeta>
|
334 |
-
<wp:meta_key><![CDATA[_autoplay_speed]]></wp:meta_key>
|
335 |
-
<wp:meta_value><![CDATA[500]]></wp:meta_value>
|
336 |
-
</wp:postmeta>
|
337 |
-
<wp:postmeta>
|
338 |
-
<wp:meta_key><![CDATA[_autoplay_pause]]></wp:meta_key>
|
339 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
340 |
-
</wp:postmeta>
|
341 |
-
<wp:postmeta>
|
342 |
-
<wp:meta_key><![CDATA[_items]]></wp:meta_key>
|
343 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
344 |
-
</wp:postmeta>
|
345 |
-
<wp:postmeta>
|
346 |
-
<wp:meta_key><![CDATA[_items_desktop]]></wp:meta_key>
|
347 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
348 |
-
</wp:postmeta>
|
349 |
-
<wp:postmeta>
|
350 |
-
<wp:meta_key><![CDATA[_items_small_desktop]]></wp:meta_key>
|
351 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
352 |
-
</wp:postmeta>
|
353 |
-
<wp:postmeta>
|
354 |
-
<wp:meta_key><![CDATA[_items_portrait_tablet]]></wp:meta_key>
|
355 |
-
<wp:meta_value><![CDATA[3]]></wp:meta_value>
|
356 |
-
</wp:postmeta>
|
357 |
-
<wp:postmeta>
|
358 |
-
<wp:meta_key><![CDATA[_items_small_portrait_tablet]]></wp:meta_key>
|
359 |
-
<wp:meta_value><![CDATA[2]]></wp:meta_value>
|
360 |
-
</wp:postmeta>
|
361 |
-
<wp:postmeta>
|
362 |
-
<wp:meta_key><![CDATA[_items_portrait_mobile]]></wp:meta_key>
|
363 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
364 |
-
</wp:postmeta>
|
365 |
-
<wp:postmeta>
|
366 |
-
<wp:meta_key><![CDATA[_post_categories]]></wp:meta_key>
|
367 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
368 |
-
</wp:postmeta>
|
369 |
-
<wp:postmeta>
|
370 |
-
<wp:meta_key><![CDATA[_post_tags]]></wp:meta_key>
|
371 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
372 |
-
</wp:postmeta>
|
373 |
-
<wp:postmeta>
|
374 |
-
<wp:meta_key><![CDATA[_post_in]]></wp:meta_key>
|
375 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
376 |
-
</wp:postmeta>
|
377 |
-
<wp:postmeta>
|
378 |
-
<wp:meta_key><![CDATA[_images_urls]]></wp:meta_key>
|
379 |
-
<wp:meta_value><![CDATA[a:1:{i:0;a:5:{s:3:"url";s:0:"";s:5:"title";s:0:"";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:0:"";}}]]></wp:meta_value>
|
380 |
-
</wp:postmeta>
|
381 |
-
</item>
|
382 |
-
<item>
|
383 |
-
<title>Video Carousel Example</title>
|
384 |
-
<link>http://wordpress.dev/?carousels=video-carousel-example</link>
|
385 |
-
<pubDate>Thu, 12 Jan 2017 15:01:44 +0000</pubDate>
|
386 |
-
<dc:creator><![CDATA[sayful]]></dc:creator>
|
387 |
-
<guid isPermaLink="false">http://wordpress.dev/?post_type=carousels&p=1721</guid>
|
388 |
-
<description></description>
|
389 |
-
<content:encoded><![CDATA[]]></content:encoded>
|
390 |
-
<excerpt:encoded><![CDATA[]]></excerpt:encoded>
|
391 |
-
<wp:post_id>1721</wp:post_id>
|
392 |
-
<wp:post_date><![CDATA[2017-01-12 15:01:44]]></wp:post_date>
|
393 |
-
<wp:post_date_gmt><![CDATA[2017-01-12 15:01:44]]></wp:post_date_gmt>
|
394 |
-
<wp:comment_status><![CDATA[closed]]></wp:comment_status>
|
395 |
-
<wp:ping_status><![CDATA[closed]]></wp:ping_status>
|
396 |
-
<wp:post_name><![CDATA[video-carousel-example]]></wp:post_name>
|
397 |
-
<wp:status><![CDATA[publish]]></wp:status>
|
398 |
-
<wp:post_parent>0</wp:post_parent>
|
399 |
-
<wp:menu_order>0</wp:menu_order>
|
400 |
-
<wp:post_type><![CDATA[carousels]]></wp:post_type>
|
401 |
-
<wp:post_password><![CDATA[]]></wp:post_password>
|
402 |
-
<wp:is_sticky>0</wp:is_sticky>
|
403 |
-
<wp:postmeta>
|
404 |
-
<wp:meta_key><![CDATA[_edit_last]]></wp:meta_key>
|
405 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
406 |
-
</wp:postmeta>
|
407 |
-
<wp:postmeta>
|
408 |
-
<wp:meta_key><![CDATA[_slide_type]]></wp:meta_key>
|
409 |
-
<wp:meta_value><![CDATA[video-carousel]]></wp:meta_value>
|
410 |
-
</wp:postmeta>
|
411 |
-
<wp:postmeta>
|
412 |
-
<wp:meta_key><![CDATA[_wpdh_image_ids]]></wp:meta_key>
|
413 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
414 |
-
</wp:postmeta>
|
415 |
-
<wp:postmeta>
|
416 |
-
<wp:meta_key><![CDATA[_post_query_type]]></wp:meta_key>
|
417 |
-
<wp:meta_value><![CDATA[latest_posts]]></wp:meta_value>
|
418 |
-
</wp:postmeta>
|
419 |
-
<wp:postmeta>
|
420 |
-
<wp:meta_key><![CDATA[_post_date_after]]></wp:meta_key>
|
421 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
422 |
-
</wp:postmeta>
|
423 |
-
<wp:postmeta>
|
424 |
-
<wp:meta_key><![CDATA[_post_date_before]]></wp:meta_key>
|
425 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
426 |
-
</wp:postmeta>
|
427 |
-
<wp:postmeta>
|
428 |
-
<wp:meta_key><![CDATA[_posts_per_page]]></wp:meta_key>
|
429 |
-
<wp:meta_value><![CDATA[12]]></wp:meta_value>
|
430 |
-
</wp:postmeta>
|
431 |
-
<wp:postmeta>
|
432 |
-
<wp:meta_key><![CDATA[_post_order]]></wp:meta_key>
|
433 |
-
<wp:meta_value><![CDATA[DESC]]></wp:meta_value>
|
434 |
-
</wp:postmeta>
|
435 |
-
<wp:postmeta>
|
436 |
-
<wp:meta_key><![CDATA[_post_orderby]]></wp:meta_key>
|
437 |
-
<wp:meta_value><![CDATA[ID]]></wp:meta_value>
|
438 |
-
</wp:postmeta>
|
439 |
-
<wp:postmeta>
|
440 |
-
<wp:meta_key><![CDATA[_post_height]]></wp:meta_key>
|
441 |
-
<wp:meta_value><![CDATA[450]]></wp:meta_value>
|
442 |
-
</wp:postmeta>
|
443 |
-
<wp:postmeta>
|
444 |
-
<wp:meta_key><![CDATA[_video_url]]></wp:meta_key>
|
445 |
-
<wp:meta_value><![CDATA[https://www.youtube.com/watch?v=O4-EM32h7b4,https://www.youtube.com/watch?v=72IO4gzB8mU,https://vimeo.com/193773669,https://vimeo.com/193517656,https://www.youtube.com/watch?v=O4-EM32h7b4,https://www.youtube.com/watch?v=72IO4gzB8mU,https://vimeo.com/193773669,https://vimeo.com/193517656]]></wp:meta_value>
|
446 |
-
</wp:postmeta>
|
447 |
-
<wp:postmeta>
|
448 |
-
<wp:meta_key><![CDATA[_video_width]]></wp:meta_key>
|
449 |
-
<wp:meta_value><![CDATA[560]]></wp:meta_value>
|
450 |
-
</wp:postmeta>
|
451 |
-
<wp:postmeta>
|
452 |
-
<wp:meta_key><![CDATA[_video_height]]></wp:meta_key>
|
453 |
-
<wp:meta_value><![CDATA[315]]></wp:meta_value>
|
454 |
-
</wp:postmeta>
|
455 |
-
<wp:postmeta>
|
456 |
-
<wp:meta_key><![CDATA[_slide_by]]></wp:meta_key>
|
457 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
458 |
-
</wp:postmeta>
|
459 |
-
<wp:postmeta>
|
460 |
-
<wp:meta_key><![CDATA[_margin_right]]></wp:meta_key>
|
461 |
-
<wp:meta_value><![CDATA[10]]></wp:meta_value>
|
462 |
-
</wp:postmeta>
|
463 |
-
<wp:postmeta>
|
464 |
-
<wp:meta_key><![CDATA[_inifnity_loop]]></wp:meta_key>
|
465 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
466 |
-
</wp:postmeta>
|
467 |
-
<wp:postmeta>
|
468 |
-
<wp:meta_key><![CDATA[_lazy_load_image]]></wp:meta_key>
|
469 |
-
<wp:meta_value><![CDATA[off]]></wp:meta_value>
|
470 |
-
</wp:postmeta>
|
471 |
-
<wp:postmeta>
|
472 |
-
<wp:meta_key><![CDATA[_show_attachment_title]]></wp:meta_key>
|
473 |
-
<wp:meta_value><![CDATA[off]]></wp:meta_value>
|
474 |
-
</wp:postmeta>
|
475 |
-
<wp:postmeta>
|
476 |
-
<wp:meta_key><![CDATA[_show_attachment_caption]]></wp:meta_key>
|
477 |
-
<wp:meta_value><![CDATA[off]]></wp:meta_value>
|
478 |
-
</wp:postmeta>
|
479 |
-
<wp:postmeta>
|
480 |
-
<wp:meta_key><![CDATA[_image_size]]></wp:meta_key>
|
481 |
-
<wp:meta_value><![CDATA[thumbnail]]></wp:meta_value>
|
482 |
-
</wp:postmeta>
|
483 |
-
<wp:postmeta>
|
484 |
-
<wp:meta_key><![CDATA[_image_target]]></wp:meta_key>
|
485 |
-
<wp:meta_value><![CDATA[_self]]></wp:meta_value>
|
486 |
-
</wp:postmeta>
|
487 |
-
<wp:postmeta>
|
488 |
-
<wp:meta_key><![CDATA[_nav_button]]></wp:meta_key>
|
489 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
490 |
-
</wp:postmeta>
|
491 |
-
<wp:postmeta>
|
492 |
-
<wp:meta_key><![CDATA[_dot_nav]]></wp:meta_key>
|
493 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
494 |
-
</wp:postmeta>
|
495 |
-
<wp:postmeta>
|
496 |
-
<wp:meta_key><![CDATA[_nav_color]]></wp:meta_key>
|
497 |
-
<wp:meta_value><![CDATA[#f1f1f1]]></wp:meta_value>
|
498 |
-
</wp:postmeta>
|
499 |
-
<wp:postmeta>
|
500 |
-
<wp:meta_key><![CDATA[_nav_active_color]]></wp:meta_key>
|
501 |
-
<wp:meta_value><![CDATA[#4caf50]]></wp:meta_value>
|
502 |
-
</wp:postmeta>
|
503 |
-
<wp:postmeta>
|
504 |
-
<wp:meta_key><![CDATA[_autoplay]]></wp:meta_key>
|
505 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
506 |
-
</wp:postmeta>
|
507 |
-
<wp:postmeta>
|
508 |
-
<wp:meta_key><![CDATA[_autoplay_timeout]]></wp:meta_key>
|
509 |
-
<wp:meta_value><![CDATA[5000]]></wp:meta_value>
|
510 |
-
</wp:postmeta>
|
511 |
-
<wp:postmeta>
|
512 |
-
<wp:meta_key><![CDATA[_autoplay_speed]]></wp:meta_key>
|
513 |
-
<wp:meta_value><![CDATA[500]]></wp:meta_value>
|
514 |
-
</wp:postmeta>
|
515 |
-
<wp:postmeta>
|
516 |
-
<wp:meta_key><![CDATA[_autoplay_pause]]></wp:meta_key>
|
517 |
-
<wp:meta_value><![CDATA[off]]></wp:meta_value>
|
518 |
-
</wp:postmeta>
|
519 |
-
<wp:postmeta>
|
520 |
-
<wp:meta_key><![CDATA[_items]]></wp:meta_key>
|
521 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
522 |
-
</wp:postmeta>
|
523 |
-
<wp:postmeta>
|
524 |
-
<wp:meta_key><![CDATA[_items_desktop]]></wp:meta_key>
|
525 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
526 |
-
</wp:postmeta>
|
527 |
-
<wp:postmeta>
|
528 |
-
<wp:meta_key><![CDATA[_items_small_desktop]]></wp:meta_key>
|
529 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
530 |
-
</wp:postmeta>
|
531 |
-
<wp:postmeta>
|
532 |
-
<wp:meta_key><![CDATA[_items_portrait_tablet]]></wp:meta_key>
|
533 |
-
<wp:meta_value><![CDATA[3]]></wp:meta_value>
|
534 |
-
</wp:postmeta>
|
535 |
-
<wp:postmeta>
|
536 |
-
<wp:meta_key><![CDATA[_items_small_portrait_tablet]]></wp:meta_key>
|
537 |
-
<wp:meta_value><![CDATA[2]]></wp:meta_value>
|
538 |
-
</wp:postmeta>
|
539 |
-
<wp:postmeta>
|
540 |
-
<wp:meta_key><![CDATA[_items_portrait_mobile]]></wp:meta_key>
|
541 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
542 |
-
</wp:postmeta>
|
543 |
-
<wp:postmeta>
|
544 |
-
<wp:meta_key><![CDATA[_post_categories]]></wp:meta_key>
|
545 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
546 |
-
</wp:postmeta>
|
547 |
-
<wp:postmeta>
|
548 |
-
<wp:meta_key><![CDATA[_post_tags]]></wp:meta_key>
|
549 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
550 |
-
</wp:postmeta>
|
551 |
-
<wp:postmeta>
|
552 |
-
<wp:meta_key><![CDATA[_post_in]]></wp:meta_key>
|
553 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
554 |
-
</wp:postmeta>
|
555 |
-
<wp:postmeta>
|
556 |
-
<wp:meta_key><![CDATA[_images_urls]]></wp:meta_key>
|
557 |
-
<wp:meta_value><![CDATA[a:1:{i:0;a:5:{s:3:"url";s:0:"";s:5:"title";s:0:"";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:0:"";}}]]></wp:meta_value>
|
558 |
-
</wp:postmeta>
|
559 |
-
</item>
|
560 |
-
<item>
|
561 |
-
<title>Image carousel from media gallery</title>
|
562 |
-
<link>http://wordpress.dev/?carousels=image-carousel-from-media-gallery</link>
|
563 |
-
<pubDate>Thu, 12 Jan 2017 15:03:10 +0000</pubDate>
|
564 |
-
<dc:creator><![CDATA[sayful]]></dc:creator>
|
565 |
-
<guid isPermaLink="false">http://wordpress.dev/?post_type=carousels&p=1722</guid>
|
566 |
-
<description></description>
|
567 |
-
<content:encoded><![CDATA[]]></content:encoded>
|
568 |
-
<excerpt:encoded><![CDATA[]]></excerpt:encoded>
|
569 |
-
<wp:post_id>1722</wp:post_id>
|
570 |
-
<wp:post_date><![CDATA[2017-01-12 15:03:10]]></wp:post_date>
|
571 |
-
<wp:post_date_gmt><![CDATA[2017-01-12 15:03:10]]></wp:post_date_gmt>
|
572 |
-
<wp:comment_status><![CDATA[closed]]></wp:comment_status>
|
573 |
-
<wp:ping_status><![CDATA[closed]]></wp:ping_status>
|
574 |
-
<wp:post_name><![CDATA[image-carousel-from-media-gallery]]></wp:post_name>
|
575 |
-
<wp:status><![CDATA[publish]]></wp:status>
|
576 |
-
<wp:post_parent>0</wp:post_parent>
|
577 |
-
<wp:menu_order>0</wp:menu_order>
|
578 |
-
<wp:post_type><![CDATA[carousels]]></wp:post_type>
|
579 |
-
<wp:post_password><![CDATA[]]></wp:post_password>
|
580 |
-
<wp:is_sticky>0</wp:is_sticky>
|
581 |
-
<wp:postmeta>
|
582 |
-
<wp:meta_key><![CDATA[_edit_last]]></wp:meta_key>
|
583 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
584 |
-
</wp:postmeta>
|
585 |
-
<wp:postmeta>
|
586 |
-
<wp:meta_key><![CDATA[_wpdh_image_ids]]></wp:meta_key>
|
587 |
-
<wp:meta_value><![CDATA[1710,1692,1691,1687,1686,1628,1027,1022,1045,]]></wp:meta_value>
|
588 |
-
</wp:postmeta>
|
589 |
-
<wp:postmeta>
|
590 |
-
<wp:meta_key><![CDATA[_slide_type]]></wp:meta_key>
|
591 |
-
<wp:meta_value><![CDATA[image-carousel]]></wp:meta_value>
|
592 |
-
</wp:postmeta>
|
593 |
-
<wp:postmeta>
|
594 |
-
<wp:meta_key><![CDATA[_post_query_type]]></wp:meta_key>
|
595 |
-
<wp:meta_value><![CDATA[latest_posts]]></wp:meta_value>
|
596 |
-
</wp:postmeta>
|
597 |
-
<wp:postmeta>
|
598 |
-
<wp:meta_key><![CDATA[_post_date_after]]></wp:meta_key>
|
599 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
600 |
-
</wp:postmeta>
|
601 |
-
<wp:postmeta>
|
602 |
-
<wp:meta_key><![CDATA[_post_date_before]]></wp:meta_key>
|
603 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
604 |
-
</wp:postmeta>
|
605 |
-
<wp:postmeta>
|
606 |
-
<wp:meta_key><![CDATA[_posts_per_page]]></wp:meta_key>
|
607 |
-
<wp:meta_value><![CDATA[12]]></wp:meta_value>
|
608 |
-
</wp:postmeta>
|
609 |
-
<wp:postmeta>
|
610 |
-
<wp:meta_key><![CDATA[_post_order]]></wp:meta_key>
|
611 |
-
<wp:meta_value><![CDATA[DESC]]></wp:meta_value>
|
612 |
-
</wp:postmeta>
|
613 |
-
<wp:postmeta>
|
614 |
-
<wp:meta_key><![CDATA[_post_orderby]]></wp:meta_key>
|
615 |
-
<wp:meta_value><![CDATA[ID]]></wp:meta_value>
|
616 |
-
</wp:postmeta>
|
617 |
-
<wp:postmeta>
|
618 |
-
<wp:meta_key><![CDATA[_post_height]]></wp:meta_key>
|
619 |
-
<wp:meta_value><![CDATA[450]]></wp:meta_value>
|
620 |
-
</wp:postmeta>
|
621 |
-
<wp:postmeta>
|
622 |
-
<wp:meta_key><![CDATA[_video_url]]></wp:meta_key>
|
623 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
624 |
-
</wp:postmeta>
|
625 |
-
<wp:postmeta>
|
626 |
-
<wp:meta_key><![CDATA[_video_width]]></wp:meta_key>
|
627 |
-
<wp:meta_value><![CDATA[560]]></wp:meta_value>
|
628 |
-
</wp:postmeta>
|
629 |
-
<wp:postmeta>
|
630 |
-
<wp:meta_key><![CDATA[_video_height]]></wp:meta_key>
|
631 |
-
<wp:meta_value><![CDATA[315]]></wp:meta_value>
|
632 |
-
</wp:postmeta>
|
633 |
-
<wp:postmeta>
|
634 |
-
<wp:meta_key><![CDATA[_slide_by]]></wp:meta_key>
|
635 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
636 |
-
</wp:postmeta>
|
637 |
-
<wp:postmeta>
|
638 |
-
<wp:meta_key><![CDATA[_margin_right]]></wp:meta_key>
|
639 |
-
<wp:meta_value><![CDATA[10]]></wp:meta_value>
|
640 |
-
</wp:postmeta>
|
641 |
-
<wp:postmeta>
|
642 |
-
<wp:meta_key><![CDATA[_inifnity_loop]]></wp:meta_key>
|
643 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
644 |
-
</wp:postmeta>
|
645 |
-
<wp:postmeta>
|
646 |
-
<wp:meta_key><![CDATA[_lazy_load_image]]></wp:meta_key>
|
647 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
648 |
-
</wp:postmeta>
|
649 |
-
<wp:postmeta>
|
650 |
-
<wp:meta_key><![CDATA[_show_attachment_title]]></wp:meta_key>
|
651 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
652 |
-
</wp:postmeta>
|
653 |
-
<wp:postmeta>
|
654 |
-
<wp:meta_key><![CDATA[_show_attachment_caption]]></wp:meta_key>
|
655 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
656 |
-
</wp:postmeta>
|
657 |
-
<wp:postmeta>
|
658 |
-
<wp:meta_key><![CDATA[_image_size]]></wp:meta_key>
|
659 |
-
<wp:meta_value><![CDATA[medium]]></wp:meta_value>
|
660 |
-
</wp:postmeta>
|
661 |
-
<wp:postmeta>
|
662 |
-
<wp:meta_key><![CDATA[_image_target]]></wp:meta_key>
|
663 |
-
<wp:meta_value><![CDATA[_self]]></wp:meta_value>
|
664 |
-
</wp:postmeta>
|
665 |
-
<wp:postmeta>
|
666 |
-
<wp:meta_key><![CDATA[_nav_button]]></wp:meta_key>
|
667 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
668 |
-
</wp:postmeta>
|
669 |
-
<wp:postmeta>
|
670 |
-
<wp:meta_key><![CDATA[_dot_nav]]></wp:meta_key>
|
671 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
672 |
-
</wp:postmeta>
|
673 |
-
<wp:postmeta>
|
674 |
-
<wp:meta_key><![CDATA[_nav_color]]></wp:meta_key>
|
675 |
-
<wp:meta_value><![CDATA[#f1f1f1]]></wp:meta_value>
|
676 |
-
</wp:postmeta>
|
677 |
-
<wp:postmeta>
|
678 |
-
<wp:meta_key><![CDATA[_nav_active_color]]></wp:meta_key>
|
679 |
-
<wp:meta_value><![CDATA[#4caf50]]></wp:meta_value>
|
680 |
-
</wp:postmeta>
|
681 |
-
<wp:postmeta>
|
682 |
-
<wp:meta_key><![CDATA[_autoplay]]></wp:meta_key>
|
683 |
-
<wp:meta_value><![CDATA[on]]></wp:meta_value>
|
684 |
-
</wp:postmeta>
|
685 |
-
<wp:postmeta>
|
686 |
-
<wp:meta_key><![CDATA[_autoplay_timeout]]></wp:meta_key>
|
687 |
-
<wp:meta_value><![CDATA[5000]]></wp:meta_value>
|
688 |
-
</wp:postmeta>
|
689 |
-
<wp:postmeta>
|
690 |
-
<wp:meta_key><![CDATA[_autoplay_speed]]></wp:meta_key>
|
691 |
-
<wp:meta_value><![CDATA[500]]></wp:meta_value>
|
692 |
-
</wp:postmeta>
|
693 |
-
<wp:postmeta>
|
694 |
-
<wp:meta_key><![CDATA[_autoplay_pause]]></wp:meta_key>
|
695 |
-
<wp:meta_value><![CDATA[off]]></wp:meta_value>
|
696 |
-
</wp:postmeta>
|
697 |
-
<wp:postmeta>
|
698 |
-
<wp:meta_key><![CDATA[_items]]></wp:meta_key>
|
699 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
700 |
-
</wp:postmeta>
|
701 |
-
<wp:postmeta>
|
702 |
-
<wp:meta_key><![CDATA[_items_desktop]]></wp:meta_key>
|
703 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
704 |
-
</wp:postmeta>
|
705 |
-
<wp:postmeta>
|
706 |
-
<wp:meta_key><![CDATA[_items_small_desktop]]></wp:meta_key>
|
707 |
-
<wp:meta_value><![CDATA[4]]></wp:meta_value>
|
708 |
-
</wp:postmeta>
|
709 |
-
<wp:postmeta>
|
710 |
-
<wp:meta_key><![CDATA[_items_portrait_tablet]]></wp:meta_key>
|
711 |
-
<wp:meta_value><![CDATA[3]]></wp:meta_value>
|
712 |
-
</wp:postmeta>
|
713 |
-
<wp:postmeta>
|
714 |
-
<wp:meta_key><![CDATA[_items_small_portrait_tablet]]></wp:meta_key>
|
715 |
-
<wp:meta_value><![CDATA[2]]></wp:meta_value>
|
716 |
-
</wp:postmeta>
|
717 |
-
<wp:postmeta>
|
718 |
-
<wp:meta_key><![CDATA[_items_portrait_mobile]]></wp:meta_key>
|
719 |
-
<wp:meta_value><![CDATA[1]]></wp:meta_value>
|
720 |
-
</wp:postmeta>
|
721 |
-
<wp:postmeta>
|
722 |
-
<wp:meta_key><![CDATA[_post_categories]]></wp:meta_key>
|
723 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
724 |
-
</wp:postmeta>
|
725 |
-
<wp:postmeta>
|
726 |
-
<wp:meta_key><![CDATA[_post_tags]]></wp:meta_key>
|
727 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
728 |
-
</wp:postmeta>
|
729 |
-
<wp:postmeta>
|
730 |
-
<wp:meta_key><![CDATA[_post_in]]></wp:meta_key>
|
731 |
-
<wp:meta_value><![CDATA[]]></wp:meta_value>
|
732 |
-
</wp:postmeta>
|
733 |
-
<wp:postmeta>
|
734 |
-
<wp:meta_key><![CDATA[_images_urls]]></wp:meta_key>
|
735 |
-
<wp:meta_value><![CDATA[a:1:{i:0;a:5:{s:3:"url";s:0:"";s:5:"title";s:0:"";s:7:"caption";s:0:"";s:3:"alt";s:0:"";s:8:"link_url";s:0:"";}}]]></wp:meta_value>
|
736 |
-
</wp:postmeta>
|
737 |
-
</item>
|
738 |
-
</channel>
|
739 |
-
</rss>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-activator.php
CHANGED
@@ -31,7 +31,7 @@ if ( ! class_exists( 'Carousel_Slider_Activator' ) ) {
|
|
31 |
if ( is_null( self::$instance ) ) {
|
32 |
self::$instance = new self();
|
33 |
|
34 |
-
add_action( '
|
35 |
}
|
36 |
|
37 |
return self::$instance;
|
31 |
if ( is_null( self::$instance ) ) {
|
32 |
self::$instance = new self();
|
33 |
|
34 |
+
add_action( 'carousel_slider/activation', array( self::$instance, 'activate' ) );
|
35 |
}
|
36 |
|
37 |
return self::$instance;
|
includes/class-carousel-slider-admin.php
CHANGED
@@ -52,6 +52,51 @@ if ( ! class_exists( 'Carousel_Slider_Admin' ) ) {
|
|
52 |
// Add custom link to media gallery
|
53 |
add_filter( "attachment_fields_to_edit", array( $this, "attachment_fields_to_edit" ), null, 2 );
|
54 |
add_filter( "attachment_fields_to_save", array( $this, "attachment_fields_to_save" ), null, 2 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
56 |
|
57 |
/**
|
@@ -152,17 +197,17 @@ if ( ! class_exists( 'Carousel_Slider_Admin' ) ) {
|
|
152 |
|
153 |
case 'usage':
|
154 |
?>
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
<?php
|
167 |
break;
|
168 |
|
@@ -214,7 +259,7 @@ if ( ! class_exists( 'Carousel_Slider_Admin' ) ) {
|
|
214 |
/**
|
215 |
* Save custom meta box
|
216 |
*
|
217 |
-
* @param
|
218 |
*/
|
219 |
public function save_meta_box( $post_id ) {
|
220 |
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
|
@@ -305,7 +350,7 @@ if ( ! class_exists( 'Carousel_Slider_Admin' ) ) {
|
|
305 |
/**
|
306 |
* Save images urls
|
307 |
*
|
308 |
-
* @param
|
309 |
*
|
310 |
* @return void
|
311 |
*/
|
52 |
// Add custom link to media gallery
|
53 |
add_filter( "attachment_fields_to_edit", array( $this, "attachment_fields_to_edit" ), null, 2 );
|
54 |
add_filter( "attachment_fields_to_save", array( $this, "attachment_fields_to_save" ), null, 2 );
|
55 |
+
|
56 |
+
add_action( 'admin_footer', array( $this, 'gallery_url_template' ), 5 );
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Carousel slider gallery url template
|
61 |
+
*
|
62 |
+
* @return void
|
63 |
+
*/
|
64 |
+
public function gallery_url_template() {
|
65 |
+
global $post_type;
|
66 |
+
if ( $post_type != 'carousels' ) {
|
67 |
+
return;
|
68 |
+
}
|
69 |
+
?>
|
70 |
+
<template id="carouselSliderGalleryUrlTemplate" style="display: none;">
|
71 |
+
<div class="carousel_slider-fields">
|
72 |
+
<label class="setting">
|
73 |
+
<span class="name"><?php esc_html_e( 'URL', 'carousel-slider' ); ?></span>
|
74 |
+
<input type="url" name="_images_urls[url][]" value="" autocomplete="off">
|
75 |
+
</label>
|
76 |
+
<label class="setting">
|
77 |
+
<span class="name"><?php esc_html_e( 'Title', 'carousel-slider' ); ?></span>
|
78 |
+
<input type="text" name="_images_urls[title][]" value="" autocomplete="off">
|
79 |
+
</label>
|
80 |
+
<label class="setting">
|
81 |
+
<span class="name"><?php esc_html_e( 'Caption', 'carousel-slider' ); ?></span>
|
82 |
+
<textarea name="_images_urls[caption][]"></textarea>
|
83 |
+
</label>
|
84 |
+
<label class="setting">
|
85 |
+
<span class="name"><?php esc_html_e( 'Alt Text', 'carousel-slider' ); ?></span>
|
86 |
+
<input type="text" name="_images_urls[alt][]" value="" autocomplete="off">
|
87 |
+
</label>
|
88 |
+
<label class="setting">
|
89 |
+
<span class="name"><?php esc_html_e( 'Link To URL', 'carousel-slider' ); ?></span>
|
90 |
+
<input type="text" name="_images_urls[link_url][]" value="" autocomplete="off">
|
91 |
+
</label>
|
92 |
+
<div class="actions">
|
93 |
+
<span><span class="dashicons dashicons-move"></span></span>
|
94 |
+
<span class="add_row"><span class="dashicons dashicons-plus-alt"></span></span>
|
95 |
+
<span class="delete_row"><span class="dashicons dashicons-trash"></span></span>
|
96 |
+
</div>
|
97 |
+
</div>
|
98 |
+
</template>
|
99 |
+
<?php
|
100 |
}
|
101 |
|
102 |
/**
|
197 |
|
198 |
case 'usage':
|
199 |
?>
|
200 |
+
<label class="screen-reader-text" for="carousel_slider_usage_<?php echo $post_id; ?>">Copy
|
201 |
+
shortcode</label>
|
202 |
+
<input
|
203 |
+
id="carousel_slider_usage_<?php echo $post_id; ?>"
|
204 |
+
type="text"
|
205 |
+
onmousedown="this.clicked = 1;"
|
206 |
+
onfocus="if (!this.clicked) this.select(); else this.clicked = 2;"
|
207 |
+
onclick="if (this.clicked === 2) this.select(); this.clicked = 0;"
|
208 |
+
value="[carousel_slide id='<?php echo $post_id; ?>']"
|
209 |
+
style="background-color: #f1f1f1;min-width: 250px;padding: 5px 8px;"
|
210 |
+
>
|
211 |
<?php
|
212 |
break;
|
213 |
|
259 |
/**
|
260 |
* Save custom meta box
|
261 |
*
|
262 |
+
* @param int $post_id The post ID
|
263 |
*/
|
264 |
public function save_meta_box( $post_id ) {
|
265 |
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
|
350 |
/**
|
351 |
* Save images urls
|
352 |
*
|
353 |
+
* @param integer $post_id
|
354 |
*
|
355 |
* @return void
|
356 |
*/
|
includes/class-carousel-slider-credit.php
DELETED
@@ -1,57 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
die; // If this file is called directly, abort.
|
5 |
-
}
|
6 |
-
|
7 |
-
if ( ! class_exists( 'Carousel_Slider_Credit' ) ):
|
8 |
-
|
9 |
-
class Carousel_Slider_Credit {
|
10 |
-
|
11 |
-
protected static $instance = null;
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
15 |
-
*
|
16 |
-
* @return Carousel_Slider_Credit
|
17 |
-
*/
|
18 |
-
public static function init() {
|
19 |
-
if ( is_null( self::$instance ) ) {
|
20 |
-
self::$instance = new self();
|
21 |
-
}
|
22 |
-
|
23 |
-
return self::$instance;
|
24 |
-
}
|
25 |
-
|
26 |
-
public function __construct() {
|
27 |
-
add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
|
28 |
-
}
|
29 |
-
|
30 |
-
/**
|
31 |
-
* Add custom footer text on plugins page.
|
32 |
-
*
|
33 |
-
* @param string $text
|
34 |
-
*
|
35 |
-
* @return string
|
36 |
-
*/
|
37 |
-
public function admin_footer_text( $text ) {
|
38 |
-
global $post_type, $hook_suffix;
|
39 |
-
|
40 |
-
$footer_text = sprintf(
|
41 |
-
__( 'If you like %1$s Carousel Slider %2$s please leave us a %3$s rating. A huge thanks in advance!', 'carousel-slider' ),
|
42 |
-
'<strong>',
|
43 |
-
'</strong>',
|
44 |
-
'<a href="https://wordpress.org/support/view/plugin-reviews/carousel-slider?filter=5#postform" target="_blank" data-rated="Thanks :)">★★★★★</a>'
|
45 |
-
);
|
46 |
-
|
47 |
-
if ( $post_type == 'carousels' || $hook_suffix == 'carousels_page_carousel-slider-documentation' ) {
|
48 |
-
return $footer_text;
|
49 |
-
}
|
50 |
-
|
51 |
-
return $text;
|
52 |
-
}
|
53 |
-
}
|
54 |
-
|
55 |
-
endif;
|
56 |
-
|
57 |
-
Carousel_Slider_Credit::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-documentation.php
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
die; // If this file is called directly, abort.
|
5 |
-
}
|
6 |
-
|
7 |
-
if ( ! class_exists( 'Carousel_Slider_Documentation' ) ):
|
8 |
-
|
9 |
-
class Carousel_Slider_Documentation {
|
10 |
-
|
11 |
-
protected static $instance = null;
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
15 |
-
*
|
16 |
-
* @return Carousel_Slider_Documentation
|
17 |
-
*/
|
18 |
-
public static function init() {
|
19 |
-
if ( is_null( self::$instance ) ) {
|
20 |
-
self::$instance = new self();
|
21 |
-
}
|
22 |
-
|
23 |
-
return self::$instance;
|
24 |
-
}
|
25 |
-
|
26 |
-
public function __construct() {
|
27 |
-
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
|
28 |
-
}
|
29 |
-
|
30 |
-
public function admin_menu() {
|
31 |
-
add_submenu_page(
|
32 |
-
'edit.php?post_type=carousels',
|
33 |
-
'Documentation',
|
34 |
-
'Documentation',
|
35 |
-
'manage_options',
|
36 |
-
'carousel-slider-documentation',
|
37 |
-
array( $this, 'submenu_page_callback' )
|
38 |
-
);
|
39 |
-
}
|
40 |
-
|
41 |
-
public function submenu_page_callback() {
|
42 |
-
include_once CAROUSEL_SLIDER_TEMPLATES . '/admin/documentation.php';
|
43 |
-
}
|
44 |
-
}
|
45 |
-
|
46 |
-
endif;
|
47 |
-
|
48 |
-
Carousel_Slider_Documentation::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-gutenberg-block.php
DELETED
@@ -1,90 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
die; // If this file is called directly, abort.
|
5 |
-
}
|
6 |
-
|
7 |
-
if ( ! class_exists( 'Carousel_Slider_Gutenberg_Block' ) ) {
|
8 |
-
|
9 |
-
class Carousel_Slider_Gutenberg_Block {
|
10 |
-
|
11 |
-
/**
|
12 |
-
* The instance of the class
|
13 |
-
*
|
14 |
-
* @var self
|
15 |
-
*/
|
16 |
-
protected static $instance;
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
20 |
-
*
|
21 |
-
* @return self
|
22 |
-
*/
|
23 |
-
public static function init() {
|
24 |
-
if ( is_null( self::$instance ) ) {
|
25 |
-
self::$instance = new self();
|
26 |
-
|
27 |
-
add_action( 'init', array( self::$instance, 'gutenberg_block' ) );
|
28 |
-
}
|
29 |
-
|
30 |
-
return self::$instance;
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Register gutenberg block
|
35 |
-
*/
|
36 |
-
public function gutenberg_block() {
|
37 |
-
if ( ! function_exists( 'register_block_type' ) ) {
|
38 |
-
return;
|
39 |
-
}
|
40 |
-
wp_register_script( 'carousel-slider-gutenberg-block',
|
41 |
-
CAROUSEL_SLIDER_ASSETS . '/js/gutenberg-block.js',
|
42 |
-
array( 'underscore', 'wp-blocks', 'wp-element', 'wp-components', 'wp-editor', 'wp-i18n' )
|
43 |
-
);
|
44 |
-
wp_register_style( 'carousel-slider-gutenberg-style',
|
45 |
-
CAROUSEL_SLIDER_ASSETS . '/css/gutenberg-block.css',
|
46 |
-
array( 'wp-edit-blocks' )
|
47 |
-
);
|
48 |
-
wp_localize_script( 'carousel-slider-gutenberg-block',
|
49 |
-
'carousel_slider_gutenberg_block', $this->block()
|
50 |
-
);
|
51 |
-
|
52 |
-
register_block_type( 'carousel-slider/slider', array(
|
53 |
-
'editor_script' => 'carousel-slider-gutenberg-block',
|
54 |
-
'editor_style' => 'carousel-slider-gutenberg-style',
|
55 |
-
) );
|
56 |
-
}
|
57 |
-
|
58 |
-
private function block() {
|
59 |
-
$_sliders = get_posts( array(
|
60 |
-
'posts_per_page' => - 1,
|
61 |
-
'orderby' => 'date',
|
62 |
-
'order' => 'DESC',
|
63 |
-
'post_type' => 'carousels',
|
64 |
-
'post_status' => 'publish',
|
65 |
-
) );
|
66 |
-
$sliders = array();
|
67 |
-
foreach ( $_sliders as $form ) {
|
68 |
-
if ( ! $form instanceof \WP_Post ) {
|
69 |
-
continue;
|
70 |
-
}
|
71 |
-
$sliders[] = array(
|
72 |
-
'value' => absint( $form->ID ),
|
73 |
-
'label' => esc_attr( $form->post_title ),
|
74 |
-
);
|
75 |
-
}
|
76 |
-
|
77 |
-
return array(
|
78 |
-
'sliders' => $sliders,
|
79 |
-
'site_url' => site_url(),
|
80 |
-
'block_logo' => CAROUSEL_SLIDER_ASSETS . '/static-images/logo.svg',
|
81 |
-
'block_title' => __( 'Carousel Slider', 'carousel-slider' ),
|
82 |
-
'select_slider' => __( 'Select a Slider', 'carousel-slider' ),
|
83 |
-
'selected_slider' => __( 'Current Selected Slider', 'carousel-slider' ),
|
84 |
-
'filter_slider' => __( 'Type to filter sliders', 'carousel-slider' ),
|
85 |
-
);
|
86 |
-
}
|
87 |
-
}
|
88 |
-
}
|
89 |
-
|
90 |
-
Carousel_Slider_Gutenberg_Block::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-i18n.php
DELETED
@@ -1,55 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
die; // If this file is called directly, abort.
|
5 |
-
}
|
6 |
-
/**
|
7 |
-
* Define the internationalization functionality.
|
8 |
-
*
|
9 |
-
* Loads and defines the internationalization files for this plugin
|
10 |
-
* so that it is ready for translation.
|
11 |
-
*
|
12 |
-
* @class Carousel_Slider_i8n
|
13 |
-
* @since 1.7.3
|
14 |
-
* @author Sayful Islam <sayful.islam001@gmail.com>
|
15 |
-
*/
|
16 |
-
if ( ! class_exists( 'Carousel_Slider_i8n' ) ):
|
17 |
-
|
18 |
-
class Carousel_Slider_i8n {
|
19 |
-
protected static $instance = null;
|
20 |
-
protected $plugin_name = 'carousel-slider';
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
24 |
-
*
|
25 |
-
* @return Carousel_Slider_i8n
|
26 |
-
*/
|
27 |
-
public static function init() {
|
28 |
-
if ( is_null( self::$instance ) ) {
|
29 |
-
self::$instance = new self();
|
30 |
-
}
|
31 |
-
|
32 |
-
return self::$instance;
|
33 |
-
}
|
34 |
-
|
35 |
-
public function __construct() {
|
36 |
-
add_action( 'init', array( $this, 'load_textdomain' ) );
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Load plugin textdomain
|
41 |
-
*/
|
42 |
-
public function load_textdomain() {
|
43 |
-
$locale_file = sprintf( '%1$s-%2$s.mo', 'carousel-slider', get_locale() );
|
44 |
-
$global_file = join( DIRECTORY_SEPARATOR, array( WP_LANG_DIR, 'carousel-slider', $locale_file ) );
|
45 |
-
|
46 |
-
// Look in global /wp-content/languages/carousel-slider folder
|
47 |
-
if ( file_exists( $global_file ) ) {
|
48 |
-
load_textdomain( $this->plugin_name, $global_file );
|
49 |
-
}
|
50 |
-
}
|
51 |
-
}
|
52 |
-
|
53 |
-
endif;
|
54 |
-
|
55 |
-
Carousel_Slider_i8n::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-preview.php
DELETED
@@ -1,45 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
die; // If this file is called directly, abort.
|
5 |
-
}
|
6 |
-
|
7 |
-
if ( ! class_exists( 'Carousel_Slider_Preview' ) ) {
|
8 |
-
|
9 |
-
class Carousel_Slider_Preview {
|
10 |
-
|
11 |
-
/**
|
12 |
-
* The instance of the class
|
13 |
-
*
|
14 |
-
* @var self
|
15 |
-
*/
|
16 |
-
protected static $instance;
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
20 |
-
*
|
21 |
-
* @return self
|
22 |
-
*/
|
23 |
-
public static function init() {
|
24 |
-
if ( is_null( self::$instance ) ) {
|
25 |
-
self::$instance = new self();
|
26 |
-
|
27 |
-
add_action( 'template_include', array( self::$instance, 'template_include' ) );
|
28 |
-
}
|
29 |
-
|
30 |
-
return self::$instance;
|
31 |
-
}
|
32 |
-
|
33 |
-
public function template_include( $template ) {
|
34 |
-
if ( isset( $_GET['carousel_slider_preview'], $_GET['carousel_slider_iframe'], $_GET['slider_id'] ) ) {
|
35 |
-
if ( current_user_can( 'edit_pages' ) ) {
|
36 |
-
$template = CAROUSEL_SLIDER_TEMPLATES . '/public/preview-slider.php';
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
return $template;
|
41 |
-
}
|
42 |
-
}
|
43 |
-
}
|
44 |
-
|
45 |
-
Carousel_Slider_Preview::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-product.php
CHANGED
@@ -40,14 +40,8 @@ if ( ! class_exists( 'Carousel_Slider_Product' ) ) {
|
|
40 |
if ( is_null( self::$instance ) ) {
|
41 |
self::$instance = new self();
|
42 |
|
43 |
-
add_action( 'carousel_slider_after_shop_loop_item',
|
44 |
-
|
45 |
-
'quick_view_button'
|
46 |
-
), 10, 3 );
|
47 |
-
add_action( 'carousel_slider_after_shop_loop_item', array(
|
48 |
-
self::$instance,
|
49 |
-
'wish_list_button'
|
50 |
-
), 12, 3 );
|
51 |
|
52 |
add_action( 'wp_ajax_carousel_slider_quick_view', array( self::$instance, 'quick_view' ) );
|
53 |
add_action( 'wp_ajax_nopriv_carousel_slider_quick_view', array( self::$instance, 'quick_view' ) );
|
@@ -131,23 +125,23 @@ if ( ! class_exists( 'Carousel_Slider_Product' ) ) {
|
|
131 |
$product = wc_get_product( intval( $_GET['product_id'] ) );
|
132 |
|
133 |
?>
|
134 |
-
|
135 |
|
136 |
-
|
137 |
<?php echo get_the_post_thumbnail( $product->get_id(), 'medium_large' ); ?>
|
138 |
<?php if ( $product->is_on_sale() ) : ?>
|
139 |
<?php echo apply_filters( 'woocommerce_sale_flash',
|
140 |
'<span class="onsale">' . __( 'Sale!', 'carousel-slider' ) . '</span>', $product ); ?>
|
141 |
<?php endif; ?>
|
142 |
-
|
143 |
|
144 |
-
|
145 |
|
146 |
-
|
147 |
<?php echo esc_attr( $product->get_title() ); ?>
|
148 |
-
|
149 |
|
150 |
-
|
151 |
<?php
|
152 |
// Check if WooCommerce Version 3.0.0 or higher
|
153 |
if ( function_exists( 'wc_get_rating_html' ) ) {
|
@@ -156,24 +150,24 @@ if ( ! class_exists( 'Carousel_Slider_Product' ) ) {
|
|
156 |
echo $product->get_rating_html();
|
157 |
}
|
158 |
?>
|
159 |
-
|
160 |
|
161 |
-
|
162 |
<?php
|
163 |
if ( $product->get_price_html() ) {
|
164 |
echo $product->get_price_html();
|
165 |
}
|
166 |
?>
|
167 |
-
|
168 |
|
169 |
-
|
170 |
<?php
|
171 |
echo '<div style="clear: both;"></div>';
|
172 |
echo apply_filters( 'woocommerce_short_description', $product->get_description() );
|
173 |
?>
|
174 |
-
|
175 |
|
176 |
-
|
177 |
<?php
|
178 |
// Show button
|
179 |
echo '<div style="clear: both;"></div>';
|
@@ -181,10 +175,10 @@ if ( ! class_exists( 'Carousel_Slider_Product' ) ) {
|
|
181 |
woocommerce_template_loop_add_to_cart();
|
182 |
}
|
183 |
?>
|
184 |
-
|
185 |
|
186 |
-
|
187 |
-
|
188 |
<?php
|
189 |
wp_die();
|
190 |
}
|
40 |
if ( is_null( self::$instance ) ) {
|
41 |
self::$instance = new self();
|
42 |
|
43 |
+
add_action( 'carousel_slider_after_shop_loop_item', [ self::$instance, 'quick_view_button' ], 10, 3 );
|
44 |
+
add_action( 'carousel_slider_after_shop_loop_item', [ self::$instance, 'wish_list_button' ], 12, 3 );
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
|
46 |
add_action( 'wp_ajax_carousel_slider_quick_view', array( self::$instance, 'quick_view' ) );
|
47 |
add_action( 'wp_ajax_nopriv_carousel_slider_quick_view', array( self::$instance, 'quick_view' ) );
|
125 |
$product = wc_get_product( intval( $_GET['product_id'] ) );
|
126 |
|
127 |
?>
|
128 |
+
<div id="pmid-<?php echo intval( $_GET['slide_id'] ); ?>" class="product carousel-slider__product-modal">
|
129 |
|
130 |
+
<div class="images">
|
131 |
<?php echo get_the_post_thumbnail( $product->get_id(), 'medium_large' ); ?>
|
132 |
<?php if ( $product->is_on_sale() ) : ?>
|
133 |
<?php echo apply_filters( 'woocommerce_sale_flash',
|
134 |
'<span class="onsale">' . __( 'Sale!', 'carousel-slider' ) . '</span>', $product ); ?>
|
135 |
<?php endif; ?>
|
136 |
+
</div>
|
137 |
|
138 |
+
<div class="summary entry-summary">
|
139 |
|
140 |
+
<h1 class="product_title entry-title">
|
141 |
<?php echo esc_attr( $product->get_title() ); ?>
|
142 |
+
</h1>
|
143 |
|
144 |
+
<div class="woocommerce-product-rating">
|
145 |
<?php
|
146 |
// Check if WooCommerce Version 3.0.0 or higher
|
147 |
if ( function_exists( 'wc_get_rating_html' ) ) {
|
150 |
echo $product->get_rating_html();
|
151 |
}
|
152 |
?>
|
153 |
+
</div>
|
154 |
|
155 |
+
<div class="price">
|
156 |
<?php
|
157 |
if ( $product->get_price_html() ) {
|
158 |
echo $product->get_price_html();
|
159 |
}
|
160 |
?>
|
161 |
+
</div>
|
162 |
|
163 |
+
<div class="description">
|
164 |
<?php
|
165 |
echo '<div style="clear: both;"></div>';
|
166 |
echo apply_filters( 'woocommerce_short_description', $product->get_description() );
|
167 |
?>
|
168 |
+
</div>
|
169 |
|
170 |
+
<div>
|
171 |
<?php
|
172 |
// Show button
|
173 |
echo '<div style="clear: both;"></div>';
|
175 |
woocommerce_template_loop_add_to_cart();
|
176 |
}
|
177 |
?>
|
178 |
+
</div>
|
179 |
|
180 |
+
</div>
|
181 |
+
</div>
|
182 |
<?php
|
183 |
wp_die();
|
184 |
}
|
includes/class-carousel-slider-script.php
DELETED
@@ -1,226 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
die; // If this file is called directly, abort.
|
5 |
-
}
|
6 |
-
|
7 |
-
if ( ! class_exists( 'Carousel_Slider_Script' ) ) {
|
8 |
-
|
9 |
-
class Carousel_Slider_Script {
|
10 |
-
|
11 |
-
/**
|
12 |
-
* The instance of the class
|
13 |
-
*
|
14 |
-
* @var self
|
15 |
-
*/
|
16 |
-
private static $instance = null;
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
20 |
-
*
|
21 |
-
* @return Carousel_Slider_Script
|
22 |
-
*/
|
23 |
-
public static function init() {
|
24 |
-
if ( is_null( self::$instance ) ) {
|
25 |
-
self::$instance = new self();
|
26 |
-
|
27 |
-
add_action( 'wp_loaded', array( self::$instance, 'register_styles' ) );
|
28 |
-
add_action( 'wp_loaded', array( self::$instance, 'register_scripts' ) );
|
29 |
-
|
30 |
-
add_action( 'wp_enqueue_scripts', array( self::$instance, 'frontend_scripts' ), 15 );
|
31 |
-
|
32 |
-
add_action( 'admin_enqueue_scripts', array( self::$instance, 'admin_scripts' ), 10 );
|
33 |
-
add_action( 'admin_footer', array( self::$instance, 'gallery_url_template' ), 5 );
|
34 |
-
}
|
35 |
-
|
36 |
-
return self::$instance;
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Register styles
|
41 |
-
*/
|
42 |
-
public function register_styles() {
|
43 |
-
$styles = array(
|
44 |
-
'carousel-slider' => array(
|
45 |
-
'src' => CAROUSEL_SLIDER_ASSETS . '/css/frontend.css',
|
46 |
-
'dependency' => array(),
|
47 |
-
'version' => CAROUSEL_SLIDER_VERSION,
|
48 |
-
'media' => 'all',
|
49 |
-
),
|
50 |
-
'carousel-slider-admin' => array(
|
51 |
-
'src' => CAROUSEL_SLIDER_ASSETS . '/css/admin.css',
|
52 |
-
'dependency' => array( 'wp-color-picker' ),
|
53 |
-
'version' => CAROUSEL_SLIDER_VERSION,
|
54 |
-
'media' => 'all',
|
55 |
-
),
|
56 |
-
);
|
57 |
-
|
58 |
-
foreach ( $styles as $handle => $style ) {
|
59 |
-
wp_register_style( $handle, $style['src'], $style['dependency'], $style['version'], $style['media'] );
|
60 |
-
}
|
61 |
-
}
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Register scripts
|
65 |
-
*/
|
66 |
-
public function register_scripts() {
|
67 |
-
$suffix = ( defined( "SCRIPT_DEBUG" ) && SCRIPT_DEBUG ) ? '' : '.min';
|
68 |
-
|
69 |
-
$scripts = array(
|
70 |
-
'select2' => array(
|
71 |
-
'src' => CAROUSEL_SLIDER_ASSETS . '/lib/select2/select2' . $suffix . '.js',
|
72 |
-
'dependency' => array( 'jquery' ),
|
73 |
-
'version' => '4.0.5',
|
74 |
-
'in_footer' => true,
|
75 |
-
),
|
76 |
-
'jquery-tiptip' => array(
|
77 |
-
'src' => CAROUSEL_SLIDER_ASSETS . '/lib/jquery-tiptip/jquery.tipTip' . $suffix . '.js',
|
78 |
-
'dependency' => array( 'jquery' ),
|
79 |
-
'version' => '1.3',
|
80 |
-
'in_footer' => true,
|
81 |
-
),
|
82 |
-
'wp-color-picker-alpha' => array(
|
83 |
-
'src' => CAROUSEL_SLIDER_ASSETS . '/lib/wp-color-picker-alpha/wp-color-picker-alpha' . $suffix . '.js',
|
84 |
-
'dependency' => array( 'jquery', 'wp-color-picker' ),
|
85 |
-
'version' => '2.1.3',
|
86 |
-
'in_footer' => true,
|
87 |
-
),
|
88 |
-
'carousel-slider-admin' => array(
|
89 |
-
'src' => CAROUSEL_SLIDER_ASSETS . '/js/admin.js',
|
90 |
-
'dependency' => array(
|
91 |
-
'jquery',
|
92 |
-
'select2',
|
93 |
-
'wp-color-picker-alpha',
|
94 |
-
'jquery-ui-accordion',
|
95 |
-
'jquery-ui-datepicker',
|
96 |
-
'jquery-ui-sortable',
|
97 |
-
'jquery-ui-tabs',
|
98 |
-
'jquery-tiptip',
|
99 |
-
),
|
100 |
-
'version' => CAROUSEL_SLIDER_VERSION,
|
101 |
-
'in_footer' => true,
|
102 |
-
),
|
103 |
-
'owl-carousel' => array(
|
104 |
-
'src' => CAROUSEL_SLIDER_ASSETS . '/lib/owl-carousel/owl.carousel' . $suffix . '.js',
|
105 |
-
'dependency' => array( 'jquery' ),
|
106 |
-
'version' => '2.3.4',
|
107 |
-
'in_footer' => true,
|
108 |
-
),
|
109 |
-
'magnific-popup' => array(
|
110 |
-
'src' => CAROUSEL_SLIDER_ASSETS . '/lib/magnific-popup/jquery.magnific-popup' . $suffix . '.js',
|
111 |
-
'dependency' => array( 'jquery' ),
|
112 |
-
'version' => '1.1.0',
|
113 |
-
'in_footer' => true,
|
114 |
-
),
|
115 |
-
'carousel-slider' => array(
|
116 |
-
'src' => CAROUSEL_SLIDER_ASSETS . '/js/frontend.js',
|
117 |
-
'dependency' => array( 'jquery', 'owl-carousel', 'magnific-popup' ),
|
118 |
-
'version' => CAROUSEL_SLIDER_VERSION,
|
119 |
-
'in_footer' => true,
|
120 |
-
),
|
121 |
-
);
|
122 |
-
|
123 |
-
foreach ( $scripts as $handle => $script ) {
|
124 |
-
wp_register_script( $handle, $script['src'], $script['dependency'], $script['version'],
|
125 |
-
$script['in_footer'] );
|
126 |
-
}
|
127 |
-
}
|
128 |
-
|
129 |
-
/**
|
130 |
-
* Load frontend scripts
|
131 |
-
*/
|
132 |
-
public function frontend_scripts() {
|
133 |
-
if ( ! $this->should_load_scripts() ) {
|
134 |
-
return;
|
135 |
-
}
|
136 |
-
|
137 |
-
wp_enqueue_style( 'carousel-slider' );
|
138 |
-
wp_enqueue_script( 'carousel-slider' );
|
139 |
-
}
|
140 |
-
|
141 |
-
/**
|
142 |
-
* Load admin scripts
|
143 |
-
*
|
144 |
-
* @param $hook
|
145 |
-
*/
|
146 |
-
public function admin_scripts( $hook ) {
|
147 |
-
global $post;
|
148 |
-
|
149 |
-
$_is_carousel = is_a( $post, 'WP_Post' ) && ( 'carousels' == $post->post_type );
|
150 |
-
$_is_doc = ( 'carousels_page_carousel-slider-documentation' == $hook );
|
151 |
-
|
152 |
-
if ( ! $_is_carousel && ! $_is_doc ) {
|
153 |
-
return;
|
154 |
-
}
|
155 |
-
|
156 |
-
wp_enqueue_media();
|
157 |
-
wp_enqueue_style( 'carousel-slider-admin' );
|
158 |
-
wp_enqueue_script( 'carousel-slider-admin' );
|
159 |
-
}
|
160 |
-
|
161 |
-
/**
|
162 |
-
* Carousel slider gallery url template
|
163 |
-
*
|
164 |
-
* @return void
|
165 |
-
*/
|
166 |
-
public function gallery_url_template() {
|
167 |
-
global $post_type;
|
168 |
-
if ( $post_type != 'carousels' ) {
|
169 |
-
return;
|
170 |
-
}
|
171 |
-
?>
|
172 |
-
<template id="carouselSliderGalleryUrlTemplate" style="display: none;">
|
173 |
-
<div class="carousel_slider-fields">
|
174 |
-
<label class="setting">
|
175 |
-
<span class="name"><?php esc_html_e( 'URL', 'carousel-slider' ); ?></span>
|
176 |
-
<input type="url" name="_images_urls[url][]" value="" autocomplete="off">
|
177 |
-
</label>
|
178 |
-
<label class="setting">
|
179 |
-
<span class="name"><?php esc_html_e( 'Title', 'carousel-slider' ); ?></span>
|
180 |
-
<input type="text" name="_images_urls[title][]" value="" autocomplete="off">
|
181 |
-
</label>
|
182 |
-
<label class="setting">
|
183 |
-
<span class="name"><?php esc_html_e( 'Caption', 'carousel-slider' ); ?></span>
|
184 |
-
<textarea name="_images_urls[caption][]"></textarea>
|
185 |
-
</label>
|
186 |
-
<label class="setting">
|
187 |
-
<span class="name"><?php esc_html_e( 'Alt Text', 'carousel-slider' ); ?></span>
|
188 |
-
<input type="text" name="_images_urls[alt][]" value="" autocomplete="off">
|
189 |
-
</label>
|
190 |
-
<label class="setting">
|
191 |
-
<span class="name"><?php esc_html_e( 'Link To URL', 'carousel-slider' ); ?></span>
|
192 |
-
<input type="text" name="_images_urls[link_url][]" value="" autocomplete="off">
|
193 |
-
</label>
|
194 |
-
<div class="actions">
|
195 |
-
<span><span class="dashicons dashicons-move"></span></span>
|
196 |
-
<span class="add_row"><span class="dashicons dashicons-plus-alt"></span></span>
|
197 |
-
<span class="delete_row"><span class="dashicons dashicons-trash"></span></span>
|
198 |
-
</div>
|
199 |
-
</div>
|
200 |
-
</template>
|
201 |
-
<?php
|
202 |
-
}
|
203 |
-
|
204 |
-
/**
|
205 |
-
* Check if it should load frontend scripts
|
206 |
-
*
|
207 |
-
* @return boolean
|
208 |
-
*/
|
209 |
-
private function should_load_scripts() {
|
210 |
-
$settings = get_option( 'carousel_slider_settings' );
|
211 |
-
$settings = is_array( $settings ) ? $settings : [];
|
212 |
-
if ( isset( $settings['load_scripts'] ) && 'always' == $settings['load_scripts'] ) {
|
213 |
-
return true;
|
214 |
-
}
|
215 |
-
|
216 |
-
global $post;
|
217 |
-
$load_scripts = is_active_widget( false, false, 'widget_carousel_slider', true ) ||
|
218 |
-
( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'carousel_slide' ) ) ||
|
219 |
-
( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'carousel' ) );
|
220 |
-
|
221 |
-
return apply_filters( 'carousel_slider_load_scripts', $load_scripts );
|
222 |
-
}
|
223 |
-
}
|
224 |
-
}
|
225 |
-
|
226 |
-
Carousel_Slider_Script::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-setting-api.php
DELETED
@@ -1,683 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
// If this file is called directly, abort.
|
4 |
-
defined( 'ABSPATH' ) || die;
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Very simple WordPress Settings API wrapper class
|
8 |
-
*
|
9 |
-
* WordPress Option Page Wrapper class that implements WordPress Settings API and
|
10 |
-
* give you easy way to create multi tabs admin menu and
|
11 |
-
* add setting fields with build in validation.
|
12 |
-
*
|
13 |
-
* @version 1.0.0 (Oct 28, 2016)
|
14 |
-
*
|
15 |
-
* @author Sayful Islam <sayful.islam001@gmail.com>
|
16 |
-
* @link www.sayfulislam.com
|
17 |
-
*/
|
18 |
-
if ( ! class_exists( 'Carousel_Slider_Setting_API' ) ) {
|
19 |
-
|
20 |
-
|
21 |
-
class Carousel_Slider_Setting_API {
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Setting page options
|
25 |
-
*
|
26 |
-
* @var array
|
27 |
-
*/
|
28 |
-
private $options = array();
|
29 |
-
|
30 |
-
/**
|
31 |
-
* Setting page menu fields
|
32 |
-
*
|
33 |
-
* @var array
|
34 |
-
*/
|
35 |
-
private $menu_fields = array();
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Fields list
|
39 |
-
*
|
40 |
-
* @var array
|
41 |
-
*/
|
42 |
-
private $fields = array();
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Setting page tabs settings
|
46 |
-
*
|
47 |
-
* @var array
|
48 |
-
*/
|
49 |
-
private $tabs = array();
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Setting page form action attribute value
|
53 |
-
*
|
54 |
-
* @var string
|
55 |
-
*/
|
56 |
-
private $action = 'options.php';
|
57 |
-
|
58 |
-
|
59 |
-
/**
|
60 |
-
* Filterable_Portfolio_Setting_API constructor.
|
61 |
-
*/
|
62 |
-
public function __construct() {
|
63 |
-
if ( is_admin() ) {
|
64 |
-
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
|
65 |
-
add_action( 'admin_init', array( $this, 'admin_init' ) );
|
66 |
-
}
|
67 |
-
}
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Add new admin menu
|
71 |
-
*
|
72 |
-
* This method is accessible outside the class for creating menu
|
73 |
-
*
|
74 |
-
* @param array $menu_fields
|
75 |
-
*
|
76 |
-
* @throws Exception
|
77 |
-
*/
|
78 |
-
public function add_menu( array $menu_fields ) {
|
79 |
-
if ( ! isset( $menu_fields['page_title'], $menu_fields['menu_title'], $menu_fields['menu_slug'] ) ) {
|
80 |
-
throw new Exception( 'Required key is not set properly for creating menu.' );
|
81 |
-
}
|
82 |
-
|
83 |
-
$this->menu_fields = $menu_fields;
|
84 |
-
}
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Add new settings field
|
88 |
-
*
|
89 |
-
* This method is accessible outside the class for creating settings field
|
90 |
-
*
|
91 |
-
* @param array $field
|
92 |
-
*
|
93 |
-
* @throws Exception
|
94 |
-
*/
|
95 |
-
public function add_field( array $field ) {
|
96 |
-
if ( ! isset( $field['id'], $field['name'] ) ) {
|
97 |
-
throw new Exception( 'Required key is not set properly for creating tab.' );
|
98 |
-
}
|
99 |
-
|
100 |
-
$this->fields[] = $field;
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Add setting page tab
|
105 |
-
*
|
106 |
-
* This method is accessible outside the class for creating page tab
|
107 |
-
*
|
108 |
-
* @param array $tab
|
109 |
-
*
|
110 |
-
* @throws Exception
|
111 |
-
*/
|
112 |
-
public function add_tab( array $tab ) {
|
113 |
-
if ( ! isset( $tab['id'], $tab['title'] ) ) {
|
114 |
-
throw new Exception( 'Required key is not set properly for creating tab.' );
|
115 |
-
}
|
116 |
-
|
117 |
-
$this->tabs[] = $tab;
|
118 |
-
}
|
119 |
-
|
120 |
-
/**
|
121 |
-
* Register setting and its sanitize callback.
|
122 |
-
*/
|
123 |
-
public function admin_init() {
|
124 |
-
register_setting(
|
125 |
-
$this->menu_fields['option_name'],
|
126 |
-
$this->menu_fields['option_name'],
|
127 |
-
array( $this, 'sanitize_callback' )
|
128 |
-
);
|
129 |
-
}
|
130 |
-
|
131 |
-
/**
|
132 |
-
* Create admin menu
|
133 |
-
*/
|
134 |
-
public function admin_menu() {
|
135 |
-
$page_title = $this->menu_fields['page_title'];
|
136 |
-
$menu_title = $this->menu_fields['menu_title'];
|
137 |
-
$menu_slug = $this->menu_fields['menu_slug'];
|
138 |
-
$capability = isset( $this->menu_fields['capability'] ) ? $this->menu_fields['capability'] : 'manage_options';
|
139 |
-
$parent_slug = isset( $this->menu_fields['parent_slug'] ) ? $this->menu_fields['parent_slug'] : null;
|
140 |
-
|
141 |
-
if ( $parent_slug ) {
|
142 |
-
add_submenu_page(
|
143 |
-
$parent_slug,
|
144 |
-
$page_title,
|
145 |
-
$menu_title,
|
146 |
-
$capability,
|
147 |
-
$menu_slug,
|
148 |
-
array( $this, 'page_content' )
|
149 |
-
);
|
150 |
-
} else {
|
151 |
-
add_menu_page(
|
152 |
-
$page_title,
|
153 |
-
$menu_title,
|
154 |
-
$capability,
|
155 |
-
$menu_slug,
|
156 |
-
array( $this, 'page_content' )
|
157 |
-
);
|
158 |
-
}
|
159 |
-
}
|
160 |
-
|
161 |
-
/**
|
162 |
-
* Load page content
|
163 |
-
*/
|
164 |
-
public function page_content() {
|
165 |
-
ob_start(); ?>
|
166 |
-
<div class="wrap about-wrap">
|
167 |
-
<h1><?php echo $this->menu_fields['page_title']; ?></h1>
|
168 |
-
<div class="about-text"><?php echo $this->menu_fields['about_text']; ?></div>
|
169 |
-
<?php $this->option_page_tabs(); ?>
|
170 |
-
<form autocomplete="off" method="POST" action="<?php echo $this->action; ?>">
|
171 |
-
<?php
|
172 |
-
$this->get_options();
|
173 |
-
settings_fields( $this->menu_fields['option_name'] );
|
174 |
-
$this->setting_fields( $this->filter_fields_by_tab() );
|
175 |
-
submit_button();
|
176 |
-
?>
|
177 |
-
</form>
|
178 |
-
</div>
|
179 |
-
<?php
|
180 |
-
echo ob_get_clean();
|
181 |
-
}
|
182 |
-
|
183 |
-
/**
|
184 |
-
* Generate Option Page Tabs
|
185 |
-
* @return void
|
186 |
-
*/
|
187 |
-
private function option_page_tabs() {
|
188 |
-
if ( count( $this->tabs ) < 1 ) {
|
189 |
-
return;
|
190 |
-
}
|
191 |
-
|
192 |
-
$current_tab = isset ( $_GET['tab'] ) ? $_GET['tab'] : $this->tabs[0]['id'];
|
193 |
-
$page = $this->menu_fields['menu_slug'];
|
194 |
-
|
195 |
-
echo '<h2 class="nav-tab-wrapper wp-clearfix">';
|
196 |
-
foreach ( $this->tabs as $tab ) {
|
197 |
-
$class = ( $tab['id'] === $current_tab ) ? ' nav-tab-active' : '';
|
198 |
-
$page_url = esc_url( add_query_arg( array(
|
199 |
-
'page' => $page,
|
200 |
-
'tab' => $tab['id']
|
201 |
-
), admin_url( $this->menu_fields['parent_slug'] ) ) );
|
202 |
-
echo '<a class="nav-tab' . $class . '" href="' . $page_url . '">' . $tab['title'] . '</a>';
|
203 |
-
}
|
204 |
-
echo '</h2>';
|
205 |
-
}
|
206 |
-
|
207 |
-
/**
|
208 |
-
* Filter settings fields by page tab
|
209 |
-
*
|
210 |
-
* @param string $current_tab
|
211 |
-
*
|
212 |
-
* @return array
|
213 |
-
*/
|
214 |
-
public function filter_fields_by_tab( $current_tab = null ) {
|
215 |
-
|
216 |
-
if ( count( $this->tabs ) < 1 ) {
|
217 |
-
return $this->fields;
|
218 |
-
}
|
219 |
-
|
220 |
-
if ( ! $current_tab ) {
|
221 |
-
$current_tab = isset ( $_GET['tab'] ) ? $_GET['tab'] : $this->tabs[0]['id'];
|
222 |
-
}
|
223 |
-
|
224 |
-
$new_array = array();
|
225 |
-
if ( is_array( $this->fields ) && count( $this->fields ) > 0 ) {
|
226 |
-
foreach ( array_keys( $this->fields ) as $key ) {
|
227 |
-
if ( isset( $this->fields[ $key ]['tab'] ) ) {
|
228 |
-
$temp[ $key ] = $this->fields[ $key ]['tab'];
|
229 |
-
if ( $temp[ $key ] == $current_tab ) {
|
230 |
-
$new_array[ $key ] = $this->fields[ $key ];
|
231 |
-
}
|
232 |
-
} else {
|
233 |
-
if ( $current_tab == $this->tabs[0]['id'] ) {
|
234 |
-
$new_array[ $key ] = $this->fields[ $key ];
|
235 |
-
}
|
236 |
-
}
|
237 |
-
}
|
238 |
-
}
|
239 |
-
|
240 |
-
return $new_array;
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* Sanitize each setting field as needed
|
245 |
-
*
|
246 |
-
* @param array $input Contains all settings fields as array keys
|
247 |
-
*
|
248 |
-
* @return array
|
249 |
-
*/
|
250 |
-
public function sanitize_callback( array $input ) {
|
251 |
-
$output_array = array();
|
252 |
-
$fields = $this->fields;
|
253 |
-
$options = (array) get_option( $this->menu_fields['option_name'] );
|
254 |
-
$options = array_filter( $options );
|
255 |
-
|
256 |
-
if ( empty( $options ) ) {
|
257 |
-
$options = (array) $this->get_options();
|
258 |
-
}
|
259 |
-
|
260 |
-
if ( count( $this->tabs ) > 0 ) {
|
261 |
-
parse_str( $_POST['_wp_http_referer'], $referrer );
|
262 |
-
$tab = isset( $referrer['tab'] ) ? $referrer['tab'] : $this->tabs[0]['id'];
|
263 |
-
$fields = $this->filter_fields_by_tab( $tab );
|
264 |
-
}
|
265 |
-
|
266 |
-
// Loop through each setting being saved and
|
267 |
-
// pass it through a sanitize filter
|
268 |
-
foreach ( $input as $key => $value ) {
|
269 |
-
foreach ( $fields as $field ) {
|
270 |
-
if ( $field['id'] == $key ) {
|
271 |
-
$rule = empty( $field['validate'] ) ? $field['type'] : $field['validate'];
|
272 |
-
$output_array[ $key ] = $this->validate( $value, $rule );
|
273 |
-
}
|
274 |
-
}
|
275 |
-
}
|
276 |
-
|
277 |
-
return array_merge( $options, $output_array );
|
278 |
-
}
|
279 |
-
|
280 |
-
/**
|
281 |
-
* Get options parsed with default value
|
282 |
-
* @return array
|
283 |
-
*/
|
284 |
-
public function get_options() {
|
285 |
-
$options_array = array();
|
286 |
-
|
287 |
-
foreach ( $this->fields as $value ) {
|
288 |
-
$std_value = ( isset( $value['std'] ) ) ? $value['std'] : '';
|
289 |
-
$options_array[ $value['id'] ] = $std_value;
|
290 |
-
}
|
291 |
-
|
292 |
-
$options = wp_parse_args(
|
293 |
-
get_option( $this->menu_fields['option_name'] ),
|
294 |
-
$options_array
|
295 |
-
);
|
296 |
-
|
297 |
-
return $this->options = $options;
|
298 |
-
}
|
299 |
-
|
300 |
-
/**
|
301 |
-
* Validate the option's value
|
302 |
-
*
|
303 |
-
* @param mixed $input
|
304 |
-
* @param string $validation_rule
|
305 |
-
*
|
306 |
-
* @return mixed
|
307 |
-
*/
|
308 |
-
private function validate( $input, $validation_rule = 'text' ) {
|
309 |
-
switch ( $validation_rule ) {
|
310 |
-
case 'text':
|
311 |
-
return sanitize_text_field( $input );
|
312 |
-
break;
|
313 |
-
|
314 |
-
case 'number':
|
315 |
-
return is_int( $input ) ? trim( $input ) : intval( $input );
|
316 |
-
break;
|
317 |
-
|
318 |
-
case 'url':
|
319 |
-
return esc_url_raw( trim( $input ) );
|
320 |
-
break;
|
321 |
-
|
322 |
-
case 'email':
|
323 |
-
return sanitize_email( $input );
|
324 |
-
break;
|
325 |
-
|
326 |
-
case 'checkbox':
|
327 |
-
return ( $input == 1 ) ? 1 : 0;
|
328 |
-
break;
|
329 |
-
|
330 |
-
case 'multi_checkbox':
|
331 |
-
return $input;
|
332 |
-
break;
|
333 |
-
|
334 |
-
case 'radio':
|
335 |
-
return sanitize_text_field( $input );
|
336 |
-
break;
|
337 |
-
|
338 |
-
case 'select':
|
339 |
-
return sanitize_text_field( $input );
|
340 |
-
break;
|
341 |
-
|
342 |
-
case 'date':
|
343 |
-
return date( 'F d, Y', strtotime( $input ) );
|
344 |
-
break;
|
345 |
-
|
346 |
-
case 'textarea':
|
347 |
-
return wp_filter_nohtml_kses( $input );
|
348 |
-
break;
|
349 |
-
|
350 |
-
case 'inlinehtml':
|
351 |
-
return wp_filter_kses( force_balance_tags( $input ) );
|
352 |
-
break;
|
353 |
-
|
354 |
-
case 'linebreaks':
|
355 |
-
return wp_strip_all_tags( $input );
|
356 |
-
break;
|
357 |
-
|
358 |
-
case 'wp_editor':
|
359 |
-
return wp_kses_post( $input );
|
360 |
-
break;
|
361 |
-
|
362 |
-
default:
|
363 |
-
return sanitize_text_field( $input );
|
364 |
-
break;
|
365 |
-
}
|
366 |
-
}
|
367 |
-
|
368 |
-
/**
|
369 |
-
* Settings fields
|
370 |
-
*
|
371 |
-
* @param array $fields
|
372 |
-
*
|
373 |
-
* @return void
|
374 |
-
*/
|
375 |
-
private function setting_fields( $fields = null ) {
|
376 |
-
$fields = is_array( $fields ) ? $fields : $this->fields;
|
377 |
-
|
378 |
-
$table = "";
|
379 |
-
$table .= "<table class='form-table'>";
|
380 |
-
|
381 |
-
foreach ( $fields as $field ) {
|
382 |
-
$name = sprintf( '%s[%s]', $this->menu_fields['option_name'], $field['id'] );
|
383 |
-
$type = isset( $field['type'] ) ? $field['type'] : 'text';
|
384 |
-
$value = isset( $this->options[ $field['id'] ] ) ? $this->options[ $field['id'] ] : '';
|
385 |
-
|
386 |
-
$table .= "<tr>";
|
387 |
-
$table .= sprintf( '<th scope="row"><label for="%1$s">%2$s</label></th>', $field['id'],
|
388 |
-
$field['name'] );
|
389 |
-
$table .= "<td>";
|
390 |
-
|
391 |
-
if ( method_exists( $this, $type ) ) {
|
392 |
-
$table .= $this->$type( $field, $name, $value );
|
393 |
-
} else {
|
394 |
-
$table .= $this->text( $field, $name, $value );
|
395 |
-
}
|
396 |
-
|
397 |
-
if ( ! empty( $field['desc'] ) ) {
|
398 |
-
$table .= sprintf( '<p class="description">%s</p>', $field['desc'] );
|
399 |
-
}
|
400 |
-
$table .= "</td>";
|
401 |
-
$table .= "</tr>";
|
402 |
-
}
|
403 |
-
|
404 |
-
$table .= "</table>";
|
405 |
-
echo $table;
|
406 |
-
}
|
407 |
-
|
408 |
-
/**
|
409 |
-
* text input field
|
410 |
-
*
|
411 |
-
* @param array $field
|
412 |
-
* @param string $name
|
413 |
-
* @param string $value
|
414 |
-
*
|
415 |
-
* @return string
|
416 |
-
*/
|
417 |
-
public function text( $field, $name, $value ) {
|
418 |
-
return sprintf( '<input type="text" class="regular-text" value="%1$s" id="%2$s" name="%3$s">', $value,
|
419 |
-
$field['id'], $name );
|
420 |
-
}
|
421 |
-
|
422 |
-
/**
|
423 |
-
* email input field
|
424 |
-
*
|
425 |
-
* @param array $field
|
426 |
-
* @param string $name
|
427 |
-
* @param string $value
|
428 |
-
*
|
429 |
-
* @return string
|
430 |
-
*/
|
431 |
-
public function email( $field, $name, $value ) {
|
432 |
-
return sprintf( '<input type="email" class="regular-text" value="%1$s" id="%2$s" name="%3$s">', $value,
|
433 |
-
$field['id'], $name );
|
434 |
-
}
|
435 |
-
|
436 |
-
/**
|
437 |
-
* password input field
|
438 |
-
*
|
439 |
-
* @param array $field
|
440 |
-
* @param string $name
|
441 |
-
* @param string $value
|
442 |
-
*
|
443 |
-
* @return string
|
444 |
-
*/
|
445 |
-
public function password( $field, $name, $value ) {
|
446 |
-
return sprintf( '<input type="password" class="regular-text" value="" id="%2$s" name="%3$s">', $value,
|
447 |
-
$field['id'], $name );
|
448 |
-
}
|
449 |
-
|
450 |
-
/**
|
451 |
-
* number input field
|
452 |
-
*
|
453 |
-
* @param array $field
|
454 |
-
* @param string $name
|
455 |
-
* @param string $value
|
456 |
-
*
|
457 |
-
* @return string
|
458 |
-
*/
|
459 |
-
public function number( $field, $name, $value ) {
|
460 |
-
return sprintf( '<input type="number" class="regular-text" value="%1$s" id="%2$s" name="%3$s">', $value,
|
461 |
-
$field['id'], $name );
|
462 |
-
}
|
463 |
-
|
464 |
-
/**
|
465 |
-
* url input field
|
466 |
-
*
|
467 |
-
* @param array $field
|
468 |
-
* @param string $name
|
469 |
-
* @param string $value
|
470 |
-
*
|
471 |
-
* @return string
|
472 |
-
*/
|
473 |
-
public function url( $field, $name, $value ) {
|
474 |
-
return sprintf( '<input type="url" class="regular-text" value="%1$s" id="%2$s" name="%3$s">', $value,
|
475 |
-
$field['id'], $name );
|
476 |
-
}
|
477 |
-
|
478 |
-
/**
|
479 |
-
* color input field
|
480 |
-
*
|
481 |
-
* @param array $field
|
482 |
-
* @param string $name
|
483 |
-
* @param string $value
|
484 |
-
*
|
485 |
-
* @return string
|
486 |
-
*/
|
487 |
-
public function color( $field, $name, $value ) {
|
488 |
-
$default_color = ( isset( $field['std'] ) ) ? $field['std'] : "";
|
489 |
-
|
490 |
-
return sprintf( '<input type="text" class="color-picker" value="%1$s" id="%2$s" name="%3$s" data-alpha="true" data-default-color="%4$s">',
|
491 |
-
$value, $field['id'], $name, $default_color );
|
492 |
-
}
|
493 |
-
|
494 |
-
/**
|
495 |
-
* date input field
|
496 |
-
*
|
497 |
-
* @param array $field
|
498 |
-
* @param string $name
|
499 |
-
* @param string $value
|
500 |
-
*
|
501 |
-
* @return string
|
502 |
-
*/
|
503 |
-
public function date( $field, $name, $value ) {
|
504 |
-
$value = date( "F d, Y", strtotime( $value ) );
|
505 |
-
|
506 |
-
return sprintf( '<input type="text" class="regular-text datepicker" value="%1$s" id="%2$s" name="%3$s">',
|
507 |
-
$value, $field['id'], $name );
|
508 |
-
}
|
509 |
-
|
510 |
-
/**
|
511 |
-
* textarea input field
|
512 |
-
*
|
513 |
-
* @param array $field
|
514 |
-
* @param string $name
|
515 |
-
* @param string $value
|
516 |
-
*
|
517 |
-
* @return string
|
518 |
-
*/
|
519 |
-
public function textarea( $field, $name, $value ) {
|
520 |
-
$rows = ( isset( $field['rows'] ) ) ? $field['rows'] : 5;
|
521 |
-
$cols = ( isset( $field['cols'] ) ) ? $field['cols'] : 40;
|
522 |
-
$placeholder = ( isset( $field['placeholder'] ) ) ? sprintf( 'placeholder="%s"',
|
523 |
-
esc_attr( $field['placeholder'] ) ) : '';
|
524 |
-
|
525 |
-
return '<textarea id="' . $field['id'] . '" name="' . $name . '" rows="' . $rows . '" cols="' . $cols . '" ' . $placeholder . '>' . $value . '</textarea>';
|
526 |
-
}
|
527 |
-
|
528 |
-
/**
|
529 |
-
* checkbox input field
|
530 |
-
*
|
531 |
-
* @param array $field
|
532 |
-
* @param string $name
|
533 |
-
* @param string $value
|
534 |
-
*
|
535 |
-
* @return string
|
536 |
-
*/
|
537 |
-
public function checkbox( $field, $name, $value ) {
|
538 |
-
$checked = ( 1 == $value ) ? 'checked' : '';
|
539 |
-
$table = '<input type="hidden" name="' . $name . '" value="0">';
|
540 |
-
$table .= '<fieldset><legend class="screen-reader-text"><span>' . $field['name'] . '</span></legend>';
|
541 |
-
$table .= '<label for="' . $field['id'] . '">';
|
542 |
-
$table .= '<input type="checkbox" value="1" id="' . $field['id'] . '" name="' . $name . '" ' . $checked . '>';
|
543 |
-
$table .= $field['name'] . '</label></fieldset>';
|
544 |
-
|
545 |
-
return $table;
|
546 |
-
}
|
547 |
-
|
548 |
-
/**
|
549 |
-
* multi checkbox input field
|
550 |
-
*
|
551 |
-
* @param array $field
|
552 |
-
* @param string $name
|
553 |
-
* @param array $value
|
554 |
-
*
|
555 |
-
* @return string
|
556 |
-
*/
|
557 |
-
public function multi_checkbox( $field, $name, $value ) {
|
558 |
-
$table = "<fieldset>";
|
559 |
-
$name = $name . "[]";
|
560 |
-
|
561 |
-
$table .= sprintf( '<input type="hidden" name="%1$s" value="0">', $name );
|
562 |
-
foreach ( $field['options'] as $key => $label ) {
|
563 |
-
$checked = ( in_array( $key, $value ) ) ? 'checked="checked"' : '';
|
564 |
-
$table .= '<label for="' . $key . '"><input type="checkbox" value="' . $key . '" id="' . $key . '" name="' . $name . '" ' . $checked . '>' . $label . '</label><br>';
|
565 |
-
}
|
566 |
-
$table .= "</fieldset>";
|
567 |
-
|
568 |
-
return $table;
|
569 |
-
}
|
570 |
-
|
571 |
-
/**
|
572 |
-
* radio input field
|
573 |
-
*
|
574 |
-
* @param array $field
|
575 |
-
* @param string $name
|
576 |
-
* @param string $value
|
577 |
-
*
|
578 |
-
* @return string
|
579 |
-
*/
|
580 |
-
public function radio( $field, $name, $value ) {
|
581 |
-
$table = '<fieldset><legend class="screen-reader-text"><span>' . $field['name'] . '</span></legend><p>';
|
582 |
-
|
583 |
-
foreach ( $field['options'] as $key => $label ) {
|
584 |
-
|
585 |
-
$checked = ( $value == $key ) ? 'checked="checked"' : '';
|
586 |
-
$table .= '<label><input type="radio" ' . $checked . ' value="' . $key . '" name="' . $name . '">' . $label . '</label><br>';
|
587 |
-
}
|
588 |
-
$table .= "</p></fieldset>";
|
589 |
-
|
590 |
-
return $table;
|
591 |
-
}
|
592 |
-
|
593 |
-
/**
|
594 |
-
* select input field
|
595 |
-
*
|
596 |
-
* @param array $field
|
597 |
-
* @param string $name
|
598 |
-
* @param string $value
|
599 |
-
*
|
600 |
-
* @return string
|
601 |
-
*/
|
602 |
-
public function select( $field, $name, $value ) {
|
603 |
-
$table = sprintf( '<select id="%1$s" name="%2$s" class="regular-text">', $field['id'], $name );
|
604 |
-
foreach ( $field['options'] as $key => $label ) {
|
605 |
-
$selected = ( $value == $key ) ? 'selected="selected"' : '';
|
606 |
-
$table .= '<option value="' . $key . '" ' . $selected . '>' . $label . '</option>';
|
607 |
-
}
|
608 |
-
$table .= "</select>";
|
609 |
-
|
610 |
-
return $table;
|
611 |
-
}
|
612 |
-
|
613 |
-
/**
|
614 |
-
* Get available image sizes
|
615 |
-
*
|
616 |
-
* @param $field
|
617 |
-
* @param $name
|
618 |
-
* @param $value
|
619 |
-
*
|
620 |
-
* @return string
|
621 |
-
*/
|
622 |
-
public function image_sizes( $field, $name, $value ) {
|
623 |
-
|
624 |
-
global $_wp_additional_image_sizes;
|
625 |
-
|
626 |
-
$sizes = array();
|
627 |
-
|
628 |
-
foreach ( get_intermediate_image_sizes() as $_size ) {
|
629 |
-
if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
|
630 |
-
|
631 |
-
$width = get_option( "{$_size}_size_w" );
|
632 |
-
$height = get_option( "{$_size}_size_h" );
|
633 |
-
$crop = (bool) get_option( "{$_size}_crop" ) ? 'hard' : 'soft';
|
634 |
-
|
635 |
-
$sizes[ $_size ] = "{$_size} - {$width}x{$height} ($crop crop)";
|
636 |
-
|
637 |
-
} elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
|
638 |
-
|
639 |
-
$width = $_wp_additional_image_sizes[ $_size ]['width'];
|
640 |
-
$height = $_wp_additional_image_sizes[ $_size ]['height'];
|
641 |
-
$crop = $_wp_additional_image_sizes[ $_size ]['crop'] ? 'hard' : 'soft';
|
642 |
-
|
643 |
-
$sizes[ $_size ] = "{$_size} - {$width}x{$height} ($crop crop)";
|
644 |
-
}
|
645 |
-
}
|
646 |
-
|
647 |
-
$sizes = array_merge( $sizes, array( 'full' => 'original uploaded image' ) );
|
648 |
-
|
649 |
-
$table = '<select name="' . $name . '" id="' . $field['id'] . '" class="regular-text select2">';
|
650 |
-
foreach ( $sizes as $key => $option ) {
|
651 |
-
$selected = ( $value == $key ) ? ' selected="selected"' : '';
|
652 |
-
$table .= '<option value="' . $key . '" ' . $selected . '>' . $option . '</option>';
|
653 |
-
}
|
654 |
-
$table .= '</select>';
|
655 |
-
|
656 |
-
return $table;
|
657 |
-
}
|
658 |
-
|
659 |
-
/**
|
660 |
-
* wp_editor input field
|
661 |
-
*
|
662 |
-
* @param array $field
|
663 |
-
* @param string $name
|
664 |
-
* @param string $value
|
665 |
-
*
|
666 |
-
* @return string
|
667 |
-
*/
|
668 |
-
public function wp_editor( $field, $name, $value ) {
|
669 |
-
ob_start();
|
670 |
-
echo "<div class='sp-wp-editor-container'>";
|
671 |
-
wp_editor( $value, $field['id'], array(
|
672 |
-
'textarea_name' => $name,
|
673 |
-
'tinymce' => false,
|
674 |
-
'media_buttons' => false,
|
675 |
-
'textarea_rows' => isset( $field['rows'] ) ? $field['rows'] : 6,
|
676 |
-
'quicktags' => array( "buttons" => "strong,em,link,img,ul,li,ol" ),
|
677 |
-
) );
|
678 |
-
echo "</div>";
|
679 |
-
|
680 |
-
return ob_get_clean();
|
681 |
-
}
|
682 |
-
}
|
683 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-setting.php
DELETED
@@ -1,67 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
// If this file is called directly, abort.
|
4 |
-
defined( 'ABSPATH' ) || die;
|
5 |
-
|
6 |
-
if ( ! class_exists( 'Carousel_Slider_Setting' ) ) {
|
7 |
-
class Carousel_Slider_Setting {
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Instance of current class
|
11 |
-
*
|
12 |
-
* @var self
|
13 |
-
*/
|
14 |
-
private static $instance;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @return Carousel_Slider_Setting
|
18 |
-
*/
|
19 |
-
public static function init() {
|
20 |
-
if ( is_null( self::$instance ) ) {
|
21 |
-
self::$instance = new self();
|
22 |
-
|
23 |
-
add_action( 'init', array( self::$instance, 'settings' ) );
|
24 |
-
}
|
25 |
-
|
26 |
-
return self::$instance;
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Plugin setting fields
|
31 |
-
*
|
32 |
-
* @throws Exception
|
33 |
-
*/
|
34 |
-
public function settings() {
|
35 |
-
$settings = new Carousel_Slider_Setting_API();
|
36 |
-
$settings->add_menu( array(
|
37 |
-
'page_title' => __( 'Carousel Slider Settings', 'carousel-slider' ),
|
38 |
-
'menu_title' => __( 'Settings', 'carousel-slider' ),
|
39 |
-
'about_text' => __( 'Thank you for choosing Carousel Slider. We hope you enjoy it!', 'carousel-slider' ),
|
40 |
-
'menu_slug' => 'settings',
|
41 |
-
'parent_slug' => 'edit.php?post_type=carousels',
|
42 |
-
'option_name' => 'carousel_slider_settings',
|
43 |
-
) );
|
44 |
-
|
45 |
-
// Add settings page tab
|
46 |
-
$settings->add_tab( array(
|
47 |
-
'id' => 'general',
|
48 |
-
'title' => __( 'General', 'carousel-slider' ),
|
49 |
-
) );
|
50 |
-
|
51 |
-
$settings->add_field( array(
|
52 |
-
'id' => 'load_scripts',
|
53 |
-
'type' => 'radio',
|
54 |
-
'std' => 'optimized',
|
55 |
-
'name' => __( 'Style & Scrips', 'carousel-slider' ),
|
56 |
-
'desc' => __( 'If you choose Optimized, then scrips and styles will be loaded only on page where you are using shortcode. If Optimized is not working for you then choose Always.', 'carousel-slider' ),
|
57 |
-
'options' => array(
|
58 |
-
'always' => __( 'Always', 'carousel-slider' ),
|
59 |
-
'optimized' => __( 'Optimized (recommended)', 'carousel-slider' ),
|
60 |
-
),
|
61 |
-
'tab' => 'general',
|
62 |
-
) );
|
63 |
-
}
|
64 |
-
}
|
65 |
-
}
|
66 |
-
|
67 |
-
Carousel_Slider_Setting::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-structured-data.php
DELETED
@@ -1,317 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
exit; // Exit if accessed directly.
|
5 |
-
}
|
6 |
-
|
7 |
-
if ( ! class_exists( 'Carousel_Slider_Structured_Data' ) ):
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Structured data's handler and generator using JSON-LD format.
|
11 |
-
*
|
12 |
-
* @class Carousel_Slider_Structured_Data
|
13 |
-
* @since 1.7.2
|
14 |
-
* @author Sayful Islam <sayful.islam001@gmail.com>
|
15 |
-
*/
|
16 |
-
class Carousel_Slider_Structured_Data {
|
17 |
-
|
18 |
-
protected static $instance = null;
|
19 |
-
private $_product_data = array();
|
20 |
-
private $_image_data = array();
|
21 |
-
private $_post_data = array();
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
25 |
-
*
|
26 |
-
* @return Carousel_Slider_Structured_Data
|
27 |
-
*/
|
28 |
-
public static function init() {
|
29 |
-
if ( is_null( self::$instance ) ) {
|
30 |
-
self::$instance = new self();
|
31 |
-
}
|
32 |
-
|
33 |
-
return self::$instance;
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Constructor.
|
38 |
-
*/
|
39 |
-
public function __construct() {
|
40 |
-
add_action( 'carousel_slider_image_gallery_loop', array( $this, 'generate_image_data' ) );
|
41 |
-
add_action( 'carousel_slider_post_loop', array( $this, 'generate_post_data' ) );
|
42 |
-
add_action( 'carousel_slider_product_loop', array( $this, 'generate_product_data' ), 10, 2 );
|
43 |
-
// Output structured data.
|
44 |
-
add_action( 'wp_footer', array( $this, 'output_structured_data' ), 90 );
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Outputs structured data.
|
49 |
-
*
|
50 |
-
* Hooked into `wp_footer` action hook.
|
51 |
-
*/
|
52 |
-
public function output_structured_data() {
|
53 |
-
$data = $this->get_structured_product_data();
|
54 |
-
if ( $data ) {
|
55 |
-
echo '<script type="application/ld+json">' . wp_json_encode( $data ) . '</script>' . "\n";
|
56 |
-
}
|
57 |
-
$gallery_data = $this->get_structured_image_data();
|
58 |
-
if ( $gallery_data ) {
|
59 |
-
echo '<script type="application/ld+json">' . wp_json_encode( $gallery_data ) . '</script>' . "\n";
|
60 |
-
}
|
61 |
-
$post_data = $this->get_structured_post_data();
|
62 |
-
if ( $post_data ) {
|
63 |
-
echo '<script type="application/ld+json">' . wp_json_encode( $post_data ) . '</script>' . "\n";
|
64 |
-
}
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* Structures and returns product data.
|
69 |
-
* @return array
|
70 |
-
*/
|
71 |
-
private function get_structured_product_data() {
|
72 |
-
$data = array(
|
73 |
-
'@context' => 'http://schema.org/',
|
74 |
-
"@graph" => $this->get_product_data()
|
75 |
-
);
|
76 |
-
|
77 |
-
return $this->get_product_data() ? $data : array();
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* Gets product data.
|
82 |
-
*
|
83 |
-
* @return array
|
84 |
-
*/
|
85 |
-
private function get_product_data() {
|
86 |
-
return $this->_product_data;
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* Structures and returns image data.
|
91 |
-
* @return array
|
92 |
-
*/
|
93 |
-
private function get_structured_image_data() {
|
94 |
-
$data = array(
|
95 |
-
'@context' => 'http://schema.org/',
|
96 |
-
"@type" => "ImageGallery",
|
97 |
-
"associatedMedia" => $this->get_image_data()
|
98 |
-
);
|
99 |
-
|
100 |
-
return $this->get_image_data() ? $data : array();
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Get image data
|
105 |
-
*
|
106 |
-
* @return array
|
107 |
-
*/
|
108 |
-
private function get_image_data() {
|
109 |
-
return $this->_image_data;
|
110 |
-
}
|
111 |
-
|
112 |
-
private function get_structured_post_data() {
|
113 |
-
$data = array(
|
114 |
-
'@context' => 'http://schema.org/',
|
115 |
-
"@graph" => $this->get_post_data()
|
116 |
-
);
|
117 |
-
|
118 |
-
return $this->get_post_data() ? $data : array();
|
119 |
-
}
|
120 |
-
|
121 |
-
private function get_post_data() {
|
122 |
-
return $this->_post_data;
|
123 |
-
}
|
124 |
-
|
125 |
-
/**
|
126 |
-
* Generates Image structured data.
|
127 |
-
*
|
128 |
-
* Hooked into `carousel_slider_image_gallery_loop` action hook.
|
129 |
-
*
|
130 |
-
* @param WP_Post $_post Post data (default: null).
|
131 |
-
*/
|
132 |
-
public function generate_image_data( $_post ) {
|
133 |
-
$image = wp_get_attachment_image_src( $_post->ID, 'full' );
|
134 |
-
$markup['@type'] = 'ImageObject';
|
135 |
-
$markup['contentUrl'] = $image[0];
|
136 |
-
$markup['name'] = $_post->post_title;
|
137 |
-
|
138 |
-
$this->set_data( apply_filters( 'carousel_slider_structured_data_image', $markup, $_post ) );
|
139 |
-
}
|
140 |
-
|
141 |
-
/**
|
142 |
-
* Sets data.
|
143 |
-
*
|
144 |
-
* @param array $data Structured data.
|
145 |
-
*
|
146 |
-
* @return bool
|
147 |
-
*/
|
148 |
-
private function set_data( $data ) {
|
149 |
-
if ( ! isset( $data['@type'] ) || ! preg_match( '|^[a-zA-Z]{1,20}$|', $data['@type'] ) ) {
|
150 |
-
return false;
|
151 |
-
}
|
152 |
-
|
153 |
-
if ( $data['@type'] == 'ImageObject' ) {
|
154 |
-
if ( ! $this->maybe_image_added( $data['contentUrl'] ) ) {
|
155 |
-
$this->_image_data[] = $data;
|
156 |
-
}
|
157 |
-
}
|
158 |
-
|
159 |
-
if ( $data['@type'] == 'Product' ) {
|
160 |
-
if ( ! $this->maybe_product_added( $data['@id'] ) ) {
|
161 |
-
$this->_product_data[] = $data;
|
162 |
-
}
|
163 |
-
}
|
164 |
-
|
165 |
-
if ( $data['@type'] == 'BlogPosting' ) {
|
166 |
-
if ( ! $this->maybe_post_added( $data['mainEntityOfPage']['@id'] ) ) {
|
167 |
-
$this->_post_data[] = $data;
|
168 |
-
}
|
169 |
-
}
|
170 |
-
|
171 |
-
return true;
|
172 |
-
}
|
173 |
-
|
174 |
-
/**
|
175 |
-
* Check if image is already added to list
|
176 |
-
*
|
177 |
-
* @param string $image_id
|
178 |
-
*
|
179 |
-
* @return boolean
|
180 |
-
*/
|
181 |
-
private function maybe_image_added( $image_id = null ) {
|
182 |
-
$image_data = $this->get_image_data();
|
183 |
-
if ( count( $image_data ) > 0 ) {
|
184 |
-
$image_data = array_map( function ( $data ) {
|
185 |
-
return $data['contentUrl'];
|
186 |
-
}, $image_data );
|
187 |
-
|
188 |
-
return in_array( $image_id, $image_data );
|
189 |
-
}
|
190 |
-
|
191 |
-
return false;
|
192 |
-
}
|
193 |
-
|
194 |
-
/**
|
195 |
-
* Check if product is already added to list
|
196 |
-
*
|
197 |
-
* @param string $product_id
|
198 |
-
*
|
199 |
-
* @return boolean
|
200 |
-
*/
|
201 |
-
private function maybe_product_added( $product_id = null ) {
|
202 |
-
$product_data = $this->get_product_data();
|
203 |
-
if ( count( $product_data ) > 0 ) {
|
204 |
-
$product_data = array_map( function ( $data ) {
|
205 |
-
return $data['@id'];
|
206 |
-
}, $product_data );
|
207 |
-
|
208 |
-
return in_array( $product_id, $product_data );
|
209 |
-
}
|
210 |
-
|
211 |
-
return false;
|
212 |
-
}
|
213 |
-
|
214 |
-
/**
|
215 |
-
* Check if post is already added to list
|
216 |
-
*
|
217 |
-
* @param string $post_id
|
218 |
-
*
|
219 |
-
* @return boolean
|
220 |
-
*/
|
221 |
-
private function maybe_post_added( $post_id ) {
|
222 |
-
$post_data = $this->get_post_data();
|
223 |
-
if ( count( $post_data ) > 0 ) {
|
224 |
-
$post_data = array_map( function ( $data ) {
|
225 |
-
return $data['mainEntityOfPage']['@id'];
|
226 |
-
}, $post_data );
|
227 |
-
|
228 |
-
return in_array( $post_id, $post_data );
|
229 |
-
}
|
230 |
-
|
231 |
-
return false;
|
232 |
-
}
|
233 |
-
|
234 |
-
/**
|
235 |
-
* Generates post structured data.
|
236 |
-
*
|
237 |
-
* Hooked into `carousel_slider_post_loop` action hook.
|
238 |
-
*
|
239 |
-
* @param WP_Post $_post
|
240 |
-
*/
|
241 |
-
public function generate_post_data( $_post ) {
|
242 |
-
if ( ! $_post instanceof WP_Post ) {
|
243 |
-
return;
|
244 |
-
}
|
245 |
-
|
246 |
-
$image = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'normal' );
|
247 |
-
|
248 |
-
$json['@type'] = 'BlogPosting';
|
249 |
-
|
250 |
-
$json['mainEntityOfPage'] = array(
|
251 |
-
'@type' => 'webpage',
|
252 |
-
'@id' => get_the_permalink(),
|
253 |
-
);
|
254 |
-
|
255 |
-
|
256 |
-
$json['publisher'] = array(
|
257 |
-
'@type' => 'organization',
|
258 |
-
'name' => get_bloginfo( 'name' ),
|
259 |
-
);
|
260 |
-
|
261 |
-
$json['author'] = array(
|
262 |
-
'@type' => 'person',
|
263 |
-
'name' => get_the_author(),
|
264 |
-
);
|
265 |
-
|
266 |
-
if ( $image ) {
|
267 |
-
$json['image'] = array(
|
268 |
-
'@type' => 'ImageObject',
|
269 |
-
'url' => $image[0],
|
270 |
-
'width' => $image[1],
|
271 |
-
'height' => $image[2],
|
272 |
-
);
|
273 |
-
}
|
274 |
-
|
275 |
-
$json['datePublished'] = get_post_time( 'c' );
|
276 |
-
$json['dateModified'] = get_the_modified_date( 'c' );
|
277 |
-
$json['name'] = get_the_title();
|
278 |
-
$json['headline'] = $json['name'];
|
279 |
-
$json['description'] = get_the_excerpt();
|
280 |
-
|
281 |
-
|
282 |
-
$this->set_data( apply_filters( 'carousel_slider_structured_data_post', $json, $_post ) );
|
283 |
-
}
|
284 |
-
|
285 |
-
/**
|
286 |
-
* Generates Product structured data.
|
287 |
-
*
|
288 |
-
* Hooked into `carousel_slider_product_loop` action hook.
|
289 |
-
*
|
290 |
-
* @param WC_Product $product Product data (default: null).
|
291 |
-
* @param WP_Post $post
|
292 |
-
*/
|
293 |
-
public function generate_product_data( $product, $post ) {
|
294 |
-
if ( ! $product instanceof WC_Product ) {
|
295 |
-
return;
|
296 |
-
}
|
297 |
-
|
298 |
-
if ( defined( 'WC_VERSION' ) && version_compare( WC_VERSION, "3.0.0", ">=" ) ) {
|
299 |
-
$name = $product->get_name();
|
300 |
-
$permalink = get_permalink( $product->get_id() );
|
301 |
-
} else {
|
302 |
-
$name = get_the_title( $post->ID );
|
303 |
-
$permalink = get_permalink( $post->ID );
|
304 |
-
}
|
305 |
-
|
306 |
-
$markup['@type'] = 'Product';
|
307 |
-
$markup['@id'] = $permalink;
|
308 |
-
$markup['url'] = $markup['@id'];
|
309 |
-
$markup['name'] = $name;
|
310 |
-
|
311 |
-
$this->set_data( apply_filters( 'carousel_slider_structured_data_product', $markup, $product ) );
|
312 |
-
}
|
313 |
-
}
|
314 |
-
|
315 |
-
endif;
|
316 |
-
|
317 |
-
Carousel_Slider_Structured_Data::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-carousel-slider-vc-element.php
DELETED
@@ -1,89 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
die; // If this file is called directly, abort.
|
5 |
-
}
|
6 |
-
|
7 |
-
if ( ! class_exists( 'Carousel_Slider_Visual_Composer_Element' ) ) {
|
8 |
-
|
9 |
-
class Carousel_Slider_Visual_Composer_Element {
|
10 |
-
|
11 |
-
/**
|
12 |
-
* The instance of the class
|
13 |
-
*
|
14 |
-
* @var self
|
15 |
-
*/
|
16 |
-
private static $instance = null;
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
20 |
-
*
|
21 |
-
* @return self
|
22 |
-
*/
|
23 |
-
public static function init() {
|
24 |
-
if ( is_null( self::$instance ) ) {
|
25 |
-
self::$instance = new self();
|
26 |
-
|
27 |
-
add_action( 'init', array( self::$instance, 'integrate_with_vc' ) );
|
28 |
-
}
|
29 |
-
|
30 |
-
return self::$instance;
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Integrate with visual composer
|
35 |
-
*/
|
36 |
-
public function integrate_with_vc() {
|
37 |
-
// Check if Visual Composer is installed
|
38 |
-
if ( ! function_exists( 'vc_map' ) ) {
|
39 |
-
return;
|
40 |
-
}
|
41 |
-
|
42 |
-
vc_map( array(
|
43 |
-
"name" => __( "Carousel Slider", 'carousel-slider' ),
|
44 |
-
"description" => __( "Place Carousel Slider.", 'carousel-slider' ),
|
45 |
-
"base" => "carousel_slide",
|
46 |
-
"controls" => "full",
|
47 |
-
"icon" => CAROUSEL_SLIDER_ASSETS . '/static-images/logo.svg',
|
48 |
-
"category" => __( 'Content', 'carousel-slider' ),
|
49 |
-
"params" => array(
|
50 |
-
array(
|
51 |
-
"type" => "dropdown",
|
52 |
-
"holder" => "div",
|
53 |
-
"class" => "carousel-slider-id",
|
54 |
-
"param_name" => "id",
|
55 |
-
"value" => $this->carousels_list(),
|
56 |
-
"heading" => __( "Choose Carousel Slide", 'carousel-slider' ),
|
57 |
-
),
|
58 |
-
),
|
59 |
-
) );
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* Generate array for carousel slider
|
64 |
-
*
|
65 |
-
* @return array
|
66 |
-
*/
|
67 |
-
private function carousels_list() {
|
68 |
-
$carousels = get_posts( array(
|
69 |
-
'post_type' => 'carousels',
|
70 |
-
'post_status' => 'publish',
|
71 |
-
'posts_per_page' => - 1,
|
72 |
-
) );
|
73 |
-
|
74 |
-
if ( count( $carousels ) < 1 ) {
|
75 |
-
return array();
|
76 |
-
}
|
77 |
-
|
78 |
-
$result = array();
|
79 |
-
|
80 |
-
foreach ( $carousels as $carousel ) {
|
81 |
-
$result[ esc_html( $carousel->post_title ) ] = $carousel->ID;
|
82 |
-
}
|
83 |
-
|
84 |
-
return $result;
|
85 |
-
}
|
86 |
-
}
|
87 |
-
}
|
88 |
-
|
89 |
-
Carousel_Slider_Visual_Composer_Element::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/carousel-slider.pot
ADDED
@@ -0,0 +1,1484 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2021 Sayful Islam
|
2 |
+
# This file is distributed under the same license as the Carousel Slider plugin.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: Carousel Slider 1.10.0\n"
|
6 |
+
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/carousel-slider\n"
|
7 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2021-03-17T02:49:59+00:00\n"
|
13 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
+
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
+
"X-Domain: carousel-slider\n"
|
16 |
+
|
17 |
+
#. Plugin Name of the plugin
|
18 |
+
#: classes/Admin/GutenbergBlock.php:85
|
19 |
+
#: classes/Integration/VisualComposerElement.php:40
|
20 |
+
#: classes/Widget/CarouselSliderWidget.php:73
|
21 |
+
#: includes/class-carousel-slider-admin.php:109
|
22 |
+
#: includes/class-carousel-slider-admin.php:230
|
23 |
+
msgid "Carousel Slider"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#. Plugin URI of the plugin
|
27 |
+
msgid "http://wordpress.org/plugins/carousel-slider"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#. Description of the plugin
|
31 |
+
msgid "<strong>Carousel Slider</strong> allows you to create beautiful, touch enabled, responsive carousels and sliders. It let you create SEO friendly Image carousel from Media Library or from custom URL, Video carousel using Youtube and Vimeo video, Post carousel, Hero banner slider and various types of WooCommerce products carousels."
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#. Author of the plugin
|
35 |
+
msgid "Sayful Islam"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. Author URI of the plugin
|
39 |
+
msgid "https://sayfulislam.com"
|
40 |
+
msgstr ""
|
41 |
+
|
42 |
+
#: carousel-slider.php:196
|
43 |
+
#: carousel-slider.php:219
|
44 |
+
msgid "Your installed PHP Version is: "
|
45 |
+
msgstr ""
|
46 |
+
|
47 |
+
#: carousel-slider.php:197
|
48 |
+
msgid "The Carousel Slider plugin requires PHP version %s or greater."
|
49 |
+
msgstr ""
|
50 |
+
|
51 |
+
#: carousel-slider.php:218
|
52 |
+
msgid "An Error Occurred"
|
53 |
+
msgstr ""
|
54 |
+
|
55 |
+
#: carousel-slider.php:220
|
56 |
+
msgid "The Carousel Slider plugin requires PHP version %s or greater"
|
57 |
+
msgstr ""
|
58 |
+
|
59 |
+
#: carousel-slider.php:222
|
60 |
+
msgid "The version of your PHP is %s unsupported and old %s. "
|
61 |
+
msgstr ""
|
62 |
+
|
63 |
+
#: carousel-slider.php:227
|
64 |
+
msgid "You should update your PHP software or contact your host regarding this matter."
|
65 |
+
msgstr ""
|
66 |
+
|
67 |
+
#: carousel-slider.php:230
|
68 |
+
msgid "Plugin Activation Error"
|
69 |
+
msgstr ""
|
70 |
+
|
71 |
+
#: classes/Admin/Admin.php:59
|
72 |
+
#: classes/Admin/Admin.php:60
|
73 |
+
msgid "Documentation"
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
#: classes/Admin/Admin.php:85
|
77 |
+
msgid "If you like %1$s Carousel Slider %2$s please leave us a %3$s rating. A huge thanks in advance!"
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#: classes/Admin/GutenbergBlock.php:86
|
81 |
+
msgid "Select a Slider"
|
82 |
+
msgstr ""
|
83 |
+
|
84 |
+
#: classes/Admin/GutenbergBlock.php:87
|
85 |
+
msgid "Current Selected Slider"
|
86 |
+
msgstr ""
|
87 |
+
|
88 |
+
#: classes/Admin/GutenbergBlock.php:88
|
89 |
+
msgid "Type to filter sliders"
|
90 |
+
msgstr ""
|
91 |
+
|
92 |
+
#: classes/Admin/Setting.php:39
|
93 |
+
msgid "Carousel Slider Settings"
|
94 |
+
msgstr ""
|
95 |
+
|
96 |
+
#: classes/Admin/Setting.php:40
|
97 |
+
msgid "Settings"
|
98 |
+
msgstr ""
|
99 |
+
|
100 |
+
#: classes/Admin/Setting.php:41
|
101 |
+
msgid "Thank you for choosing Carousel Slider. We hope you enjoy it!"
|
102 |
+
msgstr ""
|
103 |
+
|
104 |
+
#: classes/Admin/Setting.php:50
|
105 |
+
msgid "General"
|
106 |
+
msgstr ""
|
107 |
+
|
108 |
+
#: classes/Admin/Setting.php:57
|
109 |
+
msgid "Style & Scrips"
|
110 |
+
msgstr ""
|
111 |
+
|
112 |
+
#: classes/Admin/Setting.php:58
|
113 |
+
msgid "If you choose Optimized, then scrips and styles will be loaded only on page where you are using shortcode. If Optimized is not working for you then choose Always."
|
114 |
+
msgstr ""
|
115 |
+
|
116 |
+
#: classes/Admin/Setting.php:60
|
117 |
+
#: includes/class-carousel-slider-meta-box.php:162
|
118 |
+
#: includes/class-carousel-slider-meta-box.php:204
|
119 |
+
msgid "Always"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: classes/Admin/Setting.php:61
|
123 |
+
msgid "Optimized (recommended)"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: classes/Integration/VisualComposerElement.php:41
|
127 |
+
msgid "Place Carousel Slider."
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: classes/Integration/VisualComposerElement.php:45
|
131 |
+
msgid "Content"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: classes/Integration/VisualComposerElement.php:53
|
135 |
+
msgid "Choose Carousel Slide"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: classes/Widget/CarouselSliderWidget.php:71
|
139 |
+
msgid "The easiest way to create image, video, post and WooCommerce product carousel."
|
140 |
+
msgstr ""
|
141 |
+
|
142 |
+
#: classes/Widget/CarouselSliderWidget.php:115
|
143 |
+
msgid "Title (optional):"
|
144 |
+
msgstr ""
|
145 |
+
|
146 |
+
#: classes/Widget/CarouselSliderWidget.php:118
|
147 |
+
msgid "Choose Slide"
|
148 |
+
msgstr ""
|
149 |
+
|
150 |
+
#: classes/Widget/CarouselSliderWidget.php:133
|
151 |
+
msgid "You did not add any carousel slider yet."
|
152 |
+
msgstr ""
|
153 |
+
|
154 |
+
#: classes/Widget/CarouselSliderWidget.php:134
|
155 |
+
msgid "to create a new carousel slider now."
|
156 |
+
msgstr ""
|
157 |
+
|
158 |
+
#: classes/Widget/CarouselSliderWidget.php:135
|
159 |
+
msgid "click here"
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: includes/class-carousel-slider-admin.php:73
|
163 |
+
#: templates/admin/images-url.php:42
|
164 |
+
#: templates/admin/images-url.php:74
|
165 |
+
msgid "URL"
|
166 |
+
msgstr ""
|
167 |
+
|
168 |
+
#: includes/class-carousel-slider-admin.php:77
|
169 |
+
#: templates/admin/images-url.php:47
|
170 |
+
#: templates/admin/images-url.php:78
|
171 |
+
msgid "Title"
|
172 |
+
msgstr ""
|
173 |
+
|
174 |
+
#: includes/class-carousel-slider-admin.php:81
|
175 |
+
#: templates/admin/images-url.php:52
|
176 |
+
#: templates/admin/images-url.php:82
|
177 |
+
msgid "Caption"
|
178 |
+
msgstr ""
|
179 |
+
|
180 |
+
#: includes/class-carousel-slider-admin.php:85
|
181 |
+
#: templates/admin/images-url.php:56
|
182 |
+
#: templates/admin/images-url.php:86
|
183 |
+
msgid "Alt Text"
|
184 |
+
msgstr ""
|
185 |
+
|
186 |
+
#: includes/class-carousel-slider-admin.php:89
|
187 |
+
#: templates/admin/images-url.php:61
|
188 |
+
#: templates/admin/images-url.php:90
|
189 |
+
msgid "Link To URL"
|
190 |
+
msgstr ""
|
191 |
+
|
192 |
+
#: includes/class-carousel-slider-admin.php:107
|
193 |
+
msgctxt "Post Type General Name"
|
194 |
+
msgid "Slides"
|
195 |
+
msgstr ""
|
196 |
+
|
197 |
+
#: includes/class-carousel-slider-admin.php:108
|
198 |
+
msgctxt "Post Type Singular Name"
|
199 |
+
msgid "Slide"
|
200 |
+
msgstr ""
|
201 |
+
|
202 |
+
#: includes/class-carousel-slider-admin.php:110
|
203 |
+
msgid "Parent Slide:"
|
204 |
+
msgstr ""
|
205 |
+
|
206 |
+
#: includes/class-carousel-slider-admin.php:111
|
207 |
+
msgid "All Slides"
|
208 |
+
msgstr ""
|
209 |
+
|
210 |
+
#: includes/class-carousel-slider-admin.php:112
|
211 |
+
msgid "View Slide"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: includes/class-carousel-slider-admin.php:113
|
215 |
+
msgid "Add New Slide"
|
216 |
+
msgstr ""
|
217 |
+
|
218 |
+
#: includes/class-carousel-slider-admin.php:114
|
219 |
+
msgid "Add New"
|
220 |
+
msgstr ""
|
221 |
+
|
222 |
+
#: includes/class-carousel-slider-admin.php:115
|
223 |
+
msgid "Edit Slide"
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
#: includes/class-carousel-slider-admin.php:116
|
227 |
+
msgid "Update Slide"
|
228 |
+
msgstr ""
|
229 |
+
|
230 |
+
#: includes/class-carousel-slider-admin.php:117
|
231 |
+
msgid "Search Slide"
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: includes/class-carousel-slider-admin.php:118
|
235 |
+
msgid "Not found"
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: includes/class-carousel-slider-admin.php:119
|
239 |
+
msgid "Not found in Trash"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: includes/class-carousel-slider-admin.php:122
|
243 |
+
#: templates/admin/hero-banner-slider.php:106
|
244 |
+
msgid "Slide"
|
245 |
+
msgstr ""
|
246 |
+
|
247 |
+
#: includes/class-carousel-slider-admin.php:123
|
248 |
+
msgid "The easiest way to create carousel slide"
|
249 |
+
msgstr ""
|
250 |
+
|
251 |
+
#: includes/class-carousel-slider-admin.php:163
|
252 |
+
msgid "Preview"
|
253 |
+
msgstr ""
|
254 |
+
|
255 |
+
#: includes/class-carousel-slider-admin.php:179
|
256 |
+
msgid "Carousel Slide Title"
|
257 |
+
msgstr ""
|
258 |
+
|
259 |
+
#: includes/class-carousel-slider-admin.php:180
|
260 |
+
msgid "Shortcode"
|
261 |
+
msgstr ""
|
262 |
+
|
263 |
+
#: includes/class-carousel-slider-admin.php:181
|
264 |
+
#: templates/admin/types.php:11
|
265 |
+
msgid "Slide Type"
|
266 |
+
msgstr ""
|
267 |
+
|
268 |
+
#: includes/class-carousel-slider-admin.php:390
|
269 |
+
msgid "Link to URL"
|
270 |
+
msgstr ""
|
271 |
+
|
272 |
+
#: includes/class-carousel-slider-admin.php:395
|
273 |
+
msgid "\"Link to URL\" only works on Carousel Slider for linking image to a custom url."
|
274 |
+
msgstr ""
|
275 |
+
|
276 |
+
#: includes/class-carousel-slider-form.php:210
|
277 |
+
msgid "Create Gallery"
|
278 |
+
msgstr ""
|
279 |
+
|
280 |
+
#: includes/class-carousel-slider-form.php:211
|
281 |
+
msgid "Edit Gallery"
|
282 |
+
msgstr ""
|
283 |
+
|
284 |
+
#: includes/class-carousel-slider-form.php:212
|
285 |
+
msgid "Save Gallery"
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: includes/class-carousel-slider-form.php:213
|
289 |
+
msgid "Saving..."
|
290 |
+
msgstr ""
|
291 |
+
|
292 |
+
#: includes/class-carousel-slider-form.php:214
|
293 |
+
msgid "Insert"
|
294 |
+
msgstr ""
|
295 |
+
|
296 |
+
#: includes/class-carousel-slider-form.php:238
|
297 |
+
msgid "Edit URLs"
|
298 |
+
msgstr ""
|
299 |
+
|
300 |
+
#: includes/class-carousel-slider-form.php:238
|
301 |
+
msgid "Add URLs"
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: includes/class-carousel-slider-form.php:262
|
305 |
+
msgid "Browse"
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: includes/class-carousel-slider-hero-carousel.php:33
|
309 |
+
msgid "Required attribute is not set properly."
|
310 |
+
msgstr ""
|
311 |
+
|
312 |
+
#: includes/class-carousel-slider-hero-carousel.php:65
|
313 |
+
msgid "Required action is unauthorized."
|
314 |
+
msgstr ""
|
315 |
+
|
316 |
+
#: includes/class-carousel-slider-meta-box.php:54
|
317 |
+
msgid "Usage (Shortcode)"
|
318 |
+
msgstr ""
|
319 |
+
|
320 |
+
#: includes/class-carousel-slider-meta-box.php:62
|
321 |
+
#: templates/admin/navigation.php:9
|
322 |
+
msgid "Navigation Settings"
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: includes/class-carousel-slider-meta-box.php:70
|
326 |
+
#: templates/admin/autoplay.php:9
|
327 |
+
msgid "Autoplay Settings"
|
328 |
+
msgstr ""
|
329 |
+
|
330 |
+
#: includes/class-carousel-slider-meta-box.php:78
|
331 |
+
#: templates/admin/responsive.php:9
|
332 |
+
msgid "Responsive Settings"
|
333 |
+
msgstr ""
|
334 |
+
|
335 |
+
#: includes/class-carousel-slider-meta-box.php:86
|
336 |
+
msgid "General Settings"
|
337 |
+
msgstr ""
|
338 |
+
|
339 |
+
#: includes/class-carousel-slider-meta-box.php:110
|
340 |
+
msgid "Copy the following shortcode and paste in post or page where you want to show."
|
341 |
+
msgstr ""
|
342 |
+
|
343 |
+
#: includes/class-carousel-slider-meta-box.php:157
|
344 |
+
msgid "Show Arrow Nav"
|
345 |
+
msgstr ""
|
346 |
+
|
347 |
+
#: includes/class-carousel-slider-meta-box.php:160
|
348 |
+
#: includes/class-carousel-slider-meta-box.php:203
|
349 |
+
msgid "Never"
|
350 |
+
msgstr ""
|
351 |
+
|
352 |
+
#: includes/class-carousel-slider-meta-box.php:161
|
353 |
+
#: includes/class-carousel-slider-meta-box.php:205
|
354 |
+
msgid "Mouse Over"
|
355 |
+
msgstr ""
|
356 |
+
|
357 |
+
#: includes/class-carousel-slider-meta-box.php:165
|
358 |
+
msgid "Choose when to show arrow navigator."
|
359 |
+
msgstr ""
|
360 |
+
|
361 |
+
#: includes/class-carousel-slider-meta-box.php:169
|
362 |
+
msgid "Arrow Steps"
|
363 |
+
msgstr ""
|
364 |
+
|
365 |
+
#: includes/class-carousel-slider-meta-box.php:174
|
366 |
+
msgid "Steps to go for each navigation request. Write \"page\" with inverted comma to slide by page."
|
367 |
+
msgstr ""
|
368 |
+
|
369 |
+
#: includes/class-carousel-slider-meta-box.php:178
|
370 |
+
msgid "Arrow Position"
|
371 |
+
msgstr ""
|
372 |
+
|
373 |
+
#: includes/class-carousel-slider-meta-box.php:181
|
374 |
+
msgid "Outside"
|
375 |
+
msgstr ""
|
376 |
+
|
377 |
+
#: includes/class-carousel-slider-meta-box.php:182
|
378 |
+
msgid "Inside"
|
379 |
+
msgstr ""
|
380 |
+
|
381 |
+
#: includes/class-carousel-slider-meta-box.php:185
|
382 |
+
msgid "Choose where to show arrow. Inside slider or outside slider."
|
383 |
+
msgstr ""
|
384 |
+
|
385 |
+
#: includes/class-carousel-slider-meta-box.php:189
|
386 |
+
msgid "Arrow Size"
|
387 |
+
msgstr ""
|
388 |
+
|
389 |
+
#: includes/class-carousel-slider-meta-box.php:194
|
390 |
+
msgid "Enter arrow size in pixels."
|
391 |
+
msgstr ""
|
392 |
+
|
393 |
+
#: includes/class-carousel-slider-meta-box.php:200
|
394 |
+
msgid "Show Bullet Nav"
|
395 |
+
msgstr ""
|
396 |
+
|
397 |
+
#: includes/class-carousel-slider-meta-box.php:208
|
398 |
+
msgid "Choose when to show bullet navigator."
|
399 |
+
msgstr ""
|
400 |
+
|
401 |
+
#: includes/class-carousel-slider-meta-box.php:212
|
402 |
+
msgid "Bullet Position"
|
403 |
+
msgstr ""
|
404 |
+
|
405 |
+
#: includes/class-carousel-slider-meta-box.php:215
|
406 |
+
msgid "Left"
|
407 |
+
msgstr ""
|
408 |
+
|
409 |
+
#: includes/class-carousel-slider-meta-box.php:216
|
410 |
+
msgid "Center"
|
411 |
+
msgstr ""
|
412 |
+
|
413 |
+
#: includes/class-carousel-slider-meta-box.php:217
|
414 |
+
msgid "Right"
|
415 |
+
msgstr ""
|
416 |
+
|
417 |
+
#: includes/class-carousel-slider-meta-box.php:220
|
418 |
+
msgid "Choose where to show bullets."
|
419 |
+
msgstr ""
|
420 |
+
|
421 |
+
#: includes/class-carousel-slider-meta-box.php:224
|
422 |
+
msgid "Bullet Size"
|
423 |
+
msgstr ""
|
424 |
+
|
425 |
+
#: includes/class-carousel-slider-meta-box.php:229
|
426 |
+
msgid "Enter bullet size in pixels."
|
427 |
+
msgstr ""
|
428 |
+
|
429 |
+
#: includes/class-carousel-slider-meta-box.php:233
|
430 |
+
msgid "Bullet Shape"
|
431 |
+
msgstr ""
|
432 |
+
|
433 |
+
#: includes/class-carousel-slider-meta-box.php:236
|
434 |
+
msgid "Square"
|
435 |
+
msgstr ""
|
436 |
+
|
437 |
+
#: includes/class-carousel-slider-meta-box.php:237
|
438 |
+
msgid "Circle"
|
439 |
+
msgstr ""
|
440 |
+
|
441 |
+
#: includes/class-carousel-slider-meta-box.php:240
|
442 |
+
msgid "Choose bullet nav shape."
|
443 |
+
msgstr ""
|
444 |
+
|
445 |
+
#: includes/class-carousel-slider-meta-box.php:246
|
446 |
+
msgid "Arrows & Dots Color"
|
447 |
+
msgstr ""
|
448 |
+
|
449 |
+
#: includes/class-carousel-slider-meta-box.php:249
|
450 |
+
#: templates/admin/navigation.php:30
|
451 |
+
msgid "Pick a color for navigation and dots."
|
452 |
+
msgstr ""
|
453 |
+
|
454 |
+
#: includes/class-carousel-slider-meta-box.php:258
|
455 |
+
msgid "Arrows & Dots Hover Color"
|
456 |
+
msgstr ""
|
457 |
+
|
458 |
+
#: includes/class-carousel-slider-meta-box.php:261
|
459 |
+
#: templates/admin/navigation.php:36
|
460 |
+
msgid "Pick a color for navigation and dots for active and hover effect."
|
461 |
+
msgstr ""
|
462 |
+
|
463 |
+
#: includes/class-carousel-slider-meta-box.php:285
|
464 |
+
msgid "AutoPlay"
|
465 |
+
msgstr ""
|
466 |
+
|
467 |
+
#: includes/class-carousel-slider-meta-box.php:288
|
468 |
+
#: includes/class-carousel-slider-meta-box.php:299
|
469 |
+
msgid "Enable"
|
470 |
+
msgstr ""
|
471 |
+
|
472 |
+
#: includes/class-carousel-slider-meta-box.php:289
|
473 |
+
#: includes/class-carousel-slider-meta-box.php:300
|
474 |
+
msgid "Disable"
|
475 |
+
msgstr ""
|
476 |
+
|
477 |
+
#: includes/class-carousel-slider-meta-box.php:292
|
478 |
+
msgid "Choose whether slideshow should play automatically."
|
479 |
+
msgstr ""
|
480 |
+
|
481 |
+
#: includes/class-carousel-slider-meta-box.php:296
|
482 |
+
msgid "Pause On Hover"
|
483 |
+
msgstr ""
|
484 |
+
|
485 |
+
#: includes/class-carousel-slider-meta-box.php:303
|
486 |
+
msgid "Pause automatic play on mouse hover."
|
487 |
+
msgstr ""
|
488 |
+
|
489 |
+
#: includes/class-carousel-slider-meta-box.php:307
|
490 |
+
#: templates/admin/autoplay.php:23
|
491 |
+
msgid "Autoplay Timeout"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: includes/class-carousel-slider-meta-box.php:312
|
495 |
+
msgid "Automatic play interval timeout in millisecond. Default: 5000"
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: includes/class-carousel-slider-meta-box.php:316
|
499 |
+
#: templates/admin/autoplay.php:30
|
500 |
+
msgid "Autoplay Speed"
|
501 |
+
msgstr ""
|
502 |
+
|
503 |
+
#: includes/class-carousel-slider-meta-box.php:321
|
504 |
+
msgid "Automatic play speed in millisecond. Default: 500"
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: includes/class-carousel-slider-meta-box.php:352
|
508 |
+
#: templates/admin/responsive.php:17
|
509 |
+
msgid "Columns"
|
510 |
+
msgstr ""
|
511 |
+
|
512 |
+
#: includes/class-carousel-slider-meta-box.php:357
|
513 |
+
#: templates/admin/responsive.php:18
|
514 |
+
msgid "The number of items you want to see on the Extra Large Desktop Layout (Screens size greater than 1921 pixels DP)"
|
515 |
+
msgstr ""
|
516 |
+
|
517 |
+
#: includes/class-carousel-slider-meta-box.php:361
|
518 |
+
#: templates/admin/responsive.php:24
|
519 |
+
msgid "Columns : Desktop"
|
520 |
+
msgstr ""
|
521 |
+
|
522 |
+
#: includes/class-carousel-slider-meta-box.php:366
|
523 |
+
#: templates/admin/responsive.php:25
|
524 |
+
msgid "The number of items you want to see on the Desktop Layout (Screens size from 1200 pixels DP to 1920 pixels DP)"
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: includes/class-carousel-slider-meta-box.php:370
|
528 |
+
#: templates/admin/responsive.php:31
|
529 |
+
msgid "Columns : Small Desktop"
|
530 |
+
msgstr ""
|
531 |
+
|
532 |
+
#: includes/class-carousel-slider-meta-box.php:376
|
533 |
+
#: templates/admin/responsive.php:32
|
534 |
+
msgid "The number of items you want to see on the Small Desktop Layout (Screens size from 993 pixels DP to 1199 pixels DP)"
|
535 |
+
msgstr ""
|
536 |
+
|
537 |
+
#: includes/class-carousel-slider-meta-box.php:380
|
538 |
+
#: templates/admin/responsive.php:37
|
539 |
+
msgid "Columns : Tablet"
|
540 |
+
msgstr ""
|
541 |
+
|
542 |
+
#: includes/class-carousel-slider-meta-box.php:386
|
543 |
+
#: templates/admin/responsive.php:38
|
544 |
+
msgid "The number of items you want to see on the Tablet Layout (Screens size from 768 pixels DP to 992 pixels DP)"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: includes/class-carousel-slider-meta-box.php:390
|
548 |
+
#: templates/admin/responsive.php:43
|
549 |
+
msgid "Columns : Small Tablet"
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
+
#: includes/class-carousel-slider-meta-box.php:397
|
553 |
+
#: templates/admin/responsive.php:44
|
554 |
+
msgid "The number of items you want to see on the Small Tablet Layout(Screens size from 600 pixels DP to 767 pixels DP)"
|
555 |
+
msgstr ""
|
556 |
+
|
557 |
+
#: includes/class-carousel-slider-meta-box.php:401
|
558 |
+
#: templates/admin/responsive.php:49
|
559 |
+
msgid "Columns : Mobile"
|
560 |
+
msgstr ""
|
561 |
+
|
562 |
+
#: includes/class-carousel-slider-meta-box.php:408
|
563 |
+
#: templates/admin/responsive.php:50
|
564 |
+
msgid "The number of items you want to see on the Mobile Layout (Screens size from 320 pixels DP to 599 pixels DP)"
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#: includes/class-carousel-slider-product.php:112
|
568 |
+
#: templates/public/product-carousel.php:110
|
569 |
+
msgid "Quick View"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: includes/class-carousel-slider-product.php:140
|
573 |
+
#: templates/public/product-carousel.php:78
|
574 |
+
msgid "Sale!"
|
575 |
+
msgstr ""
|
576 |
+
|
577 |
+
#: includes/functions-carousel-slider.php:520
|
578 |
+
msgid "Image Carousel"
|
579 |
+
msgstr ""
|
580 |
+
|
581 |
+
#: includes/functions-carousel-slider.php:521
|
582 |
+
msgid "Image Carousel (URL)"
|
583 |
+
msgstr ""
|
584 |
+
|
585 |
+
#: includes/functions-carousel-slider.php:522
|
586 |
+
msgid "Post Carousel"
|
587 |
+
msgstr ""
|
588 |
+
|
589 |
+
#: includes/functions-carousel-slider.php:523
|
590 |
+
msgid "Product Carousel"
|
591 |
+
msgstr ""
|
592 |
+
|
593 |
+
#: includes/functions-carousel-slider.php:524
|
594 |
+
msgid "Video Carousel"
|
595 |
+
msgstr ""
|
596 |
+
|
597 |
+
#: includes/functions-carousel-slider.php:525
|
598 |
+
msgid "Hero Carousel"
|
599 |
+
msgstr ""
|
600 |
+
|
601 |
+
#: templates/admin/autoplay.php:16
|
602 |
+
msgid "Autoplay"
|
603 |
+
msgstr ""
|
604 |
+
|
605 |
+
#: templates/admin/autoplay.php:17
|
606 |
+
msgid "Autoplay."
|
607 |
+
msgstr ""
|
608 |
+
|
609 |
+
#: templates/admin/autoplay.php:18
|
610 |
+
msgid "Check to enable autoplay"
|
611 |
+
msgstr ""
|
612 |
+
|
613 |
+
#: templates/admin/autoplay.php:24
|
614 |
+
msgid "Autoplay interval timeout in millisecond. Default: 5000"
|
615 |
+
msgstr ""
|
616 |
+
|
617 |
+
#: templates/admin/autoplay.php:31
|
618 |
+
msgid "Autoplay speed in millisecond. Default: 500"
|
619 |
+
msgstr ""
|
620 |
+
|
621 |
+
#: templates/admin/autoplay.php:36
|
622 |
+
msgid "Autoplay Hover Pause"
|
623 |
+
msgstr ""
|
624 |
+
|
625 |
+
#: templates/admin/autoplay.php:37
|
626 |
+
msgid "Pause on mouse hover."
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: templates/admin/autoplay.php:38
|
630 |
+
msgid "Pause autoplay on mouse hover."
|
631 |
+
msgstr ""
|
632 |
+
|
633 |
+
#: templates/admin/documentation.php:9
|
634 |
+
msgid "Carousel Slider Documentation"
|
635 |
+
msgstr ""
|
636 |
+
|
637 |
+
#: templates/admin/documentation.php:20
|
638 |
+
msgid "Hero Image Carousel"
|
639 |
+
msgstr ""
|
640 |
+
|
641 |
+
#: templates/admin/documentation.php:21
|
642 |
+
msgid "Hero carousel demo."
|
643 |
+
msgstr ""
|
644 |
+
|
645 |
+
#: templates/admin/documentation.php:30
|
646 |
+
#: templates/admin/documentation.php:39
|
647 |
+
msgid "Images Carousel"
|
648 |
+
msgstr ""
|
649 |
+
|
650 |
+
#: templates/admin/documentation.php:31
|
651 |
+
msgid "Image carousel using gallery images"
|
652 |
+
msgstr ""
|
653 |
+
|
654 |
+
#: templates/admin/documentation.php:40
|
655 |
+
msgid "Image carousel using custom URLs"
|
656 |
+
msgstr ""
|
657 |
+
|
658 |
+
#: templates/admin/documentation.php:48
|
659 |
+
msgid "Posts Carousel"
|
660 |
+
msgstr ""
|
661 |
+
|
662 |
+
#: templates/admin/documentation.php:56
|
663 |
+
msgid "WooCommerce Products Carousel"
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: templates/admin/documentation.php:64
|
667 |
+
msgid "In Widget Areas"
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: templates/admin/documentation.php:72
|
671 |
+
msgid "With Page Builder by SiteOrigin"
|
672 |
+
msgstr ""
|
673 |
+
|
674 |
+
#: templates/admin/documentation.php:80
|
675 |
+
msgid "With Visual Composer Website Builder"
|
676 |
+
msgstr ""
|
677 |
+
|
678 |
+
#: templates/admin/general.php:8
|
679 |
+
msgid "_image_size"
|
680 |
+
msgstr ""
|
681 |
+
|
682 |
+
#: templates/admin/general.php:9
|
683 |
+
msgid "Carousel Image size"
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: templates/admin/general.php:11
|
687 |
+
msgid "Choose \"original uploaded image\" for full size image or your desired image size for carousel image. You can change the default size for thumbnail, medium and large from %1$s Settings >> Media %2$s."
|
688 |
+
msgstr ""
|
689 |
+
|
690 |
+
#: templates/admin/general.php:17
|
691 |
+
msgid "Lazy Loading"
|
692 |
+
msgstr ""
|
693 |
+
|
694 |
+
#: templates/admin/general.php:18
|
695 |
+
msgid "Enable image with lazy loading."
|
696 |
+
msgstr ""
|
697 |
+
|
698 |
+
#: templates/admin/general.php:27
|
699 |
+
msgid "Item Spacing."
|
700 |
+
msgstr ""
|
701 |
+
|
702 |
+
#: templates/admin/general.php:28
|
703 |
+
msgid "Space between two slide. Enter 10 for 10px"
|
704 |
+
msgstr ""
|
705 |
+
|
706 |
+
#: templates/admin/general.php:33
|
707 |
+
msgid "Infinity loop"
|
708 |
+
msgstr ""
|
709 |
+
|
710 |
+
#: templates/admin/general.php:34
|
711 |
+
msgid "Enable or disable loop(circular) of carousel."
|
712 |
+
msgstr ""
|
713 |
+
|
714 |
+
#: templates/admin/general.php:43
|
715 |
+
msgid "Stage Padding"
|
716 |
+
msgstr ""
|
717 |
+
|
718 |
+
#: templates/admin/general.php:44
|
719 |
+
msgid "Add left and right padding on carousel slider stage wrapper."
|
720 |
+
msgstr ""
|
721 |
+
|
722 |
+
#: templates/admin/general.php:49
|
723 |
+
msgid "Auto Width"
|
724 |
+
msgstr ""
|
725 |
+
|
726 |
+
#: templates/admin/general.php:50
|
727 |
+
msgid "Set item width according to its content width. Use width style on item to get the result you want. "
|
728 |
+
msgstr ""
|
729 |
+
|
730 |
+
#: templates/admin/hero-banner-slider.php:10
|
731 |
+
msgid "Hero Banner Slider"
|
732 |
+
msgstr ""
|
733 |
+
|
734 |
+
#: templates/admin/hero-banner-slider.php:116
|
735 |
+
msgid "Delete current slide"
|
736 |
+
msgstr ""
|
737 |
+
|
738 |
+
#: templates/admin/hero-banner-slider.php:129
|
739 |
+
msgid "Move Slide to Top"
|
740 |
+
msgstr ""
|
741 |
+
|
742 |
+
#: templates/admin/hero-banner-slider.php:140
|
743 |
+
msgid "Move Slide Up"
|
744 |
+
msgstr ""
|
745 |
+
|
746 |
+
#: templates/admin/hero-banner-slider.php:152
|
747 |
+
msgid "Move Slide Down"
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: templates/admin/hero-banner-slider.php:162
|
751 |
+
msgid "Move Slide to Bottom"
|
752 |
+
msgstr ""
|
753 |
+
|
754 |
+
#: templates/admin/hero-banner-slider.php:180
|
755 |
+
msgid "Slide Background"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: templates/admin/hero-banner-slider.php:184
|
759 |
+
msgid "Slide Content"
|
760 |
+
msgstr ""
|
761 |
+
|
762 |
+
#: templates/admin/hero-banner-slider.php:188
|
763 |
+
#: templates/admin/parts/hero-banner/tab-link.php:27
|
764 |
+
msgid "Slide Link"
|
765 |
+
msgstr ""
|
766 |
+
|
767 |
+
#: templates/admin/hero-banner-slider.php:192
|
768 |
+
msgid "Slide Style"
|
769 |
+
msgstr ""
|
770 |
+
|
771 |
+
#: templates/admin/hero-banner-slider.php:220
|
772 |
+
msgid "Slide Height"
|
773 |
+
msgstr ""
|
774 |
+
|
775 |
+
#: templates/admin/hero-banner-slider.php:222
|
776 |
+
msgid "Enter a px, em, rem or vh value for slide height. ex: 100vh"
|
777 |
+
msgstr ""
|
778 |
+
|
779 |
+
#: templates/admin/hero-banner-slider.php:232
|
780 |
+
msgid "Slider Content Max Width"
|
781 |
+
msgstr ""
|
782 |
+
|
783 |
+
#: templates/admin/hero-banner-slider.php:234
|
784 |
+
msgid "Enter a px, em, rem or % value for slide height. ex: 960px"
|
785 |
+
msgstr ""
|
786 |
+
|
787 |
+
#: templates/admin/hero-banner-slider.php:244
|
788 |
+
msgid "None"
|
789 |
+
msgstr ""
|
790 |
+
|
791 |
+
#: templates/admin/hero-banner-slider.php:245
|
792 |
+
msgid "Fade In Down"
|
793 |
+
msgstr ""
|
794 |
+
|
795 |
+
#: templates/admin/hero-banner-slider.php:246
|
796 |
+
msgid "Fade In Up"
|
797 |
+
msgstr ""
|
798 |
+
|
799 |
+
#: templates/admin/hero-banner-slider.php:247
|
800 |
+
msgid "Fade In Right"
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: templates/admin/hero-banner-slider.php:248
|
804 |
+
msgid "Fade In Left"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: templates/admin/hero-banner-slider.php:249
|
808 |
+
msgid "Zoom In"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: templates/admin/hero-banner-slider.php:254
|
812 |
+
msgid "Content Animation"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: templates/admin/hero-banner-slider.php:256
|
816 |
+
msgid "Select slide content animation."
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: templates/admin/hero-banner-slider.php:273
|
820 |
+
msgid "Slider Padding"
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: templates/admin/hero-banner-slider.php:275
|
824 |
+
msgid "Enter padding around slide in px, em or rem."
|
825 |
+
msgstr ""
|
826 |
+
|
827 |
+
#: templates/admin/images-media.php:10
|
828 |
+
msgid "Media Images"
|
829 |
+
msgstr ""
|
830 |
+
|
831 |
+
#: templates/admin/images-media.php:17
|
832 |
+
msgid "Carousel Images"
|
833 |
+
msgstr ""
|
834 |
+
|
835 |
+
#: templates/admin/images-media.php:18
|
836 |
+
msgid "Choose carousel images from media library."
|
837 |
+
msgstr ""
|
838 |
+
|
839 |
+
#: templates/admin/images-settings.php:12
|
840 |
+
msgid "Image Carousel Settings"
|
841 |
+
msgstr ""
|
842 |
+
|
843 |
+
#: templates/admin/images-settings.php:19
|
844 |
+
#: templates/admin/images-settings.php:20
|
845 |
+
msgid "Show Image Title"
|
846 |
+
msgstr ""
|
847 |
+
|
848 |
+
#: templates/admin/images-settings.php:21
|
849 |
+
msgid "Check to show title below image. Only works with image carousel."
|
850 |
+
msgstr ""
|
851 |
+
|
852 |
+
#: templates/admin/images-settings.php:26
|
853 |
+
#: templates/admin/images-settings.php:27
|
854 |
+
msgid "Show Image Caption"
|
855 |
+
msgstr ""
|
856 |
+
|
857 |
+
#: templates/admin/images-settings.php:28
|
858 |
+
msgid "Check to show caption below image. Only works with image carousel."
|
859 |
+
msgstr ""
|
860 |
+
|
861 |
+
#: templates/admin/images-settings.php:33
|
862 |
+
msgid "Image Target"
|
863 |
+
msgstr ""
|
864 |
+
|
865 |
+
#: templates/admin/images-settings.php:34
|
866 |
+
msgid "Choose where to open the linked image."
|
867 |
+
msgstr ""
|
868 |
+
|
869 |
+
#: templates/admin/images-settings.php:37
|
870 |
+
msgid "Open in the same frame as it was clicked"
|
871 |
+
msgstr ""
|
872 |
+
|
873 |
+
#: templates/admin/images-settings.php:38
|
874 |
+
msgid "Open in a new window or tab"
|
875 |
+
msgstr ""
|
876 |
+
|
877 |
+
#: templates/admin/images-settings.php:43
|
878 |
+
#: templates/admin/images-settings.php:44
|
879 |
+
msgid "Show Lightbox Gallery"
|
880 |
+
msgstr ""
|
881 |
+
|
882 |
+
#: templates/admin/images-settings.php:45
|
883 |
+
msgid "Check to show lightbox gallery."
|
884 |
+
msgstr ""
|
885 |
+
|
886 |
+
#: templates/admin/images-url.php:13
|
887 |
+
msgid "URL Images"
|
888 |
+
msgstr ""
|
889 |
+
|
890 |
+
#: templates/admin/images-url.php:20
|
891 |
+
msgid "Images URLs"
|
892 |
+
msgstr ""
|
893 |
+
|
894 |
+
#: templates/admin/images-url.php:21
|
895 |
+
msgid "Enter external images URLs."
|
896 |
+
msgstr ""
|
897 |
+
|
898 |
+
#: templates/admin/images-url.php:35
|
899 |
+
msgid "Image Carousel - from URL"
|
900 |
+
msgstr ""
|
901 |
+
|
902 |
+
#: templates/admin/images-url.php:104
|
903 |
+
msgid "Save"
|
904 |
+
msgstr ""
|
905 |
+
|
906 |
+
#: templates/admin/navigation.php:16
|
907 |
+
#: templates/admin/navigation.php:17
|
908 |
+
msgid "Navigation"
|
909 |
+
msgstr ""
|
910 |
+
|
911 |
+
#: templates/admin/navigation.php:18
|
912 |
+
msgid "Check to show next/prev icons."
|
913 |
+
msgstr ""
|
914 |
+
|
915 |
+
#: templates/admin/navigation.php:22
|
916 |
+
#: templates/admin/navigation.php:23
|
917 |
+
msgid "Dots"
|
918 |
+
msgstr ""
|
919 |
+
|
920 |
+
#: templates/admin/navigation.php:24
|
921 |
+
msgid "Check to show dots navigation."
|
922 |
+
msgstr ""
|
923 |
+
|
924 |
+
#: templates/admin/navigation.php:29
|
925 |
+
msgid "Navigation & Dots Color\t"
|
926 |
+
msgstr ""
|
927 |
+
|
928 |
+
#: templates/admin/navigation.php:35
|
929 |
+
msgid "Navigation & Dots Color: Hover & Active"
|
930 |
+
msgstr ""
|
931 |
+
|
932 |
+
#: templates/admin/parts/hero-banner/tab-background.php:14
|
933 |
+
msgid "Delete the background image for this slide"
|
934 |
+
msgstr ""
|
935 |
+
|
936 |
+
#: templates/admin/parts/hero-banner/tab-background.php:21
|
937 |
+
msgid "Select or Upload Slide Background Image"
|
938 |
+
msgstr ""
|
939 |
+
|
940 |
+
#: templates/admin/parts/hero-banner/tab-background.php:22
|
941 |
+
#: templates/admin/parts/hero-banner/tab-background.php:23
|
942 |
+
msgid "Set Background Image"
|
943 |
+
msgstr ""
|
944 |
+
|
945 |
+
#: templates/admin/parts/hero-banner/tab-background.php:30
|
946 |
+
msgid "Background Position:"
|
947 |
+
msgstr ""
|
948 |
+
|
949 |
+
#: templates/admin/parts/hero-banner/tab-background.php:48
|
950 |
+
msgid "Background Size:"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: templates/admin/parts/hero-banner/tab-background.php:61
|
954 |
+
msgid "Ken Burns Effect:"
|
955 |
+
msgstr ""
|
956 |
+
|
957 |
+
#: templates/admin/parts/hero-banner/tab-background.php:71
|
958 |
+
msgid "Background Color:"
|
959 |
+
msgstr ""
|
960 |
+
|
961 |
+
#: templates/admin/parts/hero-banner/tab-background.php:78
|
962 |
+
msgid "Background Overlay:"
|
963 |
+
msgstr ""
|
964 |
+
|
965 |
+
#: templates/admin/parts/hero-banner/tab-content.php:11
|
966 |
+
msgid "Slide Heading"
|
967 |
+
msgstr ""
|
968 |
+
|
969 |
+
#: templates/admin/parts/hero-banner/tab-content.php:12
|
970 |
+
msgid "Enter the heading for your slide. This field can take HTML markup."
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: templates/admin/parts/hero-banner/tab-content.php:23
|
974 |
+
msgid "Slide Description"
|
975 |
+
msgstr ""
|
976 |
+
|
977 |
+
#: templates/admin/parts/hero-banner/tab-content.php:24
|
978 |
+
msgid "Enter the description for your slide. This field can take HTML markup."
|
979 |
+
msgstr ""
|
980 |
+
|
981 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:9
|
982 |
+
msgid "Button #1"
|
983 |
+
msgstr ""
|
984 |
+
|
985 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:16
|
986 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:16
|
987 |
+
msgid "Button Text"
|
988 |
+
msgstr ""
|
989 |
+
|
990 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:17
|
991 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:17
|
992 |
+
msgid "Add the button text"
|
993 |
+
msgstr ""
|
994 |
+
|
995 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:27
|
996 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:27
|
997 |
+
msgid "Button URL"
|
998 |
+
msgstr ""
|
999 |
+
|
1000 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:28
|
1001 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:28
|
1002 |
+
msgid "Add the button url e.g. http://example.com"
|
1003 |
+
msgstr ""
|
1004 |
+
|
1005 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:38
|
1006 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:38
|
1007 |
+
msgid "Open Button Link In"
|
1008 |
+
msgstr ""
|
1009 |
+
|
1010 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:43
|
1011 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:43
|
1012 |
+
msgid "New Window"
|
1013 |
+
msgstr ""
|
1014 |
+
|
1015 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:44
|
1016 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:44
|
1017 |
+
msgid "Same window"
|
1018 |
+
msgstr ""
|
1019 |
+
|
1020 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:51
|
1021 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:51
|
1022 |
+
msgid "Button Type"
|
1023 |
+
msgstr ""
|
1024 |
+
|
1025 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:56
|
1026 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:56
|
1027 |
+
msgid "Normal"
|
1028 |
+
msgstr ""
|
1029 |
+
|
1030 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:57
|
1031 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:57
|
1032 |
+
msgid "Stroke"
|
1033 |
+
msgstr ""
|
1034 |
+
|
1035 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:64
|
1036 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:64
|
1037 |
+
msgid "Button Size"
|
1038 |
+
msgstr ""
|
1039 |
+
|
1040 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:69
|
1041 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:69
|
1042 |
+
msgid "Large"
|
1043 |
+
msgstr ""
|
1044 |
+
|
1045 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:70
|
1046 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:70
|
1047 |
+
msgid "Medium"
|
1048 |
+
msgstr ""
|
1049 |
+
|
1050 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:71
|
1051 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:71
|
1052 |
+
msgid "Small"
|
1053 |
+
msgstr ""
|
1054 |
+
|
1055 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:78
|
1056 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:79
|
1057 |
+
msgid "Border Width"
|
1058 |
+
msgstr ""
|
1059 |
+
|
1060 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:79
|
1061 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:80
|
1062 |
+
msgid "Enter border width in pixel. e.g. 2px"
|
1063 |
+
msgstr ""
|
1064 |
+
|
1065 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:90
|
1066 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:91
|
1067 |
+
msgid "Border Radius"
|
1068 |
+
msgstr ""
|
1069 |
+
|
1070 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:91
|
1071 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:92
|
1072 |
+
msgid "Enter border radius in pixel. e.g. 3px"
|
1073 |
+
msgstr ""
|
1074 |
+
|
1075 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:102
|
1076 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:103
|
1077 |
+
msgid "Button Color"
|
1078 |
+
msgstr ""
|
1079 |
+
|
1080 |
+
#: templates/admin/parts/hero-banner/tab-link-button-one.php:113
|
1081 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:114
|
1082 |
+
#: templates/admin/product-carousel.php:132
|
1083 |
+
msgid "Button Text Color"
|
1084 |
+
msgstr ""
|
1085 |
+
|
1086 |
+
#: templates/admin/parts/hero-banner/tab-link-button-two.php:9
|
1087 |
+
msgid "Button #2"
|
1088 |
+
msgstr ""
|
1089 |
+
|
1090 |
+
#: templates/admin/parts/hero-banner/tab-link.php:11
|
1091 |
+
msgid "Slide Link Type"
|
1092 |
+
msgstr ""
|
1093 |
+
|
1094 |
+
#: templates/admin/parts/hero-banner/tab-link.php:12
|
1095 |
+
msgid "Select how the slide will link."
|
1096 |
+
msgstr ""
|
1097 |
+
|
1098 |
+
#: templates/admin/parts/hero-banner/tab-link.php:17
|
1099 |
+
msgid "No Link"
|
1100 |
+
msgstr ""
|
1101 |
+
|
1102 |
+
#: templates/admin/parts/hero-banner/tab-link.php:18
|
1103 |
+
msgid "Full Slide"
|
1104 |
+
msgstr ""
|
1105 |
+
|
1106 |
+
#: templates/admin/parts/hero-banner/tab-link.php:19
|
1107 |
+
msgid "Button"
|
1108 |
+
msgstr ""
|
1109 |
+
|
1110 |
+
#: templates/admin/parts/hero-banner/tab-link.php:28
|
1111 |
+
msgid "Please enter your URL that will be used to link the full slide."
|
1112 |
+
msgstr ""
|
1113 |
+
|
1114 |
+
#: templates/admin/parts/hero-banner/tab-link.php:39
|
1115 |
+
msgid "Open Slide Link In New Window"
|
1116 |
+
msgstr ""
|
1117 |
+
|
1118 |
+
#: templates/admin/parts/hero-banner/tab-link.php:44
|
1119 |
+
msgid "Yes"
|
1120 |
+
msgstr ""
|
1121 |
+
|
1122 |
+
#: templates/admin/parts/hero-banner/tab-link.php:45
|
1123 |
+
msgid "No"
|
1124 |
+
msgstr ""
|
1125 |
+
|
1126 |
+
#: templates/admin/parts/hero-banner/tab-style.php:11
|
1127 |
+
msgid "Content Alignment"
|
1128 |
+
msgstr ""
|
1129 |
+
|
1130 |
+
#: templates/admin/parts/hero-banner/tab-style.php:12
|
1131 |
+
msgid "Select how the heading, description and buttons will be aligned"
|
1132 |
+
msgstr ""
|
1133 |
+
|
1134 |
+
#: templates/admin/parts/hero-banner/tab-style.php:26
|
1135 |
+
msgid "Heading Font Size"
|
1136 |
+
msgstr ""
|
1137 |
+
|
1138 |
+
#: templates/admin/parts/hero-banner/tab-style.php:27
|
1139 |
+
msgid "Enter heading font size without px unit. In pixels, ex: 50 instead of 50px. Default: 60"
|
1140 |
+
msgstr ""
|
1141 |
+
|
1142 |
+
#: templates/admin/parts/hero-banner/tab-style.php:38
|
1143 |
+
msgid "Spacing/Gutter"
|
1144 |
+
msgstr ""
|
1145 |
+
|
1146 |
+
#: templates/admin/parts/hero-banner/tab-style.php:39
|
1147 |
+
msgid "Enter gutter (space between description and heading) in px, em or rem, ex: 3rem"
|
1148 |
+
msgstr ""
|
1149 |
+
|
1150 |
+
#: templates/admin/parts/hero-banner/tab-style.php:49
|
1151 |
+
msgid "Heading Color"
|
1152 |
+
msgstr ""
|
1153 |
+
|
1154 |
+
#: templates/admin/parts/hero-banner/tab-style.php:50
|
1155 |
+
msgid "Select a color for the heading font. Default: #fff"
|
1156 |
+
msgstr ""
|
1157 |
+
|
1158 |
+
#: templates/admin/parts/hero-banner/tab-style.php:62
|
1159 |
+
msgid "Description Font Size"
|
1160 |
+
msgstr ""
|
1161 |
+
|
1162 |
+
#: templates/admin/parts/hero-banner/tab-style.php:63
|
1163 |
+
msgid "Enter description font size without px unit. In pixels, ex: 20 instead of 20px. Default: 24"
|
1164 |
+
msgstr ""
|
1165 |
+
|
1166 |
+
#: templates/admin/parts/hero-banner/tab-style.php:74
|
1167 |
+
msgid "Description Spacing/Gutter"
|
1168 |
+
msgstr ""
|
1169 |
+
|
1170 |
+
#: templates/admin/parts/hero-banner/tab-style.php:75
|
1171 |
+
msgid "Enter gutter (space between description and buttons) in px, em or rem, ex: 3rem"
|
1172 |
+
msgstr ""
|
1173 |
+
|
1174 |
+
#: templates/admin/parts/hero-banner/tab-style.php:85
|
1175 |
+
msgid "Description Color"
|
1176 |
+
msgstr ""
|
1177 |
+
|
1178 |
+
#: templates/admin/parts/hero-banner/tab-style.php:86
|
1179 |
+
msgid "Select a color for the description font. Default: #fff"
|
1180 |
+
msgstr ""
|
1181 |
+
|
1182 |
+
#: templates/admin/post-carousel.php:10
|
1183 |
+
msgid "Post Query"
|
1184 |
+
msgstr ""
|
1185 |
+
|
1186 |
+
#: templates/admin/post-carousel.php:17
|
1187 |
+
#: templates/admin/product-carousel.php:17
|
1188 |
+
msgid "Query Type"
|
1189 |
+
msgstr ""
|
1190 |
+
|
1191 |
+
#: templates/admin/post-carousel.php:20
|
1192 |
+
msgid "Latest Posts"
|
1193 |
+
msgstr ""
|
1194 |
+
|
1195 |
+
#: templates/admin/post-carousel.php:21
|
1196 |
+
msgid "Date Range"
|
1197 |
+
msgstr ""
|
1198 |
+
|
1199 |
+
#: templates/admin/post-carousel.php:22
|
1200 |
+
#: templates/admin/post-carousel.php:41
|
1201 |
+
msgid "Post Categories"
|
1202 |
+
msgstr ""
|
1203 |
+
|
1204 |
+
#: templates/admin/post-carousel.php:23
|
1205 |
+
#: templates/admin/post-carousel.php:48
|
1206 |
+
msgid "Post Tags"
|
1207 |
+
msgstr ""
|
1208 |
+
|
1209 |
+
#: templates/admin/post-carousel.php:24
|
1210 |
+
#: templates/admin/post-carousel.php:54
|
1211 |
+
msgid "Specific posts"
|
1212 |
+
msgstr ""
|
1213 |
+
|
1214 |
+
#: templates/admin/post-carousel.php:29
|
1215 |
+
msgid "Date from"
|
1216 |
+
msgstr ""
|
1217 |
+
|
1218 |
+
#: templates/admin/post-carousel.php:30
|
1219 |
+
#: templates/admin/post-carousel.php:35
|
1220 |
+
msgid "Example: %s"
|
1221 |
+
msgstr ""
|
1222 |
+
|
1223 |
+
#: templates/admin/post-carousel.php:34
|
1224 |
+
msgid "Date to"
|
1225 |
+
msgstr ""
|
1226 |
+
|
1227 |
+
#: templates/admin/post-carousel.php:42
|
1228 |
+
msgid "Show posts associated with selected categories."
|
1229 |
+
msgstr ""
|
1230 |
+
|
1231 |
+
#: templates/admin/post-carousel.php:49
|
1232 |
+
msgid "Show posts associated with selected tags."
|
1233 |
+
msgstr ""
|
1234 |
+
|
1235 |
+
#: templates/admin/post-carousel.php:55
|
1236 |
+
msgid "Select posts that you want to show as slider. Select at least 5 posts"
|
1237 |
+
msgstr ""
|
1238 |
+
|
1239 |
+
#: templates/admin/post-carousel.php:59
|
1240 |
+
msgid "Posts per page"
|
1241 |
+
msgstr ""
|
1242 |
+
|
1243 |
+
#: templates/admin/post-carousel.php:61
|
1244 |
+
msgid "How many post you want to show on carousel slide."
|
1245 |
+
msgstr ""
|
1246 |
+
|
1247 |
+
#: templates/admin/post-carousel.php:65
|
1248 |
+
msgid "Order"
|
1249 |
+
msgstr ""
|
1250 |
+
|
1251 |
+
#: templates/admin/post-carousel.php:68
|
1252 |
+
msgid "Ascending Order"
|
1253 |
+
msgstr ""
|
1254 |
+
|
1255 |
+
#: templates/admin/post-carousel.php:69
|
1256 |
+
msgid "Descending Order"
|
1257 |
+
msgstr ""
|
1258 |
+
|
1259 |
+
#: templates/admin/post-carousel.php:74
|
1260 |
+
msgid "Order by"
|
1261 |
+
msgstr ""
|
1262 |
+
|
1263 |
+
#: templates/admin/post-carousel.php:77
|
1264 |
+
msgid "No order"
|
1265 |
+
msgstr ""
|
1266 |
+
|
1267 |
+
#: templates/admin/post-carousel.php:78
|
1268 |
+
msgid "Post id"
|
1269 |
+
msgstr ""
|
1270 |
+
|
1271 |
+
#: templates/admin/post-carousel.php:79
|
1272 |
+
msgid "Post author"
|
1273 |
+
msgstr ""
|
1274 |
+
|
1275 |
+
#: templates/admin/post-carousel.php:80
|
1276 |
+
msgid "Post title"
|
1277 |
+
msgstr ""
|
1278 |
+
|
1279 |
+
#: templates/admin/post-carousel.php:81
|
1280 |
+
msgid "Last modified date"
|
1281 |
+
msgstr ""
|
1282 |
+
|
1283 |
+
#: templates/admin/post-carousel.php:82
|
1284 |
+
msgid "Random order"
|
1285 |
+
msgstr ""
|
1286 |
+
|
1287 |
+
#: templates/admin/post-carousel.php:83
|
1288 |
+
msgid "Number of comments"
|
1289 |
+
msgstr ""
|
1290 |
+
|
1291 |
+
#: templates/admin/product-carousel.php:10
|
1292 |
+
msgid "Product Query"
|
1293 |
+
msgstr ""
|
1294 |
+
|
1295 |
+
#: templates/admin/product-carousel.php:20
|
1296 |
+
msgid "Query Products"
|
1297 |
+
msgstr ""
|
1298 |
+
|
1299 |
+
#: templates/admin/product-carousel.php:21
|
1300 |
+
#: templates/admin/product-carousel.php:43
|
1301 |
+
msgid "Product Categories"
|
1302 |
+
msgstr ""
|
1303 |
+
|
1304 |
+
#: templates/admin/product-carousel.php:22
|
1305 |
+
#: templates/admin/product-carousel.php:50
|
1306 |
+
msgid "Product Tags"
|
1307 |
+
msgstr ""
|
1308 |
+
|
1309 |
+
#: templates/admin/product-carousel.php:23
|
1310 |
+
msgid "Specific Products"
|
1311 |
+
msgstr ""
|
1312 |
+
|
1313 |
+
#: templates/admin/product-carousel.php:28
|
1314 |
+
msgid "Choose Query"
|
1315 |
+
msgstr ""
|
1316 |
+
|
1317 |
+
#: templates/admin/product-carousel.php:31
|
1318 |
+
msgid "Featured Products"
|
1319 |
+
msgstr ""
|
1320 |
+
|
1321 |
+
#: templates/admin/product-carousel.php:32
|
1322 |
+
msgid "Recent Products"
|
1323 |
+
msgstr ""
|
1324 |
+
|
1325 |
+
#: templates/admin/product-carousel.php:33
|
1326 |
+
msgid "Sale Products"
|
1327 |
+
msgstr ""
|
1328 |
+
|
1329 |
+
#: templates/admin/product-carousel.php:34
|
1330 |
+
msgid "Best-Selling Products"
|
1331 |
+
msgstr ""
|
1332 |
+
|
1333 |
+
#: templates/admin/product-carousel.php:35
|
1334 |
+
msgid "Top Rated Products"
|
1335 |
+
msgstr ""
|
1336 |
+
|
1337 |
+
#: templates/admin/product-carousel.php:36
|
1338 |
+
msgid "Product Categories List"
|
1339 |
+
msgstr ""
|
1340 |
+
|
1341 |
+
#: templates/admin/product-carousel.php:44
|
1342 |
+
msgid "Show products associated with selected categories."
|
1343 |
+
msgstr ""
|
1344 |
+
|
1345 |
+
#: templates/admin/product-carousel.php:51
|
1346 |
+
msgid "Show products associated with selected tags."
|
1347 |
+
msgstr ""
|
1348 |
+
|
1349 |
+
#: templates/admin/product-carousel.php:57
|
1350 |
+
msgid "Specific products"
|
1351 |
+
msgstr ""
|
1352 |
+
|
1353 |
+
#: templates/admin/product-carousel.php:58
|
1354 |
+
msgid "Select products that you want to show as slider. Select at least 5 products"
|
1355 |
+
msgstr ""
|
1356 |
+
|
1357 |
+
#: templates/admin/product-carousel.php:62
|
1358 |
+
msgid "Product per page"
|
1359 |
+
msgstr ""
|
1360 |
+
|
1361 |
+
#: templates/admin/product-carousel.php:64
|
1362 |
+
msgid "How many products you want to show on carousel slide."
|
1363 |
+
msgstr ""
|
1364 |
+
|
1365 |
+
#: templates/admin/product-carousel.php:68
|
1366 |
+
msgid "Show Title"
|
1367 |
+
msgstr ""
|
1368 |
+
|
1369 |
+
#: templates/admin/product-carousel.php:69
|
1370 |
+
msgid "Show Title."
|
1371 |
+
msgstr ""
|
1372 |
+
|
1373 |
+
#: templates/admin/product-carousel.php:70
|
1374 |
+
msgid "Check to show product title."
|
1375 |
+
msgstr ""
|
1376 |
+
|
1377 |
+
#: templates/admin/product-carousel.php:75
|
1378 |
+
msgid "Show Rating"
|
1379 |
+
msgstr ""
|
1380 |
+
|
1381 |
+
#: templates/admin/product-carousel.php:76
|
1382 |
+
msgid "Show Rating."
|
1383 |
+
msgstr ""
|
1384 |
+
|
1385 |
+
#: templates/admin/product-carousel.php:77
|
1386 |
+
msgid "Check to show product rating."
|
1387 |
+
msgstr ""
|
1388 |
+
|
1389 |
+
#: templates/admin/product-carousel.php:82
|
1390 |
+
msgid "Show Price"
|
1391 |
+
msgstr ""
|
1392 |
+
|
1393 |
+
#: templates/admin/product-carousel.php:83
|
1394 |
+
msgid "Show Price."
|
1395 |
+
msgstr ""
|
1396 |
+
|
1397 |
+
#: templates/admin/product-carousel.php:84
|
1398 |
+
msgid "Check to show product price."
|
1399 |
+
msgstr ""
|
1400 |
+
|
1401 |
+
#: templates/admin/product-carousel.php:89
|
1402 |
+
msgid "Show Cart Button"
|
1403 |
+
msgstr ""
|
1404 |
+
|
1405 |
+
#: templates/admin/product-carousel.php:90
|
1406 |
+
msgid "Show Cart Button."
|
1407 |
+
msgstr ""
|
1408 |
+
|
1409 |
+
#: templates/admin/product-carousel.php:91
|
1410 |
+
msgid "Check to show product add to cart button."
|
1411 |
+
msgstr ""
|
1412 |
+
|
1413 |
+
#: templates/admin/product-carousel.php:96
|
1414 |
+
#: templates/admin/product-carousel.php:97
|
1415 |
+
msgid "Show Sale Tag"
|
1416 |
+
msgstr ""
|
1417 |
+
|
1418 |
+
#: templates/admin/product-carousel.php:98
|
1419 |
+
msgid "Check to show product sale tag for onsale products."
|
1420 |
+
msgstr ""
|
1421 |
+
|
1422 |
+
#: templates/admin/product-carousel.php:103
|
1423 |
+
#: templates/admin/product-carousel.php:104
|
1424 |
+
msgid "Show Wishlist Button"
|
1425 |
+
msgstr ""
|
1426 |
+
|
1427 |
+
#: templates/admin/product-carousel.php:106
|
1428 |
+
msgid "Check to show wishlist button. This feature needs %s plugin to be installed."
|
1429 |
+
msgstr ""
|
1430 |
+
|
1431 |
+
#: templates/admin/product-carousel.php:106
|
1432 |
+
msgid "YITH WooCommerce Wishlist"
|
1433 |
+
msgstr ""
|
1434 |
+
|
1435 |
+
#: templates/admin/product-carousel.php:110
|
1436 |
+
#: templates/admin/product-carousel.php:111
|
1437 |
+
msgid "Show Quick View"
|
1438 |
+
msgstr ""
|
1439 |
+
|
1440 |
+
#: templates/admin/product-carousel.php:112
|
1441 |
+
msgid "Check to show quick view button."
|
1442 |
+
msgstr ""
|
1443 |
+
|
1444 |
+
#: templates/admin/product-carousel.php:118
|
1445 |
+
msgid "Title Color"
|
1446 |
+
msgstr ""
|
1447 |
+
|
1448 |
+
#: templates/admin/product-carousel.php:119
|
1449 |
+
msgid "Pick a color for product title. This color will also apply to sale tag and price."
|
1450 |
+
msgstr ""
|
1451 |
+
|
1452 |
+
#: templates/admin/product-carousel.php:125
|
1453 |
+
msgid "Button Background Color"
|
1454 |
+
msgstr ""
|
1455 |
+
|
1456 |
+
#: templates/admin/product-carousel.php:126
|
1457 |
+
msgid "Pick a color for button background color. This color will also apply to product rating."
|
1458 |
+
msgstr ""
|
1459 |
+
|
1460 |
+
#: templates/admin/product-carousel.php:133
|
1461 |
+
msgid "Pick a color for button text color."
|
1462 |
+
msgstr ""
|
1463 |
+
|
1464 |
+
#: templates/admin/video-carousel.php:10
|
1465 |
+
msgid "Video Settings"
|
1466 |
+
msgstr ""
|
1467 |
+
|
1468 |
+
#: templates/admin/video-carousel.php:17
|
1469 |
+
msgid "Video URLs"
|
1470 |
+
msgstr ""
|
1471 |
+
|
1472 |
+
#: templates/admin/video-carousel.php:20
|
1473 |
+
msgid "Only support youtube and vimeo. Enter video URL from youtube or vimeo separating each by comma"
|
1474 |
+
msgstr ""
|
1475 |
+
|
1476 |
+
#: templates/public/product-carousel-2.php:10
|
1477 |
+
#: templates/public/product-carousel.php:10
|
1478 |
+
msgid "Carousel Slider needs %s to work for products carousel."
|
1479 |
+
msgstr ""
|
1480 |
+
|
1481 |
+
#: templates/public/product-carousel-2.php:12
|
1482 |
+
#: templates/public/product-carousel.php:12
|
1483 |
+
msgid "WooCommerce"
|
1484 |
+
msgstr ""
|
modules/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php // Silence is golden
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Carousel Slider ===
|
2 |
Contributors: sayful, stackonet, majeedraza
|
3 |
Tags: woocommerce, shortcode, images, carousel, carousel slider, image carousel, product carousel, slider, owl carousel
|
4 |
-
Requires at least:
|
5 |
-
Tested up to: 5.
|
6 |
-
Requires PHP:
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
10 |
|
@@ -86,6 +86,17 @@ If you still need help. visit [WordPress codex](https://codex.wordpress.org/Mana
|
|
86 |
|
87 |
== Changelog ==
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
= version 1.9.5 - 2020-12-19 =
|
90 |
* Dev - Update javaScript dependencies to latest version.
|
91 |
* Dev - Tested with WordPress 5.6 and WooCommerce 4.8
|
1 |
=== Carousel Slider ===
|
2 |
Contributors: sayful, stackonet, majeedraza
|
3 |
Tags: woocommerce, shortcode, images, carousel, carousel slider, image carousel, product carousel, slider, owl carousel
|
4 |
+
Requires at least: 5.2
|
5 |
+
Tested up to: 5.8
|
6 |
+
Requires PHP: 7.0
|
7 |
+
Stable tag: 1.10.2
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
10 |
|
86 |
|
87 |
== Changelog ==
|
88 |
|
89 |
+
= version 1.10.2 - 2021-08-01 =
|
90 |
+
* Dev - Tested with WordPress 5.8 and WooCommerce 5.5
|
91 |
+
* Fix - Fix video carousel image is not showing for non-lazy loading slider.
|
92 |
+
|
93 |
+
= version 1.10.1 - 2021-07-05 =
|
94 |
+
* Dev - Add custom update message for future major version
|
95 |
+
|
96 |
+
= version 1.10.0 - 2021-03-17 =
|
97 |
+
* Dev - Tested with WordPress 5.7 and WooCommerce 5.1
|
98 |
+
* Dev - Update core code with namespace
|
99 |
+
|
100 |
= version 1.9.5 - 2020-12-19 =
|
101 |
* Dev - Update javaScript dependencies to latest version.
|
102 |
* Dev - Tested with WordPress 5.6 and WooCommerce 4.8
|
shortcodes/class-carousel-slider-deprecated-shortcode.php
DELETED
@@ -1,193 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
die; // If this file is called directly, abort.
|
5 |
-
}
|
6 |
-
|
7 |
-
if ( ! class_exists( 'Carousel_Slider_Deprecated_Shortcode' ) ):
|
8 |
-
|
9 |
-
class Carousel_Slider_Deprecated_Shortcode {
|
10 |
-
|
11 |
-
protected static $instance = null;
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
15 |
-
*
|
16 |
-
* @return Carousel_Slider_Deprecated_Shortcode
|
17 |
-
*/
|
18 |
-
public static function init() {
|
19 |
-
if ( is_null( self::$instance ) ) {
|
20 |
-
self::$instance = new self();
|
21 |
-
}
|
22 |
-
|
23 |
-
return self::$instance;
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* class constructor.
|
28 |
-
*/
|
29 |
-
public function __construct() {
|
30 |
-
// Deprecated since version 1.6.0
|
31 |
-
add_shortcode( 'carousel', array( $this, 'carousel' ) );
|
32 |
-
add_shortcode( 'item', array( $this, 'item' ) );
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* A shortcode for rendering the carousel slide.
|
37 |
-
*
|
38 |
-
* @param array $atts Shortcode attributes.
|
39 |
-
* @param string $content The text content for shortcode. Not used.
|
40 |
-
*
|
41 |
-
* @return string The shortcode output
|
42 |
-
*/
|
43 |
-
public function carousel( $atts, $content = null ) {
|
44 |
-
extract( shortcode_atts( array(
|
45 |
-
'id' => rand( 1, 10 ),
|
46 |
-
'items_desktop_large' => '4',
|
47 |
-
'items' => '4',
|
48 |
-
'items_desktop' => '4',
|
49 |
-
'items_desktop_small' => '3',
|
50 |
-
'items_tablet' => '2',
|
51 |
-
'items_mobile' => '1',
|
52 |
-
'auto_play' => 'true',
|
53 |
-
'stop_on_hover' => 'true',
|
54 |
-
'navigation' => 'true',
|
55 |
-
'pagination' => 'false',
|
56 |
-
'nav_color' => '#f1f1f1',
|
57 |
-
'nav_active_color' => '#4caf50',
|
58 |
-
'margin_right' => '10',
|
59 |
-
'inifnity_loop' => 'true',
|
60 |
-
'autoplay_timeout' => '5000',
|
61 |
-
'autoplay_speed' => '500',
|
62 |
-
'slide_by' => '1',
|
63 |
-
), $atts ) );
|
64 |
-
|
65 |
-
ob_start();
|
66 |
-
|
67 |
-
$options_array = array(
|
68 |
-
'id' => 'id-' . $id,
|
69 |
-
'class' => 'owl-carousel carousel-slider',
|
70 |
-
// General
|
71 |
-
'data-slide-type' => 'image-carousel-url',
|
72 |
-
'data-margin' => $margin_right,
|
73 |
-
'data-slide-by' => $slide_by,
|
74 |
-
'data-loop' => $inifnity_loop,
|
75 |
-
'data-lazy-load' => 'false',
|
76 |
-
'data-stage-padding' => 0,
|
77 |
-
'data-auto-width' => 'false',
|
78 |
-
// Navigation
|
79 |
-
'data-nav' => $navigation,
|
80 |
-
'data-dots' => $pagination,
|
81 |
-
// Autoplay
|
82 |
-
'data-autoplay' => $auto_play,
|
83 |
-
'data-autoplay-timeout' => $autoplay_timeout,
|
84 |
-
'data-autoplay-speed' => $autoplay_speed,
|
85 |
-
'data-autoplay-hover-pause' => $stop_on_hover,
|
86 |
-
// Responsive
|
87 |
-
'data-colums' => $items_desktop_large,
|
88 |
-
'data-colums-desktop' => $items,
|
89 |
-
'data-colums-small-desktop' => $items_desktop,
|
90 |
-
'data-colums-tablet' => $items_desktop_small,
|
91 |
-
'data-colums-small-tablet' => $items_tablet,
|
92 |
-
'data-colums-mobile' => $items_mobile,
|
93 |
-
);
|
94 |
-
?>
|
95 |
-
<style>
|
96 |
-
#id-<?php echo $id; ?> .owl-dots .owl-dot span {
|
97 |
-
background-color: <?php echo $nav_color; ?>
|
98 |
-
}
|
99 |
-
|
100 |
-
#id-<?php echo $id; ?> .owl-dots .owl-dot.active span,
|
101 |
-
#id-<?php echo $id; ?> .owl-dots .owl-dot:hover span {
|
102 |
-
background-color: <?php echo $nav_active_color; ?>
|
103 |
-
}
|
104 |
-
|
105 |
-
#id-<?php echo $id; ?> .carousel-slider-nav-icon {
|
106 |
-
fill: <?php echo $nav_color; ?>;
|
107 |
-
}
|
108 |
-
|
109 |
-
#id-<?php echo $id; ?> .carousel-slider-nav-icon:hover {
|
110 |
-
fill: <?php echo $nav_active_color; ?>;
|
111 |
-
}
|
112 |
-
</style>
|
113 |
-
<?php
|
114 |
-
if ( current_user_can( 'manage_options' ) ) {
|
115 |
-
printf(
|
116 |
-
'<div style="background-color: #ffdddd;border-left: 0.375rem solid #f44336; margin-bottom: 1rem;
|
117 |
-
margin-top: 1rem;padding: 0.01rem 1rem;"><p><strong>%s</strong><br>%s<br>%s</p></div> ',
|
118 |
-
esc_html__( 'Admin Only Notice!', 'carousel-slider' ),
|
119 |
-
esc_html__( 'From carousel slider version 1.6.0, [carousel] and [item] shortcode has been deprecated.', 'carousel-slider' ),
|
120 |
-
esc_html__( 'Both [carousel] and [item] shortcode will be removed on carousel slider version 2.0.0', 'carousel-slider' )
|
121 |
-
);
|
122 |
-
}
|
123 |
-
?>
|
124 |
-
<div <?php echo $this->array_to_data( $options_array ); ?>>
|
125 |
-
<?php echo do_shortcode( $content ); ?>
|
126 |
-
</div><!-- .carousel-slider -->
|
127 |
-
<?php
|
128 |
-
$html = ob_get_contents();
|
129 |
-
ob_end_clean();
|
130 |
-
|
131 |
-
return $html;
|
132 |
-
|
133 |
-
}
|
134 |
-
|
135 |
-
/**
|
136 |
-
* A shortcode for rendering the carousel slide.
|
137 |
-
*
|
138 |
-
* @param array $attributes Shortcode attributes.
|
139 |
-
* @param string $content The text content for shortcode. Not used.
|
140 |
-
*
|
141 |
-
* @return string The shortcode output
|
142 |
-
*/
|
143 |
-
public function item( $attributes, $content = null ) {
|
144 |
-
extract( shortcode_atts( array(
|
145 |
-
'img_link' => '',
|
146 |
-
'href' => '',
|
147 |
-
'target' => '_self',
|
148 |
-
), $attributes ) );
|
149 |
-
|
150 |
-
if ( ! $this->is_valid_url( $img_link ) ) {
|
151 |
-
return '';
|
152 |
-
}
|
153 |
-
|
154 |
-
if ( $this->is_valid_url( $href ) ) {
|
155 |
-
|
156 |
-
return sprintf( '<div><a target="%3$s" href="%2$s"><img src="%1$s"></a></div>', esc_url( $img_link ), esc_url( $href ), $target );
|
157 |
-
} else {
|
158 |
-
|
159 |
-
return sprintf( '<div><img src="%s"></div>', esc_url( $img_link ) );
|
160 |
-
}
|
161 |
-
}
|
162 |
-
|
163 |
-
/**
|
164 |
-
* Check if url is valid as per RFC 2396 Generic Syntax
|
165 |
-
*
|
166 |
-
* @param string $url
|
167 |
-
*
|
168 |
-
* @return boolean
|
169 |
-
*/
|
170 |
-
private function is_valid_url( $url ) {
|
171 |
-
return carousel_slider_is_url( $url );
|
172 |
-
}
|
173 |
-
|
174 |
-
/**
|
175 |
-
* Convert array to html attributes
|
176 |
-
*
|
177 |
-
* @param array $array
|
178 |
-
*
|
179 |
-
* @return string
|
180 |
-
*/
|
181 |
-
private function array_to_data( array $array ) {
|
182 |
-
$array_map = array_map( function ( $key, $value ) {
|
183 |
-
return sprintf( '%s="%s"', $key, esc_attr( $value ) );
|
184 |
-
|
185 |
-
}, array_keys( $array ), array_values( $array ) );
|
186 |
-
|
187 |
-
return join( " ", $array_map );
|
188 |
-
}
|
189 |
-
}
|
190 |
-
|
191 |
-
endif;
|
192 |
-
|
193 |
-
Carousel_Slider_Deprecated_Shortcode::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
shortcodes/class-carousel-slider-shortcode.php
DELETED
@@ -1,384 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
die; // If this file is called directly, abort.
|
5 |
-
}
|
6 |
-
|
7 |
-
if ( ! class_exists( 'Carousel_Slider_Shortcode' ) ):
|
8 |
-
|
9 |
-
class Carousel_Slider_Shortcode {
|
10 |
-
|
11 |
-
/**
|
12 |
-
* The instance of the class
|
13 |
-
*
|
14 |
-
* @var self
|
15 |
-
*/
|
16 |
-
protected static $instance = null;
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Ensures only one instance of this class is loaded or can be loaded.
|
20 |
-
*
|
21 |
-
* @return Carousel_Slider_Shortcode
|
22 |
-
*/
|
23 |
-
public static function init() {
|
24 |
-
if ( is_null( self::$instance ) ) {
|
25 |
-
self::$instance = new self();
|
26 |
-
}
|
27 |
-
|
28 |
-
return self::$instance;
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* CarouselSliderShortcode constructor.
|
33 |
-
*/
|
34 |
-
public function __construct() {
|
35 |
-
add_shortcode( 'carousel_slide', array( $this, 'carousel_slide' ) );
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* A shortcode for rendering the carousel slide.
|
40 |
-
*
|
41 |
-
* @param array $attributes Shortcode attributes.
|
42 |
-
*
|
43 |
-
* @return string The shortcode output
|
44 |
-
*/
|
45 |
-
public function carousel_slide( $attributes ) {
|
46 |
-
if ( empty( $attributes['id'] ) ) {
|
47 |
-
return '';
|
48 |
-
}
|
49 |
-
|
50 |
-
$id = intval( $attributes['id'] );
|
51 |
-
|
52 |
-
$slide_type = get_post_meta( $id, '_slide_type', true );
|
53 |
-
$slide_type = in_array( $slide_type, carousel_slider_slide_type() ) ? $slide_type : 'image-carousel';
|
54 |
-
|
55 |
-
if ( $slide_type == 'post-carousel' ) {
|
56 |
-
ob_start();
|
57 |
-
require CAROUSEL_SLIDER_TEMPLATES . '/public/post-carousel.php';
|
58 |
-
$html = ob_get_contents();
|
59 |
-
ob_end_clean();
|
60 |
-
|
61 |
-
return apply_filters( 'carousel_slider_posts_carousel', $html, $id );
|
62 |
-
}
|
63 |
-
|
64 |
-
if ( $slide_type == 'video-carousel' ) {
|
65 |
-
wp_enqueue_script( 'magnific-popup' );
|
66 |
-
$_video_urls = array_filter( explode( ',', $this->get_meta( $id, '_video_url' ) ) );
|
67 |
-
$urls = $this->get_video_url( $_video_urls );
|
68 |
-
|
69 |
-
ob_start();
|
70 |
-
require CAROUSEL_SLIDER_TEMPLATES . '/public/video-carousel.php';
|
71 |
-
$html = ob_get_contents();
|
72 |
-
ob_end_clean();
|
73 |
-
|
74 |
-
return apply_filters( 'carousel_slider_videos_carousel', $html, $id );
|
75 |
-
}
|
76 |
-
|
77 |
-
if ( $slide_type == 'image-carousel-url' ) {
|
78 |
-
ob_start();
|
79 |
-
require CAROUSEL_SLIDER_TEMPLATES . '/public/images-carousel-url.php';
|
80 |
-
$html = ob_get_contents();
|
81 |
-
ob_end_clean();
|
82 |
-
|
83 |
-
return apply_filters( 'carousel_slider_link_images_carousel', $html, $id );
|
84 |
-
}
|
85 |
-
|
86 |
-
if ( $slide_type == 'image-carousel' ) {
|
87 |
-
ob_start();
|
88 |
-
require CAROUSEL_SLIDER_TEMPLATES . '/public/images-carousel.php';
|
89 |
-
$html = ob_get_contents();
|
90 |
-
ob_end_clean();
|
91 |
-
|
92 |
-
return apply_filters( 'carousel_slider_gallery_images_carousel', $html, $id );
|
93 |
-
}
|
94 |
-
|
95 |
-
if ( $slide_type == 'product-carousel' ) {
|
96 |
-
|
97 |
-
$query_type = get_post_meta( $id, '_product_query_type', true );
|
98 |
-
$query_type = empty( $query_type ) ? 'query_product' : $query_type;
|
99 |
-
// Type mistake
|
100 |
-
$query_type = ( 'query_porduct' == $query_type ) ? 'query_product' : $query_type;
|
101 |
-
$product_query = get_post_meta( $id, '_product_query', true );
|
102 |
-
|
103 |
-
if ( $query_type == 'query_product' && $product_query == 'product_categories_list' ) {
|
104 |
-
ob_start();
|
105 |
-
|
106 |
-
echo $this->product_categories( $id );
|
107 |
-
$html = ob_get_contents();
|
108 |
-
ob_end_clean();
|
109 |
-
|
110 |
-
return apply_filters( 'carousel_slider_product_carousel', $html, $id );
|
111 |
-
}
|
112 |
-
|
113 |
-
ob_start();
|
114 |
-
require CAROUSEL_SLIDER_TEMPLATES . '/public/product-carousel.php';
|
115 |
-
$html = ob_get_contents();
|
116 |
-
ob_end_clean();
|
117 |
-
|
118 |
-
return apply_filters( 'carousel_slider_product_carousel', $html, $id );
|
119 |
-
}
|
120 |
-
|
121 |
-
if ( $slide_type == 'hero-banner-slider' ) {
|
122 |
-
|
123 |
-
ob_start();
|
124 |
-
require CAROUSEL_SLIDER_TEMPLATES . '/public/hero-banner-slider.php';
|
125 |
-
$html = ob_get_contents();
|
126 |
-
ob_end_clean();
|
127 |
-
|
128 |
-
return apply_filters( 'Carousel_Slider_Hero_Carousel', $html, $id );
|
129 |
-
}
|
130 |
-
|
131 |
-
return '';
|
132 |
-
}
|
133 |
-
|
134 |
-
/**
|
135 |
-
* Generate carousel options for slider
|
136 |
-
*
|
137 |
-
* @param $id
|
138 |
-
*
|
139 |
-
* @return array
|
140 |
-
*/
|
141 |
-
private function carousel_options( $id ) {
|
142 |
-
$_nav_button = get_post_meta( $id, '_nav_button', true );
|
143 |
-
$_arrow_position = get_post_meta( $id, '_arrow_position', true );
|
144 |
-
$_dot_nav = get_post_meta( $id, '_dot_nav', true );
|
145 |
-
$_bullet_position = get_post_meta( $id, '_bullet_position', true );
|
146 |
-
$_bullet_shape = get_post_meta( $id, '_bullet_shape', true );
|
147 |
-
|
148 |
-
$class = 'owl-carousel carousel-slider';
|
149 |
-
|
150 |
-
// Arrows position
|
151 |
-
if ( $_arrow_position == 'inside' ) {
|
152 |
-
$class .= ' arrows-inside';
|
153 |
-
} else {
|
154 |
-
$class .= ' arrows-outside';
|
155 |
-
}
|
156 |
-
|
157 |
-
// Arrows visibility
|
158 |
-
if ( $_nav_button == 'always' ) {
|
159 |
-
$class .= ' arrows-visible-always';
|
160 |
-
} elseif ( $_nav_button == 'off' ) {
|
161 |
-
$class .= ' arrows-hidden';
|
162 |
-
} else {
|
163 |
-
$class .= ' arrows-visible-hover';
|
164 |
-
}
|
165 |
-
|
166 |
-
// Dots visibility
|
167 |
-
if ( $_dot_nav == 'on' ) {
|
168 |
-
$class .= ' dots-visible-always';
|
169 |
-
} elseif ( $_dot_nav == 'off' ) {
|
170 |
-
$class .= ' dots-hidden';
|
171 |
-
} else {
|
172 |
-
$class .= ' dots-visible-hover';
|
173 |
-
}
|
174 |
-
|
175 |
-
// Dots position
|
176 |
-
if ( $_bullet_position == 'left' ) {
|
177 |
-
$class .= ' dots-left';
|
178 |
-
} elseif ( $_bullet_position == 'right' ) {
|
179 |
-
$class .= ' dots-right';
|
180 |
-
} else {
|
181 |
-
$class .= ' dots-center';
|
182 |
-
}
|
183 |
-
|
184 |
-
// Dots shape
|
185 |
-
if ( $_bullet_shape == 'circle' ) {
|
186 |
-
$class .= ' dots-circle';
|
187 |
-
} else {
|
188 |
-
$class .= ' dots-square';
|
189 |
-
}
|
190 |
-
|
191 |
-
$_dot_nav = ( get_post_meta( $id, '_dot_nav', true ) != 'off' );
|
192 |
-
$_nav_button = ( get_post_meta( $id, '_nav_button', true ) != 'off' );
|
193 |
-
|
194 |
-
$options_array = array(
|
195 |
-
'id' => 'id-' . $id,
|
196 |
-
'class' => $class,
|
197 |
-
// General
|
198 |
-
'data-slide-type' => $this->get_meta( $id, '_slide_type', 'image-carousel' ),
|
199 |
-
'data-margin' => $this->get_meta( $id, '_margin_right', '10' ),
|
200 |
-
'data-slide-by' => $this->get_meta( $id, '_slide_by', '1' ),
|
201 |
-
'data-loop' => $this->get_meta( $id, '_inifnity_loop', 'true' ),
|
202 |
-
'data-lazy-load' => $this->get_meta( $id, '_lazy_load_image', 'false' ),
|
203 |
-
'data-stage-padding' => $this->get_meta( $id, '_stage_padding', '0' ),
|
204 |
-
'data-auto-width' => $this->get_meta( $id, '_auto_width', 'false' ),
|
205 |
-
// Navigation
|
206 |
-
'data-dots' => $_dot_nav,
|
207 |
-
'data-nav' => $_nav_button,
|
208 |
-
// Autoplay
|
209 |
-
'data-autoplay' => $this->get_meta( $id, '_autoplay', 'true' ),
|
210 |
-
'data-autoplay-timeout' => $this->get_meta( $id, '_autoplay_timeout', '5000' ),
|
211 |
-
'data-autoplay-speed' => $this->get_meta( $id, '_autoplay_speed', '500' ),
|
212 |
-
'data-autoplay-hover-pause' => $this->get_meta( $id, '_autoplay_pause', 'false' ),
|
213 |
-
// Responsive
|
214 |
-
'data-colums' => $this->get_meta( $id, '_items', '4' ),
|
215 |
-
'data-colums-desktop' => $this->get_meta( $id, '_items_desktop', '4' ),
|
216 |
-
'data-colums-small-desktop' => $this->get_meta( $id, '_items_small_desktop', '4' ),
|
217 |
-
'data-colums-tablet' => $this->get_meta( $id, '_items_portrait_tablet', '3' ),
|
218 |
-
'data-colums-small-tablet' => $this->get_meta( $id, '_items_small_portrait_tablet', '2' ),
|
219 |
-
'data-colums-mobile' => $this->get_meta( $id, '_items_portrait_mobile', '1' ),
|
220 |
-
);
|
221 |
-
|
222 |
-
return $this->array_to_data( $options_array );
|
223 |
-
}
|
224 |
-
|
225 |
-
/**
|
226 |
-
* Get post meta by id and key
|
227 |
-
*
|
228 |
-
* @param $id
|
229 |
-
* @param $key
|
230 |
-
* @param null $default
|
231 |
-
*
|
232 |
-
* @return string
|
233 |
-
*/
|
234 |
-
public function get_meta( $id, $key, $default = null ) {
|
235 |
-
return carousel_slider_get_meta( $id, $key, $default );
|
236 |
-
}
|
237 |
-
|
238 |
-
/**
|
239 |
-
* Convert array to html data attribute
|
240 |
-
*
|
241 |
-
* @param $array
|
242 |
-
*
|
243 |
-
* @return array
|
244 |
-
*/
|
245 |
-
public function array_to_data( $array ) {
|
246 |
-
return carousel_slider_array_to_attribute( $array );
|
247 |
-
}
|
248 |
-
|
249 |
-
/**
|
250 |
-
* Get product categories list carousel
|
251 |
-
*
|
252 |
-
* @param int $id
|
253 |
-
*
|
254 |
-
* @return string
|
255 |
-
*/
|
256 |
-
private function product_categories( $id = 0 ) {
|
257 |
-
|
258 |
-
$product_carousel = new Carousel_Slider_Product();
|
259 |
-
$product_categories = $product_carousel->product_categories();
|
260 |
-
|
261 |
-
$options = $this->carousel_options( $id );
|
262 |
-
$options = join( " ", $options );
|
263 |
-
|
264 |
-
ob_start();
|
265 |
-
if ( $product_categories ) {
|
266 |
-
echo '<div class="carousel-slider-outer carousel-slider-outer-products carousel-slider-outer-' . $id . '">';
|
267 |
-
carousel_slider_inline_style( $id );
|
268 |
-
echo '<div ' . $options . '>';
|
269 |
-
|
270 |
-
|
271 |
-
foreach ( $product_categories as $category ) {
|
272 |
-
echo '<div class="product carousel-slider__product">';
|
273 |
-
do_action( 'woocommerce_before_subcategory', $category );
|
274 |
-
do_action( 'woocommerce_before_subcategory_title', $category );
|
275 |
-
do_action( 'woocommerce_shop_loop_subcategory_title', $category );
|
276 |
-
do_action( 'woocommerce_after_subcategory_title', $category );
|
277 |
-
do_action( 'woocommerce_after_subcategory', $category );
|
278 |
-
echo '</div>';
|
279 |
-
}
|
280 |
-
|
281 |
-
echo '</div>';
|
282 |
-
echo '</div>';
|
283 |
-
}
|
284 |
-
|
285 |
-
$html = ob_get_contents();
|
286 |
-
ob_end_clean();
|
287 |
-
|
288 |
-
return $html;
|
289 |
-
}
|
290 |
-
|
291 |
-
/**
|
292 |
-
* Get Youtube video ID from URL
|
293 |
-
*
|
294 |
-
* @param string $url
|
295 |
-
*
|
296 |
-
* @return mixed Youtube video ID or FALSE if not found
|
297 |
-
*/
|
298 |
-
private function get_youtube_id_from_url( $url ) {
|
299 |
-
$parts = parse_url( $url );
|
300 |
-
if ( isset( $parts['query'] ) ) {
|
301 |
-
parse_str( $parts['query'], $qs );
|
302 |
-
if ( isset( $qs['v'] ) ) {
|
303 |
-
return $qs['v'];
|
304 |
-
} elseif ( isset( $qs['vi'] ) ) {
|
305 |
-
return $qs['vi'];
|
306 |
-
}
|
307 |
-
}
|
308 |
-
if ( isset( $parts['path'] ) ) {
|
309 |
-
$path = explode( '/', trim( $parts['path'], '/' ) );
|
310 |
-
|
311 |
-
return $path[ count( $path ) - 1 ];
|
312 |
-
}
|
313 |
-
|
314 |
-
return false;
|
315 |
-
}
|
316 |
-
|
317 |
-
/**
|
318 |
-
* Get Vimeo video ID from URL
|
319 |
-
*
|
320 |
-
* @param string $url
|
321 |
-
*
|
322 |
-
* @return mixed Vimeo video ID or FALSE if not found
|
323 |
-
*/
|
324 |
-
private function get_vimeo_id_from_url( $url ) {
|
325 |
-
$parts = parse_url( $url );
|
326 |
-
if ( isset( $parts['path'] ) ) {
|
327 |
-
$path = explode( '/', trim( $parts['path'], '/' ) );
|
328 |
-
|
329 |
-
return $path[ count( $path ) - 1 ];
|
330 |
-
}
|
331 |
-
|
332 |
-
return false;
|
333 |
-
}
|
334 |
-
|
335 |
-
/**
|
336 |
-
* @param $video_urls
|
337 |
-
*
|
338 |
-
* @return array
|
339 |
-
*/
|
340 |
-
public function get_video_url( array $video_urls ) {
|
341 |
-
$_url = array();
|
342 |
-
foreach ( $video_urls as $video_url ) {
|
343 |
-
if ( ! filter_var( $video_url, FILTER_VALIDATE_URL ) ) {
|
344 |
-
continue;
|
345 |
-
}
|
346 |
-
$provider = '';
|
347 |
-
$video_id = '';
|
348 |
-
$thumbnail = '';
|
349 |
-
if ( false !== strpos( $video_url, 'youtube.com' ) ) {
|
350 |
-
$provider = 'youtube';
|
351 |
-
$video_id = $this->get_youtube_id_from_url( $video_url );
|
352 |
-
$thumbnail = array(
|
353 |
-
'large' => 'https://img.youtube.com/vi/' . $video_id . '/hqdefault.jpg',
|
354 |
-
'medium' => 'https://img.youtube.com/vi/' . $video_id . '/mqdefault.jpg',
|
355 |
-
'small' => 'https://img.youtube.com/vi/' . $video_id . '/sddefault.jpg',
|
356 |
-
);
|
357 |
-
|
358 |
-
} elseif ( false !== strpos( $video_url, 'vimeo.com' ) ) {
|
359 |
-
$provider = 'vimeo';
|
360 |
-
$video_id = $this->get_vimeo_id_from_url( $video_url );
|
361 |
-
$response = wp_remote_get( "https://vimeo.com/api/v2/video/$video_id.json" );
|
362 |
-
$thumbnail = json_decode( wp_remote_retrieve_body( $response ), true );
|
363 |
-
$thumbnail = array(
|
364 |
-
'large' => isset( $thumbnail[0]['thumbnail_large'] ) ? $thumbnail[0]['thumbnail_large'] : null,
|
365 |
-
'medium' => isset( $thumbnail[0]['thumbnail_medium'] ) ? $thumbnail[0]['thumbnail_medium'] : null,
|
366 |
-
'small' => isset( $thumbnail[0]['thumbnail_small'] ) ? $thumbnail[0]['thumbnail_small'] : null,
|
367 |
-
);
|
368 |
-
}
|
369 |
-
|
370 |
-
$_url[] = array(
|
371 |
-
'provider' => $provider,
|
372 |
-
'url' => $video_url,
|
373 |
-
'video_id' => $video_id,
|
374 |
-
'thumbnail' => $thumbnail,
|
375 |
-
);
|
376 |
-
}
|
377 |
-
|
378 |
-
return $_url;
|
379 |
-
}
|
380 |
-
}
|
381 |
-
|
382 |
-
endif;
|
383 |
-
|
384 |
-
Carousel_Slider_Shortcode::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
shortcodes/index.php
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
// Code is Poetry
|
|
|
|
templates/public/video-carousel.php
CHANGED
@@ -7,24 +7,29 @@ if ( ! defined( 'WPINC' ) ) {
|
|
7 |
if ( count( $urls ) < 1 ) {
|
8 |
return;
|
9 |
}
|
|
|
10 |
?>
|
11 |
<div class="carousel-slider-outer carousel-slider-outer-videos carousel-slider-outer-<?php echo $id; ?>">
|
12 |
<?php carousel_slider_inline_style( $id ); ?>
|
13 |
-
|
14 |
<?php
|
15 |
foreach ( $urls as $url ) {
|
16 |
?>
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
|
|
26 |
<?php
|
27 |
}
|
28 |
?>
|
29 |
-
|
30 |
</div>
|
7 |
if ( count( $urls ) < 1 ) {
|
8 |
return;
|
9 |
}
|
10 |
+
$_lazy_load_image = get_post_meta( $id, '_lazy_load_image', true );
|
11 |
?>
|
12 |
<div class="carousel-slider-outer carousel-slider-outer-videos carousel-slider-outer-<?php echo $id; ?>">
|
13 |
<?php carousel_slider_inline_style( $id ); ?>
|
14 |
+
<div <?php echo join( " ", $this->carousel_options( $id ) ); ?>>
|
15 |
<?php
|
16 |
foreach ( $urls as $url ) {
|
17 |
?>
|
18 |
+
<div class="carousel-slider-item-video">
|
19 |
+
<div class="carousel-slider-video-wrapper">
|
20 |
+
<a class="magnific-popup" href="<?php echo $url['url']; ?>">
|
21 |
+
<div class="carousel-slider-video-play-icon"></div>
|
22 |
+
<div class="carousel-slider-video-overlay"></div>
|
23 |
+
<?php if ( $_lazy_load_image == 'on' ) { ?>
|
24 |
+
<img class="owl-lazy" data-src="<?php echo $url['thumbnail']['large']; ?>" alt=""/>
|
25 |
+
<?php } else { ?>
|
26 |
+
<img src="<?php echo $url['thumbnail']['large']; ?>" alt=""/>
|
27 |
+
<?php } ?>
|
28 |
+
</a>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
<?php
|
32 |
}
|
33 |
?>
|
34 |
+
</div>
|
35 |
</div>
|
widgets/index.php
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
// Code is Poetry
|
|
|
|