| Server IP : 146.59.209.152 / Your IP : 216.73.216.46 Web Server : Apache System : Linux webm005.cluster131.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64 User : infrafs ( 43850) PHP Version : 8.2.29 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/infrafs/www/wp-content/plugins/eltd-core/shortcodes/accordions/ |
Upload File : |
<?php
namespace ElatedCore\CPT\Shortcodes\Accordion;
use ElatedCore\Lib;
class Accordion implements Lib\ShortcodeInterface {
private $base;
function __construct() {
$this->base = 'eltd_accordion';
add_action( 'vc_before_init', array( $this, 'vcMap' ) );
}
public function getBase() {
return $this->base;
}
public function vcMap() {
if ( function_exists( 'vc_map' ) ) {
vc_map(
array(
'name' => esc_html__( 'Elated Accordion', 'eltd-core' ),
'base' => $this->base,
'as_parent' => array( 'only' => 'eltd_accordion_tab' ),
'content_element' => true,
'category' => esc_html__( 'by ELATED', 'eltd-core' ),
'icon' => 'icon-wpb-accordion extended-custom-icon',
'show_settings_on_create' => true,
'js_view' => 'VcColumnView',
'params' => array(
array(
'type' => 'textfield',
'param_name' => 'custom_class',
'heading' => esc_html__( 'Custom CSS Class', 'eltd-core' ),
'description' => esc_html__( 'Style particular content element differently - add a class name and refer to it in custom CSS', 'eltd-core' )
),
array(
'type' => 'dropdown',
'param_name' => 'style',
'heading' => esc_html__( 'Style', 'eltd-core' ),
'value' => array(
esc_html__( 'Accordion', 'eltd-core' ) => 'accordion',
esc_html__( 'Toggle', 'eltd-core' ) => 'toggle'
)
),
array(
'type' => 'dropdown',
'param_name' => 'layout',
'heading' => esc_html__( 'Layout', 'eltd-core' ),
'value' => array(
esc_html__( 'Boxed', 'eltd-core' ) => 'boxed',
esc_html__( 'Simple', 'eltd-core' ) => 'simple'
)
),
array(
'type' => 'dropdown',
'param_name' => 'background_skin',
'heading' => esc_html__( 'Background Skin', 'eltd-core' ),
'value' => array(
esc_html__( 'Default', 'eltd-core' ) => '',
esc_html__( 'White', 'eltd-core' ) => 'white'
),
'dependency' => array( 'element' => 'layout', 'value' => array( 'boxed' ) )
)
)
)
);
}
}
public function render( $atts, $content = null ) {
$default_atts = array(
'custom_class' => '',
'title' => '',
'style' => 'accordion',
'layout' => 'boxed',
'background_skin' => ''
);
$params = shortcode_atts( $default_atts, $atts );
$params['holder_classes'] = $this->getHolderClasses( $params );
$params['content'] = $content;
$output = eltd_core_get_shortcode_module_template_part( 'templates/accordion-holder-template', 'accordions', '', $params );
return $output;
}
private function getHolderClasses( $params ) {
$holder_classes = array( 'eltd-ac-default' );
$holder_classes[] = ! empty( $params['custom_class'] ) ? esc_attr( $params['custom_class'] ) : '';
$holder_classes[] = $params['style'] == 'toggle' ? 'eltd-toggle' : 'eltd-accordion';
$holder_classes[] = ! empty( $params['layout'] ) ? 'eltd-ac-' . esc_attr( $params['layout'] ) : '';
$holder_classes[] = ! empty( $params['background_skin'] ) ? 'eltd-' . esc_attr( $params['background_skin'] ) . '-skin' : '';
return implode( ' ', $holder_classes );
}
}