PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 3.06.06
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v3.06.06
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
← All changes | classes/helpers/FrmShortcodeHelper.php +17 -79 6.293.06.06 View file →
@@ -1,12 +1,9 @@
1 1 <?php
2 -if ( ! defined( 'ABSPATH' ) ) {
3 - die( 'You are not allowed to call this page directly.' );
4 -}
5 -
6 2 /**
7 3 * @since 2.02.12
8 4 */
5 +
9 6 class FrmShortcodeHelper {
10 7
11 8 /**
12 9 * Get the shortcode attributes in key/value pairs from a string
@@ -11,9 +8,8 @@
11 8 /**
12 9 * Get the shortcode attributes in key/value pairs from a string
13 10 *
14 11 * @since 2.02.12
15 - *
16 12 * @param string $text
17 13 *
18 14 * @return array
19 15 */
@@ -18,66 +14,17 @@
18 14 * @return array
19 15 */
20 16 public static function get_shortcode_attribute_array( $text ) {
21 17 $atts = array();
22 -
23 18 if ( $text !== '' ) {
24 19 $atts = shortcode_parse_atts( $text );
25 20 }
26 21
27 - return is_array( $atts ) ? $atts : array();
28 - }
29 -
30 - /**
31 - * Returns shortcodes that are shown/hidden based on the context.
32 - *
33 - * @since 6.16.3
34 - *
35 - * @return array
36 - */
37 - public static function get_contextual_shortcodes() {
38 - return array(
39 - 'address' => array(
40 - 'admin_email' => __( 'Admin email', 'formidable' ),
41 - 'default-from-email' => __( 'Default from email', 'formidable' ),
42 - 'default-email' => __( 'Default email', 'formidable' ),
43 - ),
44 - 'body' => array(
45 - 'default-message' => __( 'Default Msg', 'formidable' ),
46 - 'default-html' => __( 'Default HTML', 'formidable' ),
47 - 'default-plain' => __( 'Default Plain', 'formidable' ),
48 - ),
49 - );
50 - }
51 -
52 - /**
53 - * Get contextual shortcodes.
54 - *
55 - * @since 6.16.3
56 - *
57 - * @return array
58 - */
59 - public static function get_contextual_shortcode_values() {
60 - $contextual_shortcodes = self::get_contextual_shortcodes();
61 - return array_merge( $contextual_shortcodes['address'], $contextual_shortcodes['body'] );
62 - }
63 -
64 - /**
65 - * Get flattened format of contextual shortcodes.
66 - *
67 - * @since 6.16.3
68 - *
69 - * @return array
70 - */
71 - public static function get_contextual_codes() {
72 - $contextual_shortcodes = self::get_contextual_shortcodes();
73 - $result = array();
74 -
75 - foreach ( $contextual_shortcodes as $type => $shortcodes ) {
76 - $result[ $type ] = array_keys( $shortcodes );
22 + if ( ! is_array( $atts ) ) {
23 + $atts = array();
77 24 }
78 25
79 - return $result;
26 + return $atts;
80 27 }
81 28
82 29 /**
83 30 * Get the name of the shortcode from the regEx
@@ -82,11 +29,10 @@
82 29 /**
83 30 * Get the name of the shortcode from the regEx
84 31 *
85 32 * @since 3.0
86 - *
87 33 * @param array $shortcodes
88 - * @param int $short_key The position in the shortcodes array.
34 + * @param int $short_key The position in the shortcodes array
89 35 * @param array $args
90 36 *
91 37 * @return string
92 38 */
@@ -98,45 +44,37 @@
98 44 'conditional_check' => false,
99 45 'foreach' => false,
100 46 )
101 47 );
102 -
103 48 if ( ( $args['conditional'] || $args['foreach'] ) && ! $args['conditional_check'] ) {
104 49 $args['conditional_check'] = true;
105 50 }
106 51
107 52 $prefix = '';
108 -
109 53 if ( $args['conditional_check'] ) {
110 54 if ( $args['conditional'] ) {
111 55 $prefix = 'if ';
112 - } elseif ( $args['foreach'] ) {
56 + } else if ( $args['foreach'] ) {
113 57 $prefix = 'foreach ';
114 58 }
115 59 }
116 60
117 61 $with_tags = $args['conditional_check'] ? 3 : 2;
118 -
119 - if ( empty( $shortcodes[ $with_tags ][ $short_key ] ) ) {
120 - return $shortcodes[ $with_tags - 1 ][ $short_key ];
62 + if ( ! empty( $shortcodes[ $with_tags ][ $short_key ] ) ) {
63 + $tag = str_replace( '[' . $prefix, '', $shortcodes[0][ $short_key ] );
64 + $tag = str_replace( ']', '', $tag );
65 + $tag = str_replace( chr( 194 ) . chr( 160 ), ' ', $tag );
66 + $tags = preg_split( '/\s+/', $tag, 2 );
67 + if ( is_array( $tags ) ) {
68 + $tag = $tags[0];
69 + }
70 + } else {
71 + $tag = $shortcodes[ $with_tags - 1 ][ $short_key ];
121 72 }
122 73
123 - $tag = str_replace( '[' . $prefix, '', $shortcodes[0][ $short_key ] );
124 - $tag = str_replace( ']', '', $tag );
125 - $tag = str_replace( chr( 194 ) . chr( 160 ), ' ', $tag );
126 - $tags = preg_split( '/\s+/', $tag, 2 );
127 -
128 - return is_array( $tags ) ? $tags[0] : $tag;
74 + return $tag;
129 75 }
130 76
131 - /**
132 - * @param bool $no_vars
133 - * @param string $code
134 - * @param string $replace_with
135 - * @param string $html
136 - *
137 - * @return void
138 - */
139 77 public static function remove_inline_conditions( $no_vars, $code, $replace_with, &$html ) {
140 78 if ( $no_vars ) {
141 79 $html = str_replace( '[if ' . $code . ']', '', $html );
142 80 $html = str_replace( '[/if ' . $code . ']', '', $html );