<?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access pages directly. /** * * Show More - Show Less * * @author Codevz * @copyright Codevz * @link http://codevz.com/ */ class Codevz_WPBakery_show_more_less { public $name = false; public function __construct( $name ) { $this->name = $name; } /** * Shortcode settings */ public function in( $wpb = false ) { add_shortcode( $this->name, [ $this, 'out' ] ); $settings = array( 'category' => Codevz_Plus::$title, 'base' => $this->name, 'name' => esc_html__( 'Show More, Less', 'codevz' ), 'description' => esc_html__( 'Show/Hide large content', 'codevz' ), 'icon' => 'czi', 'is_container' => true, 'js_view' => 'VcColumnView', 'content_element'=> true, 'params' => array( array( 'type' => 'cz_sc_id', 'param_name' => 'id', 'save_always' => true ), array( "type" => "cz_slider", "heading" => esc_html__("Height", 'codevz'), "value" => "100px", 'options' => array( 'unit' => 'px', 'step' => 10, 'min' => 50, 'max' => 400 ), 'edit_field_class' => 'vc_col-xs-99', "param_name" => "height" ), array( "type" => "colorpicker", "heading" => esc_html__("Overlay color", 'codevz'), 'edit_field_class' => 'vc_col-xs-99', "value" => "#ffffff", "param_name" => "gradient" ), array( "type" => "textfield", "heading" => esc_html__("Show more", 'codevz'), "param_name" => "more", "value" => "Show more", 'edit_field_class' => 'vc_col-xs-99', ), array( "type" => "cz_icon", "heading" => esc_html__("Icon", 'codevz'), 'edit_field_class' => 'vc_col-xs-99', "param_name" => "icon_more", 'value' => 'fa fa-angle-down', ), array( "type" => "textfield", "heading" => esc_html__("Show less", 'codevz'), "param_name" => "less", "value" => "Show less", 'edit_field_class' => 'vc_col-xs-99', ), array( "type" => "cz_icon", "heading" => esc_html__("Icon", 'codevz'), 'edit_field_class' => 'vc_col-xs-99', "param_name" => "icon_less", 'value' => 'fa fa-angle-up', ), array( 'type' => 'cz_sk', 'param_name' => 'sk_button', 'hover_id' => 'sk_button_hover', "heading" => esc_html__( "Button styling", 'codevz'), 'button' => esc_html__( "Button", 'codevz'), 'edit_field_class' => 'vc_col-xs-99', 'settings' => array( 'display', 'color', 'text-align', 'font-family', 'font-size', 'font-weight', 'line-height', 'letter-spacing', 'background', 'padding', 'margin', 'border', 'box-shadow', 'text-shadow' ) ), array( 'type' => 'cz_hidden','param_name' => 'sk_button_mobile' ), array( 'type' => 'cz_hidden','param_name' => 'sk_button_hover' ), // Advanced array( 'type' => 'checkbox', 'heading' => esc_html__( 'Hide on Desktop?', 'codevz' ), 'param_name' => 'hide_on_d', 'edit_field_class' => 'vc_col-xs-4', 'group' => esc_html__( 'Advanced', 'codevz' ) ), array( 'type' => 'checkbox', 'heading' => esc_html__( 'Hide on Tablet?', 'codevz' ), 'param_name' => 'hide_on_t', 'edit_field_class' => 'vc_col-xs-4', 'group' => esc_html__( 'Advanced', 'codevz' ) ), array( 'type' => 'checkbox', 'heading' => esc_html__( 'Hide on Mobile?', 'codevz' ), 'param_name' => 'hide_on_m', 'edit_field_class' => 'vc_col-xs-4', 'group' => esc_html__( 'Advanced', 'codevz' ) ), array( 'type' => 'cz_title', 'param_name' => 'cz_title', 'class' => '', 'content' => esc_html__( 'Parallax', 'codevz' ), 'group' => esc_html__( 'Advanced', 'codevz' ) ), array( "type" => "dropdown", "heading" => esc_html__( "Parallax", 'codevz' ), "param_name" => "parallax_h", 'edit_field_class' => 'vc_col-xs-99', 'value' => array( esc_html__( 'Select', 'codevz' ) => '', esc_html__( 'Vertical', 'codevz' ) => 'v', esc_html__( 'Vertical + Mouse parallax', 'codevz' ) => 'vmouse', esc_html__( 'Horizontal', 'codevz' ) => 'true', esc_html__( 'Horizontal + Mouse parallax', 'codevz' ) => 'truemouse', esc_html__( 'Mouse parallax', 'codevz' ) => 'mouse', ), "group" => esc_html__( 'Advanced', 'codevz' ) ), array( "type" => "cz_slider", "heading" => esc_html__( "Parallax speed", 'codevz' ), "description" => esc_html__( "Parallax is according to page scrolling", 'codevz' ), 'edit_field_class' => 'vc_col-xs-99', "param_name" => "parallax", "value" => "0", 'options' => array( 'unit' => '', 'step' => 1, 'min' => -50, 'max' => 50 ), 'dependency' => array( 'element' => 'parallax_h', 'value' => array( 'v', 'vmouse', 'true', 'truemouse' ) ), "group" => esc_html__( 'Advanced', 'codevz' ) ), array( 'type' => 'checkbox', 'heading' => esc_html__( 'Stop when done', 'codevz' ), 'param_name' => 'parallax_stop', 'edit_field_class' => 'vc_col-xs-99', 'dependency' => array( 'element' => 'parallax_h', 'value' => array( 'v', 'vmouse', 'true', 'truemouse' ) ), 'group' => esc_html__( 'Advanced', 'codevz' ) ), array( "type" => "cz_slider", "heading" => esc_html__("Mouse speed", 'codevz'), "description" => esc_html__( "Mouse parallax is according to mouse move", 'codevz' ), 'edit_field_class' => 'vc_col-xs-99', "param_name" => "mparallax", "value" => "0", 'options' => array( 'unit' => '', 'step' => 1, 'min' => -30, 'max' => 30 ), 'dependency' => array( 'element' => 'parallax_h', 'value' => array( 'vmouse', 'truemouse', 'mouse' ) ), "group" => esc_html__( 'Advanced', 'codevz' ) ), array( 'type' => 'cz_title', 'param_name' => 'cz_title', 'class' => '', 'content' => esc_html__( 'Animation & Class', 'codevz' ), 'group' => esc_html__( 'Advanced', 'codevz' ) ), Codevz_Plus::wpb_animation_tab( false ), array( 'type' => 'cz_sk', 'param_name' => 'sk_brfx', "heading" => esc_html__( "Block Reveal", 'codevz'), 'button' => esc_html__( "Block Reveal", 'codevz'), 'edit_field_class' => 'vc_col-xs-99 hidden', 'group' => esc_html__( 'Advanced', 'codevz' ), 'settings' => array( 'background' ) ), array( "type" => "cz_slider", "heading" => esc_html__("Animation Delay", 'codevz'), "description" => 'e.g. 500ms', "param_name" => "anim_delay", 'options' => array( 'unit' => 'ms', 'step' => 100, 'min' => 0, 'max' => 5000 ), 'edit_field_class' => 'vc_col-xs-6', 'group' => esc_html__( 'Advanced', 'codevz' ) ), array( "type" => "textfield", "heading" => esc_html__( "Extra Class", 'codevz' ), "param_name" => "class", 'edit_field_class' => 'vc_col-xs-6', 'group' => esc_html__( 'Advanced', 'codevz' ) ), ) ); return $wpb ? vc_map( $settings ) : $settings; } /** * * Shortcode output * * @return string * */ public function out( $atts, $content = '' ) { // Settings. $atts = Codevz_Plus::shortcode_atts( $this, $atts ); // ID if ( ! $atts['id'] ) { $atts['id'] = Codevz_Plus::uniqid(); $public = 1; } // Icons $more_icon = $atts['icon_more'] ? '<i class="' . $atts['icon_more'] . ' ml8"></i>' : ''; $less_icon = $atts['icon_less'] ? '<i class="' . $atts['icon_less'] . ' ml8"></i>' : ''; // Styles if ( isset( $public ) || Codevz_Plus::$vc_editable || Codevz_Plus::$is_admin ) { $css_id = '#' . $atts['id']; $css_array = array( 'sk_brfx' => $css_id . ':before', 'sk_button' => $css_id . ' > a', 'sk_button_hover' => $css_id . ' > a:hover' ); $css = Codevz_Plus::sk_style( $atts, $css_array ); $css_t = Codevz_Plus::sk_style( $atts, $css_array, '_tablet' ); $css_m = Codevz_Plus::sk_style( $atts, $css_array, '_mobile' ); $css .= $atts['height'] ? $css_id . ' .cz_sml_inner{height:' . $atts['height'] . '}' : ''; $css .= $atts['gradient'] ? $css_id . ' .cz_sml_overlay{background:linear-gradient(to bottom, rgba(255,255,255,0), ' . $atts['gradient'] . ')}' : ''; $css .= $atts['anim_delay'] ? $css_id . '{animation-delay:' . $atts['anim_delay'] . '}' : ''; } else { Codevz_Plus::load_font( $atts['sk_button'] ); } // Out $out = '<div id="' . $atts['id'] . '"' . Codevz_Plus::classes( $atts, array( $atts['id'], 'cz_sml' ) ) . Codevz_Plus::data_stlye( $css, $css_t, $css_m ) . '><div class="cz_sml_inner"><div class="cz_wpe_content">' . do_shortcode( $content ) . '</div><div class="cz_sml_overlay"></div></div><a id="cz_show_more_less_btn" href="#more_less"><span>' . $atts['more'] . $more_icon . '</span><span>' . $atts['less'] . $less_icon . '</span></a></div>'; return Codevz_Plus::_out( $atts, $out, 'show_more_less', $this->name ); } }