refactor: add scrolling and shortcode settings groups
This commit is contained in:
parent
c0628bc7e3
commit
751fa9d614
6 changed files with 654 additions and 308 deletions
|
@ -10,9 +10,12 @@ declare(strict_types=1);
|
|||
|
||||
namespace footnotes\includes\settings\general;
|
||||
|
||||
require_once plugin_dir_path( __DIR__ ) . 'settings/class-settings-section.php';
|
||||
require_once plugin_dir_path( __DIR__ ) . 'class-settings-section.php';
|
||||
|
||||
use footnotes\includes\settings\SettingsSection;
|
||||
use footnotes\includes\settings\general\ReferenceContainerSettingsGroup;
|
||||
use footnotes\includes\settings\general\ScrollingSettingsGroup;
|
||||
use footnotes\includes\settings\general\ShortcodeSettingsGroup;
|
||||
|
||||
/**
|
||||
* Class defining general plugin settings.
|
||||
|
@ -20,7 +23,7 @@ use footnotes\includes\settings\general\ReferenceContainerSettingsGroup;
|
|||
* @package footnotes
|
||||
* @since 2.8.0
|
||||
*/
|
||||
class GeneralSettingsSection extends SettingsSection {
|
||||
class GeneralSettingsSection extends SettingsSection {
|
||||
/**
|
||||
* The groups of settings within this section.
|
||||
*
|
||||
|
@ -29,31 +32,36 @@ class GeneralSettingsSection extends SettingsSection {
|
|||
* @since 2.8.0
|
||||
*/
|
||||
protected array $settings_groups;
|
||||
|
||||
|
||||
public function __construct(
|
||||
$options_group_slug,
|
||||
$section_slug,
|
||||
$title
|
||||
) {
|
||||
$this->options_group_slug = $options_group_slug;
|
||||
$this->section_slug = $section_slug;
|
||||
$this->title = $title;
|
||||
|
||||
$this->section_slug = $section_slug;
|
||||
$this->title = $title;
|
||||
|
||||
$this->load_dependencies();
|
||||
|
||||
$this->add_settings_groups(get_option( $this->options_group_slug ));
|
||||
|
||||
$this->add_settings_groups( get_option( $this->options_group_slug ) );
|
||||
|
||||
$this->load_options_group();
|
||||
}
|
||||
|
||||
|
||||
protected function load_dependencies(): void {
|
||||
require_once plugin_dir_path( __DIR__ ) . 'settings/class-setting.php';
|
||||
require_once plugin_dir_path( __DIR__ ) . 'settings/general/class-reference-container-settings-group.php';
|
||||
parent::load_dependencies();
|
||||
|
||||
require_once plugin_dir_path( __DIR__ ) . 'general/class-reference-container-settings-group.php';
|
||||
require_once plugin_dir_path( __DIR__ ) . 'general/class-scrolling-settings-group.php';
|
||||
require_once plugin_dir_path( __DIR__ ) . 'general/class-shortcode-settings-group.php';
|
||||
}
|
||||
|
||||
|
||||
protected function add_settings_groups(): void {
|
||||
$this->settings_groups = array (
|
||||
ReferenceContainerSettingsGroup::GROUP_ID => new ReferenceContainerSettingsGroup($this->options_group_slug, $this->section_slug),
|
||||
$this->settings_groups = array(
|
||||
ReferenceContainerSettingsGroup::GROUP_ID => new ReferenceContainerSettingsGroup( $this->options_group_slug, $this->section_slug ),
|
||||
ScrollingSettingsGroup::GROUP_ID => new ScrollingSettingsGroup( $this->options_group_slug, $this->section_slug ),
|
||||
ShortcodeSettingsGroup::GROUP_ID => new ShortcodeSettingsGroup( $this->options_group_slug, $this->section_slug ),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue