__('Global Settings'), 'menu' => [ 'icon' => 'fa fa-cogs', 'beforeItem' => 'elementor-settings', ], ]; } /** * Get controls list. * * Retrieve the global settings model controls list. * * @since 1.6.0 * @access public * @static * * @return array Controls list. */ public static function getControlsList() { return [ ControlsManager::TAB_STYLE => [ 'style' => [ 'label' => __('Style'), 'controls' => [ 'elementor_default_generic_fonts' => [ 'label' => __('Default Generic Fonts'), 'type' => ControlsManager::TEXT, 'default' => 'Sans-serif', 'description' => __('The list of fonts used if the chosen font is not available.'), 'label_block' => true, ], 'elementor_container_width' => [ 'label' => __('Content Width') . ' (px)', 'type' => ControlsManager::NUMBER, 'min' => 300, 'description' => __('Sets the default width of the content area (Default: 1140)'), 'selectors' => [ '.elementor-section.elementor-section-boxed > .elementor-container' => 'max-width: {{VALUE}}px', ], ], 'elementor_space_between_widgets' => [ 'label' => __('Widgets Space') . ' (px)', 'type' => ControlsManager::NUMBER, 'min' => 0, 'placeholder' => '20', 'description' => __('Sets the default space between widgets (Default: 20)'), 'selectors' => [ '.elementor-widget:not(:last-child)' => 'margin-bottom: {{VALUE}}px', ], ], 'elementor_stretched_section_container' => [ 'label' => __('Stretched Section Fit To'), 'type' => ControlsManager::TEXT, 'placeholder' => 'body', 'description' => __('Enter parent element selector to which stretched sections will fit to (e.g. #primary / .wrapper / main etc). Leave blank to fit to page width.'), 'label_block' => true, 'frontend_available' => true, ], 'elementor_page_title_selector' => [ 'label' => __('Page Title Selector'), 'type' => ControlsManager::TEXTAREA, 'rows' => 1, 'placeholder' => 'header.page-header', 'description' => sprintf( __("You can hide the title at document settings. This works for themes that have ā€%sā€ selector. If your theme's selector is different, please enter it above."), 'header.page-header' ), 'label_block' => true, ], 'elementor_page_wrapper_selector' => [ 'label' => __('Content Wrapper Selector'), 'type' => ControlsManager::TEXTAREA, 'rows' => 3, 'placeholder' => '#content, #wrapper, #wrapper .container', 'description' => sprintf( __("You can clear margin, padding, max-width from content wrapper at document settings. This works for themes that have ā€%sā€ selector. If your theme's selector is different, please enter it above."), '#content, #wrapper, #wrapper .container' ), 'label_block' => true, ], ], ], ], Manager::PANEL_TAB_LIGHTBOX => [ 'lightbox' => [ 'label' => __('Lightbox'), 'controls' => [ 'elementor_global_image_lightbox' => [ 'label' => __('Image Lightbox'), 'type' => ControlsManager::SWITCHER, 'return_value' => '1', 'description' => __('Open all image links in a lightbox popup window. The lightbox will automatically work on any link that leads to an image file.'), 'frontend_available' => true, ], 'elementor_enable_lightbox_in_editor' => [ 'label' => __('Enable In Editor'), 'type' => ControlsManager::SWITCHER, 'default' => 'yes', 'frontend_available' => true, ], 'elementor_lightbox_enable_counter' => [ 'label' => __('Counter'), 'type' => ControlsManager::SWITCHER, 'default' => 'yes', 'frontend_available' => true, ], 'elementor_lightbox_enable_zoom' => [ 'label' => __('Zoom'), 'type' => ControlsManager::SWITCHER, 'default' => 'yes', 'frontend_available' => true, ], 'elementor_lightbox_title_src' => [ 'label' => __('Title'), 'type' => ControlsManager::SELECT, 'options' => [ '' => __('None'), 'title' => __('Title'), 'caption' => __('Caption'), 'alt' => __('Alt'), // 'description' => __('Description'), ], 'default' => 'title', 'frontend_available' => true, ], 'elementor_lightbox_description_src' => [ 'label' => __('Description'), 'type' => ControlsManager::SELECT, 'options' => [ '' => __('None'), 'title' => __('Title'), 'caption' => __('Caption'), 'alt' => __('Alt'), // 'description' => __('Description'), ], 'default' => 'caption', 'frontend_available' => true, ], 'elementor_lightbox_color' => [ 'label' => __('Background Color'), 'type' => ControlsManager::COLOR, 'selectors' => [ '.elementor-lightbox' => 'background-color: {{VALUE}}', ], ], 'elementor_lightbox_ui_color' => [ 'label' => __('UI Color'), 'type' => ControlsManager::COLOR, 'selectors' => [ '.elementor-lightbox' => '--lightbox-ui-color: {{VALUE}}', ], ], 'elementor_lightbox_ui_color_hover' => [ 'label' => __('UI Hover Color'), 'type' => ControlsManager::COLOR, 'selectors' => [ '.elementor-lightbox' => '--lightbox-ui-color-hover: {{VALUE}}', ], ], 'elementor_lightbox_text_color' => [ 'label' => __('Text Color'), 'type' => ControlsManager::COLOR, 'selectors' => [ '.elementor-lightbox' => '--lightbox-text-color: {{VALUE}}', ], ], 'lightbox_box_shadow_type' => [ 'label' => _x('Box Shadow', 'Box Shadow Control'), 'type' => ControlsManager::POPOVER_TOGGLE, 'return_value' => 'yes', 'render_type' => 'ui', ], 'lightbox_box_shadow' => [ 'label' => _x('Box Shadow', 'Box Shadow Control'), 'type' => ControlsManager::BOX_SHADOW, 'default' => [ 'horizontal' => 0, 'vertical' => 0, 'blur' => 10, 'spread' => 0, 'color' => 'rgba(0,0,0,0.5)', ], 'selectors' => [ '.elementor-lightbox .elementor-lightbox-image' => 'box-shadow: {{HORIZONTAL}}px {{VERTICAL}}px {{BLUR}}px {{SPREAD}}px {{COLOR}} {{lightbox_box_shadow_position.VALUE}};', ], 'condition' => [ 'lightbox_box_shadow_type!' => '', ], 'popover' => [ 'start' => true, ], ], 'lightbox_box_shadow_position' => [ 'label' => 'Position', 'type' => ControlsManager::SELECT, 'options' => [ ' ' => 'Outline', 'inset' => 'Inset', ], 'default' => ' ', 'render_type' => 'ui', 'condition' => [ 'lightbox_box_shadow_type!' => '', ], 'popover' => [ 'end' => true, ], ], 'lightbox_icons_size' => [ 'label' => __('Toolbar Icons Size'), 'type' => ControlsManager::SLIDER, 'selectors' => [ '.elementor-lightbox' => '--lightbox-header-icons-size: {{SIZE}}{{UNIT}}', ], 'separator' => 'before', ], 'lightbox_slider_icons_size' => [ 'label' => __('Navigation Icons Size'), 'type' => ControlsManager::SLIDER, 'selectors' => [ '.elementor-lightbox' => '--lightbox-navigation-icons-size: {{SIZE}}{{UNIT}}', ], ], ], ], ], ]; } /** * Register model controls. * * Used to add new controls to the global settings model. * * @since 1.6.0 * @access protected */ protected function _registerControls() { $controls_list = self::getControlsList(); foreach ($controls_list as $tab_name => $sections) { foreach ($sections as $section_name => $section_data) { $this->startControlsSection( $section_name, [ 'label' => $section_data['label'], 'tab' => $tab_name, ] ); foreach ($section_data['controls'] as $control_name => $control_data) { $this->addControl($control_name, $control_data); } $this->endControlsSection(); } } } }