[ SYSTEM ]: Linux wordpress 6.1.0-44-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
[ SERVER ]: Apache/2.4.66 (Debian) | PHP: 8.2.30
[ USER ]: www-data | IP: 172.19.30.54
GEFORCE FILE MANAGER
/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
elementor
/
includes
/
widgets
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
π traits
SET
[ DEL ]
π accordion.php
20,144 B
SET
[ EDIT ]
|
[ DEL ]
π alert.php
13,825 B
SET
[ EDIT ]
|
[ DEL ]
π audio.php
7,631 B
SET
[ EDIT ]
|
[ DEL ]
π button.php
3,050 B
SET
[ EDIT ]
|
[ DEL ]
π common-base.php
34,561 B
SET
[ EDIT ]
|
[ DEL ]
π common-optimized.php
840 B
SET
[ EDIT ]
|
[ DEL ]
π common.php
204 B
SET
[ EDIT ]
|
[ DEL ]
π counter.php
17,881 B
SET
[ EDIT ]
|
[ DEL ]
π divider.php
34,104 B
SET
[ EDIT ]
|
[ DEL ]
π google-maps.php
7,047 B
SET
[ EDIT ]
|
[ DEL ]
π heading.php
15,100 B
SET
[ EDIT ]
|
[ DEL ]
π html.php
2,688 B
SET
[ EDIT ]
|
[ DEL ]
π icon-box.php
25,314 B
SET
[ EDIT ]
|
[ DEL ]
π icon-list.php
22,837 B
SET
[ EDIT ]
|
[ DEL ]
π icon.php
13,375 B
SET
[ EDIT ]
|
[ DEL ]
π image-box.php
22,077 B
SET
[ EDIT ]
|
[ DEL ]
π image-carousel.php
28,833 B
SET
[ EDIT ]
|
[ DEL ]
π image-gallery.php
12,212 B
SET
[ EDIT ]
|
[ DEL ]
π image.php
20,288 B
SET
[ EDIT ]
|
[ DEL ]
π inner-section.php
917 B
SET
[ EDIT ]
|
[ DEL ]
π menu-anchor.php
4,056 B
SET
[ EDIT ]
|
[ DEL ]
π progress.php
13,919 B
SET
[ EDIT ]
|
[ DEL ]
π rating.php
7,790 B
SET
[ EDIT ]
|
[ DEL ]
π read-more.php
3,386 B
SET
[ EDIT ]
|
[ DEL ]
π shortcode.php
3,413 B
SET
[ EDIT ]
|
[ DEL ]
π sidebar.php
3,120 B
SET
[ EDIT ]
|
[ DEL ]
π social-icons.php
17,642 B
SET
[ EDIT ]
|
[ DEL ]
π spacer.php
3,747 B
SET
[ EDIT ]
|
[ DEL ]
π star-rating.php
13,641 B
SET
[ EDIT ]
|
[ DEL ]
π tabs.php
17,276 B
SET
[ EDIT ]
|
[ DEL ]
π testimonial.php
18,107 B
SET
[ EDIT ]
|
[ DEL ]
π text-editor.php
15,327 B
SET
[ EDIT ]
|
[ DEL ]
π toggle.php
20,307 B
SET
[ EDIT ]
|
[ DEL ]
π video.php
35,183 B
SET
[ EDIT ]
|
[ DEL ]
π wordpress.php
7,597 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: image-gallery.php
<?php namespace Elementor; use Elementor\Core\Kits\Documents\Tabs\Global_Typography; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Elementor image gallery widget. * * Elementor widget that displays a set of images in an aligned grid. * * @since 1.0.0 */ class Widget_Image_Gallery extends Widget_Base { /** * Get widget name. * * Retrieve image gallery widget name. * * @since 1.0.0 * @access public * * @return string Widget name. */ public function get_name() { return 'image-gallery'; } /** * Get widget title. * * Retrieve image gallery widget title. * * @since 1.0.0 * @access public * * @return string Widget title. */ public function get_title() { return esc_html__( 'Basic Gallery', 'elementor' ); } /** * Get widget icon. * * Retrieve image gallery widget icon. * * @since 1.0.0 * @access public * * @return string Widget icon. */ public function get_icon() { return 'eicon-gallery-grid'; } /** * Get widget keywords. * * Retrieve the list of keywords the widget belongs to. * * @since 2.1.0 * @access public * * @return array Widget keywords. */ public function get_keywords() { return [ 'image', 'photo', 'visual', 'gallery' ]; } protected function is_dynamic_content(): bool { return false; } /** * Get style dependencies. * * Retrieve the list of style dependencies the widget requires. * * @since 3.24.0 * @access public * * @return array Widget style dependencies. */ public function get_style_depends(): array { return [ 'widget-image-gallery' ]; } /** * Get widget upsale data. * * Retrieve the widget promotion data. * * @since 3.18.0 * @access protected * * @return array Widget promotion data. */ protected function get_upsale_data() { return [ 'condition' => ! Utils::has_pro(), 'image' => esc_url( ELEMENTOR_ASSETS_URL . 'images/go-pro.svg' ), 'image_alt' => esc_attr__( 'Upgrade', 'elementor' ), 'description' => esc_html__( 'Use interesting masonry layouts and other overlay features with Elementor\'s Pro Gallery widget.', 'elementor' ), 'upgrade_url' => esc_url( 'https://go.elementor.com/go-pro-basic-gallery-widget/' ), 'upgrade_text' => esc_html__( 'Upgrade Now', 'elementor' ), ]; } public function has_widget_inner_wrapper(): bool { return ! Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' ); } /** * Register image gallery widget controls. * * Adds different input fields to allow the user to change and customize the widget settings. * * @since 3.1.0 * @access protected */ protected function register_controls() { $this->start_controls_section( 'section_gallery', [ 'label' => esc_html__( 'Basic Gallery', 'elementor' ), ] ); $this->add_control( 'wp_gallery', [ 'label' => esc_html__( 'Add Images', 'elementor' ), 'type' => Controls_Manager::GALLERY, 'show_label' => false, 'dynamic' => [ 'active' => true, ], ] ); $this->add_group_control( Group_Control_Image_Size::get_type(), [ 'name' => 'thumbnail', // Usage: `{name}_size` and `{name}_custom_dimension`, in this case `thumbnail_size` and `thumbnail_custom_dimension`. 'exclude' => [ 'custom' ], ] ); $gallery_columns = range( 1, 10 ); $gallery_columns = array_combine( $gallery_columns, $gallery_columns ); $this->add_control( 'gallery_columns', [ 'label' => esc_html__( 'Columns', 'elementor' ), 'type' => Controls_Manager::SELECT, 'default' => 4, 'options' => $gallery_columns, ] ); $this->add_control( 'gallery_display_caption', [ 'label' => esc_html__( 'Caption', 'elementor' ), 'type' => Controls_Manager::SELECT, 'default' => '', 'options' => [ 'none' => esc_html__( 'None', 'elementor' ), '' => esc_html__( 'Attachment Caption', 'elementor' ), ], 'selectors' => [ '{{WRAPPER}} .gallery-item .gallery-caption' => 'display: {{VALUE}};', ], ] ); $this->add_control( 'gallery_link', [ 'label' => esc_html__( 'Link', 'elementor' ), 'type' => Controls_Manager::SELECT, 'default' => 'file', 'options' => [ 'file' => esc_html__( 'Media File', 'elementor' ), 'attachment' => esc_html__( 'Attachment Page', 'elementor' ), 'none' => esc_html__( 'None', 'elementor' ), ], ] ); $this->add_control( 'open_lightbox', [ 'label' => esc_html__( 'Lightbox', 'elementor' ), 'type' => Controls_Manager::SELECT, 'description' => sprintf( /* translators: 1: Link open tag, 2: Link close tag. */ esc_html__( 'Manage your siteβs lightbox settings in the %1$sLightbox panel%2$s.', 'elementor' ), '<a href="javascript: $e.run( \'panel/global/open\' ).then( () => $e.route( \'panel/global/settings-lightbox\' ) )">', '</a>' ), 'default' => 'default', 'options' => [ 'default' => esc_html__( 'Default', 'elementor' ), 'yes' => esc_html__( 'Yes', 'elementor' ), 'no' => esc_html__( 'No', 'elementor' ), ], 'condition' => [ 'gallery_link' => 'file', ], 'assets' => [ 'styles' => [ [ 'name' => 'e-swiper', 'conditions' => [ 'terms' => [ [ 'name' => 'gallery_link', 'operator' => '===', 'value' => 'file', ], [ 'name' => 'open_lightbox', 'operator' => '!==', 'value' => 'no', ], ], ], ], ], 'scripts' => [ [ 'name' => 'swiper', 'conditions' => [ 'terms' => [ [ 'name' => 'gallery_link', 'operator' => '===', 'value' => 'file', ], [ 'name' => 'open_lightbox', 'operator' => '!==', 'value' => 'no', ], ], ], ], ], ], ] ); $this->add_control( 'gallery_rand', [ 'label' => esc_html__( 'Order By', 'elementor' ), 'type' => Controls_Manager::SELECT, 'options' => [ '' => esc_html__( 'Default', 'elementor' ), 'rand' => esc_html__( 'Random', 'elementor' ), ], 'default' => '', ] ); $this->end_controls_section(); $this->start_controls_section( 'section_gallery_images', [ 'label' => esc_html__( 'Images', 'elementor' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'image_spacing', [ 'label' => esc_html__( 'Gap', 'elementor' ), 'type' => Controls_Manager::SELECT, 'options' => [ '' => esc_html__( 'Default', 'elementor' ), 'custom' => esc_html__( 'Custom', 'elementor' ), ], 'prefix_class' => 'gallery-spacing-', 'default' => '', ] ); $columns_margin = is_rtl() ? '0 0 -{{SIZE}}{{UNIT}} -{{SIZE}}{{UNIT}};' : '0 -{{SIZE}}{{UNIT}} -{{SIZE}}{{UNIT}} 0;'; $columns_padding = is_rtl() ? '0 0 {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}};' : '0 {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}} 0;'; $this->add_control( 'image_spacing_custom', [ 'label' => esc_html__( 'Custom Gap', 'elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', 'em', 'rem', 'custom' ], 'range' => [ 'px' => [ 'max' => 100, ], 'em' => [ 'max' => 10, ], 'rem' => [ 'max' => 10, ], ], 'default' => [ 'size' => 15, ], 'selectors' => [ '{{WRAPPER}} .gallery-item' => 'padding:' . $columns_padding, '{{WRAPPER}} .gallery' => 'margin: ' . $columns_margin, ], 'condition' => [ 'image_spacing' => 'custom', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'image_border', 'selector' => '{{WRAPPER}} .gallery-item img', 'separator' => 'before', ] ); $this->add_responsive_control( 'image_border_radius', [ 'label' => esc_html__( 'Border Radius', 'elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ], 'selectors' => [ '{{WRAPPER}} .gallery-item img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_caption', [ 'label' => esc_html__( 'Caption', 'elementor' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'gallery_display_caption' => '', ], ] ); $this->add_responsive_control( 'align', [ 'label' => esc_html__( 'Alignment', 'elementor' ), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'start' => [ 'title' => esc_html__( 'Start', 'elementor' ), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => esc_html__( 'Center', 'elementor' ), 'icon' => 'eicon-text-align-center', ], 'end' => [ 'title' => esc_html__( 'End', 'elementor' ), 'icon' => 'eicon-text-align-right', ], 'justify' => [ 'title' => esc_html__( 'Justified', 'elementor' ), 'icon' => 'eicon-text-align-justify', ], ], 'classes' => 'elementor-control-start-end', 'selectors_dictionary' => [ 'left' => is_rtl() ? 'end' : 'start', 'right' => is_rtl() ? 'start' : 'end', ], 'default' => 'center', 'selectors' => [ '{{WRAPPER}} .gallery-item .gallery-caption' => 'text-align: {{VALUE}};', ], 'condition' => [ 'gallery_display_caption' => '', ], ] ); $this->add_control( 'text_color', [ 'label' => esc_html__( 'Text Color', 'elementor' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .gallery-item .gallery-caption' => 'color: {{VALUE}};', ], 'condition' => [ 'gallery_display_caption' => '', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'typography', 'global' => [ 'default' => Global_Typography::TYPOGRAPHY_ACCENT, ], 'selector' => '{{WRAPPER}} .gallery-item .gallery-caption', 'condition' => [ 'gallery_display_caption' => '', ], ] ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), [ 'name' => 'caption_shadow', 'selector' => '{{WRAPPER}} .gallery-item .gallery-caption', 'condition' => [ 'gallery_display_caption' => '', ], ] ); $this->add_responsive_control( 'caption_space', [ 'label' => esc_html__( 'Spacing', 'elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ], 'selectors' => [ '{{WRAPPER}} .gallery-item .gallery-caption' => 'margin-block-start: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'gallery_display_caption' => '', ], ] ); $this->end_controls_section(); } /** * Render image gallery widget output on the frontend. * * Written in PHP and used to generate the final HTML. * * @since 1.0.0 * @access protected */ protected function render() { $settings = $this->get_settings_for_display(); if ( ! $settings['wp_gallery'] ) { return; } $ids = wp_list_pluck( $settings['wp_gallery'], 'id' ); $this->add_render_attribute( 'shortcode', 'ids', implode( ',', $ids ) ); $this->add_render_attribute( 'shortcode', 'size', $settings['thumbnail_size'] ); if ( $settings['gallery_columns'] ) { $this->add_render_attribute( 'shortcode', 'columns', $settings['gallery_columns'] ); } if ( $settings['gallery_link'] ) { $this->add_render_attribute( 'shortcode', 'link', $settings['gallery_link'] ); } if ( ! empty( $settings['gallery_rand'] ) ) { $this->add_render_attribute( 'shortcode', 'orderby', $settings['gallery_rand'] ); } ?> <div class="elementor-image-gallery"> <?php add_filter( 'wp_get_attachment_link', [ $this, 'add_lightbox_data_to_image_link' ], 10, 2 ); echo do_shortcode( '[gallery ' . $this->get_render_attribute_string( 'shortcode' ) . ']' ); remove_filter( 'wp_get_attachment_link', [ $this, 'add_lightbox_data_to_image_link' ] ); ?> </div> <?php } }