2021-05-22 19:31:12 +01:00
< ? php
/**
* File providing the `CustomCSSSettingsSection` class .
*
* @ package footnotes
* @ since 2.8 . 0
*/
declare ( strict_types = 1 );
2021-05-30 07:40:40 +01:00
namespace footnotes\includes\settings\customcss ;
2021-05-22 19:31:12 +01:00
2021-08-08 17:45:07 +01:00
use footnotes\includes\Settings ;
2021-08-05 15:52:28 +01:00
use footnotes\includes\settings\SettingsSection ;
2021-05-22 19:31:12 +01:00
2021-08-08 15:01:01 +01:00
use footnotes\includes\settings\customcss\CustomCSSSettingsGroup ;
2021-05-22 19:31:12 +01:00
/**
* Class defining plugin referrer and tooltips settings .
*
* @ package footnotes
* @ since 2.8 . 0
*/
2021-08-09 11:48:58 +01:00
class CustomCSSSettingsSection extends SettingsSection {
2021-05-22 19:31:12 +01:00
/**
* The groups of settings within this section .
*
* @ var SettingsGroup []
*
* @ since 2.8 . 0
*/
protected array $settings_groups ;
2021-08-09 11:48:58 +01:00
2021-08-09 11:27:13 +01:00
/**
* Constructs the settings section .
*
2021-08-09 11:48:58 +01:00
* @ param string $options_group_slug The slug of the settings section ' s options group .
* @ param string $section_slug The slug of the settings section .
* @ param string $title The name of the settings section .
2021-08-09 11:27:13 +01:00
*
* @ since 2.8 . 0
*/
2021-05-22 19:31:12 +01:00
public function __construct (
$options_group_slug ,
$section_slug ,
2021-08-08 17:45:07 +01:00
$title ,
2021-08-09 11:48:58 +01:00
2021-08-08 17:45:07 +01:00
/**
* The plugin settings object .
*
* @ access private
* @ since 2.8 . 0
*/
private Settings $settings
2021-05-22 19:31:12 +01:00
) {
$this -> options_group_slug = $options_group_slug ;
2021-08-09 11:48:58 +01:00
$this -> section_slug = $section_slug ;
$this -> title = $title ;
2021-05-22 19:31:12 +01:00
$this -> load_dependencies ();
2021-08-09 11:48:58 +01:00
$this -> add_settings_groups ( get_option ( $this -> options_group_slug ) );
2021-05-22 19:31:12 +01:00
$this -> load_options_group ();
}
2021-08-09 11:27:13 +01:00
/**
* Load the required dependencies .
*
* Include the following files that provide the settings for this section :
*
* - { @ see SettingsSection } : defines a settings section ; and
* - { @ see CustomCSSSettingsGroup } .
*
* @ see SettingsSection :: load_dependencies ()
*/
2021-05-22 19:31:12 +01:00
protected function load_dependencies () : void {
2021-08-09 11:48:58 +01:00
parent :: load_dependencies ();
2021-08-09 11:27:13 +01:00
2021-08-09 11:48:58 +01:00
require_once plugin_dir_path ( __DIR__ ) . 'custom-css/class-customcsssettingsgroup.php' ;
2021-05-22 19:31:12 +01:00
}
2021-08-09 11:48:58 +01:00
2021-08-09 11:27:13 +01:00
/**
2021-08-09 11:48:58 +01:00
* Add the settings groups for this settings section .
*
2021-08-09 11:27:13 +01:00
* @ see SettingsSection :: add_settings_groups ()
*/
2021-05-22 19:31:12 +01:00
protected function add_settings_groups () : void {
2021-08-09 11:48:58 +01:00
$this -> settings_groups = array (
CustomCSSSettingsGroup :: GROUP_ID => new CustomCSSSettingsGroup ( $this -> options_group_slug , $this -> section_slug , $this -> settings ),
2021-05-22 19:31:12 +01:00
);
}
}