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
[4500] Fix | Delete
$additional_options = array();
[4501] Fix | Delete
$features = array(
[4502] Fix | Delete
'max_width' => 'MaxWidth',
[4503] Fix | Delete
'height' => 'Height',
[4504] Fix | Delete
);
[4505] Fix | Delete
[4506] Fix | Delete
foreach ( $features as $name => $fields_name ) {
[4507] Fix | Delete
if ( $this->has_vb_support() ) {
[4508] Fix | Delete
$this->advanced_fields[ $name ] = self::$_->array_get( $this->advanced_fields, $name, array() );
[4509] Fix | Delete
} else if ( ! $this->has_advanced_fields ) {
[4510] Fix | Delete
return;
[4511] Fix | Delete
}
[4512] Fix | Delete
[4513] Fix | Delete
if ( ! is_array( self::$_->array_get( $this->advanced_fields, $name ) ) ) {
[4514] Fix | Delete
return;
[4515] Fix | Delete
}
[4516] Fix | Delete
[4517] Fix | Delete
$extra = self::$_->array_get( $this->advanced_fields[ $name ], 'extra', array() );
[4518] Fix | Delete
$fields = array_merge( array( '' => $this->advanced_fields[ $name ] ), $extra );
[4519] Fix | Delete
[4520] Fix | Delete
foreach ( $fields as $prefix => $settings ) {
[4521] Fix | Delete
$prefix = et_builder_add_prefix( $prefix, '' );
[4522] Fix | Delete
$tab_slug = isset( $settings['tab_slug'] ) ? $settings['tab_slug'] : 'advanced';
[4523] Fix | Delete
$toggle_slug = isset( $settings['toggle_slug'] ) ? $settings['toggle_slug'] : 'width';
[4524] Fix | Delete
$toggle_title = isset( $settings['toggle_title'] ) ? $settings['toggle_title'] : et_builder_i18n( 'Sizing' );
[4525] Fix | Delete
$toggle_priority = isset( $settings['toggle_priority'] ) ? $settings['toggle_priority'] : 80;
[4526] Fix | Delete
[4527] Fix | Delete
$settings['prefix'] = $prefix;
[4528] Fix | Delete
[4529] Fix | Delete
$this->_add_settings_modal_toggles( $tab_slug,
[4530] Fix | Delete
array(
[4531] Fix | Delete
$toggle_slug => array(
[4532] Fix | Delete
'title' => $toggle_title,
[4533] Fix | Delete
'priority' => $toggle_priority,
[4534] Fix | Delete
),
[4535] Fix | Delete
) );
[4536] Fix | Delete
[4537] Fix | Delete
$additional_options = array_merge(
[4538] Fix | Delete
$additional_options,
[4539] Fix | Delete
ET_Builder_Module_Fields_Factory::get( $fields_name )->get_fields( $settings )
[4540] Fix | Delete
);
[4541] Fix | Delete
[4542] Fix | Delete
// Allow module to configure specific options
[4543] Fix | Delete
if ( isset( $settings['options'] ) && is_array( $settings['options'] ) ) {
[4544] Fix | Delete
foreach ( $settings['options'] as $option_slug => $options ) {
[4545] Fix | Delete
if ( ! is_array( $options ) ) {
[4546] Fix | Delete
continue;
[4547] Fix | Delete
}
[4548] Fix | Delete
[4549] Fix | Delete
foreach ( $options as $option_name => $option_value ) {
[4550] Fix | Delete
$additional_options[ $prefix . $option_slug ][ $option_name ] = $option_value;
[4551] Fix | Delete
}
[4552] Fix | Delete
}
[4553] Fix | Delete
}
[4554] Fix | Delete
}
[4555] Fix | Delete
[4556] Fix | Delete
$this->_additional_fields_options = array_merge( $this->_additional_fields_options, $additional_options );
[4557] Fix | Delete
}
[4558] Fix | Delete
}
[4559] Fix | Delete
[4560] Fix | Delete
/**
[4561] Fix | Delete
* @deprecated
[4562] Fix | Delete
*/
[4563] Fix | Delete
public function _add_max_width_fields() {
[4564] Fix | Delete
[4565] Fix | Delete
}
[4566] Fix | Delete
[4567] Fix | Delete
protected function _add_overflow_fields() {
[4568] Fix | Delete
if ( is_array( self::$_->array_get( $this->advanced_fields, 'overflow', array() ) ) ) {
[4569] Fix | Delete
$defaultOverflow = self::$_->array_get( $this->advanced_fields, 'overflow.default', ET_Builder_Module_Helper_Overflow::OVERFLOW_DEFAULT );
[4570] Fix | Delete
$this->_additional_fields_options = array_merge(
[4571] Fix | Delete
$this->_additional_fields_options,
[4572] Fix | Delete
ET_Builder_Module_Fields_Factory::get( 'Overflow' )->get_fields( array( 'default' => $defaultOverflow ) )
[4573] Fix | Delete
);
[4574] Fix | Delete
}
[4575] Fix | Delete
}
[4576] Fix | Delete
[4577] Fix | Delete
public function get_scroll_effects_options() {
[4578] Fix | Delete
// cache translations.
[4579] Fix | Delete
$prefix = 'scroll_';
[4580] Fix | Delete
[4581] Fix | Delete
$i18n =& self::$i18n;
[4582] Fix | Delete
if ( ! isset( $i18n['motion'] ) ) {
[4583] Fix | Delete
// phpcs:disable WordPress.WP.I18n.MissingTranslatorsComment
[4584] Fix | Delete
$i18n['motion'] = array(
[4585] Fix | Delete
'vertical' => array(
[4586] Fix | Delete
'label' => __( 'Vertical Motion', 'et_builder' ),
[4587] Fix | Delete
'description' => __( 'Give this element vertical motion so that is moves faster or slower than the elements around it as the viewer scrolls through the page.', 'et_builder' ),
[4588] Fix | Delete
'startValueTitle' => __( 'Starting Offset', 'et_builder' ),
[4589] Fix | Delete
'middleValueTitle' => __( 'Mid Offset', 'et_builder' ),
[4590] Fix | Delete
'endValueTitle' => __( 'Ending Offset', 'et_builder' ),
[4591] Fix | Delete
),
[4592] Fix | Delete
'horizontal' => array(
[4593] Fix | Delete
'label' => __( 'Horizontal Motion', 'et_builder' ),
[4594] Fix | Delete
'description' => __( 'Give this element horizontal motion so that it slides left or right as the viewer scrolls through the page.', 'et_builder' ),
[4595] Fix | Delete
'startValueTitle' => __( 'Starting Offset', 'et_builder' ),
[4596] Fix | Delete
'middleValueTitle' => __( 'Mid Offset', 'et_builder' ),
[4597] Fix | Delete
'endValueTitle' => __( 'Ending Offset', 'et_builder' ),
[4598] Fix | Delete
),
[4599] Fix | Delete
'fade' => array(
[4600] Fix | Delete
'label' => __( 'Fading In and Out', 'et_builder' ),
[4601] Fix | Delete
'description' => __( 'Give this element an opacity effect so that it fades in and out as the viewer scrolls through the page.', 'et_builder' ),
[4602] Fix | Delete
'startValueTitle' => __( 'Starting Opacity', 'et_builder' ),
[4603] Fix | Delete
'middleValueTitle' => __( 'Mid Opacity', 'et_builder' ),
[4604] Fix | Delete
'endValueTitle' => __( 'Ending Opacity', 'et_builder' ),
[4605] Fix | Delete
),
[4606] Fix | Delete
'scaling' => array(
[4607] Fix | Delete
'label' => __( 'Scaling Up and Down', 'et_builder' ),
[4608] Fix | Delete
'description' => __( 'Give this element a scale effect so that it grows and shrinks as the viewer scrolls through the page.', 'et_builder' ),
[4609] Fix | Delete
'startValueTitle' => __( 'Starting Scale', 'et_builder' ),
[4610] Fix | Delete
'middleValueTitle' => __( 'Mid Scale', 'et_builder' ),
[4611] Fix | Delete
'endValueTitle' => __( 'Ending Scale', 'et_builder' ),
[4612] Fix | Delete
),
[4613] Fix | Delete
'rotating' => array(
[4614] Fix | Delete
'label' => __( 'Rotating', 'et_builder' ),
[4615] Fix | Delete
'description' => __( 'Give this element rotating motion so that it spins as the viewer scrolls through the page.', 'et_builder' ),
[4616] Fix | Delete
'startValueTitle' => __( 'Starting Rotation', 'et_builder' ),
[4617] Fix | Delete
'middleValueTitle' => __( 'Mid Rotation', 'et_builder' ),
[4618] Fix | Delete
'endValueTitle' => __( 'Ending Rotation', 'et_builder' ),
[4619] Fix | Delete
),
[4620] Fix | Delete
'blur' => array(
[4621] Fix | Delete
'label' => __( 'Blur', 'et_builder' ),
[4622] Fix | Delete
'description' => __( 'Give this element a blur effect so that it moves in and out of focus as the viewer scrolls through the page.', 'et_builder' ),
[4623] Fix | Delete
'startValueTitle' => __( 'Starting Blur', 'et_builder' ),
[4624] Fix | Delete
'middleValueTitle' => __( 'Mid Blur', 'et_builder' ),
[4625] Fix | Delete
'endValueTitle' => __( 'Ending Blur', 'et_builder' ),
[4626] Fix | Delete
),
[4627] Fix | Delete
);
[4628] Fix | Delete
// phpcs:enable
[4629] Fix | Delete
}
[4630] Fix | Delete
[4631] Fix | Delete
return array(
[4632] Fix | Delete
"${prefix}vertical_motion" => array(
[4633] Fix | Delete
'label' => $i18n['motion']['vertical']['label'],
[4634] Fix | Delete
'description' => $i18n['motion']['vertical']['description'],
[4635] Fix | Delete
'startValueTitle' => $i18n['motion']['vertical']['startValueTitle'],
[4636] Fix | Delete
'middleValueTitle' => $i18n['motion']['vertical']['middleValueTitle'],
[4637] Fix | Delete
'endValueTitle' => $i18n['motion']['vertical']['endValueTitle'],
[4638] Fix | Delete
'icon' => 'vertical-motion',
[4639] Fix | Delete
'resolver' => 'translateY',
[4640] Fix | Delete
'default' => '0|50|50|100|4|0|-4',
[4641] Fix | Delete
),
[4642] Fix | Delete
"{$prefix}horizontal_motion" => array(
[4643] Fix | Delete
'label' => $i18n['motion']['horizontal']['label'],
[4644] Fix | Delete
'description' => $i18n['motion']['horizontal']['description'],
[4645] Fix | Delete
'startValueTitle' => $i18n['motion']['horizontal']['startValueTitle'],
[4646] Fix | Delete
'middleValueTitle' => $i18n['motion']['horizontal']['middleValueTitle'],
[4647] Fix | Delete
'endValueTitle' => $i18n['motion']['horizontal']['endValueTitle'],
[4648] Fix | Delete
'icon' => 'horizontal-motion',
[4649] Fix | Delete
'resolver' => 'translateX',
[4650] Fix | Delete
'default' => '0|50|50|100|4|0|-4',
[4651] Fix | Delete
),
[4652] Fix | Delete
"{$prefix}fade" => array(
[4653] Fix | Delete
'label' => $i18n['motion']['fade']['label'],
[4654] Fix | Delete
'description' => $i18n['motion']['fade']['description'],
[4655] Fix | Delete
'startValueTitle' => $i18n['motion']['fade']['startValueTitle'],
[4656] Fix | Delete
'middleValueTitle' => $i18n['motion']['fade']['middleValueTitle'],
[4657] Fix | Delete
'endValueTitle' => $i18n['motion']['fade']['endValueTitle'],
[4658] Fix | Delete
'icon' => 'animation-fade',
[4659] Fix | Delete
'resolver' => 'opacity',
[4660] Fix | Delete
'default' => '0|50|50|100|0|100|100',
[4661] Fix | Delete
),
[4662] Fix | Delete
"{$prefix}scaling" => array(
[4663] Fix | Delete
'label' => $i18n['motion']['scaling']['label'],
[4664] Fix | Delete
'description' => $i18n['motion']['scaling']['description'],
[4665] Fix | Delete
'startValueTitle' => $i18n['motion']['scaling']['startValueTitle'],
[4666] Fix | Delete
'middleValueTitle' => $i18n['motion']['scaling']['middleValueTitle'],
[4667] Fix | Delete
'endValueTitle' => $i18n['motion']['scaling']['endValueTitle'],
[4668] Fix | Delete
'icon' => 'resize',
[4669] Fix | Delete
'resolver' => 'scale',
[4670] Fix | Delete
'default' => '0|50|50|100|70|100|100',
[4671] Fix | Delete
),
[4672] Fix | Delete
"{$prefix}rotating" => array(
[4673] Fix | Delete
'label' => $i18n['motion']['rotating']['label'],
[4674] Fix | Delete
'description' => $i18n['motion']['rotating']['description'],
[4675] Fix | Delete
'startValueTitle' => $i18n['motion']['rotating']['startValueTitle'],
[4676] Fix | Delete
'middleValueTitle' => $i18n['motion']['rotating']['middleValueTitle'],
[4677] Fix | Delete
'endValueTitle' => $i18n['motion']['rotating']['endValueTitle'],
[4678] Fix | Delete
'icon' => 'rotate',
[4679] Fix | Delete
'resolver' => 'rotate',
[4680] Fix | Delete
'default' => '0|50|50|100|90|0|0',
[4681] Fix | Delete
),
[4682] Fix | Delete
"{$prefix}blur" => array(
[4683] Fix | Delete
'label' => $i18n['motion']['blur']['label'],
[4684] Fix | Delete
'description' => $i18n['motion']['blur']['description'],
[4685] Fix | Delete
'startValueTitle' => $i18n['motion']['blur']['startValueTitle'],
[4686] Fix | Delete
'middleValueTitle' => $i18n['motion']['blur']['middleValueTitle'],
[4687] Fix | Delete
'endValueTitle' => $i18n['motion']['blur']['endValueTitle'],
[4688] Fix | Delete
'icon' => 'blur',
[4689] Fix | Delete
'resolver' => 'blur',
[4690] Fix | Delete
'default' => '0|40|60|100|10|0|0',
[4691] Fix | Delete
),
[4692] Fix | Delete
);
[4693] Fix | Delete
}
[4694] Fix | Delete
[4695] Fix | Delete
protected function _add_scroll_effects_fields() {
[4696] Fix | Delete
if ( is_array( self::$_->array_get( $this->advanced_fields, 'scroll_effects', array() ) ) ) {
[4697] Fix | Delete
$this->_additional_fields_options = array_merge(
[4698] Fix | Delete
$this->_additional_fields_options,
[4699] Fix | Delete
ET_Builder_Module_Fields_Factory::get( 'Scroll' )->get_fields(array(
[4700] Fix | Delete
'options' => $this->get_scroll_effects_options(),
[4701] Fix | Delete
'grid_support' => self::$_->array_get( $this->advanced_fields, 'scroll_effects.grid_support', 'no' ),
[4702] Fix | Delete
))
[4703] Fix | Delete
);
[4704] Fix | Delete
}
[4705] Fix | Delete
}
[4706] Fix | Delete
[4707] Fix | Delete
/**
[4708] Fix | Delete
* Add margin & padding option fields.
[4709] Fix | Delete
*
[4710] Fix | Delete
* @since 3.23 Add allowed CSS units for margin and padding.
[4711] Fix | Delete
*/
[4712] Fix | Delete
protected function _add_margin_padding_fields() {
[4713] Fix | Delete
// Margin-Padding fields are added by default if module has partial or full VB support
[4714] Fix | Delete
if ( $this->has_vb_support() ) {
[4715] Fix | Delete
$this->advanced_fields['margin_padding'] = self::$_->array_get( $this->advanced_fields, 'margin_padding', array() );
[4716] Fix | Delete
} else if ( ! $this->has_advanced_fields ) {
[4717] Fix | Delete
// Disable if module doesn't set advanced_fields property and has no VB support
[4718] Fix | Delete
return;
[4719] Fix | Delete
}
[4720] Fix | Delete
[4721] Fix | Delete
// Margin settings have to be array
[4722] Fix | Delete
if ( ! is_array( self::$_->array_get( $this->advanced_fields, 'margin_padding' ) ) ) {
[4723] Fix | Delete
return;
[4724] Fix | Delete
}
[4725] Fix | Delete
[4726] Fix | Delete
$additional_options = array();
[4727] Fix | Delete
[4728] Fix | Delete
$defaults = array(
[4729] Fix | Delete
'use_margin' => true,
[4730] Fix | Delete
'draggable_margin' => true,
[4731] Fix | Delete
'use_padding' => true,
[4732] Fix | Delete
'draggable_padding' => true,
[4733] Fix | Delete
);
[4734] Fix | Delete
$this->advanced_fields['margin_padding'] = wp_parse_args( $this->advanced_fields['margin_padding'], $defaults );
[4735] Fix | Delete
[4736] Fix | Delete
$tab_slug = isset( $this->advanced_fields['margin_padding']['tab_slug'] ) ? $this->advanced_fields['margin_padding']['tab_slug'] : 'advanced';
[4737] Fix | Delete
$toggle_disabled = isset( $this->advanced_fields['margin_padding']['disable_toggle'] ) && $this->advanced_fields['margin_padding']['disable_toggle'];
[4738] Fix | Delete
$toggle_slug = isset( $this->advanced_fields['margin_padding']['toggle_slug'] ) ? $this->advanced_fields['margin_padding']['toggle_slug'] : 'margin_padding';
[4739] Fix | Delete
[4740] Fix | Delete
$i18n =& self::$i18n;
[4741] Fix | Delete
[4742] Fix | Delete
if ( ! isset( $i18n['margin'] ) ) {
[4743] Fix | Delete
// phpcs:disable WordPress.WP.I18n.MissingTranslatorsComment
[4744] Fix | Delete
$i18n['margin'] = array(
[4745] Fix | Delete
'toggle' => array(
[4746] Fix | Delete
'title' => esc_html__( 'Spacing', 'et_builder' ),
[4747] Fix | Delete
),
[4748] Fix | Delete
'margin' => array(
[4749] Fix | Delete
'label' => esc_html__( 'Margin', 'et_builder' ),
[4750] Fix | Delete
'description' => esc_html__( 'Margin adds extra space to the outside of the element, increasing the distance between the element and other items on the page.', 'et_builder' ),
[4751] Fix | Delete
),
[4752] Fix | Delete
'padding' => array(
[4753] Fix | Delete
'label' => esc_html__( 'Padding', 'et_builder' ),
[4754] Fix | Delete
'description' => esc_html__( 'Padding adds extra space to the inside of the element, increasing the distance between the edge of the element and its inner contents.', 'et_builder' ),
[4755] Fix | Delete
),
[4756] Fix | Delete
);
[4757] Fix | Delete
// phpcs:enable
[4758] Fix | Delete
}
[4759] Fix | Delete
[4760] Fix | Delete
if ( ! $toggle_disabled ) {
[4761] Fix | Delete
$margin_toggle = array(
[4762] Fix | Delete
$toggle_slug => array(
[4763] Fix | Delete
'title' => $i18n['margin']['toggle']['title'],
[4764] Fix | Delete
'priority' => 90,
[4765] Fix | Delete
),
[4766] Fix | Delete
);
[4767] Fix | Delete
[4768] Fix | Delete
$this->_add_settings_modal_toggles( $tab_slug, $margin_toggle );
[4769] Fix | Delete
}
[4770] Fix | Delete
[4771] Fix | Delete
if ( $this->advanced_fields['margin_padding']['use_margin'] ) {
[4772] Fix | Delete
$additional_options['custom_margin'] = array(
[4773] Fix | Delete
'label' => $i18n['margin']['margin']['label'],
[4774] Fix | Delete
'description' => $i18n['margin']['margin']['description'],
[4775] Fix | Delete
'type' => 'custom_margin',
[4776] Fix | Delete
'mobile_options' => true,
[4777] Fix | Delete
'option_category' => 'layout',
[4778] Fix | Delete
'tab_slug' => $tab_slug,
[4779] Fix | Delete
'toggle_slug' => $toggle_slug,
[4780] Fix | Delete
'hover' => 'tabs',
[4781] Fix | Delete
'allowed_units' => array( '%', 'em', 'rem', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ex', 'vh', 'vw' ),
[4782] Fix | Delete
);
[4783] Fix | Delete
$additional_options['custom_margin_tablet'] = array(
[4784] Fix | Delete
'type' => 'skip',
[4785] Fix | Delete
'tab_slug' => $tab_slug,
[4786] Fix | Delete
);
[4787] Fix | Delete
$additional_options['custom_margin_phone'] = array(
[4788] Fix | Delete
'type' => 'skip',
[4789] Fix | Delete
'tab_slug' => $tab_slug,
[4790] Fix | Delete
'toggle_slug' => $toggle_slug,
[4791] Fix | Delete
);
[4792] Fix | Delete
[4793] Fix | Delete
// make it possible to override/add options
[4794] Fix | Delete
if ( ! empty( $this->advanced_fields['margin_padding']['custom_margin'] ) ) {
[4795] Fix | Delete
$additional_options['custom_margin'] = array_merge( $additional_options['custom_margin'], $this->advanced_fields['margin_padding']['custom_margin'] );
[4796] Fix | Delete
}
[4797] Fix | Delete
[4798] Fix | Delete
$additional_options["custom_margin_last_edited"] = array(
[4799] Fix | Delete
'type' => 'skip',
[4800] Fix | Delete
'tab_slug' => $tab_slug,
[4801] Fix | Delete
'toggle_slug' => $toggle_slug,
[4802] Fix | Delete
);
[4803] Fix | Delete
[4804] Fix | Delete
$additional_options["padding_1_last_edited"] = array(
[4805] Fix | Delete
'type' => 'skip',
[4806] Fix | Delete
'tab_slug' => $tab_slug,
[4807] Fix | Delete
'toggle_slug' => $toggle_slug,
[4808] Fix | Delete
);
[4809] Fix | Delete
[4810] Fix | Delete
$additional_options["padding_2_last_edited"] = array(
[4811] Fix | Delete
'type' => 'skip',
[4812] Fix | Delete
'tab_slug' => $tab_slug,
[4813] Fix | Delete
'toggle_slug' => $toggle_slug,
[4814] Fix | Delete
);
[4815] Fix | Delete
[4816] Fix | Delete
$additional_options["padding_3_last_edited"] = array(
[4817] Fix | Delete
'type' => 'skip',
[4818] Fix | Delete
'tab_slug' => $tab_slug,
[4819] Fix | Delete
'toggle_slug' => $toggle_slug,
[4820] Fix | Delete
);
[4821] Fix | Delete
[4822] Fix | Delete
$additional_options["padding_4_last_edited"] = array(
[4823] Fix | Delete
'type' => 'skip',
[4824] Fix | Delete
'tab_slug' => $tab_slug,
[4825] Fix | Delete
'toggle_slug' => $toggle_slug,
[4826] Fix | Delete
);
[4827] Fix | Delete
}
[4828] Fix | Delete
[4829] Fix | Delete
if ( $this->advanced_fields['margin_padding']['use_padding'] ) {
[4830] Fix | Delete
$additional_options['custom_padding'] = array(
[4831] Fix | Delete
'label' => $i18n['margin']['padding']['label'],
[4832] Fix | Delete
'description' => $i18n['margin']['padding']['description'],
[4833] Fix | Delete
'type' => 'custom_padding',
[4834] Fix | Delete
'mobile_options' => true,
[4835] Fix | Delete
'option_category' => 'layout',
[4836] Fix | Delete
'tab_slug' => $tab_slug,
[4837] Fix | Delete
'toggle_slug' => $toggle_slug,
[4838] Fix | Delete
'hover' => 'tabs',
[4839] Fix | Delete
'allowed_units' => array( '%', 'em', 'rem', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ex', 'vh', 'vw' ),
[4840] Fix | Delete
);
[4841] Fix | Delete
$additional_options['custom_padding_tablet'] = array(
[4842] Fix | Delete
'type' => 'skip',
[4843] Fix | Delete
'tab_slug' => $tab_slug,
[4844] Fix | Delete
'toggle_slug' => $toggle_slug,
[4845] Fix | Delete
);
[4846] Fix | Delete
$additional_options['custom_padding_phone'] = array(
[4847] Fix | Delete
'type' => 'skip',
[4848] Fix | Delete
'tab_slug' => $tab_slug,
[4849] Fix | Delete
'toggle_slug' => $toggle_slug,
[4850] Fix | Delete
);
[4851] Fix | Delete
[4852] Fix | Delete
// make it possible to override/add options
[4853] Fix | Delete
if ( ! empty( $this->advanced_fields['margin_padding']['custom_padding'] ) ) {
[4854] Fix | Delete
$additional_options['custom_padding'] = array_merge( $additional_options['custom_padding'], $this->advanced_fields['margin_padding']['custom_padding'] );
[4855] Fix | Delete
}
[4856] Fix | Delete
[4857] Fix | Delete
$additional_options["custom_padding_last_edited"] = array(
[4858] Fix | Delete
'type' => 'skip',
[4859] Fix | Delete
'tab_slug' => $tab_slug,
[4860] Fix | Delete
'toggle_slug' => $toggle_slug,
[4861] Fix | Delete
);
[4862] Fix | Delete
}
[4863] Fix | Delete
[4864] Fix | Delete
$this->_additional_fields_options = array_merge( $this->_additional_fields_options, $additional_options );
[4865] Fix | Delete
}
[4866] Fix | Delete
[4867] Fix | Delete
/**
[4868] Fix | Delete
* Add button option fields.
[4869] Fix | Delete
*
[4870] Fix | Delete
* @since 3.23 Add custom padding for button options set. Add allowed CSS units. Set custom
[4871] Fix | Delete
* default for text size and border width. Add responsive settings for button
[4872] Fix | Delete
* settings. Set custom group label. Add ability hide and show the icon settings.
[4873] Fix | Delete
*/
[4874] Fix | Delete
protected function _add_button_fields() {
[4875] Fix | Delete
// Disable if module doesn't set advanced_fields property and has no VB support
[4876] Fix | Delete
if ( ! $this->has_advanced_fields ) {
[4877] Fix | Delete
return;
[4878] Fix | Delete
}
[4879] Fix | Delete
[4880] Fix | Delete
// Button settings have to be array
[4881] Fix | Delete
if ( ! is_array( self::$_->array_get( $this->advanced_fields, 'button' ) ) ) {
[4882] Fix | Delete
return;
[4883] Fix | Delete
}
[4884] Fix | Delete
[4885] Fix | Delete
$this->set_i18n_font();
[4886] Fix | Delete
$i18n =& self::$i18n;
[4887] Fix | Delete
[4888] Fix | Delete
// Auto-add attributes toggle
[4889] Fix | Delete
$toggles_custom_css_tab = isset( $this->settings_modal_toggles['custom_css'] ) ? $this->settings_modal_toggles['custom_css'] : array();
[4890] Fix | Delete
if ( ! isset( $toggles_custom_css_tab['toggles'] ) || ! isset( $toggles_custom_css_tab['toggles']['attributes'] ) ) {
[4891] Fix | Delete
$this->_add_settings_modal_toggles( 'custom_css', array(
[4892] Fix | Delete
'attributes' => array(
[4893] Fix | Delete
'title' => esc_html__( 'Attributes', 'et_builder' ),
[4894] Fix | Delete
'priority' => 95,
[4895] Fix | Delete
),
[4896] Fix | Delete
) );
[4897] Fix | Delete
}
[4898] Fix | Delete
[4899] Fix | Delete
$additional_options = array();
[4900] Fix | Delete
$hover = et_pb_hover_options();
[4901] Fix | Delete
[4902] Fix | Delete
foreach ( $this->advanced_fields['button'] as $option_name => $option_settings ) {
[4903] Fix | Delete
$tab_slug = isset( $option_settings['tab_slug'] ) ? $option_settings['tab_slug'] : 'advanced';
[4904] Fix | Delete
$toggle_disabled = isset( $option_settings['disable_toggle'] ) && $option_settings['disable_toggle'];
[4905] Fix | Delete
$toggle_slug = '';
[4906] Fix | Delete
[4907] Fix | Delete
if ( ! $toggle_disabled ) {
[4908] Fix | Delete
$toggle_slug = isset( $option_settings['toggle_slug'] ) ? $option_settings['toggle_slug'] : $option_name;
[4909] Fix | Delete
[4910] Fix | Delete
$button_toggle = array(
[4911] Fix | Delete
$option_name => array(
[4912] Fix | Delete
'title' => esc_html( $option_settings['label'] ),
[4913] Fix | Delete
'priority' => 70,
[4914] Fix | Delete
),
[4915] Fix | Delete
);
[4916] Fix | Delete
[4917] Fix | Delete
$this->_add_settings_modal_toggles( $tab_slug, $button_toggle );
[4918] Fix | Delete
}
[4919] Fix | Delete
[4920] Fix | Delete
// Custom default values defined on module.
[4921] Fix | Delete
$text_size_default = self::$_->array_get( $option_settings, 'text_size.default', '' );
[4922] Fix | Delete
$border_width_default = self::$_->array_get( $option_settings, 'border_width.default', '' );
[4923] Fix | Delete
[4924] Fix | Delete
$additional_options["custom_{$option_name}"] = array(
[4925] Fix | Delete
'label' => sprintf( esc_html__( 'Use Custom Styles For %1$s ', 'et_builder' ), $option_settings['label'] ),
[4926] Fix | Delete
'description' => esc_html__( "If you would like to customize the appearance of this module's button, you must first enable custom button styles.", 'et_builder' ),
[4927] Fix | Delete
'type' => 'yes_no_button',
[4928] Fix | Delete
'option_category' => 'button',
[4929] Fix | Delete
'options' => array(
[4930] Fix | Delete
'off' => et_builder_i18n( 'No' ),
[4931] Fix | Delete
'on' => et_builder_i18n( 'Yes' ),
[4932] Fix | Delete
),
[4933] Fix | Delete
'affects' => array(
[4934] Fix | Delete
"{$option_name}_text_color",
[4935] Fix | Delete
"{$option_name}_text_size",
[4936] Fix | Delete
"{$option_name}_border_width",
[4937] Fix | Delete
"{$option_name}_border_radius",
[4938] Fix | Delete
"{$option_name}_letter_spacing",
[4939] Fix | Delete
"{$option_name}_spacing",
[4940] Fix | Delete
"{$option_name}_bg_color",
[4941] Fix | Delete
"{$option_name}_border_color",
[4942] Fix | Delete
"{$option_name}_use_icon",
[4943] Fix | Delete
"{$option_name}_font",
[4944] Fix | Delete
$hover->get_hover_field( "{$option_name}_text_color" ),
[4945] Fix | Delete
$hover->get_hover_field( "{$option_name}_border_color" ),
[4946] Fix | Delete
$hover->get_hover_field( "{$option_name}_border_radius" ),
[4947] Fix | Delete
$hover->get_hover_field( "{$option_name}_letter_spacing" ),
[4948] Fix | Delete
"{$option_name}_text_shadow_style", // Add Text Shadow to button options
[4949] Fix | Delete
"{$option_name}_custom_margin",
[4950] Fix | Delete
"{$option_name}_custom_padding",
[4951] Fix | Delete
),
[4952] Fix | Delete
'default_on_front' => 'off',
[4953] Fix | Delete
'tab_slug' => $tab_slug,
[4954] Fix | Delete
'toggle_slug' => $toggle_slug,
[4955] Fix | Delete
);
[4956] Fix | Delete
[4957] Fix | Delete
$additional_options["{$option_name}_text_size"] = array(
[4958] Fix | Delete
'label' => sprintf( $i18n['font']['size']['label'], $option_settings['label'] ),
[4959] Fix | Delete
'description' => esc_html__( 'Increase or decrease the size of the button text.', 'et_builder' ),
[4960] Fix | Delete
'type' => 'range',
[4961] Fix | Delete
'range_settings' => array(
[4962] Fix | Delete
'min' => '1',
[4963] Fix | Delete
'max' => '100',
[4964] Fix | Delete
'step' => '1',
[4965] Fix | Delete
),
[4966] Fix | Delete
'option_category' => 'button',
[4967] Fix | Delete
'allowed_units' => array( '%', 'em', 'rem', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ex', 'vh', 'vw' ),
[4968] Fix | Delete
'default' => ! empty( $text_size_default ) ? $text_size_default : ET_Global_Settings::get_value( 'all_buttons_font_size' ),
[4969] Fix | Delete
'default_unit' => 'px',
[4970] Fix | Delete
'tab_slug' => $tab_slug,
[4971] Fix | Delete
'toggle_slug' => $toggle_slug,
[4972] Fix | Delete
'mobile_options' => true,
[4973] Fix | Delete
'depends_show_if' => 'on',
[4974] Fix | Delete
'hover' => 'tabs',
[4975] Fix | Delete
);
[4976] Fix | Delete
[4977] Fix | Delete
$additional_options["{$option_name}_text_color"] = array(
[4978] Fix | Delete
'label' => sprintf( $i18n['font']['color']['label'], $option_settings['label'] ),
[4979] Fix | Delete
'description' => esc_html__( 'Pick a color to be used for the button text.', 'et_builder' ),
[4980] Fix | Delete
'type' => 'color-alpha',
[4981] Fix | Delete
'option_category' => 'button',
[4982] Fix | Delete
'custom_color' => true,
[4983] Fix | Delete
'default' => '',
[4984] Fix | Delete
'tab_slug' => $tab_slug,
[4985] Fix | Delete
'toggle_slug' => $toggle_slug,
[4986] Fix | Delete
'depends_show_if' => 'on',
[4987] Fix | Delete
'hover' => 'tabs',
[4988] Fix | Delete
'mobile_options' => true,
[4989] Fix | Delete
);
[4990] Fix | Delete
[4991] Fix | Delete
$additional_options["{$option_name}_bg_color"] = array(
[4992] Fix | Delete
'label' => sprintf( esc_html__( '%1$s Background', 'et_builder' ), $option_settings['label'] ),
[4993] Fix | Delete
'description' => esc_html__( 'Adjust the background style of the button by customizing the background color, gradient, and image.', 'et_builder' ),
[4994] Fix | Delete
'type' => 'background-field',
[4995] Fix | Delete
'base_name' => "{$option_name}_bg",
[4996] Fix | Delete
'context' => "{$option_name}_bg_color",
[4997] Fix | Delete
'option_category' => 'button',
[4998] Fix | Delete
'custom_color' => true,
[4999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function