Changeset 3468845
- Timestamp:
- 02/24/2026 06:39:55 PM (5 weeks ago)
- Location:
- responsive-lightbox/trunk
- Files:
-
- 4 edited
-
includes/class-folders.php (modified) (6 diffs)
-
includes/galleries/trait-gallery-image-methods.php (modified) (1 diff)
-
readme.txt (modified) (3 diffs)
-
responsive-lightbox.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
responsive-lightbox/trunk/includes/class-folders.php
r3464566 r3468845 313 313 314 314 /** 315 * Read user option safely. 316 * 317 * `get_user_option()` can call `get_userdata()`. Guard this path because 318 * some hooks can run before pluggable user functions are loaded. 319 * 320 * @param string $option Option key. 321 * @param mixed $default Default value. 322 * @return mixed 323 */ 324 private function get_user_option_safe( $option, $default = false ) { 325 if ( ! function_exists( 'get_user_option' ) || ! function_exists( 'get_userdata' ) ) 326 return $default; 327 328 $value = get_user_option( $option ); 329 330 if ( $value === false ) 331 return $default; 332 333 return ( is_scalar( $value ) || $value === null ? $value : $default ); 334 } 335 336 /** 337 * Read stored selected folder term safely. 338 * 339 * `get_user_option()` can call `get_userdata()`. Guard this path because 340 * `parse_query` may run before pluggable user functions are loaded. 341 * 342 * @return string|false 343 */ 344 private function get_selected_term_option() { 345 return $this->get_user_option_safe( 'rl_folders_selected_term', false ); 346 } 347 348 349 /** 315 350 * Detect library mode (list or grid). 316 351 * … … 335 370 if ( ! ( $mode && ctype_lower( $mode ) && in_array( $mode, $modes, true ) ) ) { 336 371 // get user mode 337 $user_mode = (string) get_user_option( 'media_library_mode' );372 $user_mode = (string) $this->get_user_option_safe( 'media_library_mode', '' ); 338 373 339 374 // valid user mode? … … 574 609 $term_id = (int) $_GET[$taxonomy]; 575 610 } else { 576 $stored = get_user_option( 'rl_folders_selected_term');611 $stored = $this->get_selected_term_option(); 577 612 578 613 if ( $stored === false || $stored === '' || $stored === 'all' ) … … 645 680 } else { 646 681 // no filter sent -- apply stored user preference for the initial grid query 647 $stored = get_user_option( 'rl_folders_selected_term');682 $stored = $this->get_selected_term_option(); 648 683 649 684 if ( $stored === false || $stored === '' || $stored === 'all' ) … … 1416 1451 if ( ! empty( $_wp_admin_css_colors ) ) { 1417 1452 // get current admin color scheme name 1418 $current_color_scheme = get_user_option( 'admin_color' );1453 $current_color_scheme = $this->get_user_option_safe( 'admin_color', '' ); 1419 1454 1420 1455 if ( empty( $current_color_scheme ) ) … … 1468 1503 $term_id = (int) $_GET[$taxonomy->name]; 1469 1504 } else { 1470 $stored_term = get_user_option( 'rl_folders_selected_term');1505 $stored_term = $this->get_selected_term_option(); 1471 1506 1472 1507 if ( $stored_term !== false && $stored_term !== '' && $stored_term !== 'all' ) { -
responsive-lightbox/trunk/includes/galleries/trait-gallery-image-methods.php
r3465060 r3468845 499 499 $sort = []; 500 500 501 if ( $valid_gallery_type ) { 502 // get lightbox data 503 $lightbox_meta = get_post_meta( $gallery_id, '_rl_lightbox', true ); 504 505 // valid data? 506 if ( is_array( $lightbox_meta ) && ! empty( $lightbox_meta['menu_item'] ) && isset( $lightbox_meta[$lightbox_meta['menu_item']] ) && is_array( $lightbox_meta[$lightbox_meta['menu_item']] ) && isset( $lightbox_meta[$lightbox_meta['menu_item']]['lightbox_image_title'] ) ) 507 $title_arg = $lightbox_meta[$lightbox_meta['menu_item']]['lightbox_image_title']; 508 else 509 $title_arg = $rl->options['settings']['gallery_image_title']; 510 } else 511 $title_arg = $rl->options['settings']['gallery_image_title']; 512 513 $images_copy = $images; 514 515 foreach ( $images_copy as $key => $image ) { 516 if ( $title_arg === 'global' ) 517 $images[$key]['title'] = $rl->frontend->get_attachment_title( $image['id'], $rl->options['settings']['gallery_image_title'] ); 518 elseif ( $title_arg === 'default' ) 519 $images[$key]['title'] = ''; 520 else 521 $images[$key]['title'] = $rl->frontend->get_attachment_title( $image['id'], $title_arg ); 501 foreach ( $images as $key => $image ) { 502 $title = isset( $image['title'] ) ? (string) $image['title'] : ''; 503 504 // Fallback for attachments without a populated title in the payload. 505 if ( $title === '' && isset( $image['id'] ) && is_numeric( $image['id'] ) ) 506 $title = (string) get_the_title( (int) $image['id'] ); 522 507 523 508 // set sorting value 524 $sort[$key] = function_exists( 'mb_strtolower' ) ? mb_strtolower( $ images[$key]['title'] ) : strtolower( $images[$key]['title']);509 $sort[$key] = function_exists( 'mb_strtolower' ) ? mb_strtolower( $title ) : strtolower( $title ); 525 510 } 526 511 -
responsive-lightbox/trunk/readme.txt
r3465060 r3468845 5 5 Requires at least: 6.0 6 6 Tested up to: 6.9.1 7 Stable tag: 2.7. 37 Stable tag: 2.7.4 8 8 Requires PHP: 7.0 9 9 License: MIT License … … 141 141 == Changelog == 142 142 143 = 2.7.4 = 144 * Fix: Make gallery title sorting independent of lightbox title setting 145 * Fix: Guard early user option reads in folders to prevent undefined array key errors 146 * Fix: Guard early folder user option reads for better error handling 147 143 148 = 2.7.3 = 144 149 * Fix: Prevent bootstrap fatal on malformed options … … 613 618 == Upgrade Notice == 614 619 615 = 2.7. 3=616 Prevent bootstrap fatal errors on malformed options and harden option/meta type guards620 = 2.7.4 = 621 Important fixes for gallery title sorting and folder option handling to prevent errors -
responsive-lightbox/trunk/responsive-lightbox.php
r3465060 r3468845 3 3 Plugin Name: Responsive Lightbox & Gallery 4 4 Description: Responsive Lightbox & Gallery allows users to create galleries and view larger versions of images, galleries and videos in a lightbox (overlay) effect optimized for mobile devices. 5 Version: 2.7. 35 Version: 2.7.4 6 6 Author: dFactory 7 7 Author URI: http://www.dfactory.co/ … … 46 46 * 47 47 * @class Responsive_Lightbox 48 * @version 2.7. 348 * @version 2.7.4 49 49 */ 50 50 class Responsive_Lightbox { … … 285 285 'origin_top' => true 286 286 ], 287 'version' => '2.7. 3',287 'version' => '2.7.4', 288 288 'activation_date' => '' 289 289 ];
Note: See TracChangeset
for help on using the changeset viewer.