| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- <?php
- if ( ! defined( 'ABSPATH' ) ) {
- die( '-1' );
- }
- VcShortcodeAutoloader::getInstance()->includeClass( 'WPBakeryShortCode_Vc_Tta_Accordion' );
- /**
- * Class WPBakeryShortCode_Vc_Tta_Section
- */
- class WPBakeryShortCode_Vc_Tta_Section extends WPBakeryShortCode_Vc_Tta_Accordion {
- protected $controls_css_settings = 'tc vc_control-container';
- protected $controls_list = array(
- 'add',
- 'edit',
- 'clone',
- 'delete',
- );
- protected $backened_editor_prepend_controls = false;
- /**
- * @var WPBakeryShortCode_Vc_Tta_Accordion
- */
- public static $tta_base_shortcode;
- public static $self_count = 0;
- public static $section_info = array();
- /**
- * @return mixed|string
- */
- public function getFileName() {
- if ( isset( self::$tta_base_shortcode ) && 'vc_tta_pageable' === self::$tta_base_shortcode->getShortcode() ) {
- return 'vc_tta_pageable_section';
- } else {
- return 'vc_tta_section';
- }
- }
- /**
- * @return string
- */
- public function containerContentClass() {
- return 'wpb_column_container vc_container_for_children vc_clearfix';
- }
- /**
- * @return string
- */
- public function getElementClasses() {
- $classes = array();
- $classes[] = 'vc_tta-panel';
- $isActive = ! vc_is_page_editable() && $this->getTemplateVariable( 'section-is-active' );
- if ( $isActive ) {
- $classes[] = $this->activeClass;
- }
- /**
- * @since 4.6.2
- */
- if ( isset( $this->atts['el_class'] ) ) {
- $classes[] = $this->atts['el_class'];
- }
- return implode( ' ', array_filter( $classes ) );
- }
- /**
- * @param $atts
- * @param $content
- *
- * @return string
- */
- public function getParamContent( $atts, $content ) {
- return wpb_js_remove_wpautop( $content );
- }
- /**
- * @param $atts
- * @param $content
- *
- * @return string|null
- */
- public function getParamTabId( $atts, $content ) {
- if ( isset( $atts['tab_id'] ) && strlen( $atts['tab_id'] ) > 0 ) {
- return $atts['tab_id'];
- }
- return null;
- }
- /**
- * @param $atts
- * @param $content
- *
- * @return string|null
- */
- public function getParamTitle( $atts, $content ) {
- if ( isset( $atts['title'] ) && strlen( $atts['title'] ) > 0 ) {
- return $atts['title'];
- }
- return null;
- }
- /**
- * @param $atts
- * @param $content
- *
- * @return string|null
- */
- public function getParamIcon( $atts, $content ) {
- if ( ! empty( $atts['add_icon'] ) && 'true' === $atts['add_icon'] ) {
- $iconClass = '';
- if ( isset( $atts[ 'i_icon_' . $atts['i_type'] ] ) ) {
- $iconClass = $atts[ 'i_icon_' . $atts['i_type'] ];
- }
- vc_icon_element_fonts_enqueue( $atts['i_type'] );
- return '<i class="vc_tta-icon ' . esc_attr( $iconClass ) . '"></i>';
- }
- return null;
- }
- /**
- * @param $atts
- * @param $content
- *
- * @return string|null
- */
- public function getParamIconLeft( $atts, $content ) {
- if ( 'left' === $atts['i_position'] ) {
- return $this->getParamIcon( $atts, $content );
- }
- return null;
- }
- /**
- * @param $atts
- * @param $content
- *
- * @return string|null
- */
- public function getParamIconRight( $atts, $content ) {
- if ( 'right' === $atts['i_position'] ) {
- return $this->getParamIcon( $atts, $content );
- }
- return null;
- }
- /**
- * Section param active
- * @param $atts
- * @param $content
- * @return bool|null
- */
- public function getParamSectionIsActive( $atts, $content ) {
- if ( is_object( self::$tta_base_shortcode ) ) {
- if ( isset( self::$tta_base_shortcode->atts['active_section'] ) && strlen( self::$tta_base_shortcode->atts['active_section'] ) > 0 ) {
- $active = (int) self::$tta_base_shortcode->atts['active_section'];
- if ( $active === self::$self_count ) {
- return true;
- }
- }
- }
- return null;
- }
- /**
- * @param $atts
- * @param $content
- * @return string|null
- */
- public function getParamControlIconPosition( $atts, $content ) {
- if ( is_object( self::$tta_base_shortcode ) ) {
- if ( isset( self::$tta_base_shortcode->atts['c_icon'] ) && strlen( self::$tta_base_shortcode->atts['c_icon'] ) > 0 && isset( self::$tta_base_shortcode->atts['c_position'] ) && strlen( self::$tta_base_shortcode->atts['c_position'] ) > 0 ) {
- $c_position = self::$tta_base_shortcode->atts['c_position'];
- return 'vc_tta-controls-icon-position-' . $c_position;
- }
- }
- return null;
- }
- /**
- * @param $atts
- * @param $content
- * @return string|null
- */
- public function getParamControlIcon( $atts, $content ) {
- if ( is_object( self::$tta_base_shortcode ) ) {
- if ( isset( self::$tta_base_shortcode->atts['c_icon'] ) && strlen( self::$tta_base_shortcode->atts['c_icon'] ) > 0 ) {
- $c_icon = self::$tta_base_shortcode->atts['c_icon'];
- return '<i class="vc_tta-controls-icon vc_tta-controls-icon-' . $c_icon . '"></i>';
- }
- }
- return null;
- }
- /**
- * @param $atts
- * @param $content
- * @return string
- */
- public function getParamHeading( $atts, $content ) {
- $isPageEditable = vc_is_page_editable();
- $h4attributes = array();
- $h4classes = array(
- 'vc_tta-panel-title',
- );
- if ( $isPageEditable ) {
- $h4attributes[] = 'data-vc-tta-controls-icon-position=""';
- } else {
- $controlIconPosition = $this->getTemplateVariable( 'control-icon-position' );
- if ( $controlIconPosition ) {
- $h4classes[] = $controlIconPosition;
- }
- }
- $h4attributes[] = 'class="' . implode( ' ', $h4classes ) . '"';
- $output = '<h4 ' . implode( ' ', $h4attributes ) . '>'; // close h4
- if ( $isPageEditable ) {
- $output .= '<a href="javascript:;" data-vc-target=""';
- $output .= ' data-vc-tta-controls-icon-wrapper';
- $output .= ' data-vc-use-cache="false"';
- } else {
- $output .= '<a href="#' . esc_attr( $this->getTemplateVariable( 'tab_id' ) ) . '"';
- }
- $output .= ' data-vc-accordion';
- $output .= ' data-vc-container=".vc_tta-container">';
- $output .= $this->getTemplateVariable( 'icon-left' );
- $output .= '<span class="vc_tta-title-text">' . $this->getTemplateVariable( 'title' ) . '</span>';
- $output .= $this->getTemplateVariable( 'icon-right' );
- if ( ! $isPageEditable ) {
- $output .= $this->getTemplateVariable( 'control-icon' );
- }
- $output .= '</a>';
- $output .= '</h4>'; // close h4 fix #2229
- return $output;
- }
- /**
- * Get basic heading
- *
- * These are used in Pageable element inside content and are hidden from view
- *
- * @param $atts
- * @param $content
- *
- * @return string
- */
- public function getParamBasicHeading( $atts, $content ) {
- $isPageEditable = vc_is_page_editable();
- if ( $isPageEditable ) {
- $attributes = array(
- 'href' => 'javascript:;',
- 'data-vc-container' => '.vc_tta-container',
- 'data-vc-accordion' => '',
- 'data-vc-target' => '',
- 'data-vc-tta-controls-icon-wrapper' => '',
- 'data-vc-use-cache' => 'false',
- );
- } else {
- $attributes = array(
- 'data-vc-container' => '.vc_tta-container',
- 'data-vc-accordion' => '',
- 'data-vc-target' => esc_attr( '#' . $this->getTemplateVariable( 'tab_id' ) ),
- );
- }
- $output = '
- <span class="vc_tta-panel-title">
- <a ' . vc_convert_atts_to_string( $attributes ) . '></a>
- </span>
- ';
- return $output;
- }
- /**
- * Check is allowed to add another element inside current element.
- *
- * @return bool
- * @since 4.8
- *
- */
- public function getAddAllowed() {
- return vc_user_access()->part( 'shortcodes' )->checkStateAny( true, 'custom', null )->get();
- }
- }
|