Path : /home/vishqocm/vjmedia.in/wp-content/plugins/trx_utils/shortcodes/
File Upload :
Current File : /home/vishqocm/vjmedia.in/wp-content/plugins/trx_utils/shortcodes/shortcodes_vc.php

<?php
if (is_admin() 
		|| (isset($_GET['vc_editable']) && $_GET['vc_editable']=='true' )
		|| (isset($_GET['vc_action']) && $_GET['vc_action']=='vc_inline')
	) {
    require_once trx_utils_get_file_dir('shortcodes/shortcodes_vc_classes.php');
}

// Width and height params
if ( !function_exists( 'citygov_vc_width' ) ) {
	function citygov_vc_width($w='') {
		return array(
			"param_name" => "width",
			"heading" => esc_html__("Width", "citygov"),
			"description" => wp_kses_data( esc_html__("Width of the element", "citygov") ),
			"group" => esc_html__('Size &amp; Margins', 'citygov'),
			"value" => $w,
			"type" => "textfield"
		);
	}
}
if ( !function_exists( 'citygov_vc_height' ) ) {
	function citygov_vc_height($h='') {
		return array(
			"param_name" => "height",
			"heading" => esc_html__("Height", "citygov"),
			"description" => wp_kses_data( esc_html__("Height of the element", "citygov") ),
			"group" => esc_html__('Size &amp; Margins', 'citygov'),
			"value" => $h,
			"type" => "textfield"
		);
	}
}

// Load scripts and styles for VC support
if ( !function_exists( 'citygov_shortcodes_vc_scripts_admin' ) ) {
	//add_action( 'admin_enqueue_scripts', 'citygov_shortcodes_vc_scripts_admin' );
	function citygov_shortcodes_vc_scripts_admin() {
		// Include CSS 
		wp_enqueue_style ( 'shortcodes_vc_admin-style', trx_utils_get_file_url('shortcodes/theme.shortcodes_vc_admin.css'), array(), null );
		// Include JS
		wp_enqueue_script( 'shortcodes_vc_admin-script', trx_utils_get_file_url('shortcodes/shortcodes_vc_admin.js'), array('jquery'), null, true );
	}
}

// Load scripts and styles for VC support
if ( !function_exists( 'citygov_shortcodes_vc_scripts_front' ) ) {
	//add_action( 'wp_enqueue_scripts', 'citygov_shortcodes_vc_scripts_front' );
	function citygov_shortcodes_vc_scripts_front() {
		if (citygov_vc_is_frontend()) {
			// Include CSS 
			wp_enqueue_style ( 'shortcodes_vc_front-style', trx_utils_get_file_url('shortcodes/theme.shortcodes_vc_front.css'), array(), null );
			// Include JS
			wp_enqueue_script( 'shortcodes_vc_front-script', trx_utils_get_file_url('shortcodes/shortcodes_vc_front.js'), array('jquery'), null, true );
			wp_enqueue_script( 'shortcodes_vc_theme-script', trx_utils_get_file_url('shortcodes/theme.shortcodes_vc_front.js'), array('jquery'), null, true );
		}
	}
}

// Add init script into shortcodes output in VC frontend editor
if ( !function_exists( 'citygov_shortcodes_vc_add_init_script' ) ) {
	//add_filter('citygov_shortcode_output', 'citygov_shortcodes_vc_add_init_script', 10, 4);
	function citygov_shortcodes_vc_add_init_script($output, $tag='', $atts=array(), $content='') {
		if ( (isset($_GET['vc_editable']) && $_GET['vc_editable']=='true') && (isset($_POST['action']) && $_POST['action']=='vc_load_shortcode')
				&& ( isset($_POST['shortcodes'][0]['tag']) && $_POST['shortcodes'][0]['tag']==$tag )
		) {
			if (citygov_strpos($output, 'citygov_vc_init_shortcodes')===false) {
				$id = "citygov_vc_init_shortcodes_".str_replace('.', '', mt_rand());
				$output .= '
					<script id="'.esc_attr($id).'">
						try {
							citygov_init_post_formats();
							citygov_init_shortcodes(jQuery("body").eq(0));
							citygov_scroll_actions();
						} catch (e) { };
					</script>
				';
			}
		}
		return $output;
	}
}

// Return vc_param value
if ( !function_exists( 'citygov_get_vc_param' ) ) {
	function citygov_get_vc_param($prm) {
		return citygov_storage_get_array('vc_params', $prm);
	}
}

// Set vc_param value
if ( !function_exists( 'citygov_set_vc_param' ) ) {
	function citygov_set_vc_param($prm, $val) {
		citygov_storage_set_array('vc_params', $prm, $val);
	}
}


/* Theme setup section
-------------------------------------------------------------------- */

if ( !function_exists( 'citygov_shortcodes_vc_theme_setup' ) ) {
	//if ( citygov_vc_is_frontend() )
	if ( (isset($_GET['vc_editable']) && $_GET['vc_editable']=='true') || (isset($_GET['vc_action']) && $_GET['vc_action']=='vc_inline') )
		add_action( 'citygov_action_before_init_theme', 'citygov_shortcodes_vc_theme_setup', 20 );
	else
		add_action( 'citygov_action_after_init_theme', 'citygov_shortcodes_vc_theme_setup' );
	function citygov_shortcodes_vc_theme_setup() {

        // Set dir with theme specific VC shortcodes
        if ( function_exists( 'vc_set_shortcodes_templates_dir' ) ) {
            vc_set_shortcodes_templates_dir( trx_utils_get_folder_dir('shortcodes/vc' ) );
        }

        // Add color scheme
            $scheme = array(
					"param_name" => "scheme",
					"heading" => esc_html__("Color scheme", "citygov"),
					"description" => wp_kses_data( esc_html__("Select color scheme for this block", "citygov") ),
					"group" => esc_html__('Color scheme', 'citygov'),
					"class" => "",
					"value" => array_flip(citygov_get_list_color_schemes(true)),
					"type" => "dropdown"
		    );
        vc_add_param("vc_row", $scheme);
        vc_add_param("vc_row_inner", $scheme);
        vc_add_param("vc_column", $scheme);
        vc_add_param("vc_column_inner", $scheme);
        vc_add_param("vc_column_text", $scheme);

        // Add param 'inverse'
        vc_add_param("vc_row", array(
            "param_name" => "inverse",
            "heading" => esc_html__("Inverse colors", "citygov"),
            "type" => "checkbox"
        ));

        // Add custom params to the VC shortcodes
        add_filter( VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'citygov_shortcodes_vc_add_params_classes', 10, 3 );

		if (citygov_shortcodes_is_used()) {

			// Set VC as main editor for the theme
			vc_set_as_theme( true );
			
			// Enable VC on follow post types
			vc_set_default_editor_post_types( array('page', 'team') );
			
			// Disable frontend editor
			//vc_disable_frontend();

			// Load scripts and styles for VC support
			add_action( 'wp_enqueue_scripts',		'citygov_shortcodes_vc_scripts_front');
			add_action( 'admin_enqueue_scripts',	'citygov_shortcodes_vc_scripts_admin' );

			// Add init script into shortcodes output in VC frontend editor
			add_filter('citygov_shortcode_output', 'citygov_shortcodes_vc_add_init_script', 10, 4);

			// Remove standard VC shortcodes
			vc_remove_element("vc_button");
			vc_remove_element("vc_posts_slider");
			vc_remove_element("vc_gmaps");
			vc_remove_element("vc_teaser_grid");
			vc_remove_element("vc_progress_bar");
//			vc_remove_element("vc_facebook");
//			vc_remove_element("vc_tweetmeme");
//			vc_remove_element("vc_googleplus");
//			vc_remove_element("vc_facebook");
//			vc_remove_element("vc_pinterest");
			vc_remove_element("vc_message");
			vc_remove_element("vc_posts_grid");
//			vc_remove_element("vc_carousel");
//			vc_remove_element("vc_flickr");
			vc_remove_element("vc_tour");
//			vc_remove_element("vc_separator");
//			vc_remove_element("vc_single_image");
			vc_remove_element("vc_cta_button");
//			vc_remove_element("vc_accordion");
//			vc_remove_element("vc_accordion_tab");
			vc_remove_element("vc_toggle");
			vc_remove_element("vc_tabs");
			vc_remove_element("vc_tab");
//			vc_remove_element("vc_images_carousel");
			
			// Remove standard WP widgets
			vc_remove_element("vc_wp_archives");
			vc_remove_element("vc_wp_calendar");
			vc_remove_element("vc_wp_categories");
			vc_remove_element("vc_wp_custommenu");
			vc_remove_element("vc_wp_links");
			vc_remove_element("vc_wp_meta");
			vc_remove_element("vc_wp_pages");
			vc_remove_element("vc_wp_posts");
			vc_remove_element("vc_wp_recentcomments");
			vc_remove_element("vc_wp_rss");
			vc_remove_element("vc_wp_search");
			vc_remove_element("vc_wp_tagcloud");
			vc_remove_element("vc_wp_text");
			
			
			citygov_storage_set('vc_params', array(
				
				// Common arrays and strings
				'category' => esc_html__("CityGov shortcodes", "citygov"),
			
				// Current element id
				'id' => array(
					"param_name" => "id",
					"heading" => esc_html__("Element ID", "citygov"),
					"description" => wp_kses_data( esc_html__("ID for the element", "citygov") ),
					"group" => esc_html__('ID &amp; Class', 'citygov'),
					"value" => "",
					"type" => "textfield"
				),
			
				// Current element class
				'class' => array(
					"param_name" => "class",
					"heading" => esc_html__("Element CSS class", "citygov"),
					"description" => wp_kses_data( esc_html__("CSS class for the element", "citygov") ),
					"group" => esc_html__('ID &amp; Class', 'citygov'),
					"value" => "",
					"type" => "textfield"
				),

				// Current element animation
				'animation' => array(
					"param_name" => "animation",
					"heading" => esc_html__("Animation", "citygov"),
					"description" => wp_kses_data( esc_html__("Select animation while object enter in the visible area of page", "citygov") ),
					"group" => esc_html__('ID &amp; Class', 'citygov'),
					"class" => "",
					"value" => array_flip(citygov_get_sc_param('animations')),
					"type" => "dropdown"
				),
			
				// Current element style
				'css' => array(
					"param_name" => "css",
					"heading" => esc_html__("CSS styles", "citygov"),
					"description" => wp_kses_data( esc_html__("Any additional CSS rules (if need)", "citygov") ),
					"group" => esc_html__('ID &amp; Class', 'citygov'),
					"class" => "",
					"value" => "",
					"type" => "textfield"
				),
			
				// Margins params
				'margin_top' => array(
					"param_name" => "top",
					"heading" => esc_html__("Top margin", "citygov"),
					"description" => wp_kses_data( esc_html__("Margin above this shortcode", "citygov") ),
					"group" => esc_html__('Size &amp; Margins', 'citygov'),
					"std" => "inherit",
					"value" => array_flip(citygov_get_sc_param('margins')),
					"type" => "dropdown"
				),
			
				'margin_bottom' => array(
					"param_name" => "bottom",
					"heading" => esc_html__("Bottom margin", "citygov"),
					"description" => wp_kses_data( esc_html__("Margin below this shortcode", "citygov") ),
					"group" => esc_html__('Size &amp; Margins', 'citygov'),
					"std" => "inherit",
					"value" => array_flip(citygov_get_sc_param('margins')),
					"type" => "dropdown"
				),
			
				'margin_left' => array(
					"param_name" => "left",
					"heading" => esc_html__("Left margin", "citygov"),
					"description" => wp_kses_data( esc_html__("Margin on the left side of this shortcode", "citygov") ),
					"group" => esc_html__('Size &amp; Margins', 'citygov'),
					"std" => "inherit",
					"value" => array_flip(citygov_get_sc_param('margins')),
					"type" => "dropdown"
				),
				
				'margin_right' => array(
					"param_name" => "right",
					"heading" => esc_html__("Right margin", "citygov"),
					"description" => wp_kses_data( esc_html__("Margin on the right side of this shortcode", "citygov") ),
					"group" => esc_html__('Size &amp; Margins', 'citygov'),
					"std" => "inherit",
					"value" => array_flip(citygov_get_sc_param('margins')),
					"type" => "dropdown"
				)
			) );
			
			// Add theme-specific shortcodes
			do_action('citygov_action_shortcodes_list_vc');

		}
	}
}

