Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/includes/builder
File: class-et-builder-element.php
"{$base_name}_video_webm",
[9000] Fix | Delete
"{$base_name}_video_width",
[9001] Fix | Delete
"{$base_name}_video_height",
[9002] Fix | Delete
),
[9003] Fix | Delete
'computed_minimum' => array(
[9004] Fix | Delete
"{$base_name}_video_mp4",
[9005] Fix | Delete
"{$base_name}_video_webm",
[9006] Fix | Delete
),
[9007] Fix | Delete
'computed_variables' => array(
[9008] Fix | Delete
'base_name' => $base_name,
[9009] Fix | Delete
),
[9010] Fix | Delete
'mobile_options' => true,
[9011] Fix | Delete
'hover' => 'tabs',
[9012] Fix | Delete
);
[9013] Fix | Delete
}
[9014] Fix | Delete
[9015] Fix | Delete
foreach ( $options as $option_name => &$option ) {
[9016] Fix | Delete
$option['context'] = null == $context ? $base_name : $context;
[9017] Fix | Delete
}
[9018] Fix | Delete
[9019] Fix | Delete
return $options;
[9020] Fix | Delete
}
[9021] Fix | Delete
[9022] Fix | Delete
/**
[9023] Fix | Delete
* Get string of background fields UI. Used in place of background_color fields UI
[9024] Fix | Delete
*
[9025] Fix | Delete
* @param array list of all module fields
[9026] Fix | Delete
*
[9027] Fix | Delete
* @return string background fields UI
[9028] Fix | Delete
*/
[9029] Fix | Delete
function wrap_settings_background_fields( $all_fields, $base_name = 'background' ) {
[9030] Fix | Delete
$tab_structure = $this->get_background_fields_structure( $base_name );
[9031] Fix | Delete
$tab_names = array_keys( $tab_structure );
[9032] Fix | Delete
$background_fields = $this->get_background_fields( $all_fields, $base_name );
[9033] Fix | Delete
[9034] Fix | Delete
// Concatenate background fields UI
[9035] Fix | Delete
$background = '';
[9036] Fix | Delete
[9037] Fix | Delete
// Label
[9038] Fix | Delete
$background .= sprintf(
[9039] Fix | Delete
'<label for="et_pb_background">%1$s</label>',
[9040] Fix | Delete
esc_html__( 'Background:', 'et_builder' )
[9041] Fix | Delete
);
[9042] Fix | Delete
[9043] Fix | Delete
// Field wrapper
[9044] Fix | Delete
$background .= sprintf(
[9045] Fix | Delete
'<div class="et-pb-option-container et-pb-option-container-inner et-pb-option-container--background" data-base_name="%s">',
[9046] Fix | Delete
esc_attr( $base_name )
[9047] Fix | Delete
);
[9048] Fix | Delete
[9049] Fix | Delete
$tab_names_processed = array();
[9050] Fix | Delete
[9051] Fix | Delete
foreach ( $tab_names as $tab_nav_name ) {
[9052] Fix | Delete
if ( ! empty( $background_fields[ $tab_nav_name ] ) ) {
[9053] Fix | Delete
$tab_names_processed[] = sanitize_text_field( $tab_nav_name );
[9054] Fix | Delete
}
[9055] Fix | Delete
}
[9056] Fix | Delete
[9057] Fix | Delete
// Apply background UI if the module has more than one backgroundFields to avoid 3rd party module's field which uses `background_color` field and incorrectly rendered as background UI
[9058] Fix | Delete
if ( count( $tab_names_processed ) < 2 ) {
[9059] Fix | Delete
return '';
[9060] Fix | Delete
}
[9061] Fix | Delete
[9062] Fix | Delete
// Tab Nav
[9063] Fix | Delete
$background .= sprintf( '<%%= window.et_builder.options_template_output("background_tabs_nav",%1$s) %%>', wp_json_encode( $tab_names_processed ) );
[9064] Fix | Delete
[9065] Fix | Delete
// Tabs
[9066] Fix | Delete
foreach ( $tab_names as $tab_name ) {
[9067] Fix | Delete
$background .= sprintf(
[9068] Fix | Delete
'<div class="et_pb_background-tab et_pb_background-tab--%1$s" data-tab="%1$s">',
[9069] Fix | Delete
esc_attr( $tab_name )
[9070] Fix | Delete
);
[9071] Fix | Delete
[9072] Fix | Delete
// Get tab's fields
[9073] Fix | Delete
$tab_fields = $background_fields[ $tab_name ];
[9074] Fix | Delete
[9075] Fix | Delete
// Render gradient tab's preview
[9076] Fix | Delete
if ( 'gradient' === $tab_name ) {
[9077] Fix | Delete
$background .= '<%= window.et_builder.options_template_output("background_gradient_buttons") %>';
[9078] Fix | Delete
}
[9079] Fix | Delete
[9080] Fix | Delete
// Tab's fields
[9081] Fix | Delete
foreach ( $tab_fields as $tab_field_name => $tab_field ) {
[9082] Fix | Delete
[9083] Fix | Delete
if ( 'skip' === $tab_field['type'] ) {
[9084] Fix | Delete
continue;
[9085] Fix | Delete
}
[9086] Fix | Delete
[9087] Fix | Delete
$preview_class = '';
[9088] Fix | Delete
[9089] Fix | Delete
// Append field name
[9090] Fix | Delete
$tab_field['name'] = $tab_field_name;
[9091] Fix | Delete
[9092] Fix | Delete
// Append preview class name
[9093] Fix | Delete
if ( in_array( $tab_field['name'], array( "{$base_name}_color", "{$base_name}_image", "{$base_name}_url", "{$base_name}_video_mp4", "{$base_name}_video_webm" ) ) ) {
[9094] Fix | Delete
$tab_field['has_preview'] = true;
[9095] Fix | Delete
$preview_class = ' et-pb-option--has-preview';
[9096] Fix | Delete
}
[9097] Fix | Delete
[9098] Fix | Delete
// Prepare field list attribute
[9099] Fix | Delete
$depends = false;
[9100] Fix | Delete
$depends_attr = '';
[9101] Fix | Delete
if ( isset( $tab_field['depends_show_if'] ) || isset( $tab_field['depends_show_if_not'] ) ) {
[9102] Fix | Delete
$depends = true;
[9103] Fix | Delete
if ( isset( $tab_field['depends_show_if_not'] ) ) {
[9104] Fix | Delete
$depends_show_if_not = is_array( $tab_field['depends_show_if_not'] ) ? implode( ',', $tab_field['depends_show_if_not'] ) : $tab_field['depends_show_if_not'];
[9105] Fix | Delete
[9106] Fix | Delete
$depends_attr = sprintf( ' data-depends_show_if_not="%s"', esc_attr( $depends_show_if_not ) );
[9107] Fix | Delete
} else {
[9108] Fix | Delete
$depends_attr = sprintf( ' data-depends_show_if="%s"', esc_attr( $tab_field['depends_show_if'] ) );
[9109] Fix | Delete
}
[9110] Fix | Delete
}
[9111] Fix | Delete
[9112] Fix | Delete
// Append fields UI
[9113] Fix | Delete
$background .= sprintf(
[9114] Fix | Delete
'<div class="et_pb_background-option et_pb_background-option--%1$s et_pb_background-template--%6$s %5$s et-pb-option--%1$s%2$s"%3$s data-option_name="%4$s">',
[9115] Fix | Delete
esc_attr( $tab_field_name ),
[9116] Fix | Delete
esc_attr( $preview_class ),
[9117] Fix | Delete
$depends_attr,
[9118] Fix | Delete
esc_attr( $tab_field['name'] ),
[9119] Fix | Delete
$tab_field['name'] === "{$base_name}_color" && 'background' !== $base_name ? 'et-pb-option-main' : 'et-pb-option',
[9120] Fix | Delete
isset( $tab_field['field_template'] ) ? esc_attr( $tab_field['field_template'] ) : ''
[9121] Fix | Delete
);
[9122] Fix | Delete
[9123] Fix | Delete
// This adds a CSS class based on whether it is `true` or `false`
[9124] Fix | Delete
$this->is_background = true;
[9125] Fix | Delete
$background .= $this->wrap_settings_option_label( $tab_field );
[9126] Fix | Delete
$background .= $this->wrap_settings_option_field( $tab_field );
[9127] Fix | Delete
$this->is_background = false;
[9128] Fix | Delete
$background .= '</div>';
[9129] Fix | Delete
}
[9130] Fix | Delete
[9131] Fix | Delete
$background .= '</div>';
[9132] Fix | Delete
}
[9133] Fix | Delete
[9134] Fix | Delete
// End of field wrapper
[9135] Fix | Delete
$background .= '</div>';
[9136] Fix | Delete
[9137] Fix | Delete
return $background;
[9138] Fix | Delete
}
[9139] Fix | Delete
[9140] Fix | Delete
function get_field_name( $field ) {
[9141] Fix | Delete
$prefix = 'et_pb_';
[9142] Fix | Delete
[9143] Fix | Delete
// Option template convert array field into string id; return early to prevent error
[9144] Fix | Delete
if ( is_string( $field ) ) {
[9145] Fix | Delete
return $prefix . 'option_template_' . $field;
[9146] Fix | Delete
}
[9147] Fix | Delete
[9148] Fix | Delete
// Don't add 'et_pb_' prefix to the "Admin Label" field.
[9149] Fix | Delete
if ( 'admin_label' === $field['name'] ) {
[9150] Fix | Delete
return $field['name'];
[9151] Fix | Delete
}
[9152] Fix | Delete
[9153] Fix | Delete
// Make sure the prefix is not doubled.
[9154] Fix | Delete
if ( strpos( $field['name'], $prefix ) === 0 ) {
[9155] Fix | Delete
return $field['name'];
[9156] Fix | Delete
}
[9157] Fix | Delete
[9158] Fix | Delete
return $prefix . $field['name'];
[9159] Fix | Delete
}
[9160] Fix | Delete
[9161] Fix | Delete
/**
[9162] Fix | Delete
* Get field name for use in underscore templates.
[9163] Fix | Delete
*
[9164] Fix | Delete
* @since 3.17.2
[9165] Fix | Delete
*
[9166] Fix | Delete
* @param array $field
[9167] Fix | Delete
*
[9168] Fix | Delete
* @return string
[9169] Fix | Delete
*/
[9170] Fix | Delete
function get_field_variable_name( $field ) {
[9171] Fix | Delete
$name = $this->get_field_name( $field );
[9172] Fix | Delete
if ( isset( $this->type ) && 'child' === $this->type ) {
[9173] Fix | Delete
$name = "data.{$name}";
[9174] Fix | Delete
}
[9175] Fix | Delete
$name = str_replace( '-', '_', $name );
[9176] Fix | Delete
[9177] Fix | Delete
return $name;
[9178] Fix | Delete
}
[9179] Fix | Delete
[9180] Fix | Delete
function process_html_attributes( $field, &$attributes ) {
[9181] Fix | Delete
if ( is_array( $field['attributes'] ) ) {
[9182] Fix | Delete
foreach( $field['attributes'] as $attribute_key => $attribute_value ) {
[9183] Fix | Delete
$attributes .= ' ' . esc_attr( $attribute_key ) . '="' . esc_attr( $attribute_value ) . '"';
[9184] Fix | Delete
}
[9185] Fix | Delete
} else {
[9186] Fix | Delete
$attributes = ' '.$field['attributes'];
[9187] Fix | Delete
}
[9188] Fix | Delete
}
[9189] Fix | Delete
[9190] Fix | Delete
/**
[9191] Fix | Delete
* Returns an underscore template for the options settings.
[9192] Fix | Delete
*
[9193] Fix | Delete
* @since 3.23 Disable mobile options (responsive settings) on unsupported field types. It's
[9194] Fix | Delete
* added to adapt Options Harmony v2. Fix unexpected token because composite fields
[9195] Fix | Delete
* with range type load empty last edited value.
[9196] Fix | Delete
*
[9197] Fix | Delete
* @param array $field Associative array.
[9198] Fix | Delete
* array(
[9199] Fix | Delete
'id' => (int),
[9200] Fix | Delete
'label' => (string),
[9201] Fix | Delete
'description' => (string),
[9202] Fix | Delete
'class' => (string),
[9203] Fix | Delete
'type' => (string),
[9204] Fix | Delete
'validate_input' => (bool),
[9205] Fix | Delete
'name' => (string),
[9206] Fix | Delete
'default' => (string),
[9207] Fix | Delete
'defaults' => (array),
[9208] Fix | Delete
'options' => (array),
[9209] Fix | Delete
'option_category' => (string),
[9210] Fix | Delete
'attributes' => (string),
[9211] Fix | Delete
'affects' => (string),
[9212] Fix | Delete
'before' => (string),
[9213] Fix | Delete
'after' => (string),
[9214] Fix | Delete
'display_if' => (string),
[9215] Fix | Delete
'depends_on' => (string),
[9216] Fix | Delete
'depends_show_if' => (string),
[9217] Fix | Delete
'depends_show_if_not' => (string),
[9218] Fix | Delete
'show_if' => (string),
[9219] Fix | Delete
'show_if_not' => (string),
[9220] Fix | Delete
'tab_slug' => (string),
[9221] Fix | Delete
'toggle_slug' => (string),
[9222] Fix | Delete
'composite_type' => (string),
[9223] Fix | Delete
'composite_structure' => (array),
[9224] Fix | Delete
)
[9225] Fix | Delete
* @return string HTML underscore template.
[9226] Fix | Delete
*/
[9227] Fix | Delete
function render_field( $field, $name = '' ) {
[9228] Fix | Delete
$classes = array();
[9229] Fix | Delete
$hidden_field = '';
[9230] Fix | Delete
$field_el = '';
[9231] Fix | Delete
$is_custom_color = isset( $field['custom_color'] ) && $field['custom_color'];
[9232] Fix | Delete
$reset_button_html = '<span class="et-pb-reset-setting"></span>';
[9233] Fix | Delete
$need_mobile_options = isset( $field['mobile_options'] ) && $field['mobile_options'] ? true : false;
[9234] Fix | Delete
$only_options = isset( $field['only_options'] ) ? $field['only_options'] : false;
[9235] Fix | Delete
$is_child = isset( $this->type ) && 'child' === $this->type;
[9236] Fix | Delete
[9237] Fix | Delete
// Option template convert array field into string id; return early to prevent error
[9238] Fix | Delete
if ( is_string( $field ) ) {
[9239] Fix | Delete
return '';
[9240] Fix | Delete
}
[9241] Fix | Delete
[9242] Fix | Delete
// Make sure 'type' is always set to prevent PHP notices
[9243] Fix | Delete
if ( empty( $field['type'] ) ) {
[9244] Fix | Delete
$field['type'] = 'no-type';
[9245] Fix | Delete
}
[9246] Fix | Delete
[9247] Fix | Delete
// Disable mobile options for unsupported types. Before Options Harmony v2, only custom
[9248] Fix | Delete
// margin/padding, text/number, and range support responsive settings. Later on, we added
[9249] Fix | Delete
// responsive settings to all settings. However BB is no longer supported, so we need to
[9250] Fix | Delete
// disable mobile options on those selected field types.
[9251] Fix | Delete
$unsupported_mobile_options = array( 'upload-gallery', 'background-field', 'warning', 'tiny_mce', 'codemirror', 'textarea', 'custom_css', 'options_list', 'sortable_list', 'conditional_logic', 'text_align', 'align', 'select', 'divider', 'yes_no_button', 'multiple_buttons', 'font', 'select_with_option_groups', 'select_animation', 'presets_shadow', 'select_box_shadow', 'presets', 'color', 'color-alpha', 'upload', 'checkbox', 'multiple_checkboxes', 'hidden' );
[9252] Fix | Delete
if ( $need_mobile_options && in_array( $field['type'], $unsupported_mobile_options ) ) {
[9253] Fix | Delete
$need_mobile_options = false;
[9254] Fix | Delete
}
[9255] Fix | Delete
[9256] Fix | Delete
if ( $need_mobile_options ) {
[9257] Fix | Delete
$mobile_settings_tabs = et_pb_generate_mobile_settings_tabs();
[9258] Fix | Delete
}
[9259] Fix | Delete
[9260] Fix | Delete
if ( 0 !== strpos( $field['type'], 'select' ) ) {
[9261] Fix | Delete
$classes = array( 'regular-text' );
[9262] Fix | Delete
}
[9263] Fix | Delete
[9264] Fix | Delete
foreach( $this->get_validation_class_rules() as $rule ) {
[9265] Fix | Delete
if ( ! empty( $field[ $rule ] ) ) {
[9266] Fix | Delete
$this->validation_in_use = true;
[9267] Fix | Delete
$classes[] = $rule;
[9268] Fix | Delete
}
[9269] Fix | Delete
}
[9270] Fix | Delete
[9271] Fix | Delete
if ( isset( $field['validate_unit'] ) && $field['validate_unit'] ) {
[9272] Fix | Delete
$classes[] = 'et-pb-validate-unit';
[9273] Fix | Delete
}
[9274] Fix | Delete
[9275] Fix | Delete
if ( ! empty( $field['class'] ) ) {
[9276] Fix | Delete
if ( is_string( $field['class'] ) ) {
[9277] Fix | Delete
$field['class'] = array( $field['class'] );
[9278] Fix | Delete
}
[9279] Fix | Delete
[9280] Fix | Delete
$classes = array_merge( $classes, $field['class'] );
[9281] Fix | Delete
}
[9282] Fix | Delete
$field['class'] = implode(' ', $classes );
[9283] Fix | Delete
[9284] Fix | Delete
$field_name = $this->get_field_name( $field );
[9285] Fix | Delete
[9286] Fix | Delete
$field['id'] = ! empty( $field['id'] ) ? $field['id'] : $field_name;
[9287] Fix | Delete
[9288] Fix | Delete
$field['name'] = $field_name;
[9289] Fix | Delete
[9290] Fix | Delete
if ( $is_child ) {
[9291] Fix | Delete
$field_name = "data.{$field_name}";
[9292] Fix | Delete
}
[9293] Fix | Delete
[9294] Fix | Delete
$field_var_name = $this->get_field_variable_name( $field );
[9295] Fix | Delete
[9296] Fix | Delete
$default_on_front = self::$_->array_get( $field, 'default_on_front', '' );
[9297] Fix | Delete
$default_arr = self::$_->array_get( $field, 'default', $default_on_front );
[9298] Fix | Delete
[9299] Fix | Delete
// Inform that default value is array and last edited value maybe empty string. Decided to
[9300] Fix | Delete
// create new variable, just in case $default_arr will be modified later.
[9301] Fix | Delete
$default_last_edited_is_arr = false;
[9302] Fix | Delete
[9303] Fix | Delete
if ( is_array( $default_arr ) && isset( $default_arr[1] ) && is_array( $default_arr[1] ) ) {
[9304] Fix | Delete
list($default_parent_id, $defaults_list) = $default_arr;
[9305] Fix | Delete
$default_parent_id = sprintf( '%1$set_pb_%2$s', $is_child ? 'data.' : '', $default_parent_id );
[9306] Fix | Delete
$default = esc_attr( wp_json_encode( $default_arr ) );
[9307] Fix | Delete
$default_value = sprintf(
[9308] Fix | Delete
'(typeof(%1$s) !== \'undefined\' ? ( typeof(%1$s) === \'object\' ? (%2$s)[jQuery(%1$s).val()] : (%2$s)[%1$s] ) : \'\')',
[9309] Fix | Delete
$default_parent_id,
[9310] Fix | Delete
wp_json_encode( $defaults_list )
[9311] Fix | Delete
);
[9312] Fix | Delete
[9313] Fix | Delete
$default_is_arr = true;
[9314] Fix | Delete
$default_last_edited_is_arr = true;
[9315] Fix | Delete
} else {
[9316] Fix | Delete
$default = $default_value = $default_arr;
[9317] Fix | Delete
$default_is_arr = false;
[9318] Fix | Delete
}
[9319] Fix | Delete
[9320] Fix | Delete
if ( 'font' === $field['type'] ) {
[9321] Fix | Delete
$default = '' === $default ? '||||||||' : $default;
[9322] Fix | Delete
$default_value = '' === $default_value ? '||||||||' : $default_value;
[9323] Fix | Delete
}
[9324] Fix | Delete
[9325] Fix | Delete
$font_icon_options = array( 'et_pb_font_icon', 'et_pb_button_icon', 'et_pb_button_one_icon', 'et_pb_button_two_icon', 'et_pb_hover_icon' );
[9326] Fix | Delete
[9327] Fix | Delete
if ( in_array( $field_name, $font_icon_options ) ) {
[9328] Fix | Delete
$field_value = esc_attr( $field_var_name );
[9329] Fix | Delete
} else {
[9330] Fix | Delete
$field_value = esc_attr( $field_var_name ) . '.replace(/%91/g, "[").replace(/%93/g, "]").replace(/%22/g, "\"")';
[9331] Fix | Delete
}
[9332] Fix | Delete
[9333] Fix | Delete
$value_html = $default_is_arr
[9334] Fix | Delete
? ' value="<%%- typeof( %1$s ) !== \'undefined\' ? %2$s : %3$s %%>" '
[9335] Fix | Delete
: ' value="<%%- typeof( %1$s ) !== \'undefined\' ? %2$s : \'%3$s\' %%>" ';
[9336] Fix | Delete
$value = sprintf(
[9337] Fix | Delete
$value_html,
[9338] Fix | Delete
esc_attr( $field_var_name ),
[9339] Fix | Delete
$field_value,
[9340] Fix | Delete
$default_value
[9341] Fix | Delete
);
[9342] Fix | Delete
[9343] Fix | Delete
$attributes = '';
[9344] Fix | Delete
if ( ! empty( $field['attributes'] ) ) {
[9345] Fix | Delete
$this->process_html_attributes( $field, $attributes );
[9346] Fix | Delete
}
[9347] Fix | Delete
[9348] Fix | Delete
if ( ! empty( $field['affects'] ) ) {
[9349] Fix | Delete
$field['class'] .= ' et-pb-affects';
[9350] Fix | Delete
$attributes .= sprintf( ' data-affects="%s"', esc_attr( implode( ', ', $field['affects'] ) ) );
[9351] Fix | Delete
}
[9352] Fix | Delete
[9353] Fix | Delete
if ( ! empty( $field['responsive_affects'] ) ) {
[9354] Fix | Delete
$field['class'] .= ' et-pb-responsive-affects';
[9355] Fix | Delete
$attributes .= sprintf(
[9356] Fix | Delete
' data-responsive-affects="%1$s" data-responsive-desktop-name="%2$s"',
[9357] Fix | Delete
esc_attr( implode( ', ', $field['responsive_affects'] ) ),
[9358] Fix | Delete
esc_attr( $field['name'] )
[9359] Fix | Delete
);
[9360] Fix | Delete
}
[9361] Fix | Delete
[9362] Fix | Delete
if ( 'font' === $field['type'] ) {
[9363] Fix | Delete
$field['class'] .= ' et-pb-font-select';
[9364] Fix | Delete
}
[9365] Fix | Delete
[9366] Fix | Delete
if ( in_array( $field['type'], array( 'font', 'hidden', 'multiple_checkboxes', 'select_with_option_groups', 'select_animation', 'presets', 'presets_shadow', 'select_box_shadow' ) ) && ! $only_options ) {
[9367] Fix | Delete
$hidden_field = sprintf(
[9368] Fix | Delete
'<input type="hidden" name="%1$s" id="%2$s" class="et-pb-main-setting %3$s" data-default="%4$s" %5$s %6$s/>',
[9369] Fix | Delete
esc_attr( $field['name'] ),
[9370] Fix | Delete
esc_attr( $field['id'] ),
[9371] Fix | Delete
esc_attr( $field['class'] ),
[9372] Fix | Delete
esc_attr( $default ),
[9373] Fix | Delete
$value,
[9374] Fix | Delete
$attributes
[9375] Fix | Delete
);
[9376] Fix | Delete
[9377] Fix | Delete
if ( 'select_with_option_groups' === $field['type'] ) {
[9378] Fix | Delete
// Since we are using a hidden field to manage the value, we need to clear the data-affects attribute so that
[9379] Fix | Delete
// it doesn't appear on both the `$field` AND the hidden field. This should probably be done for all of these
[9380] Fix | Delete
// field types but don't want to risk breaking anything :-/
[9381] Fix | Delete
$attributes = preg_replace( '/data-affects="[\w\s,-]*"/', 'data-affects=""', $attributes );
[9382] Fix | Delete
}
[9383] Fix | Delete
}
[9384] Fix | Delete
[9385] Fix | Delete
foreach ( $this->get_validation_attr_rules() as $rule ) {
[9386] Fix | Delete
if ( ! empty( $field[ $rule ] ) ) {
[9387] Fix | Delete
$this->validation_in_use = true;
[9388] Fix | Delete
$attributes .= ' data-rule-' . esc_attr( $rule ). '="' . esc_attr( $field[ $rule ] ) . '"';
[9389] Fix | Delete
}
[9390] Fix | Delete
}
[9391] Fix | Delete
[9392] Fix | Delete
if ( isset( $field['before'] ) && ! $only_options ) {
[9393] Fix | Delete
$field_el .= $this->render_field_before_after_element( $field['before'] );
[9394] Fix | Delete
}
[9395] Fix | Delete
[9396] Fix | Delete
switch( $field['type'] ) {
[9397] Fix | Delete
case 'upload-gallery' :
[9398] Fix | Delete
$field_el .= sprintf(
[9399] Fix | Delete
'<input type="button" class="button button-upload et-pb-gallery-button" value="%1$s" />' .
[9400] Fix | Delete
'<input type="hidden" name="%3$s" id="%4$s" class="et-pb-gallery" %2$s />',
[9401] Fix | Delete
esc_attr__( 'Update Gallery', 'et_builder' ),
[9402] Fix | Delete
$value,
[9403] Fix | Delete
esc_attr( $field['name'] ),
[9404] Fix | Delete
esc_attr( $field['id'] )
[9405] Fix | Delete
);
[9406] Fix | Delete
break;
[9407] Fix | Delete
case 'background-field':
[9408] Fix | Delete
$field_el .= $this->wrap_settings_background_fields( $field['background_fields'], $field['base_name'] );
[9409] Fix | Delete
break;
[9410] Fix | Delete
case 'warning':
[9411] Fix | Delete
$field_el .= sprintf(
[9412] Fix | Delete
'<div class="et-pb-option-warning" data-name="%2$s" data-display_if="%3$s">%1$s</div>',
[9413] Fix | Delete
html_entity_decode( esc_html( $field['message'] ) ),
[9414] Fix | Delete
esc_attr( $field['name'] ),
[9415] Fix | Delete
esc_attr( $field['display_if'] )
[9416] Fix | Delete
);
[9417] Fix | Delete
break;
[9418] Fix | Delete
case 'tiny_mce':
[9419] Fix | Delete
if ( ! empty( $field['tiny_mce_html_mode'] ) ) {
[9420] Fix | Delete
$field['class'] .= ' html_mode';
[9421] Fix | Delete
}
[9422] Fix | Delete
[9423] Fix | Delete
$main_content_property_name = $main_content_field_name = 'et_pb_content';
[9424] Fix | Delete
[9425] Fix | Delete
if ( isset( $this->type ) && 'child' === $this->type ) {
[9426] Fix | Delete
$main_content_property_name = "data.{$main_content_property_name}";
[9427] Fix | Delete
}
[9428] Fix | Delete
[9429] Fix | Delete
if ( 'et_pb_signup' === $this->slug ) {
[9430] Fix | Delete
$main_content_property_name = $main_content_field_name = $field['name'];
[9431] Fix | Delete
[9432] Fix | Delete
}
[9433] Fix | Delete
$field_el .= sprintf(
[9434] Fix | Delete
'<div id="%1$s" class="et_pb_tiny_mce_field"><%%= typeof( %2$s ) !== \'undefined\' ? %2$s : \'\' %%></div>',
[9435] Fix | Delete
esc_attr( $main_content_field_name ),
[9436] Fix | Delete
esc_html( $main_content_property_name )
[9437] Fix | Delete
);
[9438] Fix | Delete
[9439] Fix | Delete
break;
[9440] Fix | Delete
case 'codemirror':
[9441] Fix | Delete
case 'textarea':
[9442] Fix | Delete
case 'custom_css':
[9443] Fix | Delete
case 'options_list':
[9444] Fix | Delete
case 'sortable_list':
[9445] Fix | Delete
$field_custom_value = esc_html( $field_var_name );
[9446] Fix | Delete
if ( in_array( $field['type'], array( 'custom_css', 'options_list', 'sortable_list' ) ) ) {
[9447] Fix | Delete
$field_custom_value .= '.replace( /\|\|/g, "\n" ).replace( /%22/g, "&quot;" ).replace( /%92/g, "\\\" )';
[9448] Fix | Delete
$field_custom_value .= '.replace( /%91/g, "&#91;" ).replace( /%93/g, "&#93;" )';
[9449] Fix | Delete
}
[9450] Fix | Delete
[9451] Fix | Delete
if ( in_array( $field_name, array( 'et_pb_custom_message' ) ) ) {
[9452] Fix | Delete
// escape html to make sure it's not rendered inside the Textarea field in Settings Modal.
[9453] Fix | Delete
$field_custom_value = sprintf( '_.escape( %1$s )', $field_custom_value );
[9454] Fix | Delete
}
[9455] Fix | Delete
[9456] Fix | Delete
$field_el .= sprintf(
[9457] Fix | Delete
'<textarea class="et-pb-main-setting large-text code%1$s" rows="4" cols="50" id="%2$s"><%%= typeof( %3$s ) !== \'undefined\' ? %4$s : \'\' %%></textarea>',
[9458] Fix | Delete
esc_attr( $field['class'] ),
[9459] Fix | Delete
esc_attr( $field['id'] ),
[9460] Fix | Delete
esc_html( $field_var_name ),
[9461] Fix | Delete
et_core_esc_previously( $field_custom_value )
[9462] Fix | Delete
);
[9463] Fix | Delete
[9464] Fix | Delete
if ( 'options_list' === $field['type'] || 'sortable_list' === $field['type'] ) {
[9465] Fix | Delete
$radio_check = '';
[9466] Fix | Delete
$row_class = 'et_options_list_row';
[9467] Fix | Delete
[9468] Fix | Delete
if ( isset( $field['checkbox'] ) && true === $field['checkbox'] ) {
[9469] Fix | Delete
$radio_check = '<a href="#" class="et_options_list_check"></a>';
[9470] Fix | Delete
$row_class .= ' et_options_list_row_checkbox';
[9471] Fix | Delete
}
[9472] Fix | Delete
[9473] Fix | Delete
if ( isset( $field['radio'] ) && true === $field['radio'] ) {
[9474] Fix | Delete
$radio_check = '<a href="#" class="et_options_list_check"></a>';
[9475] Fix | Delete
$row_class .= ' et_options_list_row_radio';
[9476] Fix | Delete
}
[9477] Fix | Delete
[9478] Fix | Delete
$field_el = sprintf(
[9479] Fix | Delete
'<div class="et_options_list">
[9480] Fix | Delete
<div class="%5$s">
[9481] Fix | Delete
%6$s
[9482] Fix | Delete
<input type="text" />
[9483] Fix | Delete
<div class="et_options_list_actions">
[9484] Fix | Delete
<a href="#" class="et_options_list_move"></a>
[9485] Fix | Delete
<a href="#" class="et_options_list_copy"></a>
[9486] Fix | Delete
<a href="#" class="et_options_list_remove"></a>
[9487] Fix | Delete
</div>
[9488] Fix | Delete
</div>
[9489] Fix | Delete
<textarea class="et-pb-main-setting large-text code%1$s" rows="4" cols="50" id="%2$s"><%%= typeof( %3$s ) !== \'undefined\' ? %4$s : \'\' %%></textarea>
[9490] Fix | Delete
<a href="#" class="et-pb-add-sortable-option"><span>%7$s</span></a>
[9491] Fix | Delete
</div>',
[9492] Fix | Delete
esc_attr( $field['class'] ),
[9493] Fix | Delete
esc_attr( $field['id'] ),
[9494] Fix | Delete
esc_html( $field_var_name ),
[9495] Fix | Delete
et_core_esc_previously( $field_custom_value ),
[9496] Fix | Delete
esc_attr( $row_class ),
[9497] Fix | Delete
$radio_check,
[9498] Fix | Delete
esc_html__( 'Add New Item', 'et_builder' )
[9499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function