File "w-gallery.php"
Full Path: /home/elegucvf/public_html/video/wp-content/plugins/atlas-core/elementor/widgets/w-gallery.php
File size: 6.97 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
class TH90_W_Gallery extends \Elementor\Widget_Base {
public function get_name() {
return 'w-gallery';
}
public function get_title() {
return __( 'Gallery & Instagram', 'atlas-core' );
}
public function get_icon() {
return 'eicon-gallery-grid th90-widget-icon';
}
public function get_keywords() {
return [ 'gallery', 'instagram', 'images' ];
}
public function get_categories() {
return [ sanitize_key( wp_get_theme()->name ) . '-elements' ];
}
protected function register_controls() {
/* Section General */
$this->start_controls_section(
'section_block_general',
[
'label' => __( 'General', 'atlas-core' ),
]
);
$this->add_control(
'gallery_img',
[
'label' => esc_html__( 'Add Images', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::GALLERY,
'show_label' => false,
'dynamic' => [
'active' => true,
],
]
);
$this->add_responsive_control(
'gallery_columns',
[
'label' => __( 'Gallery Columns', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 1,
'max' => 15,
],
],
'selectors' => [
'{{WRAPPER}} .block-egallery .egallery-item' => 'width: calc(100%/{{SIZE}});',
],
]
);
$this->add_responsive_control(
'gallery_gap',
[
'label' =>esc_html__( 'Gallery Gap', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .block-egallery' => 'margin: calc(({{SIZE}}{{UNIT}}/2) * -1);',
'{{WRAPPER}} .block-egallery .egallery-item' => 'padding: calc({{SIZE}}{{UNIT}}/2);',
],
]
);
$this->add_control(
'gallery_link',
[
'label' => esc_html__( 'Link', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SELECT,
'default' => 'lightbox',
'options' => [
'lightbox' => esc_html__( 'Lightbox', 'atlas-core' ),
'custom' => esc_html__( 'Custom', 'atlas-core' ),
],
]
);
$this->add_control(
'gallery_custom_link',
[
'label' => esc_html__( 'Link', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::URL,
'dynamic' => [
'active' => true,
],
'placeholder' => esc_html__( 'https://your-link.com', 'atlas-core' ),
'default' => [
'url' => '#',
],
'condition' => [
'gallery_link' => 'custom',
],
]
);
$this->add_control(
'image_size',
[
'label' => esc_html__( 'Image size', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SELECT,
'default' => 'medium',
'options' => th90_get_list_available_image_sizes(),
]
);
$this->add_responsive_control(
'gallery_radius',
[
'label' => esc_html__( 'Image radius', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => [ 'px' ],
'range' => [
'px' => [
'min' => 0,
'max' => 1000,
],
],
'selectors' => [
'{{WRAPPER}} .block-egallery .thumb-container' => 'border-radius: {{SIZE}}{{UNIT}};',
],
'default' => [
'unit' => 'px',
],
]
);
$this->add_control(
'add_instagram',
[
'label' => esc_html__('Add instagram link button?', 'atlas-core'),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => esc_html__('Yes', 'atlas-core'),
'label_off' => esc_html__('No', 'atlas-core'),
'default' => 'yes',
]
);
$this->add_control(
'instagram_text',
[
'label' => esc_html__( 'Instagram button text', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::TEXT,
'label_block' => true,
'default' => '',
]
);
$this->add_control(
'instagram_link',
[
'label' => __( 'Instagram button link', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::URL,
'placeholder' => __( 'https://your-link.com', 'atlas-core' ),
]
);
$this->end_controls_section();
/* Widget Boxed */
$controls = new TH90_Controls();
$controls->box_settings( $this );
}
/**
* Render the widget output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*/
protected function render() {
global $block_id;
$block_id++;
$atts = $this->get_settings_for_display();
$atts['image_size'] = !$atts['image_size'] ? 'post-thumbnail' : $atts['image_size'];
$instagram_link = isset( $atts['instagram_link']['url'] ) ? $atts['instagram_link']['url'] : '';
if ( ! empty( $instagram_link ) ) {
$this->add_link_attributes( 'link-instagram', $atts['instagram_link'] );
}
$wrapper_classes = array_merge(
array(
'th90-block',
'block-gallery',
),
th90_box_class( $atts )
);
?>
<div id="th90-block_<?php echo absint( $block_id ); ?>" class="<?php echo esc_attr( implode( ' ', array_filter( $wrapper_classes ) ) ); ?>">
<?php th90_box_heading( $atts ); ?>
<div class="block-egallery-wrap">
<?php
if ( 'yes' == $atts['add_instagram'] ) {
if ( ! empty( $instagram_link ) ) { ?>
<a class="instagram-galbtn button btn-small btn-accent" <?php echo wp_kses_post( $this->get_render_attribute_string( 'link-instagram' ) ); ?>>
<?php } else {?>
<div class="instagram-galbtn button btn-small btn-accent">
<?php } ?>
<?php th90_svg_icon_social( 'instagram' );?>
<?php
if ( $atts['instagram_text'] ) {
esc_html_e( $atts['instagram_text'] );
} else {
th90_translate_p( 'Follow Me' );
}
?>
<?php if ( ! empty( $instagram_link ) ) { ?>
</a>
<?php } else {?>
</div>
<?php }
}
?>
<div class="block-egallery">
<?php
foreach ( $atts['gallery_img'] as $image ) {
if ( isset( $image['id'] ) ) {
if ( 'lightbox' == $atts['gallery_link'] ) {
?>
<div class="egallery-item">
<a class="venobox" data-gall="egallery-<?php echo esc_attr( $block_id ); ?>" href="<?php echo esc_url( wp_get_attachment_image_src( $image['id'], 'full' )[0] ); ?>">
<div class="thumb-container thumb-100">
<?php
echo wp_get_attachment_image( $image['id'], $atts['image_size'] );
?>
</div>
</a>
</div>
<?php
} else {
if ( ! empty( $atts['gallery_link']['url'] ) ) {
$this->add_link_attributes( 'image', $atts['gallery_link'] );
}
?>
<div class="egallery-item">
<a <?php $this->print_render_attribute_string( 'image' ); ?>>
<div class="thumb-container thumb-100">
<?php
echo wp_get_attachment_image( $image['id'], $atts['image_size'] );
?>
</div>
</a>
</div>
<?php
}
}
}
?>
</div>
</div>
</div>
<?php
}
/**
* Render the widget output in the editor.
*
* Written as a Backbone JavaScript template and used to generate the live preview.
*/
protected function content_template() {}
}