Plugin Directory

Changeset 3465060


Ignore:
Timestamp:
02/19/2026 12:00:49 PM (6 weeks ago)
Author:
dfactory
Message:

Update to 2.7.3

Location:
responsive-lightbox/trunk
Files:
10 edited

Legend:

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

    r3464566 r3465060  
    601601
    602602                    // add those fields
    603                     if ( ! empty( $data['menu_item'] ) && is_array( $data[$data['menu_item']] ) ) {
     603                    if ( is_array( $data ) && ! empty( $data['menu_item'] ) && isset( $data[$data['menu_item']] ) && is_array( $data[$data['menu_item']] ) ) {
    604604                        $new_data = $data[$data['menu_item']];
    605605
  • responsive-lightbox/trunk/includes/class-galleries.php

    r3459874 r3465060  
    487487        // get design data
    488488        $design = get_post_meta( $args['id'], '_rl_design', true );
    489 
    490         if ( ! empty( $design['menu_item'] ) ) {
     489        $design = is_array( $design ) ? $design : [];
     490
     491        if ( ! empty( $design['menu_item'] ) && isset( $design[$design['menu_item']] ) && is_array( $design[$design['menu_item']] ) ) {
    491492            $design_data = $design[$design['menu_item']];
    492493
     
    514515        // get lightbox data
    515516        $lightbox = get_post_meta( $args['id'], '_rl_lightbox', true );
    516 
    517         if ( ! empty( $lightbox['menu_item'] ) ) {
     517        $lightbox = is_array( $lightbox ) ? $lightbox : [];
     518
     519        if ( ! empty( $lightbox['menu_item'] ) && isset( $lightbox[$lightbox['menu_item']] ) && is_array( $lightbox[$lightbox['menu_item']] ) ) {
    518520            foreach ( $lightbox[$lightbox['menu_item']] as $arg => $value ) {
    519521                $shortcode .= ' ' . esc_attr( $arg ) . '="' . esc_attr( (string) $value ) . '"';
     
    16971699                $config = get_post_meta( $post_id, '_rl_config', true );
    16981700
    1699                 if ( ! empty( $config['menu_item'] ) && array_key_exists( $config['menu_item'], $this->tabs['config']['menu_items'] ) ) {
     1701                if ( is_array( $config ) && ! empty( $config['menu_item'] ) && array_key_exists( $config['menu_item'], $this->tabs['config']['menu_items'] ) ) {
    17001702                    echo esc_html( $this->tabs['config']['menu_items'][$config['menu_item']] );
    17011703
     
    17091711                $images = get_post_meta( $post_id, '_rl_images', true );
    17101712
    1711                 if ( ! empty( $images['menu_item'] ) && array_key_exists( $images['menu_item'], $this->tabs['images']['menu_items'] ) )
     1713                if ( is_array( $images ) && ! empty( $images['menu_item'] ) && array_key_exists( $images['menu_item'], $this->tabs['images']['menu_items'] ) )
    17121714                    echo esc_html( $this->tabs['images']['menu_items'][$images['menu_item']] );
    17131715                else
  • responsive-lightbox/trunk/includes/class-welcome.php

    r3001037 r3465060  
    5353    private function intro() {
    5454        // get plugin version
    55         $plugin_version = substr( get_option( 'responsive_lightbox_version' ), 0, 3 );
     55        $plugin_version = get_option( 'responsive_lightbox_version' );
     56        $plugin_version = is_string( $plugin_version ) ? $plugin_version : (string) Responsive_Lightbox()->defaults['version'];
     57        $plugin_version = substr( $plugin_version, 0, 3 );
    5658        ?>
    5759        <h2 style="text-align: left; font-size: 29px; padding-bottom: 0;"><?php esc_html_e( 'Welcome to', 'responsive-lightbox' ); ?></h2>
  • responsive-lightbox/trunk/includes/galleries/class-gallery-base.php

    r3459874 r3465060  
    584584        $galleries = $rl->galleries;
    585585        $data = get_post_meta( $post_id, '_rl_images', true );
     586        $data = is_array( $data ) ? $data : [];
    586587
    587588        // load images only when saved menu_item is 'media' or we're not doing an AJAX menu switch
  • responsive-lightbox/trunk/includes/galleries/trait-gallery-image-methods.php

    r3459874 r3465060  
    7373            $paging = get_post_meta( $gallery_id, '_rl_paging', true );
    7474
    75             if ( isset( $paging['menu_item'] ) ) {
     75            if ( is_array( $paging ) && ! empty( $paging['menu_item'] ) && isset( $paging[$paging['menu_item']] ) && is_array( $paging[$paging['menu_item']] ) ) {
    7676                $pagination = $paging[$paging['menu_item']];
    7777
    78                 if ( $pagination['pagination'] ) {
     78                if ( ! empty( $pagination['pagination'] ) ) {
    7979                    $args['nopaging'] = false;
    80                     $args['images_per_page'] = $pagination['images_per_page'];
    81                     $args['pagination_type'] = $pagination['pagination_type'];
     80                    $args['images_per_page'] = isset( $pagination['images_per_page'] ) ? $pagination['images_per_page'] : $args['images_per_page'];
     81                    $args['pagination_type'] = isset( $pagination['pagination_type'] ) ? $pagination['pagination_type'] : $args['pagination_type'];
    8282
    8383                    // infinite type?
     
    8585                        $args['pagination_position'] = 'bottom';
    8686                    else
    87                         $args['pagination_position'] = $pagination['pagination_position'];
     87                        $args['pagination_position'] = isset( $pagination['pagination_position'] ) ? $pagination['pagination_position'] : $args['pagination_position'];
    8888                } else
    8989                    $args['nopaging'] = true;
     
    110110
    111111                // config order
    112                 if ( isset( $config_meta['menu_item'] ) ) {
     112                if ( is_array( $config_meta ) && ! empty( $config_meta['menu_item'] ) && isset( $config_meta[$config_meta['menu_item']] ) && is_array( $config_meta[$config_meta['menu_item']] ) ) {
    113113                    $config = $config_meta[$config_meta['menu_item']];
    114114
    115                     $args['orderby'] = $config['orderby'];
    116                     $args['order'] = $config['order'];
     115                    if ( isset( $config['orderby'] ) )
     116                        $args['orderby'] = $config['orderby'];
     117
     118                    if ( isset( $config['order'] ) )
     119                        $args['order'] = $config['order'];
    117120                }
    118121            }
     
    501504
    502505                        // valid data?
    503                         if ( isset( $lightbox_meta['menu_item'] ) )
     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'] ) )
    504507                            $title_arg = $lightbox_meta[$lightbox_meta['menu_item']]['lightbox_image_title'];
    505508                        else
  • responsive-lightbox/trunk/includes/settings/class-settings-folders.php

    r3448045 r3465060  
    281281        // save discovered taxonomies to options (merge with existing, preserve on scan failure)
    282282        $options = get_option( 'responsive_lightbox_folders', [] );
     283        $options = is_array( $options ) ? $options : [];
    283284        $existing = isset( $options['custom_taxonomies'] ) && is_array( $options['custom_taxonomies'] ) ? $options['custom_taxonomies'] : [];
    284285       
  • responsive-lightbox/trunk/includes/settings/class-settings-licenses.php

    r3448045 r3465060  
    110110
    111111        $licenses = get_option( 'responsive_lightbox_licenses' );
     112        $licenses = is_array( $licenses ) ? $licenses : [];
    112113
    113114        if ( ! empty( $licenses ) && ! empty( $extension_id ) ) {
     
    172173        if ( isset( $_POST['save_responsive_lightbox_licenses'] ) || isset( $_POST['save_rl_licenses'] ) ) {
    173174            $licenses = get_option( 'responsive_lightbox_licenses' );
     175            $licenses = is_array( $licenses ) ? $licenses : [];
    174176            $statuses = [ 'updated' => 0, 'error' => 0 ];
    175177
     
    224226        } elseif ( isset( $_POST['reset_responsive_lightbox_licenses'] ) || isset( $_POST['reset_rl_licenses'] ) ) {
    225227            $licenses = get_option( 'responsive_lightbox_licenses' );
     228            $licenses = is_array( $licenses ) ? $licenses : [];
    226229            $statuses = [
    227230                'updated'   => 0,
  • responsive-lightbox/trunk/includes/settings/class-settings-lightboxes.php

    r3459874 r3465060  
    3131    public function validate( $input ) {
    3232        $rl = Responsive_Lightbox();
     33        $input = is_array( $input ) ? $input : [];
     34        $current_configuration = isset( $rl->options['configuration'] ) && is_array( $rl->options['configuration'] ) ? $rl->options['configuration'] : [];
    3335
    3436        // check if this is a reset operation
     
    5355                    $input[$script] = $defaults;
    5456                    // merge with saved config to preserve other scripts
    55                     $input = array_merge( $rl->options['configuration'], $input );
     57                    $input = array_merge( $current_configuration, $input );
    5658                    add_settings_error( 'reset_rl_configuration', 'settings_restored', esc_html__( 'Settings restored to defaults.', 'responsive-lightbox' ), 'updated' );
    5759                }
     
    8385
    8486        // merge with saved configuration to preserve other lightbox scripts
    85         $input = array_merge( $rl->options['configuration'], $input );
     87        $input = array_merge( $current_configuration, $input );
    8688
    8789        return $input;
  • responsive-lightbox/trunk/readme.txt

    r3464566 r3465060  
    55Requires at least: 6.0
    66Tested up to: 6.9.1
    7 Stable tag: 2.7.2
     7Stable tag: 2.7.3
    88Requires PHP: 7.0
    99License: MIT License
     
    141141== Changelog ==
    142142
     143= 2.7.3 =
     144* Fix: Prevent bootstrap fatal on malformed options
     145* Fix: Harden option/meta type guards to prevent fatal errors when stored option/meta values are non-array
     146
    143147= 2.7.2 =
    144148* New: Media Folders sticky sidebar with collapsible panel, drag-to-resize, and persistent collapse state
     
    609613== Upgrade Notice ==
    610614
    611 = 2.7.2 =
    612 Media Folders sticky sidebar with persistent tree state, GLightbox caption fix on mobile, and grid counter sync improvements.
     615= 2.7.3 =
     616Prevent bootstrap fatal errors on malformed options and harden option/meta type guards
  • responsive-lightbox/trunk/responsive-lightbox.php

    r3464566 r3465060  
    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.2
     5Version: 2.7.3
    66Author: dFactory
    77Author URI: http://www.dfactory.co/
     
    4646 *
    4747 * @class Responsive_Lightbox
    48  * @version 2.7.2
     48 * @version 2.7.3
    4949 */
    5050class Responsive_Lightbox {
     
    285285            'origin_top'        => true
    286286        ],
    287         'version' => '2.7.2',
     287        'version' => '2.7.3',
    288288        'activation_date' => ''
    289289    ];
     
    356356            $capabilities = [];
    357357
    358         $this->options['settings'] = array_merge( $this->defaults['settings'], ( ( $array = get_option( 'responsive_lightbox_settings' ) ) === false ? [] : $array ) );
     358        $array = get_option( 'responsive_lightbox_settings' );
     359        $this->options['settings'] = array_merge( $this->defaults['settings'], is_array( $array ) ? $array : [] );
    359360       
    360361        // load folders options with migration check
    361362        $raw_folders = get_option( 'responsive_lightbox_folders', false );
    362         $raw_folders = $raw_folders === false ? [] : $raw_folders;
     363        $raw_folders = is_array( $raw_folders ) ? $raw_folders : [];
    363364        $this->options['folders'] = array_merge( $this->defaults['folders'], $raw_folders );
    364365       
     
    369370        }
    370371       
    371         $this->options['builder'] = array_merge( $this->defaults['builder'], ( ( $array = get_option( 'responsive_lightbox_builder' ) ) === false ? [] : $array ) );
    372         $this->options['capabilities'] = array_merge( $this->defaults['capabilities'], $capabilities );
    373         $this->options['remote_library'] = array_merge( $this->defaults['remote_library'], ( ( $array = get_option( 'responsive_lightbox_remote_library' ) ) === false ? [] : $array ) );
     372        $array = get_option( 'responsive_lightbox_builder' );
     373        $this->options['builder'] = array_merge( $this->defaults['builder'], is_array( $array ) ? $array : [] );
     374        $this->options['capabilities'] = array_merge( $this->defaults['capabilities'], is_array( $capabilities ) ? $capabilities : [] );
     375        $array = get_option( 'responsive_lightbox_remote_library' );
     376        $this->options['remote_library'] = array_merge( $this->defaults['remote_library'], is_array( $array ) ? $array : [] );
    374377
    375378        // for multi arrays we have to merge them separately
    376         $db_conf_opts = ( ( $base = get_option( 'responsive_lightbox_configuration' ) ) === false ? [] : $base );
     379        $base = get_option( 'responsive_lightbox_configuration' );
     380        $db_conf_opts = is_array( $base ) ? $base : [];
    377381
    378382        foreach ( $this->defaults['configuration'] as $script => $settings ) {
    379             $this->options['configuration'][$script] = array_merge( $settings, ( isset( $db_conf_opts[$script] ) ? $db_conf_opts[$script] : [] ) );
     383            $script_options = ( isset( $db_conf_opts[$script] ) && is_array( $db_conf_opts[$script] ) ) ? $db_conf_opts[$script] : [];
     384            $this->options['configuration'][$script] = array_merge( $settings, $script_options );
    380385        }
    381386
    382387        // add default galleries options
    383         $this->options['basicgrid_gallery'] = array_merge( $this->defaults['basicgrid_gallery'], ( ( $array = get_option( 'responsive_lightbox_basicgrid_gallery', $this->defaults['basicgrid_gallery'] ) ) === false ? [] : $array ) );
    384         $this->options['basicslider_gallery'] = array_merge( $this->defaults['basicslider_gallery'], ( ( $array = get_option( 'responsive_lightbox_basicslider_gallery', $this->defaults['basicslider_gallery'] ) ) === false ? [] : $array ) );
    385         $this->options['basicmasonry_gallery'] = array_merge( $this->defaults['basicmasonry_gallery'], ( ( $array = get_option( 'responsive_lightbox_basicmasonry_gallery', $this->defaults['basicmasonry_gallery'] ) ) === false ? [] : $array ) );
     388        $array = get_option( 'responsive_lightbox_basicgrid_gallery', $this->defaults['basicgrid_gallery'] );
     389        $this->options['basicgrid_gallery'] = array_merge( $this->defaults['basicgrid_gallery'], is_array( $array ) ? $array : [] );
     390        $array = get_option( 'responsive_lightbox_basicslider_gallery', $this->defaults['basicslider_gallery'] );
     391        $this->options['basicslider_gallery'] = array_merge( $this->defaults['basicslider_gallery'], is_array( $array ) ? $array : [] );
     392        $array = get_option( 'responsive_lightbox_basicmasonry_gallery', $this->defaults['basicmasonry_gallery'] );
     393        $this->options['basicmasonry_gallery'] = array_merge( $this->defaults['basicmasonry_gallery'], is_array( $array ) ? $array : [] );
    386394
    387395        // set current lightbox script
     
    556564        if ( $multi === true ) {
    557565            $options = get_option( 'responsive_lightbox_settings' );
    558             $check = $options['deactivation_delete'];
     566            $check = is_array( $options ) && ! empty( $options['deactivation_delete'] );
    559567        } else
    560568            $check = $this->options['settings']['deactivation_delete'];
Note: See TracChangeset for help on using the changeset viewer.