?AlkantarClanX12

Your IP : 216.73.217.138


Current Path : /home/rankinh/saintgilleslesbains-bis/wp-content/plugins/lsvr-framework/
Upload File :
Current File : /home/rankinh/saintgilleslesbains-bis/wp-content/plugins/lsvr-framework/lsvr-framework.php

<?php
/**
 * Plugin Name: LSVR Framework
 * Description: Framework for LSVR themes and plugins
 * Version: 1.9.3
 * Author: LSVRthemes
 * Author URI: http://themeforest.net/user/LSVRthemes/portfolio
 * Text Domain: lsvr-framework
 * Domain Path: /languages
 * License: http://themeforest.net/licenses
 * License URI: http://themeforest.net/licenses
*/

// Include additional functions and classes
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
require_once( 'inc/core-functions.php' );
require_once( 'inc/blocks-config.php' );
require_once( 'inc/classes/lsvr-widget.php' );

if ( is_admin() ) {

	// Post Metaboxes
	require_once( 'inc/classes/lsvr-post-metabox.php' );
	require_once( 'inc/classes/lsvr-post-metafield.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-attachment.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-checkbox.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-date.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-datetime.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-external-attachment.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-gallery.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-opening-hours.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-radio.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-select.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-slider.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-separator.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-switch.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-taxonomy.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-taxonomy-assign.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-text.php' );
	require_once( 'inc/classes/post-metafields/lsvr-post-metafield-textarea.php' );

	// Taxonomy Metaboxes
	require_once( 'inc/classes/lsvr-tax-metabox.php' );
	require_once( 'inc/classes/lsvr-tax-metafield.php' );
	require_once( 'inc/classes/tax-metafields/lsvr-tax-metafield-image.php' );
	require_once( 'inc/classes/tax-metafields/lsvr-tax-metafield-select.php' );
	require_once( 'inc/classes/tax-metafields/lsvr-tax-metafield-text.php' );
	require_once( 'inc/classes/tax-metafields/lsvr-tax-metafield-textarea.php' );

	// Widget Fields
	require_once( 'inc/classes/lsvr-widget-field.php' );
	require_once( 'inc/classes/widget-fields/lsvr-widget-field-checkbox.php' );
	require_once( 'inc/classes/widget-fields/lsvr-widget-field-checkbox-list.php' );
	require_once( 'inc/classes/widget-fields/lsvr-widget-field-image.php' );
	require_once( 'inc/classes/widget-fields/lsvr-widget-field-info.php' );
	require_once( 'inc/classes/widget-fields/lsvr-widget-field-post.php' );
	require_once( 'inc/classes/widget-fields/lsvr-widget-field-select.php' );
	require_once( 'inc/classes/widget-fields/lsvr-widget-field-taxonomy.php' );
	require_once( 'inc/classes/widget-fields/lsvr-widget-field-text.php' );
	require_once( 'inc/classes/widget-fields/lsvr-widget-field-textarea.php' );

}

// Include Customizer controls
add_action( 'customize_register', 'lsvr_framework_customize_register' );
if ( ! function_exists( 'lsvr_framework_customize_register' ) ) {
  function lsvr_framework_customize_register( $wp_customize ) {
		require_once( 'inc/classes/lsvr-customizer.php' );
		require_once( 'inc/classes/customizer-controls/lsvr-customize-control-sidebars.php' );
		require_once( 'inc/classes/customizer-controls/lsvr-customize-control-info.php' );
		require_once( 'inc/classes/customizer-controls/lsvr-customize-control-multicheck.php' );
		require_once( 'inc/classes/customizer-controls/lsvr-customize-control-separator.php' );
		require_once( 'inc/classes/customizer-controls/lsvr-customize-control-slider.php' );
		require_once( 'inc/classes/customizer-controls/lsvr-customize-control-social-links.php' );
	}
}

// Load textdomain
add_action( 'init', 'lsvr_framework_load_textdomain', 0 );
if ( ! function_exists( 'lsvr_framework_load_textdomain' ) ) {
	function lsvr_framework_load_textdomain() {
		load_plugin_textdomain( 'lsvr-framework', false, plugin_basename( dirname( __FILE__ ) ) . '/languages/' );
	}
}