// Add params in the standard VC shortcodes
if ( !function_exists( 'citygov_shortcodes_vc_add_params_classes' ) ) {
    	//Handler of the add_filter( VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG,				'citygov_shortcodes_vc_add_params_classes', 10, 3 );
    	function citygov_shortcodes_vc_add_params_classes($classes, $sc, $atts) {
        		if (in_array($sc, array('vc_row', 'vc_row_inner', 'vc_column', 'vc_column_inner', 'vc_column_text'))) {
            			if (!empty($atts['scheme']) && !citygov_param_is_off($atts['scheme']) && !citygov_param_is_inherit($atts['scheme']))
                				$classes .= ($classes ? ' ' : '') . 'scheme_' . $atts['scheme'];
		}
		if (in_array($sc, array('vc_row'))) {
            			if (!empty($atts['inverse']) && !citygov_param_is_off($atts['inverse']))
                				$classes .= ($classes ? ' ' : '') . 'inverse_colors';
		}
		return $classes;
	}
}

// Prevent simultaneous editing of posts for Gutenberg and other PageBuilders (VC, Elementor)
if ( ! function_exists( 'trx_utils_gutenberg_disable_cpt' ) ) {
    add_action( 'current_screen', 'trx_utils_gutenberg_disable_cpt' );
    function trx_utils_gutenberg_disable_cpt() {
        $safe_pb = array('vc');
        if ( !empty($safe_pb) && function_exists( 'the_gutenberg_project' ) && function_exists( 'register_block_type' ) ) {
            $current_post_type = get_current_screen()->post_type;
            $disable = false;
            if ( !$disable && in_array('vc', $safe_pb) && function_exists('vc_editor_post_types') ) {
                $post_types = vc_editor_post_types();
                $disable = is_array($post_types) && in_array($current_post_type, $post_types);
            }
            if ( $disable ) {
                remove_filter( 'replace_editor', 'gutenberg_init' );
                remove_action( 'load-post.php', 'gutenberg_intercept_edit_post' );
                remove_action( 'load-post-new.php', 'gutenberg_intercept_post_new' );
                remove_action( 'admin_init', 'gutenberg_add_edit_link_filters' );
                remove_filter( 'admin_url', 'gutenberg_modify_add_new_button_url' );
                remove_action( 'admin_print_scripts-edit.php', 'gutenberg_replace_default_add_new_button' );
                remove_action( 'admin_enqueue_scripts', 'gutenberg_editor_scripts_and_styles' );
                remove_filter( 'screen_options_show_screen', '__return_false' );
            }
        }
    }
}

?>