<?php
namespace Elementor;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Elementor alert control.
*
* A base control for creating alerts in the Editor panels.
*
* @since 3.19.0
*/
class Control_Alert extends Base_UI_Control {
/**
* Get alert control type.
*
* Retrieve the control type, in this case `alert`.
*
* @since 3.19.0
* @access public
*
* @return string Control type.
*/
public function get_type() {
return 'alert';
}
/**
* Render alert control output in the editor.
*
* Used to generate the control HTML in the editor using Underscore JS
* template. The variables for the class are available using `data` JS
* object.
*
* @since 3.19.0
* @access public
*/
public function content_template() {
?>
<#
const validAlertTypes = [ 'info', 'success', 'warning', 'danger' ];
if ( ! validAlertTypes.includes( data.alert_type ) ) {
data.alert_type = 'info';
}
data.content = elementor.compileTemplate( data.content, { view } );
#>
<div class="elementor-control-alert elementor-panel-alert elementor-panel-alert-{{ data.alert_type }}">
<# if ( data.heading ) { #>
<div class="elementor-control-alert-heading">{{{ data.heading }}}</div>
<# } #>
<# if ( data.content ) { #>
<div class="elementor-control-alert-content ">{{{ data.content }}}</div>
<# } #>
</div>
<?php
}
/**
* Get alert control default settings.
*
* Retrieve the default settings of the alert control. Used to return the
* default settings while initializing the alert control.
*
* @since 3.19.0
* @access protected
*
* @return array Control default settings.
*/
protected function get_default_settings() {
return [
'alert_type' => '', // info, success, warning, danger.
'heading' => '',
'content' => '',
];
}
}