Import legacy nurinda.co.id website
This commit is contained in:
1 parent
3f59bb9038
commit
6e21646ac4
13389 files changed
+3246690
No files matched your search
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
die( '-1' );
|
||||
}
|
||||
|
||||
class WPBakeryShortCode_VC_Tabs extends WPBakeryShortCode {
|
||||
static $filter_added = false;
|
||||
protected $controls_css_settings = 'out-tc vc_controls-content-widget';
|
||||
protected $controls_list = array( 'edit', 'clone', 'delete' );
|
||||
|
||||
public function __construct( $settings ) {
|
||||
parent::__construct( $settings );
|
||||
if ( ! self::$filter_added ) {
|
||||
$this->addFilter( 'vc_inline_template_content', 'setCustomTabId' );
|
||||
self::$filter_added = true;
|
||||
}
|
||||
}
|
||||
|
||||
public function contentAdmin( $atts, $content = null ) {
|
||||
$width = $custom_markup = '';
|
||||
$shortcode_attributes = array( 'width' => '1/1' );
|
||||
foreach ( $this->settings['params'] as $param ) {
|
||||
if ( 'content' !== $param['param_name'] ) {
|
||||
$shortcode_attributes[ $param['param_name'] ] = isset( $param['value'] ) ? $param['value'] : null;
|
||||
} elseif ( 'content' === $param['param_name'] && null === $content ) {
|
||||
$content = $param['value'];
|
||||
}
|
||||
}
|
||||
extract( shortcode_atts( $shortcode_attributes, $atts ) );
|
||||
|
||||
// Extract tab titles
|
||||
|
||||
preg_match_all( '/vc_tab title="([^\"]+)"(\stab_id\=\"([^\"]+)\"){0,1}/i', $content, $matches, PREG_OFFSET_CAPTURE );
|
||||
|
||||
$output = '';
|
||||
$tab_titles = array();
|
||||
|
||||
if ( isset( $matches[0] ) ) {
|
||||
$tab_titles = $matches[0];
|
||||
}
|
||||
$tmp = '';
|
||||
if ( count( $tab_titles ) ) {
|
||||
$tmp .= '<ul class="clearfix tabs_controls">';
|
||||
foreach ( $tab_titles as $tab ) {
|
||||
preg_match( '/title="([^\"]+)"(\stab_id\=\"([^\"]+)\"){0,1}/i', $tab[0], $tab_matches, PREG_OFFSET_CAPTURE );
|
||||
if ( isset( $tab_matches[1][0] ) ) {
|
||||
$tmp .= '<li><a href="#tab-' . ( isset( $tab_matches[3][0] ) ? $tab_matches[3][0] : sanitize_title( $tab_matches[1][0] ) ) . '">' . $tab_matches[1][0] . '</a></li>';
|
||||
|
||||
}
|
||||
}
|
||||
$tmp .= '</ul>' . "\n";
|
||||
} else {
|
||||
$output .= do_shortcode( $content );
|
||||
}
|
||||
|
||||
$elem = $this->getElementHolder( $width );
|
||||
|
||||
$iner = '';
|
||||
foreach ( $this->settings['params'] as $param ) {
|
||||
$param_value = isset( ${$param['param_name']} ) ? ${$param['param_name']} : '';
|
||||
if ( is_array( $param_value ) ) {
|
||||
// Get first element from the array
|
||||
reset( $param_value );
|
||||
$first_key = key( $param_value );
|
||||
$param_value = $param_value[ $first_key ];
|
||||
}
|
||||
$iner .= $this->singleParamHtmlHolder( $param, $param_value );
|
||||
}
|
||||
|
||||
if ( isset( $this->settings['custom_markup'] ) && '' !== $this->settings['custom_markup'] ) {
|
||||
if ( '' !== $content ) {
|
||||
$custom_markup = str_ireplace( '%content%', $tmp . $content, $this->settings['custom_markup'] );
|
||||
} elseif ( '' === $content && isset( $this->settings['default_content_in_template'] ) && '' !== $this->settings['default_content_in_template'] ) {
|
||||
$custom_markup = str_ireplace( '%content%', $this->settings['default_content_in_template'], $this->settings['custom_markup'] );
|
||||
} else {
|
||||
$custom_markup = str_ireplace( '%content%', '', $this->settings['custom_markup'] );
|
||||
}
|
||||
$iner .= do_shortcode( $custom_markup );
|
||||
}
|
||||
$elem = str_ireplace( '%wpb_element_content%', $iner, $elem );
|
||||
$output = $elem;
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
public function getTabTemplate() {
|
||||
return '<div class="wpb_template">' . do_shortcode( '[vc_tab title="Tab" tab_id=""][/vc_tab]' ) . '</div>';
|
||||
}
|
||||
|
||||
public function setCustomTabId( $content ) {
|
||||
return preg_replace( '/tab\_id\=\"([^\"]+)\"/', 'tab_id="$1-' . time() . '"', $content );
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user