Current File : /home/pacjaorg/wpt.pacja.org/wp-content/plugins/formidable/classes/helpers/FrmShortcodeHelper.php |
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( 'You are not allowed to call this page directly.' );
}
/**
* @since 2.02.12
*/
class FrmShortcodeHelper {
/**
* Get the shortcode attributes in key/value pairs from a string
*
* @since 2.02.12
*
* @param string $text
*
* @return array
*/
public static function get_shortcode_attribute_array( $text ) {
$atts = array();
if ( $text !== '' ) {
$atts = shortcode_parse_atts( $text );
}
if ( ! is_array( $atts ) ) {
$atts = array();
}
return $atts;
}
/**
* Get the name of the shortcode from the regEx
*
* @since 3.0
*
* @param array $shortcodes
* @param int $short_key The position in the shortcodes array.
* @param array $args
*
* @return string
*/
public static function get_shortcode_tag( $shortcodes, $short_key, $args = array() ) {
$args = wp_parse_args(
$args,
array(
'conditional' => false,
'conditional_check' => false,
'foreach' => false,
)
);
if ( ( $args['conditional'] || $args['foreach'] ) && ! $args['conditional_check'] ) {
$args['conditional_check'] = true;
}
$prefix = '';
if ( $args['conditional_check'] ) {
if ( $args['conditional'] ) {
$prefix = 'if ';
} elseif ( $args['foreach'] ) {
$prefix = 'foreach ';
}
}
$with_tags = $args['conditional_check'] ? 3 : 2;
if ( ! empty( $shortcodes[ $with_tags ][ $short_key ] ) ) {
$tag = str_replace( '[' . $prefix, '', $shortcodes[0][ $short_key ] );
$tag = str_replace( ']', '', $tag );
$tag = str_replace( chr( 194 ) . chr( 160 ), ' ', $tag );
$tags = preg_split( '/\s+/', $tag, 2 );
if ( is_array( $tags ) ) {
$tag = $tags[0];
}
} else {
$tag = $shortcodes[ $with_tags - 1 ][ $short_key ];
}
return $tag;
}
public static function remove_inline_conditions( $no_vars, $code, $replace_with, &$html ) {
if ( $no_vars ) {
$html = str_replace( '[if ' . $code . ']', '', $html );
$html = str_replace( '[/if ' . $code . ']', '', $html );
} else {
$html = preg_replace( '/(\[if\s+' . $code . '\])(.*?)(\[\/if\s+' . $code . '\])/mis', '', $html );
}
$html = str_replace( '[' . $code . ']', $replace_with, $html );
}
}