balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

shortcode.php (3179B)


      1 <?php
      2 namespace Elementor;
      3 
      4 if ( ! defined( 'ABSPATH' ) ) {
      5 	exit; // Exit if accessed directly.
      6 }
      7 
      8 /**
      9  * Elementor shortcode widget.
     10  *
     11  * Elementor widget that insert any shortcodes into the page.
     12  *
     13  * @since 1.0.0
     14  */
     15 class Widget_Shortcode extends Widget_Base {
     16 
     17 	/**
     18 	 * Get widget name.
     19 	 *
     20 	 * Retrieve shortcode widget name.
     21 	 *
     22 	 * @since 1.0.0
     23 	 * @access public
     24 	 *
     25 	 * @return string Widget name.
     26 	 */
     27 	public function get_name() {
     28 		return 'shortcode';
     29 	}
     30 
     31 	/**
     32 	 * Get widget title.
     33 	 *
     34 	 * Retrieve shortcode widget title.
     35 	 *
     36 	 * @since 1.0.0
     37 	 * @access public
     38 	 *
     39 	 * @return string Widget title.
     40 	 */
     41 	public function get_title() {
     42 		return esc_html__( 'Shortcode', 'elementor' );
     43 	}
     44 
     45 	/**
     46 	 * Get widget icon.
     47 	 *
     48 	 * Retrieve shortcode widget icon.
     49 	 *
     50 	 * @since 1.0.0
     51 	 * @access public
     52 	 *
     53 	 * @return string Widget icon.
     54 	 */
     55 	public function get_icon() {
     56 		return 'eicon-shortcode';
     57 	}
     58 
     59 	/**
     60 	 * Get widget keywords.
     61 	 *
     62 	 * Retrieve the list of keywords the widget belongs to.
     63 	 *
     64 	 * @since 2.1.0
     65 	 * @access public
     66 	 *
     67 	 * @return array Widget keywords.
     68 	 */
     69 	public function get_keywords() {
     70 		return [ 'shortcode', 'code' ];
     71 	}
     72 
     73 	/**
     74 	 * Whether the reload preview is required or not.
     75 	 *
     76 	 * Used to determine whether the reload preview is required.
     77 	 *
     78 	 * @since 1.0.0
     79 	 * @access public
     80 	 *
     81 	 * @return bool Whether the reload preview is required.
     82 	 */
     83 	public function is_reload_preview_required() {
     84 		return true;
     85 	}
     86 
     87 	/**
     88 	 * Register shortcode widget controls.
     89 	 *
     90 	 * Adds different input fields to allow the user to change and customize the widget settings.
     91 	 *
     92 	 * @since 3.1.0
     93 	 * @access protected
     94 	 */
     95 	protected function register_controls() {
     96 		$this->start_controls_section(
     97 			'section_shortcode',
     98 			[
     99 				'label' => esc_html__( 'Shortcode', 'elementor' ),
    100 			]
    101 		);
    102 
    103 		$this->add_control(
    104 			'shortcode',
    105 			[
    106 				'label' => esc_html__( 'Enter your shortcode', 'elementor' ),
    107 				'type' => Controls_Manager::TEXTAREA,
    108 				'dynamic' => [
    109 					'active' => true,
    110 				],
    111 				'placeholder' => '[gallery id="123" size="medium"]',
    112 				'default' => '',
    113 			]
    114 		);
    115 
    116 		$this->end_controls_section();
    117 	}
    118 
    119 	/**
    120 	 * Render shortcode widget output on the frontend.
    121 	 *
    122 	 * Written in PHP and used to generate the final HTML.
    123 	 *
    124 	 * @since 1.0.0
    125 	 * @access protected
    126 	 */
    127 	protected function render() {
    128 		$shortcode = $this->get_settings_for_display( 'shortcode' );
    129 
    130 		$shortcode = do_shortcode( shortcode_unautop( $shortcode ) );
    131 		?>
    132 		<div class="elementor-shortcode"><?php echo $shortcode; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
    133 		<?php
    134 	}
    135 
    136 	/**
    137 	 * Render shortcode widget as plain content.
    138 	 *
    139 	 * Override the default behavior by printing the shortcode instead of rendering it.
    140 	 *
    141 	 * @since 1.0.0
    142 	 * @access public
    143 	 */
    144 	public function render_plain_content() {
    145 		// In plain mode, render without shortcode
    146 		$this->print_unescaped_setting( 'shortcode' );
    147 	}
    148 
    149 	/**
    150 	 * Render shortcode widget output in the editor.
    151 	 *
    152 	 * Written as a Backbone JavaScript template and used to generate the live preview.
    153 	 *
    154 	 * @since 2.9.0
    155 	 * @access protected
    156 	 */
    157 	protected function content_template() {}
    158 }