ams["group_selector"] = $groupSelectorName; $this->addRangeSlider($widthName, $widthDefault, __("Stroke Width", "unlimited-elements-for-elementor"), $params); // group selector $groupSelector = self::SELECTOR_PLACEHOLDER; $groupSelectorValue = HelperHtmlUC::getCSSSelectorValueByParam(UniteCreatorDialogParam::PARAM_TEXTSTROKE); $groupSelectorReplace = array( "{{WIDTH}}" => $widthName, "{{COLOR}}" => $colorName, ); $this->addGroupSelector($groupSelectorName, $groupSelector, $groupSelectorValue, $groupSelectorReplace); } /** * add box shadow dialog settings */ private function addBoxShadowDialogSettings(){ $type = UniteCreatorDialogParam::PARAM_BOXSHADOW; $groupSelectorName = $type . "_group"; // color $colorName = "color"; $params = array(); $params["group_selector"] = $groupSelectorName; $this->addColorPicker($colorName, "", __("Color", "unlimited-elements-for-elementor"), $params); // x $xName = "x"; $xDefault = 0; $params = array(); $params["min"] = -100; $params["max"] = 100; $params["step"] = 1; $params["units"] = array("px"); $params["group_selector"] = $groupSelectorName; $this->addRangeSlider($xName, $xDefault, __("Horizontal", "unlimited-elements-for-elementor"), $params); // y $yName = "y"; $yDefault = 0; $params = array(); $params["min"] = -100; $params["max"] = 100; $params["step"] = 1; $params["units"] = array("px"); $params["group_selector"] = $groupSelectorName; $this->addRangeSlider($yName, $yDefault, __("Vertical", "unlimited-elements-for-elementor"), $params); // blur $blurName = "blur"; $blurDefault = 10; $params = array(); $params["min"] = 0; $params["max"] = 100; $params["step"] = 1; $params["units"] = array("px"); $params["group_selector"] = $groupSelectorName; $this->addRangeSlider($blurName, $blurDefault, __("Blur", "unlimited-elements-for-elementor"), $params); // spread $spreadName = "spread"; $spreadDefault = 0; $params = array(); $params["min"] = -100; $params["max"] = 100; $params["step"] = 1; $params["units"] = array("px"); $params["group_selector"] = $groupSelectorName; $this->addRangeSlider($spreadName, $spreadDefault, __("Spread", "unlimited-elements-for-elementor"), $params); // position $positions = array_flip(array( " " => __("Outline", "unlimited-elements-for-elementor"), "inset" => __("Inset", "unlimited-elements-for-elementor"), )); $positionName = "position"; $positionDefault = " "; $params = array(); $params["group_selector"] = $groupSelectorName; $this->addSelect($positionName, $positions, __("Position", "unlimited-elements-for-elementor"), $positionDefault, $params); // group selector $groupSelector = self::SELECTOR_PLACEHOLDER; $groupSelectorValue = HelperHtmlUC::getCSSSelectorValueByParam(UniteCreatorDialogParam::PARAM_BOXSHADOW); $groupSelectorReplace = array( "{{X}}" => $xName, "{{Y}}" => $yName, "{{BLUR}}" => $blurName, "{{SPREAD}}" => $spreadName, "{{COLOR}}" => $colorName, "{{POSITION}}" => $positionName, ); $this->addGroupSelector($groupSelectorName, $groupSelector, $groupSelectorValue, $groupSelectorReplace); } /** * add css filters dialog settings */ private function addCssFiltersDialogSettings(){ $type = UniteCreatorDialogParam::PARAM_CSS_FILTERS; $groupSelectorName = $type . "_group"; // blur $blurName = "blur"; $blurDefault = 0; $params = array(); $params["min"] = 0; $params["max"] = 10; $params["step"] = 0.1; $params["units"] = array("px"); $params["group_selector"] = $groupSelectorName; $this->addRangeSlider($blurName, $blurDefault, __("Blur", "unlimited-elements-for-elementor"), $params); // brightness $brightnessName = "brightness"; $brightnessDefault = 100; $params = array(); $params["min"] = 0; $params["max"] = 200; $params["step"] = 1; $params["units"] = array("%"); $params["group_selector"] = $groupSelectorName; $this->addRangeSlider($brightnessName, $brightnessDefault, __("Brightness", "unlimited-elements-for-elementor"), $params); // contrast $contrastName = "contrast"; $contrastDefault = 100; $params = array(); $params["min"] = 0; $params["max"] = 200; $params["step"] = 1; $params["units"] = array("%"); $params["group_selector"] = $groupSelectorName; $this->addRangeSlider($contrastName, $contrastDefault, __("Contrast", "unlimited-elements-for-elementor"), $params); // saturation $saturationName = "saturation"; $saturationDefault = 100; $params = array(); $params["min"] = 0; $params["max"] = 200; $params["step"] = 1; $params["units"] = array("%"); $params["group_selector"] = $groupSelectorName; $this->addRangeSlider($saturationName, $saturationDefault, __("Saturation", "unlimited-elements-for-elementor"), $params); // hue $hueName = "hue"; $hueDefault = 0; $params = array(); $params["min"] = 0; $params["max"] = 360; $params["step"] = 1; $params["units"] = array("deg"); $params["group_selector"] = $groupSelectorName; $this->addRangeSlider($hueName, $hueDefault, __("Hue", "unlimited-elements-for-elementor"), $params); // group selector $groupSelector = self::SELECTOR_PLACEHOLDER; $groupSelectorValue = HelperHtmlUC::getCSSSelectorValueByParam(UniteCreatorDialogParam::PARAM_CSS_FILTERS); $groupSelectorReplace = array( "{{BLUR}}" => $blurName, "{{BRIGHTNESS}}" => $brightnessName, "{{CONTRAST}}" => $contrastName, "{{SATURATE}}" => $saturationName, "{{HUE}}" => $hueName, ); $this->addGroupSelector($groupSelectorName, $groupSelector, $groupSelectorValue, $groupSelectorReplace); } public function loadXMLFile($filepath, $loadedSettingsType = null){ parent::loadXMLFile($filepath, $loadedSettingsType); } /** * Add advanced */ public function ensureAdvancedFields($debug = '') { $advancedSaps = [ '__uc_adv_layout__' => 'Layout', '__uc_adv_border__' => 'Border', '__uc_adv_background__' => 'Background', '__uc_adv_responsive__' => 'Responsive', ]; foreach ($advancedSaps as $name => $title) { $sapKey = $this->getSapKeyByName($name); if ($sapKey === null) { $this->addSap($title, $name, self::TAB_ADVANCED); } } // ===================== LAYOUT ===================== $sapKey = $this->getSapKeyByName('__uc_adv_layout__'); $this->currentSapKey = $sapKey; // Margin (live) if (!$this->isSettingExist('advanced_margin')) { $this->add( 'advanced_margin', [ 'top' => '0', 'right' => '0', 'bottom' => '0', 'left' => '0', 'unit' => 'px', 'is_linked' => true ], esc_html__('Margin','unlimited-elements-for-elementor'), self::TYPE_DIMENTIONS, [ 'label_block' => true, 'tab' => self::TAB_ADVANCED, 'is_responsive' => true, 'responsive_type' => 'desktop', 'responsive_id' => 'advanced_margin', 'units' => ['px','vh','%','em','rem'], 'selector' => '', 'selector_value' => 'margin-top:{{top}}!important;margin-right:{{right}}!important;margin-bottom:{{bottom}}!important;margin-left:{{left}}!important;', ] ); } // Padding (live) if (!$this->isSettingExist('advanced_padding')) { $this->add( 'advanced_padding', [ 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', 'unit' => 'px', 'is_linked' => true ], esc_html__('Padding','unlimited-elements-for-elementor'), self::TYPE_DIMENTIONS, [ 'label_block' => true, 'tab' => self::TAB_ADVANCED, 'is_responsive' => true, 'responsive_type' => 'desktop', 'responsive_id' => 'advanced_padding', 'units' => ['px','vh','%','em','rem'], 'selector' => '', 'selector_value' => 'padding-top:{{top}}!important;padding-right:{{right}}!important;padding-bottom:{{bottom}}!important;padding-left:{{left}}!important;', ] ); } // CSS ID if (!$this->isSettingExist('advanced_css_id')) { $this->add( 'advanced_css_id', '', esc_html__('CSS ID','unlimited-elements-for-elementor'), self::TYPE_TEXT, ['tab' => self::TAB_ADVANCED] ); } // CSS Classes if (!$this->isSettingExist('advanced_css_classes')) { $this->add( 'advanced_css_classes', '', esc_html__('CSS Classes','unlimited-elements-for-elementor'), self::TYPE_TEXT, ['tab' => self::TAB_ADVANCED] ); } // Z-Index if (!$this->isSettingExist('advanced_z_index')) { $this->add( 'advanced_z_index', [1, 'unit' => ''], esc_html__('Z-Index','unlimited-elements-for-elementor'), self::TYPE_RANGE, [ 'tab' => self::TAB_ADVANCED, 'is_responsive' => true, 'responsive_type' => 'desktop', 'min' => -1, 'max' => 999, 'step' => 1, 'unit' => '', 'show_slider' => false, 'selector' => '', 'selector_value' => 'z-index:{{value}};', ] ); } // Responsive Switchers $responsive_types = [ 'advanced_hide_on_desktop' => 'Hide On Desktop', 'advanced_hide_on_tablet' => 'Hide On Tablet Portrait', 'advanced_hide_on_mobile' => 'Hide On Mobile Portrait' ]; $sapKey = $this->getSapKeyByName('__uc_adv_responsive__'); $this->currentSapKey = $sapKey; foreach($responsive_types as $name => $label) { if (!$this->isSettingExist($name)) { $this->add( $name, 0, esc_html__($label,'unlimited-elements-for-elementor'), self::TYPE_SWITCHER, [ 'tab' => self::TAB_ADVANCED, 'items' => [0, 1], 'selector' => '', ] ); } } // ===================== BACKGROUND ===================== $sapKey = $this->getSapKeyByName('__uc_adv_background__'); $this->currentSapKey = $sapKey; if (!$this->isSettingExist('advanced_background_type')) { $bgTypes = array_flip([ 'none' => __('None', 'unlimited-elements-for-elementor'), 'solid' => __('Solid', 'unlimited-elements-for-elementor'), 'gradient' => __('Gradient', 'unlimited-elements-for-elementor'), ]); $this->addSelect( 'advanced_background_type', $bgTypes, esc_html__('Background Type','unlimited-elements-for-elementor'), 'none', [ 'tab' => self::TAB_ADVANCED, 'selector' => '', 'selector_value' => 'data-bg-type:{{value}};', ] ); } if (!$this->isSettingExist('advanced_background_color')) { $this->addColorPicker( 'advanced_background_color', '', esc_html__('Background Color','unlimited-elements-for-elementor'), [ 'tab' => self::TAB_ADVANCED, 'elementor_condition' => ['advanced_background_type' => 'solid'], 'selector' => '', 'selector_value' => 'background-color:{{value}};', ] ); } if (!$this->isSettingExist('advanced_background_image')) { $this->addImage( 'advanced_background_image', '', esc_html__('Background Image','unlimited-elements-for-elementor'), [ 'tab' => self::TAB_ADVANCED, 'elementor_condition' => ['advanced_background_type' => 'solid'], 'selector' => '', 'selector_value' => 'background-image:url({{value}}); background-size:cover; background-repeat:no-repeat;', ] ); } if (!$this->isSettingExist('advanced_background_gradient_color1')) { $this->addColorPicker( 'advanced_background_gradient_color1', '#000000', esc_html__('Gradient Color 1','unlimited-elements-for-elementor'), [ 'tab' => self::TAB_ADVANCED, 'elementor_condition' => ['advanced_background_type' => 'gradient'], 'selector' => '', 'selector_value' => 'background-image:linear-gradient({{advanced_background_gradient_angle}}deg, {{value}}, {{advanced_background_gradient_color2}});', ] ); } if (!$this->isSettingExist('advanced_background_gradient_color2')) { $this->addColorPicker( 'advanced_background_gradient_color2', '#ffffff', esc_html__('Gradient Color 2','unlimited-elements-for-elementor'), [ 'tab' => self::TAB_ADVANCED, 'elementor_condition' => ['advanced_background_type' => 'gradient'], 'selector' => '', 'selector_value' => 'background-image:linear-gradient({{advanced_background_gradient_angle}}deg, {{advanced_background_gradient_color1}}, {{value}});', ] ); } if (!$this->isSettingExist('advanced_background_gradient_angle')) { $this->add( 'advanced_background_gradient_angle', 180, esc_html__('Gradient Angle','unlimited-elements-for-elementor'), self::TYPE_RANGE, [ 'tab' => self::TAB_ADVANCED, 'elementor_condition' => ['advanced_background_type' => 'gradient'], 'min' => 0, 'max' => 360, 'step' => 1, 'units' => '', 'show_slider' => true, 'selector' => '', 'selector_value' => 'background-image:linear-gradient({{value}}deg, {{advanced_background_gradient_color1}}, {{advanced_background_gradient_color2}});', ] ); } // ===================== BORDER ===================== $sapKey = $this->getSapKeyByName('__uc_adv_border__'); $this->currentSapKey = $sapKey; if (!$this->isSettingExist('advanced_border_type')) { $borderTypes = array_flip([ '' => __('Default', 'unlimited-elements-for-elementor'), 'none' => __('None', 'unlimited-elements-for-elementor'), 'solid' => __('Solid', 'unlimited-elements-for-elementor'), 'dashed' => __('Dashed', 'unlimited-elements-for-elementor'), 'dotted' => __('Dotted', 'unlimited-elements-for-elementor'), 'double' => __('Double', 'unlimited-elements-for-elementor'), 'groove' => __('Groove', 'unlimited-elements-for-elementor'), ]); $this->addSelect( 'advanced_border_type', $borderTypes, esc_html__('Border Type','unlimited-elements-for-elementor'), '', [ 'tab' => self::TAB_ADVANCED, 'selector' => '', 'selector_value' => 'border-style:{{value}};', ] ); } $borderTypeCondition = ['advanced_border_type!' => ['', 'none']]; if (!$this->isSettingExist('advanced_border_width')) { $this->add( 'advanced_border_width', ['top'=>'','right'=>'','bottom'=>'','left'=>'','unit'=>'px','is_linked'=>true], esc_html__('Border Width','unlimited-elements-for-elementor'), self::TYPE_DIMENTIONS, [ 'tab' => self::TAB_ADVANCED, 'label_block' => true, 'is_responsive' => true, 'responsive_type' => 'desktop', 'responsive_id' => 'advanced_border_width', 'units' => ['px','%','em','rem'], 'elementor_condition' => $borderTypeCondition, 'selector' => '', 'selector_value' => 'border-top-width:{{top}};' . 'border-right-width:{{right}};' . 'border-bottom-width:{{bottom}};' . 'border-left-width:{{left}};', ] ); } if (!$this->isSettingExist('advanced_border_width_tablet')) { $this->add( 'advanced_border_width_tablet', ['top'=>'','right'=>'','bottom'=>'','left'=>'','unit'=>'px','is_linked'=>true], esc_html__('Border Width (Tablet)','unlimited-elements-for-elementor'), self::TYPE_DIMENTIONS, [ 'tab' => self::TAB_ADVANCED, 'label_block' => true, 'is_responsive' => true, 'responsive_type' => 'tablet', 'responsive_id' => 'advanced_border_width_tablet', 'units' => ['px','%','em','rem'], 'elementor_condition' => $borderTypeCondition, 'selector' => '', 'selector_value' => 'border-top-width:{{top}}{{unit}};' . 'border-right-width:{{right}}{{unit}};' . 'border-bottom-width:{{bottom}}{{unit}};' . 'border-left-width:{{left}}{{unit}};', ] ); } if (!$this->isSettingExist('advanced_border_width_mobile')) { $this->add( 'advanced_border_width_mobile', ['top'=>'','right'=>'','bottom'=>'','left'=>'','unit'=>'px','is_linked'=>true], esc_html__('Border Width (Mobile)','unlimited-elements-for-elementor'), self::TYPE_DIMENTIONS, [ 'tab' => self::TAB_ADVANCED, 'label_block' => true, 'is_responsive' => true, 'responsive_type' => 'mobile', 'responsive_id' => 'advanced_border_width_mobile', 'units' => ['px','%','em','rem'], 'elementor_condition' => $borderTypeCondition, 'selector' => '', 'selector_value' => 'border-top-width:{{top}}{{unit}};' . 'border-right-width:{{right}}{{unit}};' . 'border-bottom-width:{{bottom}}{{unit}};' . 'border-left-width:{{left}}{{unit}};', ] ); } if (!$this->isSettingExist('advanced_border_color')) { $this->addColorPicker( 'advanced_border_color', '', esc_html__('Border Color','unlimited-elements-for-elementor'), [ 'tab' => self::TAB_ADVANCED, 'elementor_condition' => $borderTypeCondition, 'selector' => '', 'selector_value' => 'border-color:{{value}};', ] ); } } }