Changeset 3465060
- Timestamp:
- 02/19/2026 12:00:49 PM (6 weeks ago)
- Location:
- responsive-lightbox/trunk
- Files:
-
- 10 edited
-
includes/class-frontend.php (modified) (1 diff)
-
includes/class-galleries.php (modified) (4 diffs)
-
includes/class-welcome.php (modified) (1 diff)
-
includes/galleries/class-gallery-base.php (modified) (1 diff)
-
includes/galleries/trait-gallery-image-methods.php (modified) (4 diffs)
-
includes/settings/class-settings-folders.php (modified) (1 diff)
-
includes/settings/class-settings-licenses.php (modified) (3 diffs)
-
includes/settings/class-settings-lightboxes.php (modified) (3 diffs)
-
readme.txt (modified) (3 diffs)
-
responsive-lightbox.php (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
responsive-lightbox/trunk/includes/class-frontend.php
r3464566 r3465060 601 601 602 602 // 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']] ) ) { 604 604 $new_data = $data[$data['menu_item']]; 605 605 -
responsive-lightbox/trunk/includes/class-galleries.php
r3459874 r3465060 487 487 // get design data 488 488 $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']] ) ) { 491 492 $design_data = $design[$design['menu_item']]; 492 493 … … 514 515 // get lightbox data 515 516 $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']] ) ) { 518 520 foreach ( $lightbox[$lightbox['menu_item']] as $arg => $value ) { 519 521 $shortcode .= ' ' . esc_attr( $arg ) . '="' . esc_attr( (string) $value ) . '"'; … … 1697 1699 $config = get_post_meta( $post_id, '_rl_config', true ); 1698 1700 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'] ) ) { 1700 1702 echo esc_html( $this->tabs['config']['menu_items'][$config['menu_item']] ); 1701 1703 … … 1709 1711 $images = get_post_meta( $post_id, '_rl_images', true ); 1710 1712 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'] ) ) 1712 1714 echo esc_html( $this->tabs['images']['menu_items'][$images['menu_item']] ); 1713 1715 else -
responsive-lightbox/trunk/includes/class-welcome.php
r3001037 r3465060 53 53 private function intro() { 54 54 // 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 ); 56 58 ?> 57 59 <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 584 584 $galleries = $rl->galleries; 585 585 $data = get_post_meta( $post_id, '_rl_images', true ); 586 $data = is_array( $data ) ? $data : []; 586 587 587 588 // 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 73 73 $paging = get_post_meta( $gallery_id, '_rl_paging', true ); 74 74 75 if ( is set( $paging['menu_item'] ) ) {75 if ( is_array( $paging ) && ! empty( $paging['menu_item'] ) && isset( $paging[$paging['menu_item']] ) && is_array( $paging[$paging['menu_item']] ) ) { 76 76 $pagination = $paging[$paging['menu_item']]; 77 77 78 if ( $pagination['pagination']) {78 if ( ! empty( $pagination['pagination'] ) ) { 79 79 $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']; 82 82 83 83 // infinite type? … … 85 85 $args['pagination_position'] = 'bottom'; 86 86 else 87 $args['pagination_position'] = $pagination['pagination_position'];87 $args['pagination_position'] = isset( $pagination['pagination_position'] ) ? $pagination['pagination_position'] : $args['pagination_position']; 88 88 } else 89 89 $args['nopaging'] = true; … … 110 110 111 111 // config order 112 if ( is set( $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']] ) ) { 113 113 $config = $config_meta[$config_meta['menu_item']]; 114 114 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']; 117 120 } 118 121 } … … 501 504 502 505 // valid data? 503 if ( is set( $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'] ) ) 504 507 $title_arg = $lightbox_meta[$lightbox_meta['menu_item']]['lightbox_image_title']; 505 508 else -
responsive-lightbox/trunk/includes/settings/class-settings-folders.php
r3448045 r3465060 281 281 // save discovered taxonomies to options (merge with existing, preserve on scan failure) 282 282 $options = get_option( 'responsive_lightbox_folders', [] ); 283 $options = is_array( $options ) ? $options : []; 283 284 $existing = isset( $options['custom_taxonomies'] ) && is_array( $options['custom_taxonomies'] ) ? $options['custom_taxonomies'] : []; 284 285 -
responsive-lightbox/trunk/includes/settings/class-settings-licenses.php
r3448045 r3465060 110 110 111 111 $licenses = get_option( 'responsive_lightbox_licenses' ); 112 $licenses = is_array( $licenses ) ? $licenses : []; 112 113 113 114 if ( ! empty( $licenses ) && ! empty( $extension_id ) ) { … … 172 173 if ( isset( $_POST['save_responsive_lightbox_licenses'] ) || isset( $_POST['save_rl_licenses'] ) ) { 173 174 $licenses = get_option( 'responsive_lightbox_licenses' ); 175 $licenses = is_array( $licenses ) ? $licenses : []; 174 176 $statuses = [ 'updated' => 0, 'error' => 0 ]; 175 177 … … 224 226 } elseif ( isset( $_POST['reset_responsive_lightbox_licenses'] ) || isset( $_POST['reset_rl_licenses'] ) ) { 225 227 $licenses = get_option( 'responsive_lightbox_licenses' ); 228 $licenses = is_array( $licenses ) ? $licenses : []; 226 229 $statuses = [ 227 230 'updated' => 0, -
responsive-lightbox/trunk/includes/settings/class-settings-lightboxes.php
r3459874 r3465060 31 31 public function validate( $input ) { 32 32 $rl = Responsive_Lightbox(); 33 $input = is_array( $input ) ? $input : []; 34 $current_configuration = isset( $rl->options['configuration'] ) && is_array( $rl->options['configuration'] ) ? $rl->options['configuration'] : []; 33 35 34 36 // check if this is a reset operation … … 53 55 $input[$script] = $defaults; 54 56 // merge with saved config to preserve other scripts 55 $input = array_merge( $ rl->options['configuration'], $input );57 $input = array_merge( $current_configuration, $input ); 56 58 add_settings_error( 'reset_rl_configuration', 'settings_restored', esc_html__( 'Settings restored to defaults.', 'responsive-lightbox' ), 'updated' ); 57 59 } … … 83 85 84 86 // merge with saved configuration to preserve other lightbox scripts 85 $input = array_merge( $ rl->options['configuration'], $input );87 $input = array_merge( $current_configuration, $input ); 86 88 87 89 return $input; -
responsive-lightbox/trunk/readme.txt
r3464566 r3465060 5 5 Requires at least: 6.0 6 6 Tested up to: 6.9.1 7 Stable tag: 2.7. 27 Stable tag: 2.7.3 8 8 Requires PHP: 7.0 9 9 License: MIT License … … 141 141 == Changelog == 142 142 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 143 147 = 2.7.2 = 144 148 * New: Media Folders sticky sidebar with collapsible panel, drag-to-resize, and persistent collapse state … … 609 613 == Upgrade Notice == 610 614 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 = 616 Prevent bootstrap fatal errors on malformed options and harden option/meta type guards -
responsive-lightbox/trunk/responsive-lightbox.php
r3464566 r3465060 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. 25 Version: 2.7.3 6 6 Author: dFactory 7 7 Author URI: http://www.dfactory.co/ … … 46 46 * 47 47 * @class Responsive_Lightbox 48 * @version 2.7. 248 * @version 2.7.3 49 49 */ 50 50 class Responsive_Lightbox { … … 285 285 'origin_top' => true 286 286 ], 287 'version' => '2.7. 2',287 'version' => '2.7.3', 288 288 'activation_date' => '' 289 289 ]; … … 356 356 $capabilities = []; 357 357 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 : [] ); 359 360 360 361 // load folders options with migration check 361 362 $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 : []; 363 364 $this->options['folders'] = array_merge( $this->defaults['folders'], $raw_folders ); 364 365 … … 369 370 } 370 371 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 : [] ); 374 377 375 378 // 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 : []; 377 381 378 382 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 ); 380 385 } 381 386 382 387 // 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 : [] ); 386 394 387 395 // set current lightbox script … … 556 564 if ( $multi === true ) { 557 565 $options = get_option( 'responsive_lightbox_settings' ); 558 $check = $options['deactivation_delete'];566 $check = is_array( $options ) && ! empty( $options['deactivation_delete'] ); 559 567 } else 560 568 $check = $this->options['settings']['deactivation_delete'];
Note: See TracChangeset
for help on using the changeset viewer.