1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
<?php namespace Elementor\Modules\AtomicWidgets\Widgets;
use Elementor\Modules\AtomicWidgets\PropTypes\Classes_Prop_Type; use Elementor\Modules\AtomicWidgets\PropTypes\Image_Prop_Type; use Elementor\Utils; use Elementor\Modules\AtomicWidgets\Controls\Section; use Elementor\Modules\AtomicWidgets\Base\Atomic_Widget_Base; use Elementor\Modules\AtomicWidgets\Controls\Types\Image_Control;
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. }
class Atomic_Image extends Atomic_Widget_Base { public function get_name() { return 'a-image'; }
public function get_title() { return esc_html__( 'Atomic Image', 'elementor' ); }
public function get_icon() { return 'eicon-image'; }
protected function render() { $settings = $this->get_atomic_settings();
if ( ! isset( $settings['image'] ) ) { return; }
$attrs = array_filter( array_merge( $settings['image'], [ 'class' => $settings['classes'] ?? '' ] ) );
$attrs['src'] = esc_url( $attrs['src'] );
Utils::print_wp_kses_extended( sprintf( '<img %1$s >', Utils::render_html_attributes( $attrs ) ), [ 'image' ] ); }
protected function define_atomic_controls(): array { $content_section = Section::make() ->set_label( esc_html__( 'Content', 'elementor' ) ) ->set_items( [ Image_Control::bind_to( 'image' ), ] );
return [ $content_section, ]; }
protected static function define_props_schema(): array { return [ 'classes' => Classes_Prop_Type::make() ->default( [] ),
'image' => Image_Prop_Type::make() ->default_url( Utils::get_placeholder_image_src() ) ->default_size( 'full' ), ]; } }
|