getgrav / grav-plugin-shortcode-owl-carousel

Grav Shortcode Owl Carousel Plugin
https://getgrav.org
MIT License
11 stars 12 forks source link

fix: match type for parameter values #21

Closed pospiemi closed 4 years ago

pospiemi commented 4 years ago

This fixes the broken responsive parameter (issue #2) and boolean values handling introduced in v1.0.2

Details:

Testcode:

[owl-carousel margin=10 loop=false autoplay=false autoplayHoverPause=true nav=false responsive="{0:{items:1,autoplay:true},600:{items:2},1000:{items:3,loop:true}}"]
![](pic_1.jpg)
...
[/owl-carousel]

Output v1.0.1:

        $("#owl-0ce80006b3").owlCarousel({
                        margin: 10,
                        loop: false,
                        autoplay: false,
                        autoplayHoverPause: true,
                        nav: false,
                        responsive: {0:{items:1,autoplay:true},600:{items:2},1000:{items:3,loop:true}},
                    });

Output v1.0.2:

$(document).ready(function(){ $("#owl-0ce80006b3").owlCarousel({"margin":10,"loop":"false","autoplay":"false","autoplayHoverPause":"true","nav":"false","responsive":"{0:{items:1,autoplay:true},600:{items:2},1000:{items:3,loop:true}}"}); });

json_encode quotes everything except numbers as a string. Therefore in owlCarousel: "true"/"false" gets ignored - defaults are used "responsive" value as string causes an TypeError in jQuery - the owl-carousel is not shown

Output this version:

$(document).ready(function(){ $("#owl-0ce80006b3").owlCarousel({"margin":10,"loop":false,"autoplay":false,"autoplayHoverPause":true,"nav":false,"responsive":{"0":{"items":1,"autoplay":true},"600":{"items":2},"1000":{"items":3,"loop":true}}}); });

works again.

fabienrohrer commented 4 years ago

Please merge this PR :-) I just tested it and it's working like a charm. Being unable to set responsiveness just prevent this plugin to be usable in practice.