93 lines
3.8 KiB
PHP
93 lines
3.8 KiB
PHP
<?php
|
|
|
|
extract(shortcode_atts([
|
|
'direction' => 'horizontal',
|
|
'active_type' => 'activate-on-click',
|
|
'skew_switcher' => '',
|
|
'skew_direction' => 'right',
|
|
'content_align' => 'center',
|
|
'hovered_default_active' => 0,
|
|
'opened_default_active' => 0
|
|
], $settings ));
|
|
|
|
$class = $this->get_name();
|
|
|
|
/* #region Widget classes */
|
|
$widget_class = [ $class, 'image-accordion-' . esc_attr( $direction ), $active_type ];
|
|
|
|
$skew_class = '';
|
|
if ( $skew_switcher && $direction == 'horizontal' ) {
|
|
$skew_class = 'skew-direction-' . $skew_direction;
|
|
array_push(
|
|
$widget_class,
|
|
'image-accordion-skew'
|
|
);
|
|
}
|
|
|
|
$this->add_render_attribute( 'widget', 'class', $widget_class );
|
|
$widget_class = $this->get_render_attribute_string( 'widget' );
|
|
/* #endregion */
|
|
|
|
?>
|
|
<div <?php echo $widget_class; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
|
|
<div class="<?php echo esc_attr( trim( $class . '__container' . ' ' . $skew_class ) ); ?>"><?php
|
|
|
|
foreach ( $settings[ 'image_content' ] as $index => $item ) {
|
|
|
|
/* #region Item classes */
|
|
$item_classes = [ $class . '__item' ,'elementor-repeater-item-' . esc_attr( $item[ '_id' ] ) ];
|
|
$default_active = $active_type == 'activate-on-click' ? $opened_default_active : $hovered_default_active;
|
|
|
|
if ( $default_active && ($default_active - 1) == $index ) {
|
|
array_push( $item_classes, 'default-active' );
|
|
}
|
|
|
|
$this->add_render_attribute( 'item' . $index, [ 'class' => $item_classes ] );
|
|
$item_classes = $this->get_render_attribute_string( 'item' . $index );
|
|
/* #endregion */
|
|
?>
|
|
<div <?php echo $item_classes; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
|
|
<div class="<?php echo esc_attr( $class . '__background' ); ?>"></div>
|
|
<div class="<?php echo esc_attr( $class . '__overlay' ); ?>">
|
|
<?php
|
|
/* #region Content classes */
|
|
$this->add_render_attribute( 'content', [ 'class' => [ $class . '__content', 'image-accordion-' . $content_align ] ] );
|
|
$content_classes = $this->get_render_attribute_string( 'content' );
|
|
/* #endregion */
|
|
|
|
if ( $item[ 'content_switcher' ] ) {
|
|
|
|
$title = $item[ 'item_title' ];
|
|
$description = $item[ 'item_description' ];
|
|
?>
|
|
<div <?php echo $content_classes; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
|
|
<?php
|
|
if ( $item[ 'icon_switcher' ] ) {
|
|
$icon = $item[ 'icon_updated' ]; ?>
|
|
<i class="<?php echo esc_attr( $class . '__icon ' . $icon ); ?>"></i>
|
|
<?php } ?>
|
|
<h3 class="<?php echo esc_attr( $class . '__title' ); ?>">
|
|
<?php echo esc_html( $title ); ?>
|
|
</h3>
|
|
<div class="<?php echo esc_attr( $class . '__description' ); ?>">
|
|
<?php echo esc_html( $description ) ?>
|
|
</div>
|
|
<?php
|
|
/* #region Render button */
|
|
$link = $item[ 'link' ];
|
|
$button_text = $item[ 'button_text' ];
|
|
$show_button = $item[ 'show_button' ];
|
|
|
|
if ( ! empty( $button_text ) && $show_button == 'yes' ) {
|
|
echo $this->image_accordion_render_button( $index, $button_text, $link ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
|
}
|
|
/* #endregion */
|
|
?>
|
|
</div>
|
|
<?php } ?>
|
|
</div>
|
|
</div>
|
|
<?php } ?>
|
|
</div>
|
|
</div>
|