Changeset 2678158
- Timestamp:
- 02/14/2022 04:55:51 AM (4 years ago)
- Location:
- no-bs-image-slider
- Files:
-
- 4 edited
- 5 copied
-
tags/1.8 (copied) (copied from no-bs-image-slider/trunk)
-
tags/1.8/changelog.txt (copied) (copied from no-bs-image-slider/trunk/changelog.txt) (1 diff)
-
tags/1.8/plugin.php (copied) (copied from no-bs-image-slider/trunk/plugin.php) (14 diffs)
-
tags/1.8/readme.txt (copied) (copied from no-bs-image-slider/trunk/readme.txt) (3 diffs)
-
tags/1.8/style.css (copied) (copied from no-bs-image-slider/trunk/style.css) (1 diff)
-
trunk/changelog.txt (modified) (1 diff)
-
trunk/plugin.php (modified) (14 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/style.css (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
no-bs-image-slider/tags/1.8/changelog.txt
r2607986 r2678158 1 = 1.7.1 = 2 * PHP 5.4 compatibility patch 3 4 = 1.7 = 5 * Images loaded eagerly be default. 6 * Image lazy loading parameter. 7 1 8 = 1.6.1 = 2 9 Hotfix -
no-bs-image-slider/tags/1.8/plugin.php
r2607986 r2678158 5 5 Plugin URI: https://planetjon.ca/projects/no-bs-image-slider/ 6 6 Description: For displaying a light-weight image slider 7 Version: 1. 7.17 Version: 1.8 8 8 Requires at least: 4.7 9 Tested up to: 5. 8.19 Tested up to: 5.9 10 10 Requires PHP: 5.4 11 11 Author: Jonathan Weatherhead … … 20 20 21 21 const default_slide_duration = 5; 22 const default_transition_duration = 1.25; 22 23 23 24 function renderSlider( $id, array $slides, array $args = [] ) { … … 28 29 $slideCount = count( $slides ); 29 30 $showCounter = filter_var( $args['showCounter'], FILTER_VALIDATE_BOOLEAN ); 30 $slideDuration = filter_var( $args['slideDuration'], FILTER_VALIDATE_ INT, [31 $slideDuration = filter_var( $args['slideDuration'], FILTER_VALIDATE_FLOAT, [ 31 32 'options' => [ 'default' => default_slide_duration, 'min_range' => 1 ] 32 33 ] ); 34 $transitionDuration = filter_var( $args['transitionDuration'], FILTER_VALIDATE_FLOAT, [ 35 'options' => [ 'default' => default_transition_duration, 'min_range' => 0 ] 36 ] ); 37 38 if( $showCounter ) { 39 $sliderClass .= ' show-counter'; 40 } 33 41 34 42 $sliderKeyframes = ''; 35 43 $sliderAnimationName = $sliderID . '-keyframes'; 36 44 $sliderAnimationDuration = $slideCount * $slideDuration; 37 for( $i = 0; $i < $slideCount; $i++ ) { 45 $transitionDuration = min( $transitionDuration, $slideDuration ); 46 // Build slider animation keyframes 47 for( $i = 0; $i < $slideCount; ++$i ) { 48 // Start stationary keyframe for slide 38 49 $sliderKeyframes .= sprintf( 39 50 '%3.2f%%{transform:translateX(-%d%%)}', 40 51 100 * $i / $slideCount, 41 $i * 100 42 ); 52 100 * $i 53 ); 54 55 // Start transition keyframe to next slide 43 56 $sliderKeyframes .= sprintf( 44 57 '%3.2f%%{transform:translateX(-%d%%)}', 45 100 * ($i + .75) / $slideCount, 46 $i * 100 47 ); 48 } 58 100 * ($i + 1 - $transitionDuration / $slideDuration) / $slideCount, 59 100 * $i 60 ); 61 } 62 // Reset slider to neutral position at the end of animation 49 63 $sliderKeyframes .= '100%{transform:translateX(0%)}'; 50 64 65 // Inject generated slider animation 51 66 printf( 52 67 '<style>#%1$s{--slide-count:%2$d}#%1$s .scrollpane{animation-name:%3$s;animation-duration:%4$ds;}@keyframes %3$s{%5$s}</style>', … … 58 73 ); 59 74 60 if( $showCounter ) { 61 $sliderClass .= ' show-counter'; 62 } 63 75 // Provide opportunity to inject additional styling 64 76 if( is_callable( $args['stylesCallback'] ) ) { 65 77 call_user_func( $args['stylesCallback'], $id ); … … 71 83 } 72 84 85 // Slider container 73 86 printf( 74 87 '<div id="%1$s" class="%2$s" %3$s><div class="scrollpane" aria-live="off">', … … 77 90 join( ' ', $sliderAria ) 78 91 ); 92 93 // Slider slides 79 94 $counter = 0; 80 95 foreach( $slides as $slide ) { … … 104 119 'slider' => '', 105 120 'duration' => default_slide_duration, 121 'transition' => default_transition_duration, 106 122 'showcounter' => 'no', 107 123 'lazy' => 'no' … … 112 128 $slider = $params['slider']; 113 129 $slideDuration = $params['duration']; 130 $transitionDuration = $params['transition']; 114 131 $showCounter = $params['showcounter']; 115 132 $loadingAttribute = filter_var( $params['lazy'], FILTER_VALIDATE_BOOLEAN ) ? 'lazy' : false; … … 160 177 'description' => $sliderInfo->name, 161 178 'slideDuration' => $slideDuration, 179 'transitionDuration' => $transitionDuration, 162 180 'showCounter' => $showCounter, 163 181 'stylesCallback' => function( $slider ) { … … 192 210 $slider = $instance['nbis']; 193 211 $slideDuration = $instance['nbisd']; 212 $transitionDuration = $instance['nbist']; 194 213 $showCounter = $instance['nbisc']; 195 214 $lazyImages = $instance['nbisl']; … … 198 217 'slider' => $slider, 199 218 'duration' => $slideDuration, 219 'transition' => $transitionDuration, 200 220 'showcounter' => $showCounter, 201 221 'lazy' => $lazyImages … … 213 233 $slider = $instance['nbis'] ?: ''; 214 234 $slideDuration = $instance['nbisd'] ?: default_slide_duration; 235 $transitionDuration = $instance['nbist'] ?: default_transition_duration; 215 236 $showCounter = $instance['nbisc']; 216 237 $lazyImages = $instance['nbisl']; … … 238 259 printf( 239 260 '<p><label>%s <input type="number" min="1" id="%s" name="%s" value="%s" /></label></p>', 240 __( 'Slide Duration (seconds)', 'no-bs-image-slider' ),261 __( 'Slide duration (seconds)', 'no-bs-image-slider' ), 241 262 esc_attr( $this->get_field_id( 'nbisd' ) ), 242 263 esc_attr( $this->get_field_name( 'nbisd' ) ), 243 264 esc_attr( $slideDuration ), 265 ); 266 267 printf( 268 '<p><label>%s <input type="number" min="1" id="%s" name="%s" value="%s" /></label></p>', 269 __( 'Slide transition (seconds)', 'no-bs-image-slider' ), 270 esc_attr( $this->get_field_id( 'nbist' ) ), 271 esc_attr( $this->get_field_name( 'nbist' ) ), 272 esc_attr( $transitionDuration ), 244 273 ); 245 274 … … 265 294 public function update( $new, $old ) { 266 295 $instance = [ 267 'nbis' => !empty( $new['nbis'] ) ? sanitize_text_field( $new['nbis'] ) : false, 268 'nbisd' => !empty( $new['nbisd'] ) ? sanitize_text_field( $new['nbisd'] ) : false, 269 'nbisc' => !empty( $new['nbisc'] ) ? sanitize_text_field( $new['nbisc'] ) : false, 270 'nbisl' => !empty( $new['nbisl'] ) ? sanitize_text_field( $new['nbisl'] ) : false 296 'nbis' => !empty( $new['nbis'] ) ? sanitize_text_field( $new['nbis'] ) : null, 297 'nbisd' => !empty( $new['nbisd'] ) ? sanitize_text_field( $new['nbisd'] ) : null, 298 'nbist' => !empty( $new['nbist'] ) ? sanitize_text_field( $new['nbist'] ) : null, 299 'nbisc' => !empty( $new['nbisc'] ) ? sanitize_text_field( $new['nbisc'] ) : null, 300 'nbisl' => !empty( $new['nbisl'] ) ? sanitize_text_field( $new['nbisl'] ) : null 271 301 ]; 272 302 -
no-bs-image-slider/tags/1.8/readme.txt
r2607986 r2678158 4 4 Tags: carousel, slideshow, responsive, accessible 5 5 Requires at least: 4.7 6 Tested up to: 5. 8.16 Tested up to: 5.9 7 7 Requires PHP: 5.4 8 Stable tag: 1. 7.18 Stable tag: 1.8 9 9 License: GPL2 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 40 40 41 41 * slider="slug" 42 * duration="number" (default 5) 42 * duration="number" (seconds, default 5) 43 * transition="number" (seconds, default 1.25) 43 44 * showcounter="yes|no" (default no) 44 45 * lazy="yes|no" (default no) … … 74 75 == Changelog == 75 76 76 + 1.7.1 = 77 * PHP 5.4 compatibility patch 78 79 = 1.7.0 = 80 * Images loaded eagerly be default. 81 * Image lazy loading parameter. 77 = 1.8 = 78 * Transition duration parameter added. -
no-bs-image-slider/tags/1.8/style.css
r2597622 r2678158 5 5 overflow: hidden; 6 6 counter-reset: nbis-slides; 7 will-change: translate; 7 8 } 8 9 -
no-bs-image-slider/trunk/changelog.txt
r2607986 r2678158 1 = 1.7.1 = 2 * PHP 5.4 compatibility patch 3 4 = 1.7 = 5 * Images loaded eagerly be default. 6 * Image lazy loading parameter. 7 1 8 = 1.6.1 = 2 9 Hotfix -
no-bs-image-slider/trunk/plugin.php
r2607986 r2678158 5 5 Plugin URI: https://planetjon.ca/projects/no-bs-image-slider/ 6 6 Description: For displaying a light-weight image slider 7 Version: 1. 7.17 Version: 1.8 8 8 Requires at least: 4.7 9 Tested up to: 5. 8.19 Tested up to: 5.9 10 10 Requires PHP: 5.4 11 11 Author: Jonathan Weatherhead … … 20 20 21 21 const default_slide_duration = 5; 22 const default_transition_duration = 1.25; 22 23 23 24 function renderSlider( $id, array $slides, array $args = [] ) { … … 28 29 $slideCount = count( $slides ); 29 30 $showCounter = filter_var( $args['showCounter'], FILTER_VALIDATE_BOOLEAN ); 30 $slideDuration = filter_var( $args['slideDuration'], FILTER_VALIDATE_ INT, [31 $slideDuration = filter_var( $args['slideDuration'], FILTER_VALIDATE_FLOAT, [ 31 32 'options' => [ 'default' => default_slide_duration, 'min_range' => 1 ] 32 33 ] ); 34 $transitionDuration = filter_var( $args['transitionDuration'], FILTER_VALIDATE_FLOAT, [ 35 'options' => [ 'default' => default_transition_duration, 'min_range' => 0 ] 36 ] ); 37 38 if( $showCounter ) { 39 $sliderClass .= ' show-counter'; 40 } 33 41 34 42 $sliderKeyframes = ''; 35 43 $sliderAnimationName = $sliderID . '-keyframes'; 36 44 $sliderAnimationDuration = $slideCount * $slideDuration; 37 for( $i = 0; $i < $slideCount; $i++ ) { 45 $transitionDuration = min( $transitionDuration, $slideDuration ); 46 // Build slider animation keyframes 47 for( $i = 0; $i < $slideCount; ++$i ) { 48 // Start stationary keyframe for slide 38 49 $sliderKeyframes .= sprintf( 39 50 '%3.2f%%{transform:translateX(-%d%%)}', 40 51 100 * $i / $slideCount, 41 $i * 100 42 ); 52 100 * $i 53 ); 54 55 // Start transition keyframe to next slide 43 56 $sliderKeyframes .= sprintf( 44 57 '%3.2f%%{transform:translateX(-%d%%)}', 45 100 * ($i + .75) / $slideCount, 46 $i * 100 47 ); 48 } 58 100 * ($i + 1 - $transitionDuration / $slideDuration) / $slideCount, 59 100 * $i 60 ); 61 } 62 // Reset slider to neutral position at the end of animation 49 63 $sliderKeyframes .= '100%{transform:translateX(0%)}'; 50 64 65 // Inject generated slider animation 51 66 printf( 52 67 '<style>#%1$s{--slide-count:%2$d}#%1$s .scrollpane{animation-name:%3$s;animation-duration:%4$ds;}@keyframes %3$s{%5$s}</style>', … … 58 73 ); 59 74 60 if( $showCounter ) { 61 $sliderClass .= ' show-counter'; 62 } 63 75 // Provide opportunity to inject additional styling 64 76 if( is_callable( $args['stylesCallback'] ) ) { 65 77 call_user_func( $args['stylesCallback'], $id ); … … 71 83 } 72 84 85 // Slider container 73 86 printf( 74 87 '<div id="%1$s" class="%2$s" %3$s><div class="scrollpane" aria-live="off">', … … 77 90 join( ' ', $sliderAria ) 78 91 ); 92 93 // Slider slides 79 94 $counter = 0; 80 95 foreach( $slides as $slide ) { … … 104 119 'slider' => '', 105 120 'duration' => default_slide_duration, 121 'transition' => default_transition_duration, 106 122 'showcounter' => 'no', 107 123 'lazy' => 'no' … … 112 128 $slider = $params['slider']; 113 129 $slideDuration = $params['duration']; 130 $transitionDuration = $params['transition']; 114 131 $showCounter = $params['showcounter']; 115 132 $loadingAttribute = filter_var( $params['lazy'], FILTER_VALIDATE_BOOLEAN ) ? 'lazy' : false; … … 160 177 'description' => $sliderInfo->name, 161 178 'slideDuration' => $slideDuration, 179 'transitionDuration' => $transitionDuration, 162 180 'showCounter' => $showCounter, 163 181 'stylesCallback' => function( $slider ) { … … 192 210 $slider = $instance['nbis']; 193 211 $slideDuration = $instance['nbisd']; 212 $transitionDuration = $instance['nbist']; 194 213 $showCounter = $instance['nbisc']; 195 214 $lazyImages = $instance['nbisl']; … … 198 217 'slider' => $slider, 199 218 'duration' => $slideDuration, 219 'transition' => $transitionDuration, 200 220 'showcounter' => $showCounter, 201 221 'lazy' => $lazyImages … … 213 233 $slider = $instance['nbis'] ?: ''; 214 234 $slideDuration = $instance['nbisd'] ?: default_slide_duration; 235 $transitionDuration = $instance['nbist'] ?: default_transition_duration; 215 236 $showCounter = $instance['nbisc']; 216 237 $lazyImages = $instance['nbisl']; … … 238 259 printf( 239 260 '<p><label>%s <input type="number" min="1" id="%s" name="%s" value="%s" /></label></p>', 240 __( 'Slide Duration (seconds)', 'no-bs-image-slider' ),261 __( 'Slide duration (seconds)', 'no-bs-image-slider' ), 241 262 esc_attr( $this->get_field_id( 'nbisd' ) ), 242 263 esc_attr( $this->get_field_name( 'nbisd' ) ), 243 264 esc_attr( $slideDuration ), 265 ); 266 267 printf( 268 '<p><label>%s <input type="number" min="1" id="%s" name="%s" value="%s" /></label></p>', 269 __( 'Slide transition (seconds)', 'no-bs-image-slider' ), 270 esc_attr( $this->get_field_id( 'nbist' ) ), 271 esc_attr( $this->get_field_name( 'nbist' ) ), 272 esc_attr( $transitionDuration ), 244 273 ); 245 274 … … 265 294 public function update( $new, $old ) { 266 295 $instance = [ 267 'nbis' => !empty( $new['nbis'] ) ? sanitize_text_field( $new['nbis'] ) : false, 268 'nbisd' => !empty( $new['nbisd'] ) ? sanitize_text_field( $new['nbisd'] ) : false, 269 'nbisc' => !empty( $new['nbisc'] ) ? sanitize_text_field( $new['nbisc'] ) : false, 270 'nbisl' => !empty( $new['nbisl'] ) ? sanitize_text_field( $new['nbisl'] ) : false 296 'nbis' => !empty( $new['nbis'] ) ? sanitize_text_field( $new['nbis'] ) : null, 297 'nbisd' => !empty( $new['nbisd'] ) ? sanitize_text_field( $new['nbisd'] ) : null, 298 'nbist' => !empty( $new['nbist'] ) ? sanitize_text_field( $new['nbist'] ) : null, 299 'nbisc' => !empty( $new['nbisc'] ) ? sanitize_text_field( $new['nbisc'] ) : null, 300 'nbisl' => !empty( $new['nbisl'] ) ? sanitize_text_field( $new['nbisl'] ) : null 271 301 ]; 272 302 -
no-bs-image-slider/trunk/readme.txt
r2607986 r2678158 4 4 Tags: carousel, slideshow, responsive, accessible 5 5 Requires at least: 4.7 6 Tested up to: 5. 8.16 Tested up to: 5.9 7 7 Requires PHP: 5.4 8 Stable tag: 1. 7.18 Stable tag: 1.8 9 9 License: GPL2 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 40 40 41 41 * slider="slug" 42 * duration="number" (default 5) 42 * duration="number" (seconds, default 5) 43 * transition="number" (seconds, default 1.25) 43 44 * showcounter="yes|no" (default no) 44 45 * lazy="yes|no" (default no) … … 74 75 == Changelog == 75 76 76 + 1.7.1 = 77 * PHP 5.4 compatibility patch 78 79 = 1.7.0 = 80 * Images loaded eagerly be default. 81 * Image lazy loading parameter. 77 = 1.8 = 78 * Transition duration parameter added. -
no-bs-image-slider/trunk/style.css
r2597622 r2678158 5 5 overflow: hidden; 6 6 counter-reset: nbis-slides; 7 will-change: translate; 7 8 } 8 9
Note: See TracChangeset
for help on using the changeset viewer.