// Load admin CSS & JS
add_action( 'admin_enqueue_scripts', 'lsvr_framework_load_assets' );
if ( ! function_exists( 'lsvr_framework_load_assets' ) ) {
	function lsvr_framework_load_assets() {

		global $pagenow, $typenow;

		// Get plugin version
		$plugin_data = get_plugin_data( __FILE__ );
		$plugin_version = ! empty( $plugin_data['Version'] ) ? $plugin_data['Version'] : false;

		// Load resources for post metaboxes
		if ( 'post.php' === $pagenow || 'post-new.php' === $pagenow ) {

			// Required libraries
			wp_enqueue_media();
			wp_enqueue_script( 'jquery-ui-datepicker' );
			wp_enqueue_script( 'jquery-ui-slider' );
			wp_enqueue_script( 'jquery-ui-sortable' );

			// Metaboxes admin styles
			wp_enqueue_style(
				'lsvr-framework-metaboxes-styles',
				plugin_dir_url( __FILE__ ) . 'assets/css/lsvr-framework-metaboxes.admin.css',
				false,
				$plugin_version
			);

			// Metaboxes admin scripts
			wp_enqueue_script(
				'lsvr-framework-metaboxes-scripts',
				plugin_dir_url( __FILE__ ) . 'assets/js/lsvr-framework-metaboxes.admin.js',
				array( 'jquery' ),
				$plugin_version
			);

			// RTL version
			if ( is_rtl() ) {
			    wp_enqueue_style(
					'lsvr-framework-metaboxes-rtl-styles',
					plugin_dir_url( __FILE__ ) . 'assets/css/lsvr-framework-metaboxes.admin.rtl.css',
					false,
					$plugin_version
				);
			}

  		}

  		// Load resources for widgets
  		elseif ( 'widgets.php' === $pagenow ) {

  			wp_enqueue_media();
			wp_enqueue_script( 'media-widgets' );

			// Widget admin styles
			wp_enqueue_style(
				'lsvr-framework-widgets-styles',
				plugin_dir_url( __FILE__ ) . 'assets/css/lsvr-framework-widgets.admin.css',
				false,
				$plugin_version
			);

			// Widget admin scripts
			wp_enqueue_script(
				'lsvr-framework-widgets-scripts',
				plugin_dir_url( __FILE__ ) . 'assets/js/lsvr-framework-widgets.admin.js',
				array( 'jquery' ),
				$plugin_version
			);

		}

  		// Load resources for taxonomies
  		/*elseif ( 'edit-tags.php' === $pagenow || 'term.php' === $pagenow ) {

  			wp_enqueue_media();

  			// Taxonomy admin scripts
  			wp_enqueue_script(
  				'lsvr-framework-taxonomy-scripts',
  				plugin_dir_url( __FILE__ ) . 'assets/js/lsvr-framework-taxonomies.admin.js',
  				array( 'jquery' ),
  				$plugin_version
			);

  		}*/

	}
}

// Load Customizer CSS & JS
add_action( 'customize_controls_enqueue_scripts', 'lsvr_framework_load_customizer_assets' );
if ( ! function_exists( 'lsvr_framework_load_customizer_assets' ) ) {
	function lsvr_framework_load_customizer_assets() {

		// Get plugin version
		$plugin_data = get_plugin_data( __FILE__ );
		$plugin_version = ! empty( $plugin_data['Version'] ) ? $plugin_data['Version'] : false;

		// Required libraries
		wp_enqueue_style( 'wp-color-picker' );
		wp_enqueue_script( 'jquery-ui-slider' );
		wp_enqueue_script( 'jquery-ui-sortable' );

		// Customizer admin styles
		wp_enqueue_style(
			'lsvr-framework-customizer-styles',
			plugin_dir_url( __FILE__ ) . 'assets/css/lsvr-framework-customizer-controls.css',
			false,
			$plugin_version
		);

		// Customizer admin scripts
		wp_enqueue_script(
			'lsvr-framework-customizer-scripts',
			plugin_dir_url( __FILE__ ) . 'assets/js/lsvr-framework-customizer-controls.js',
			array( 'jquery', 'customize-controls' ),
			$plugin_version
		);

		// RTL version
		if ( is_rtl() ) {
			wp_enqueue_style(
				'lsvr-framework-customizer-rtl-styles',
				plugin_dir_url( __FILE__ ) . 'assets/css/lsvr-framework-customizer-controls.rtl.css',
				false,
				$plugin_version
			);
		}

	}
}

