<?php if ( ! defined( 'ABSPATH' ) ) { die( '-1' ); } define( 'TAB_TITLE', __( 'Tab', 'js_composer' ) ); require_once vc_path_dir( 'SHORTCODES_DIR', 'vc-column.php' ); class WPBakeryShortCode_VC_Tab extends WPBakeryShortCode_VC_Column { protected $controls_css_settings = 'tc vc_control-container'; protected $controls_list = array( 'add', 'edit', 'clone', 'delete' ); protected $predefined_atts = array( 'tab_id' => '', 'title' => '', ); protected $controls_template_file = 'editors/partials/backend_controls_tab.tpl.php'; public function __construct( $settings ) { parent::__construct( $settings ); } public function customAdminBlockParams() { return ' id="tab-' . $this->atts['tab_id'] . '"'; } public function mainHtmlBlockParams( $width, $i ) { $sortable = ( vc_user_access_check_shortcode_all( $this->shortcode ) ? 'wpb_sortable' : $this->nonDraggableClass ); return 'data-element_type="' . $this->settings['base'] . '" class="wpb_' . $this->settings['base'] . ' ' . $sortable . ' wpb_content_holder"' . $this->customAdminBlockParams(); } public function containerHtmlBlockParams( $width, $i ) { return 'class="wpb_column_container vc_container_for_children"'; } public function getColumnControls( $controls, $extended_css = '' ) { return $this->getColumnControlsModular( $extended_css ); } } /** * @param $settings * @param $value * * @since 4.4 * @return string */ function vc_tab_id_settings_field( $settings, $value ) { return '<div class="my_param_block">' . '<input name="' . $settings['param_name'] . '" class="wpb_vc_param_value wpb-textinput ' . $settings['param_name'] . ' ' . $settings['type'] . '_field" type="hidden" value="' . $value . '" />' . '<label>' . $value . '</label>' . '</div>'; // TODO: Add data-js-function to documentation } vc_add_shortcode_param( 'tab_id', 'vc_tab_id_settings_field' );