Current Path : /home/ncdcgo/public_html/wp-content/plugins/Ultimate_VC_Addons/modules/ |
Current File : /home/ncdcgo/public_html/wp-content/plugins/Ultimate_VC_Addons/modules/ultimate_headings.php |
<?php /** * Add-on Name: Ultimate Headings * Add-on URI: http://dev.brainstormforce.com * * @package Ultimate Headings */ if ( ! class_exists( 'Ultimate_VC_Addons_Headings' ) ) { /** * Function that initializes Ultimate Heading Module * * @class Ultimate_VC_Addons_Headings */ class Ultimate_VC_Addons_Headings { /** * Class instance. * * @access public * @var $add_plugin_script. */ public static $add_plugin_script; /** * Constructor function that constructs default values for the Ultimate Heading module. * * @method __construct */ public function __construct() { if ( Ultimate_VC_Addons::$uavc_editor_enable ) { add_action( 'init', array( $this, 'ultimate_headings_init' ) ); } add_shortcode( 'ultimate_heading', array( $this, 'ultimate_headings_shortcode' ) ); add_action( 'wp_enqueue_scripts', array( $this, 'register_headings_assets' ), 1 ); } /** * Function that register styles and scripts for Ultimate Heading Module. * * @method register_headings_assets */ public function register_headings_assets() { Ultimate_VC_Addons::ultimate_register_style( 'ultimate-vc-addons-headings-style', 'headings' ); Ultimate_VC_Addons::ultimate_register_script( 'ultimate-vc-addons-headings-script', 'headings', false, array( 'jquery' ), ULTIMATE_VERSION, false ); } /** * Function that initializes settings of Ultimate Heading Module. * * @method ultimate_headings_init */ public function ultimate_headings_init() { if ( function_exists( 'vc_map' ) ) { vc_map( array( 'name' => __( 'Headings', 'ultimate_vc' ), 'base' => 'ultimate_heading', 'class' => 'vc_ultimate_heading', 'icon' => 'vc_ultimate_heading', 'category' => 'Ultimate VC Addons', 'description' => __( 'Awesome heading styles.', 'ultimate_vc' ), 'params' => array( array( 'type' => 'dropdown', 'heading' => __( 'Text source', 'ultimate_vc' ), 'param_name' => 'source', 'value' => array( __( 'Custom text', 'ultimate_vc' ) => '', __( 'Post or Page Title', 'ultimate_vc' ) => 'post_title', ), 'std' => '', 'description' => __( 'Select text source.', 'ultimate_vc' ), ), array( 'type' => 'textfield', 'heading' => __( 'Title', 'ultimate_vc' ), 'param_name' => 'main_heading', 'holder' => 'div', 'value' => '', 'dependency' => array( 'element' => 'source', 'is_empty' => true, ), ), array( 'type' => 'dropdown', 'heading' => esc_html__( 'Tag', 'ultimate_vc' ), 'param_name' => 'heading_tag', 'value' => array( esc_html__( 'Default', 'ultimate_vc' ) => 'h2', esc_html__( 'H1', 'ultimate_vc' ) => 'h1', esc_html__( 'H3', 'ultimate_vc' ) => 'h3', esc_html__( 'H4', 'ultimate_vc' ) => 'h4', esc_html__( 'H5', 'ultimate_vc' ) => 'h5', esc_html__( 'H6', 'ultimate_vc' ) => 'h6', esc_html__( 'Div', 'ultimate_vc' ) => 'div', esc_html__( 'p', 'ultimate_vc' ) => 'p', esc_html__( 'span', 'ultimate_vc' ) => 'span', ), 'description' => __( 'Default is H2', 'ultimate_vc' ), ), array( 'type' => 'ult_param_heading', 'text' => __( 'Heading Settings', 'ultimate_vc' ), 'param_name' => 'main_heading_typograpy', 'group' => 'Typography', 'class' => 'ult-param-heading', 'edit_field_class' => 'ult-param-heading-wrapper no-top-margin vc_column vc_col-sm-12', ), array( 'type' => 'ultimate_google_fonts', 'heading' => __( 'Font Family', 'ultimate_vc' ), 'param_name' => 'main_heading_font_family', 'description' => __( 'Select the font of your choice.', 'ultimate_vc' ) . ' ' . __( 'You can', 'ultimate_vc' ) . " <a target='_blank' rel='noopener' href='" . admin_url( 'admin.php?page=bsf-google-font-manager' ) . "'>" . __( 'add new in the collection here', 'ultimate_vc' ) . '</a>.', 'group' => 'Typography', ), array( 'type' => 'ultimate_google_fonts_style', 'heading' => __( 'Font Style', 'ultimate_vc' ), 'param_name' => 'main_heading_style', 'group' => 'Typography', ), // Responsive Param. array( 'type' => 'ultimate_responsive', 'class' => 'font-size', 'heading' => __( 'Font size', 'ultimate_vc' ), 'param_name' => 'main_heading_font_size', 'unit' => 'px', 'media' => array( 'Desktop' => '', 'Tablet' => '', 'Tablet Portrait' => '', 'Mobile Landscape' => '', 'Mobile' => '', ), 'group' => 'Typography', ), array( 'type' => 'colorpicker', 'class' => '', 'heading' => __( 'Font Color', 'ultimate_vc' ), 'param_name' => 'main_heading_color', 'value' => '', 'group' => 'Typography', ), // responsive. array( 'type' => 'ultimate_responsive', 'class' => 'font-size', 'heading' => __( 'Line Height', 'ultimate_vc' ), 'param_name' => 'main_heading_line_height', 'unit' => 'px', 'media' => array( 'Desktop' => '', 'Tablet' => '', 'Tablet Portrait' => '', 'Mobile Landscape' => '', 'Mobile' => '', ), 'group' => 'Typography', ), array( 'type' => 'text', 'heading' => '<h4>' . __( 'Enter values with respective unites. Example - 10px, 10em, 10%, etc.', 'ultimate_vc' ) . '</h4>', 'param_name' => 'margin_design_tab_text', 'group' => 'Design', ), array( 'type' => 'ultimate_margins', 'heading' => __( 'Heading Margins', 'ultimate_vc' ), 'param_name' => 'main_heading_margin', 'positions' => array( 'Top' => 'top', 'Bottom' => 'bottom', ), 'group' => 'Design', ), array( 'type' => 'textarea_html', 'edit_field_class' => 'ult_hide_editor_fullscreen vc_col-xs-12 vc_column wpb_el_type_textarea_html vc_wrapper-param-type-textarea_html vc_shortcode-param', 'heading' => __( 'Sub Heading (Optional)', 'ultimate_vc' ), 'param_name' => 'content', 'value' => '', ), array( 'type' => 'ult_param_heading', 'text' => __( 'Sub Heading Settings', 'ultimate_vc' ), 'param_name' => 'sub_heading_typograpy', 'group' => 'Typography', 'class' => 'ult-param-heading', 'edit_field_class' => 'ult-param-heading-wrapper vc_column vc_col-sm-12', ), array( 'type' => 'ultimate_google_fonts', 'heading' => __( 'Font Family', 'ultimate_vc' ), 'param_name' => 'sub_heading_font_family', 'description' => __( 'Select the font of your choice.', 'ultimate_vc' ) . ' ' . __( 'You can', 'ultimate_vc' ) . " <a target='_blank' rel='noopener' href='" . admin_url( 'admin.php?page=bsf-google-font-manager' ) . "'>" . __( 'add new in the collection here', 'ultimate_vc' ) . '</a>.', 'group' => 'Typography', ), array( 'type' => 'ultimate_google_fonts_style', 'heading' => __( 'Font Style', 'ultimate_vc' ), 'param_name' => 'sub_heading_style', 'group' => 'Typography', ), // responsive font size. array( 'type' => 'ultimate_responsive', 'class' => '', 'heading' => __( 'Font Size', 'ultimate_vc' ), 'param_name' => 'sub_heading_font_size', 'unit' => 'px', 'media' => array( 'Desktop' => '', 'Tablet' => '', 'Tablet Portrait' => '', 'Mobile Landscape' => '', 'Mobile' => '', ), 'group' => 'Typography', ), array( 'type' => 'colorpicker', 'class' => '', 'heading' => __( 'Font Color', 'ultimate_vc' ), 'param_name' => 'sub_heading_color', 'value' => '', 'group' => 'Typography', ), // responsive. array( 'type' => 'ultimate_responsive', 'class' => '', 'heading' => __( 'Line Height', 'ultimate_vc' ), 'param_name' => 'sub_heading_line_height', 'unit' => 'px', 'media' => array( 'Desktop' => '', 'Tablet' => '', 'Tablet Portrait' => '', 'Mobile Landscape' => '', 'Mobile' => '', ), 'group' => 'Typography', ), array( 'type' => 'ultimate_margins', 'heading' => 'Sub Heading Margins', 'param_name' => 'sub_heading_margin', 'positions' => array( __( 'Top', 'ultimate_vc' ) => 'top', __( 'Bottom', 'ultimate_vc' ) => 'bottom', ), 'group' => 'Design', ), array( 'type' => 'dropdown', 'class' => '', 'heading' => __( 'Alignment', 'ultimate_vc' ), 'param_name' => 'alignment', 'value' => array( __( 'Center', 'ultimate_vc' ) => 'center', __( 'Left', 'ultimate_vc' ) => 'left', __( 'Right', 'ultimate_vc' ) => 'right', ), ), array( 'type' => 'dropdown', 'class' => '', 'heading' => __( 'Separator', 'ultimate_vc' ), 'param_name' => 'spacer', 'value' => array( __( 'No Separator', 'ultimate_vc' ) => 'no_spacer', __( 'Line', 'ultimate_vc' ) => 'line_only', __( 'Icon', 'ultimate_vc' ) => 'icon_only', __( 'Image', 'ultimate_vc' ) => 'image_only', __( 'Line with icon/image', 'ultimate_vc' ) => 'line_with_icon', ), 'description' => __( 'Horizontal line, icon or image to divide sections', 'ultimate_vc' ), ), array( 'type' => 'dropdown', 'class' => '', 'heading' => __( 'Separator Position', 'ultimate_vc' ), 'param_name' => 'spacer_position', 'value' => array( __( 'Top', 'ultimate_vc' ) => 'top', __( 'Between Heading & Sub-Heading', 'ultimate_vc' ) => 'middle', __( 'Bottom', 'ultimate_vc' ) => 'bottom', ), 'dependency' => array( 'element' => 'spacer', 'value' => array( 'line_with_icon', 'line_only', 'icon_only', 'image_only' ), ), ), array( 'type' => 'ult_img_single', 'heading' => __( 'Select Image', 'ultimate_vc' ), 'param_name' => 'spacer_img', 'dependency' => array( 'element' => 'spacer', 'value' => array( 'image_only' ), ), ), array( 'type' => 'number', 'class' => '', 'heading' => __( 'Image Width', 'ultimate_vc' ), 'param_name' => 'spacer_img_width', 'value' => 48, 'suffix' => 'px', 'description' => __( 'Provide image width (optional)', 'ultimate_vc' ), 'dependency' => array( 'element' => 'spacer', 'value' => array( 'image_only' ), ), ), array( 'type' => 'dropdown', 'class' => '', 'heading' => __( 'Line Style', 'ultimate_vc' ), 'param_name' => 'line_style', 'value' => array( __( 'Solid', 'ultimate_vc' ) => 'solid', __( 'Dashed', 'ultimate_vc' ) => 'dashed', __( 'Dotted', 'ultimate_vc' ) => 'dotted', __( 'Double', 'ultimate_vc' ) => 'double', __( 'Inset', 'ultimate_vc' ) => 'inset', __( 'Outset', 'ultimate_vc' ) => 'outset', ), 'dependency' => array( 'element' => 'spacer', 'value' => array( 'line_with_icon', 'line_only' ), ), ), array( 'type' => 'number', 'class' => '', 'heading' => __( 'Line Width (optional)', 'ultimate_vc' ), 'param_name' => 'line_width', 'suffix' => 'px', 'dependency' => array( 'element' => 'spacer', 'value' => array( 'line_with_icon', 'line_only' ), ), ), array( 'type' => 'number', 'class' => '', 'heading' => __( 'Line Height', 'ultimate_vc' ), 'param_name' => 'line_height', 'value' => 1, 'min' => 1, 'max' => 500, 'suffix' => 'px', 'dependency' => array( 'element' => 'spacer', 'value' => array( 'line_with_icon', 'line_only' ), ), ), array( 'type' => 'colorpicker', 'class' => '', 'heading' => __( 'Line Color', 'ultimate_vc' ), 'param_name' => 'line_color', 'value' => '#333333', 'dependency' => array( 'element' => 'spacer', 'value' => array( 'line_with_icon', 'line_only' ), ), ), array( 'type' => 'dropdown', 'class' => '', 'heading' => __( 'Icon to display:', 'ultimate_vc' ), 'param_name' => 'icon_type', 'value' => array( __( 'Font Icon Manager', 'ultimate_vc' ) => 'selector', __( 'Custom Image Icon', 'ultimate_vc' ) => 'custom', ), 'description' => __( 'Use an existing font icon or upload a custom image.', 'ultimate_vc' ), 'dependency' => array( 'element' => 'spacer', 'value' => array( 'line_with_icon', 'icon_only' ), ), ), array( 'type' => 'icon_manager', 'class' => '', 'heading' => __( 'Select Icon ', 'ultimate_vc' ), 'param_name' => 'icon', 'value' => '', 'description' => __( "Click and select icon of your choice. If you can't find the one that suits for your purpose", 'ultimate_vc' ) . ', ' . __( 'you can', 'ultimate_vc' ) . " <a href='admin.php?page=bsf-font-icon-manager' target='_blank' rel='noopener'>" . __( 'add new here', 'ultimate_vc' ) . '</a>.', 'dependency' => array( 'element' => 'icon_type', 'value' => array( 'selector' ), ), ), array( 'type' => 'number', 'class' => '', 'heading' => __( 'Size of Icon', 'ultimate_vc' ), 'param_name' => 'icon_size', 'value' => 32, 'min' => 12, 'max' => 72, 'suffix' => 'px', 'description' => __( 'How big would you like it?', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_type', 'value' => array( 'selector' ), ), ), array( 'type' => 'colorpicker', 'class' => '', 'heading' => __( 'Color', 'ultimate_vc' ), 'param_name' => 'icon_color', 'value' => '', 'description' => __( 'Give it a nice paint!', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_type', 'value' => array( 'selector' ), ), ), array( 'type' => 'dropdown', 'class' => '', 'heading' => __( 'Icon Style', 'ultimate_vc' ), 'param_name' => 'icon_style', 'value' => array( __( 'Simple', 'ultimate_vc' ) => 'none', __( 'Circle Background', 'ultimate_vc' ) => 'circle', __( 'Square Background', 'ultimate_vc' ) => 'square', __( 'Design your own', 'ultimate_vc' ) => 'advanced', ), 'description' => __( 'We have given three quick preset if you are in a hurry. Otherwise, create your own with various options.', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_type', 'value' => array( 'selector' ), ), ), array( 'type' => 'colorpicker', 'class' => '', 'heading' => __( 'Background Color', 'ultimate_vc' ), 'param_name' => 'icon_color_bg', 'value' => '', 'description' => __( 'Select background color for icon.', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_style', 'value' => array( 'circle', 'square', 'advanced' ), ), ), array( 'type' => 'dropdown', 'class' => '', 'heading' => __( 'Icon Border Style', 'ultimate_vc' ), 'param_name' => 'icon_border_style', 'value' => array( __( 'None', 'ultimate_vc' ) => '', __( 'Solid', 'ultimate_vc' ) => 'solid', __( 'Dashed', 'ultimate_vc' ) => 'dashed', __( 'Dotted', 'ultimate_vc' ) => 'dotted', __( 'Double', 'ultimate_vc' ) => 'double', __( 'Inset', 'ultimate_vc' ) => 'inset', __( 'Outset', 'ultimate_vc' ) => 'outset', ), 'description' => __( 'Select the border style for icon.', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_style', 'value' => array( 'advanced' ), ), ), array( 'type' => 'colorpicker', 'class' => '', 'heading' => __( 'Border Color', 'ultimate_vc' ), 'param_name' => 'icon_color_border', 'value' => '#333333', 'description' => __( 'Select border color for icon.', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_border_style', 'not_empty' => true, ), ), array( 'type' => 'number', 'class' => '', 'heading' => __( 'Border Width', 'ultimate_vc' ), 'param_name' => 'icon_border_size', 'value' => 1, 'min' => 1, 'max' => 10, 'suffix' => 'px', 'description' => __( 'Thickness of the border.', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_border_style', 'not_empty' => true, ), ), array( 'type' => 'number', 'class' => '', 'heading' => __( 'Border Radius', 'ultimate_vc' ), 'param_name' => 'icon_border_radius', 'value' => 500, 'min' => 1, 'max' => 500, 'suffix' => 'px', 'description' => __( '0 pixel value will create a square border. As you increase the value, the shape convert in circle slowly. (e.g 500 pixels).', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_border_style', 'not_empty' => true, ), ), array( 'type' => 'number', 'class' => '', 'heading' => __( 'Background Size', 'ultimate_vc' ), 'param_name' => 'icon_border_spacing', 'value' => 50, 'min' => 30, 'max' => 500, 'suffix' => 'px', 'description' => __( 'Spacing from center of the icon till the boundary of border / background', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_style', 'value' => array( 'advanced' ), ), ), array( 'type' => 'ult_img_single', 'class' => '', 'heading' => __( 'Upload Image Icon:', 'ultimate_vc' ), 'param_name' => 'icon_img', 'value' => '', 'description' => __( 'Upload the custom image icon.', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_type', 'value' => array( 'custom' ), ), ), array( 'type' => 'number', 'class' => '', 'heading' => __( 'Image Width', 'ultimate_vc' ), 'param_name' => 'img_width', 'value' => 48, 'min' => 16, 'max' => 512, 'suffix' => 'px', 'description' => __( 'Provide image width', 'ultimate_vc' ), 'dependency' => array( 'element' => 'icon_type', 'value' => array( 'custom' ), ), ), array( 'type' => 'ultimate_margins', 'heading' => 'Separator Margins', 'param_name' => 'spacer_margin', 'positions' => array( __( 'Top', 'ultimate_vc' ) => 'top', __( 'Bottom', 'ultimate_vc' ) => 'bottom', ), 'dependency' => array( 'element' => 'spacer', 'value' => array( 'line_with_icon', 'line_only', 'icon_only', 'image_only' ), ), 'group' => 'Design', ), array( 'type' => 'number', 'heading' => __( 'Space between Line & Icon/Image', 'ultimate_vc' ), 'param_name' => 'line_icon_fixer', 'value' => '10', 'suffix' => 'px', 'dependency' => array( 'element' => 'spacer', 'value' => array( 'line_with_icon' ), ), ), array( 'type' => 'textfield', 'heading' => __( 'Extra class name', 'ultimate_vc' ), 'param_name' => 'el_class', 'description' => __( 'If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.', 'ultimate_vc' ), ), array( 'type' => 'ult_param_heading', 'text' => "<span style='display: block;'><a href='http://bsf.io/8v9sy' target='_blank' rel='noopener'>" . __( 'Watch Video Tutorial', 'ultimate_vc' ) . " <span class='dashicons dashicons-video-alt3' style='font-size:30px;vertical-align: middle;color: #e52d27;'></span></a></span>", 'param_name' => 'notification', 'edit_field_class' => 'ult-param-important-wrapper ult-dashicon ult-align-right ult-bold-font ult-blue-font vc_column vc_col-sm-12', ), ), ) ); } } /** * Render function for Ultimate Heading Module. * * @param array $atts represts module attribuits. * @param string $content value has been set to null. * @access public */ public function ultimate_headings_shortcode( $atts, $content = null ) { $wrapper_style = ''; $main_heading_style_inline = ''; $sub_heading_style_inline = ''; $line_style_inline = ''; $icon_inline = ''; $output = ''; $ult_heading_settings['el_class'] = ''; $ult_heading_settings = shortcode_atts( array( 'source' => '', 'main_heading' => '', 'main_heading_font_size' => '', 'main_heading_line_height' => '', 'main_heading_font_family' => '', 'main_heading_style' => '', 'main_heading_color' => '', 'main_heading_margin' => '', 'sub_heading' => '', 'sub_heading_font_size' => '', 'sub_heading_line_height' => '', 'sub_heading_font_family' => '', 'sub_heading_style' => '', 'sub_heading_color' => '', 'sub_heading_margin' => '', 'spacer' => 'no_spacer', 'spacer_position' => 'top', 'spacer_img' => '', 'spacer_img_width' => '', 'line_style' => 'solid', 'line_width' => 'auto', 'line_height' => '1', 'line_color' => '#ccc', 'icon_type' => 'selector', 'icon' => '', 'icon_color' => '', 'icon_style' => 'none', 'icon_color_bg' => '', 'icon_border_style' => '', 'icon_color_border' => '#333333', 'icon_border_size' => '1', 'icon_border_radius' => '', 'icon_border_spacing' => '', 'icon_img' => '', 'img_width' => '48', 'icon_size' => '32', 'alignment' => 'center', 'spacer_margin' => 'top', 'line_icon_fixer' => '10', 'heading_tag' => '', 'el_class' => '', ), $atts ); $vc_version = ( defined( 'WPB_VC_VERSION' ) ) ? WPB_VC_VERSION : 0; $is_vc_49_plus = ( version_compare( 4.9, $vc_version, '<=' ) ) ? 'ult-adjust-bottom-margin' : ''; $wrapper_class = $ult_heading_settings['spacer']; // Ensure heading_tag is a valid HTML tag $valid_tags = array('h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'p', 'span'); // Dual-color Heading tag. if ( ( '' == sanitize_text_field( $ult_heading_settings['heading_tag'] ) ) || ( ! in_array($ult_heading_settings['heading_tag'], $valid_tags) ) ) { $ult_heading_settings['heading_tag'] = 'h2'; } if ( 'post_title' == $ult_heading_settings['source'] ) { global $post; $ult_heading_settings['main_heading'] = $post->post_title; } // main heading styles. if ( '' != $ult_heading_settings['main_heading_font_family'] ) { $mhfont_family = get_ultimate_font_family( $ult_heading_settings['main_heading_font_family'] ); if ( $mhfont_family ) { $main_heading_style_inline .= 'font-family:\'' . $mhfont_family . '\';'; } } // main heading font style. $main_heading_style_inline .= get_ultimate_font_style( $ult_heading_settings['main_heading_style'] ); // attach font size if set. // attach font color if set. if ( '' != $ult_heading_settings['main_heading_color'] ) { $main_heading_style_inline .= 'color:' . $ult_heading_settings['main_heading_color'] . ';'; } // attach margins for main heading. if ( '' != $ult_heading_settings['main_heading_margin'] ) { $main_heading_style_inline .= $ult_heading_settings['main_heading_margin']; } /* ----- sub heading styles ----- */ if ( '' != $ult_heading_settings['sub_heading_font_family'] ) { $shfont_family = get_ultimate_font_family( $ult_heading_settings['sub_heading_font_family'] ); if ( '' != $shfont_family ) { $sub_heading_style_inline .= 'font-family:\'' . $shfont_family . '\';'; } } // sub heaing font style. $sub_heading_style_inline .= get_ultimate_font_style( $ult_heading_settings['sub_heading_style'] ); // attach font color if set. if ( '' != $ult_heading_settings['sub_heading_color'] ) { $sub_heading_style_inline .= 'color:' . $ult_heading_settings['sub_heading_color'] . ';'; } // attach margins for sub heading. if ( '' != $ult_heading_settings['sub_heading_margin'] ) { $sub_heading_style_inline .= $ult_heading_settings['sub_heading_margin']; } if ( '' != $ult_heading_settings['spacer'] ) { $wrapper_style .= $ult_heading_settings['spacer_margin']; } if ( 'line_with_icon' == $ult_heading_settings['spacer'] ) { if ( $ult_heading_settings['line_width'] < $ult_heading_settings['icon_size'] ) { $wrap_width = $ult_heading_settings['icon_size']; } else { $wrap_width = $ult_heading_settings['line_width']; } if ( 'selector' == $ult_heading_settings['icon_type'] ) { $wrapper_style .= 'height:' . $ult_heading_settings['icon_size'] . 'px;'; } $icon_style_inline = 'font-size:' . $ult_heading_settings['icon_size'] . 'px;'; } elseif ( 'line_only' == $ult_heading_settings['spacer'] ) { $wrap_width = $ult_heading_settings['line_width']; $line_style_inline = 'border-style:' . $ult_heading_settings['line_style'] . ';'; $line_style_inline .= 'border-bottom-width:' . $ult_heading_settings['line_height'] . 'px;'; $line_style_inline .= 'border-color:' . $ult_heading_settings['line_color'] . ';'; $line_style_inline .= 'width:' . $wrap_width . 'px;'; $wrapper_style .= 'height:' . $ult_heading_settings['line_height'] . 'px;'; $line = '<span class="uvc-headings-line" style="' . esc_attr( $line_style_inline ) . '"></span>'; $icon_inline = $line; } elseif ( 'icon_only' == $ult_heading_settings['spacer'] ) { $icon_style_inline = 'font-size:' . $ult_heading_settings['icon_size'] . 'px;'; } elseif ( 'image_only' == $ult_heading_settings['spacer'] ) { if ( ! empty( $ult_heading_settings['spacer_img_width'] ) ) { $siwidth = array( $ult_heading_settings['spacer_img_width'], $ult_heading_settings['spacer_img_width'] ); } else { $siwidth = 'full'; } $spacer_inline = ''; $icon_inline = apply_filters( 'ult_get_img_single', $ult_heading_settings['spacer_img'], 'url' ); $alt = apply_filters( 'ult_get_img_single', $ult_heading_settings['spacer_img'], 'alt' ); if ( '' !== $ult_heading_settings['spacer_img_width'] ) { $spacer_inline = 'width:' . $ult_heading_settings['spacer_img_width'] . 'px'; } $icon_inline = '<img src="' . esc_url( apply_filters( 'ultimate_images', $icon_inline ) ) . '" class="ultimate-headings-icon-image" alt="' . esc_attr( $alt ) . '" style="' . esc_attr( $spacer_inline ) . '"/>'; } // if spacer type is line with icon or only icon show icon or image respectively. if ( 'line_with_icon' == $ult_heading_settings['spacer'] || 'icon_only' == $ult_heading_settings['spacer'] ) { $icon_animation = ''; $icon_inline = do_shortcode( '[just_icon icon_align="' . esc_attr( $ult_heading_settings['alignment'] ) . '" icon_type="' . esc_attr( $ult_heading_settings['icon_type'] ) . '" icon="' . esc_attr( $ult_heading_settings['icon'] ) . '" icon_img="' . esc_attr( $ult_heading_settings['icon_img'] ) . '" img_width="' . esc_attr( $ult_heading_settings['img_width'] ) . '" icon_size="' . esc_attr( $ult_heading_settings['icon_size'] ) . '" icon_color="' . esc_attr( $ult_heading_settings['icon_color'] ) . '" icon_style="' . esc_attr( $ult_heading_settings['icon_style'] ) . '" icon_color_bg="' . esc_attr( $ult_heading_settings['icon_color_bg'] ) . '" icon_color_border="' . esc_attr( $ult_heading_settings['icon_color_border'] ) . '" icon_border_style="' . esc_attr( $ult_heading_settings['icon_border_style'] ) . '" icon_border_size="' . esc_attr( $ult_heading_settings['icon_border_size'] ) . '" icon_border_radius="' . esc_attr( $ult_heading_settings['icon_border_radius'] ) . '" icon_border_spacing="' . esc_attr( $ult_heading_settings['icon_border_spacing'] ) . '" icon_animation="' . esc_attr( $icon_animation ) . '"]' ); } if ( 'line_with_icon' == $ult_heading_settings['spacer'] ) { $data = 'data-hline_width="' . esc_attr( $wrap_width ) . '" data-hicon_type="' . esc_attr( $ult_heading_settings['icon_type'] ) . '" data-hborder_style="' . esc_attr( $ult_heading_settings['line_style'] ) . '" data-hborder_height="' . esc_attr( $ult_heading_settings['line_height'] ) . '" data-hborder_color="' . esc_attr( $ult_heading_settings['line_color'] ) . '"'; if ( 'selector' == $ult_heading_settings['icon_type'] ) { $data .= ' data-icon_width="' . esc_attr( $ult_heading_settings['icon_size'] ) . '"'; } else { $data .= ' data-icon_width="' . esc_attr( $ult_heading_settings['img_width'] ) . '"'; } if ( '' != $ult_heading_settings['line_icon_fixer'] ) { $data .= ' data-hfixer="' . esc_attr( $ult_heading_settings['line_icon_fixer'] ) . '" '; } } else { $data = ''; } $micro = wp_rand( 0000, 9999 ); $id = uniqid( 'ultimate-heading-' . $micro ); $uid = 'uvc-' . wp_rand( 0000, 9999 ); // FIX: set old font size before implementing responsive param. if ( is_numeric( $ult_heading_settings['main_heading_font_size'] ) ) { $ult_heading_settings['main_heading_font_size'] = 'desktop:' . $ult_heading_settings['main_heading_font_size'] . 'px;'; } if ( is_numeric( $ult_heading_settings['main_heading_line_height'] ) ) { $ult_heading_settings['main_heading_line_height'] = 'desktop:' . $ult_heading_settings['main_heading_line_height'] . 'px;'; } // responsive {main} heading styles. $args = array( 'target' => '.uvc-heading.' . $id . ' ' . esc_attr( $ult_heading_settings['heading_tag'] ), 'media_sizes' => array( 'font-size' => $ult_heading_settings['main_heading_font_size'], 'line-height' => $ult_heading_settings['main_heading_line_height'], ), ); $main_heading_responsive = get_ultimate_vc_responsive_media_css( $args ); // FIX: set old font size before implementing responsive param. if ( is_numeric( $ult_heading_settings['sub_heading_font_size'] ) ) { $ult_heading_settings['sub_heading_font_size'] = 'desktop:' . $ult_heading_settings['sub_heading_font_size'] . 'px;'; } if ( is_numeric( $ult_heading_settings['sub_heading_line_height'] ) ) { $ult_heading_settings['sub_heading_line_height'] = 'desktop:' . $ult_heading_settings['sub_heading_line_height'] . 'px;'; } // responsive {sub} heading styles. $args = array( 'target' => '.uvc-heading.' . $id . ' .uvc-sub-heading ', 'media_sizes' => array( 'font-size' => $ult_heading_settings['sub_heading_font_size'], 'line-height' => $ult_heading_settings['sub_heading_line_height'], ), ); $sub_heading_responsive = get_ultimate_vc_responsive_media_css( $args ); $output = '<div id="' . esc_attr( $id ) . '" class="uvc-heading ' . esc_attr( $is_vc_49_plus ) . ' ' . esc_attr( $id ) . ' ' . esc_attr( $uid ) . ' ' . esc_attr( $ult_heading_settings['el_class'] ) . '" data-hspacer="' . esc_attr( $ult_heading_settings['spacer'] ) . '" ' . $data . ' data-halign="' . esc_attr( $ult_heading_settings['alignment'] ) . '" style="text-align:' . esc_attr( $ult_heading_settings['alignment'] ) . '">'; if ( 'top' == $ult_heading_settings['spacer_position'] ) { $output .= $this->ultimate_heading_spacer( $wrapper_class, $wrapper_style, $icon_inline ); } if ( '' != $ult_heading_settings['main_heading'] ) { $output .= '<div class="uvc-main-heading ult-responsive" ' . $main_heading_responsive . '><' . esc_attr( $ult_heading_settings['heading_tag'] ) . ' style="' . esc_attr( $main_heading_style_inline ) . '">' . $ult_heading_settings['main_heading'] . '</' . esc_attr( $ult_heading_settings['heading_tag'] ) . '></div>'; } if ( 'middle' == $ult_heading_settings['spacer_position'] ) { $output .= $this->ultimate_heading_spacer( $wrapper_class, $wrapper_style, $icon_inline ); } if ( '' != $content ) { $output .= '<div class="uvc-sub-heading ult-responsive" ' . $sub_heading_responsive . ' style="' . esc_attr( $sub_heading_style_inline ) . '">' . do_shortcode( $content ) . '</div>'; } if ( 'bottom' == $ult_heading_settings['spacer_position'] ) { $output .= $this->ultimate_heading_spacer( $wrapper_class, $wrapper_style, $icon_inline ); } $output .= '</div>'; $is_preset = false; // Display settings for Preset. if ( isset( $_GET['preset'] ) ) { // PHPCS:ignore:WordPress.Security.NonceVerification.Recommended $is_preset = true; } if ( $is_preset ) { $text = 'array ( '; foreach ( $atts as $key => $att ) { $text .= '<br/> \'' . $key . '\' => \'' . $att . '\','; } if ( '' != $content ) { $text .= '<br/> \'content\' => \'' . $content . '\','; } $text .= '<br/>)'; $output .= '<pre>'; $output .= $text; $output .= '</pre>'; } return $output; } /** * Render the spacer function for Ultimate Heading Module. * * @param string $wrapper_class get the class. * @param string $wrapper_style get the style. * @param string $icon_inline get the line style. * @access public */ public function ultimate_heading_spacer( $wrapper_class, $wrapper_style, $icon_inline ) { $ult_heading_settings['spacer'] = '<div class="uvc-heading-spacer ' . $wrapper_class . '" style="' . $wrapper_style . '">' . $icon_inline . '</div>'; return $ult_heading_settings['spacer']; } } // end class. new Ultimate_VC_Addons_Headings(); if ( class_exists( 'WPBakeryShortCode' ) && ! class_exists( 'WPBakeryShortCode_Ultimate_Heading' ) ) { /** * Function that checks if the class is exists or not. */ class WPBakeryShortCode_Ultimate_Heading extends WPBakeryShortCode { } } }