Plugin Directory

Changeset 3468845


Ignore:
Timestamp:
02/24/2026 06:39:55 PM (5 weeks ago)
Author:
dfactory
Message:

Update to 2.7.4

Location:
responsive-lightbox/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • responsive-lightbox/trunk/includes/class-folders.php

    r3464566 r3468845  
    313313
    314314    /**
     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    /**
    315350     * Detect library mode (list or grid).
    316351     *
     
    335370            if ( ! ( $mode && ctype_lower( $mode ) && in_array( $mode, $modes, true ) ) ) {
    336371                // 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', '' );
    338373
    339374                // valid user mode?
     
    574609                $term_id = (int) $_GET[$taxonomy];
    575610            } else {
    576                 $stored = get_user_option( 'rl_folders_selected_term' );
     611                $stored = $this->get_selected_term_option();
    577612
    578613                if ( $stored === false || $stored === '' || $stored === 'all' )
     
    645680        } else {
    646681            // 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();
    648683
    649684            if ( $stored === false || $stored === '' || $stored === 'all' )
     
    14161451            if ( ! empty( $_wp_admin_css_colors ) ) {
    14171452                // 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', '' );
    14191454
    14201455                if ( empty( $current_color_scheme ) )
     
    14681503                $term_id = (int) $_GET[$taxonomy->name];
    14691504            } else {
    1470                 $stored_term = get_user_option( 'rl_folders_selected_term' );
     1505                $stored_term = $this->get_selected_term_option();
    14711506
    14721507                if ( $stored_term !== false && $stored_term !== '' && $stored_term !== 'all' ) {
  • responsive-lightbox/trunk/includes/galleries/trait-gallery-image-methods.php

    r3465060 r3468845  
    499499                    $sort = [];
    500500
    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'] );
    522507
    523508                        // 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 );
    525510                    }
    526511
  • responsive-lightbox/trunk/readme.txt

    r3465060 r3468845  
    55Requires at least: 6.0
    66Tested up to: 6.9.1
    7 Stable tag: 2.7.3
     7Stable tag: 2.7.4
    88Requires PHP: 7.0
    99License: MIT License
     
    141141== Changelog ==
    142142
     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
    143148= 2.7.3 =
    144149* Fix: Prevent bootstrap fatal on malformed options
     
    613618== Upgrade Notice ==
    614619
    615 = 2.7.3 =
    616 Prevent bootstrap fatal errors on malformed options and harden option/meta type guards
     620= 2.7.4 =
     621Important fixes for gallery title sorting and folder option handling to prevent errors
  • responsive-lightbox/trunk/responsive-lightbox.php

    r3465060 r3468845  
    33Plugin Name: Responsive Lightbox & Gallery
    44Description: 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.3
     5Version: 2.7.4
    66Author: dFactory
    77Author URI: http://www.dfactory.co/
     
    4646 *
    4747 * @class Responsive_Lightbox
    48  * @version 2.7.3
     48 * @version 2.7.4
    4949 */
    5050class Responsive_Lightbox {
     
    285285            'origin_top'        => true
    286286        ],
    287         'version' => '2.7.3',
     287        'version' => '2.7.4',
    288288        'activation_date' => ''
    289289    ];
Note: See TracChangeset for help on using the changeset viewer.