// Load Gutenberg CSS & JS
add_action( 'enqueue_block_editor_assets', 'lsvr_framework_load_block_editor_assets' );
if ( ! function_exists( 'lsvr_framework_load_block_editor_assets' ) ) {
	function lsvr_framework_load_block_editor_assets() {

		// Get plugin version
		$plugin_data = get_plugin_data( __FILE__ );
		$plugin_version = ! empty( $plugin_data['Version'] ) ? $plugin_data['Version'] : false;

		// Editor style
		wp_enqueue_style(
			'lsvr-framework-editor-style',
			plugin_dir_url( __FILE__ ) . 'assets/css/lsvr-framework-editor.admin.css',
			false,
			$plugin_version
		);

		// Editor RTL style
		if ( is_rtl() ) {
			wp_enqueue_style(
				'lsvr-framework-editor-rtl-style',
				plugin_dir_url( __FILE__ ) . 'assets/css/lsvr-framework-editor.admin.rtl.css',
				false,
				$plugin_version
			);
		}

		// Shortcode blocks assets
		if ( ! empty( apply_filters( 'lsvr_framework_register_shortcode_blocks_json', '' ) ) ) {

			// Generate dynamic shortcode blocks JSON
			if ( true === apply_filters( 'lsvr_framework_register_dynamic_shortcode_blocks', true ) ) {
				wp_add_inline_script( 'wp-blocks',
					'var lsvrDynamicShortcodeBlocks = ' . json_encode( apply_filters( 'lsvr_framework_register_shortcode_blocks_json', '' ) ) );
			}

			// Generate static shortcode blocks JSON
			else {
				wp_add_inline_script( 'wp-blocks',
					'var lsvrStaticShortcodeBlocks = ' . json_encode( apply_filters( 'lsvr_framework_register_shortcode_blocks_json', '' ) ) );
			}

			// Main shortcode blocks scripts
			wp_enqueue_script(
				'lsvr-framework-shortcode-blocks-scripts',
				plugin_dir_url( __FILE__ ) . 'assets/js/lsvr-framework-shortcode-blocks.admin.js',
				array( 'jquery', 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-components', 'wp-editor' ),
				$plugin_version
			);
			wp_localize_script( 'lsvr-framework-shortcode-blocks-scripts', 'lsvr_framework_shortcode_blocks_ajax_var', array(
	    		'url' => admin_url( 'admin-ajax.php' ),
	    		'nonce' => wp_create_nonce( 'lsvr-framework-shortcode-blocks-ajax-nonce' )
			));

		}

	}
}

// Shortcode blocks AJAX
add_action( 'wp_ajax_nopriv_lsvr-framework-shortcode-blocks-ajax', 'lsvr_framework_shortcode_blocks_ajax' );
add_action( 'wp_ajax_lsvr-framework-shortcode-blocks-ajax', 'lsvr_framework_shortcode_blocks_ajax' );
if ( ! function_exists( 'lsvr_framework_shortcode_blocks_ajax' ) ) {
	function lsvr_framework_shortcode_blocks_ajax() {

		$nonce = $_POST['nonce'];
		if ( ! wp_verify_nonce( $nonce, 'lsvr-framework-shortcode-blocks-ajax-nonce' ) ) {
			die ( esc_html__( 'You do not have permission for this action.', 'lsvr-framework' ) );
		}

		if ( isset( $_POST['tag'] ) ) {

			$shortcode_tag = $_POST['tag'];

			// Remove non-shortcode params
			unset( $_POST['nonce'] );
			unset( $_POST['action'] );
			unset( $_POST['tag'] );

			// Generate shortcode
			$attributes = '';
			foreach ( $_POST as $param => $value ) {

				// Check if field contains shortcode
				if ( ! empty( $value ) && is_string( $value ) && '[' === $value[0] && ']' === substr( $value, -1 ) ) {
					$value = str_replace( array( '[', ']' ), array( 'SHORTCODE_START', 'SHORTCODE_END' ), $value );
				}

				$attributes .= $param . '="' . htmlentities( $value ) . '" ';

			}

			// Call shortcode
			echo html_entity_decode( do_shortcode( '[' . $shortcode_tag . ' ' . $attributes . ' editor_view="true"]' ) );

		}

		wp_die();
	}
}

// Remove wrapping paragraphs
add_filter( 'the_content', 'lsvr_framework_remove_wpautop' );
if ( ! function_exists( 'lsvr_framework_remove_wpautop' ) ) {
	function lsvr_framework_remove_wpautop( $content ) {

		// Remove wrapping paragraphs from shortcode tags
	    $pattern = array(
	        '<p>[lsvr_' => '[lsvr_',
	        ']</p>' => ']',
	        ']<br />' => ']',
	    );

	    return strtr( $content, $pattern );

	}
}

?>