PluginProbe ʕ •ᴥ•ʔ
Nested Pages / trunk
Nested Pages vtrunk
3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 trunk 1.0 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.3.0 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.2 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.3.1 1.6.3.2 1.6.4 1.6.5 1.6.5.1 1.6.5.2 1.6.6 1.6.7 1.6.8 1.7.0 1.7.1 2.0.1 2.0.2 2.0.3 2.0.4 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.20 3.1.21 3.1.22 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7
wp-nested-pages / app / Config / Settings.php
wp-nested-pages / app / Config Last commit date
AdminMenuSettings.php 4 years ago Settings.php 1 year ago SettingsRepository.php 3 years ago
Settings.php
136 lines
1 <?php
2 namespace NestedPages\Config;
3
4 use NestedPages\Helpers;
5 use NestedPages\Entities\User\UserRepository;
6 use NestedPages\Entities\PostType\PostTypeRepository;
7 use NestedPages\Config\SettingsRepository;
8 use NestedPages\Entities\PluginIntegration\IntegrationFactory;
9 use NestedPages\Entities\Listing\ListingRepository;
10 use NestedPages\Entities\Post\PostRepository;
11
12 /**
13 * Plugin Settings
14 */
15 class Settings
16 {
17 /**
18 * Nested Pages Menu
19 * @var object
20 */
21 private $menu;
22
23 /**
24 * User Repository
25 */
26 private $user_repo;
27
28 /**
29 * Post Type Repository
30 */
31 private $post_type_repo;
32
33 /**
34 * Post Types
35 */
36 private $post_types;
37
38 /**
39 * Settings Repository
40 */
41 private $settings;
42
43 /**
44 * Plugin Integration
45 */
46 private $integrations;
47
48 /**
49 * Listing Repository
50 */
51 private $listing_repo;
52
53 /**
54 * Post Repository
55 */
56 private $post_repo;
57
58 /**
59 * Admin Menu Settings
60 */
61 private $admin_menu_settings;
62
63 public function __construct()
64 {
65 add_action( 'admin_menu', [$this, 'registerSettingsPage' ]);
66 add_action( 'admin_init', [$this, 'registerSettings']);
67 $this->user_repo = new UserRepository;
68 $this->settings = new SettingsRepository;
69 $this->post_type_repo = new PostTypeRepository;
70 $this->integrations = new IntegrationFactory;
71 $this->listing_repo = new ListingRepository;
72 $this->post_repo = new PostRepository;
73 }
74
75 /**
76 * Register the settings page
77 * @see admin_menu
78 */
79 public function registerSettingsPage()
80 {
81 add_options_page(
82 __('Nested Pages Settings', 'wp-nested-pages'),
83 __('Nested Pages', 'wp-nested-pages'),
84 'manage_options',
85 'nested-pages-settings',
86 [$this, 'settingsPage']
87 );
88 }
89
90 /**
91 * Register the settings
92 * @see admin_init
93 */
94 public function registerSettings()
95 {
96 register_setting( 'nestedpages-general', 'nestedpages_menu' );
97 register_setting( 'nestedpages-general', 'nestedpages_menusync' );
98 register_setting( 'nestedpages-general', 'nestedpages_disable_menu' );
99 register_setting( 'nestedpages-general', 'nestedpages_ui' );
100 register_setting( 'nestedpages-general', 'nestedpages_allowsorting' );
101 register_setting( 'nestedpages-general', 'nestedpages_allowsortview' );
102 register_setting( 'nestedpages-posttypes', 'nestedpages_posttypes' );
103 register_setting( 'nestedpages-admincustomization', 'nestedpages_admin' );
104 }
105
106 /**
107 * Set the Menu Object
108 * @since 1.1.5
109 */
110 private function setMenu()
111 {
112 $menu_id = get_option('nestedpages_menu');
113 $this->menu = get_term_by('id', $menu_id, 'nav_menu');
114 }
115
116 /**
117 * Get Post Types
118 * @since 1.2.0
119 */
120 private function getPostTypes()
121 {
122 return $this->post_type_repo->getPostTypesObject();
123 }
124
125 /**
126 * Display the Settings Page
127 * Callback for registerSettingsPage method
128 */
129 public function settingsPage()
130 {
131 $this->setMenu();
132 $tab = ( isset($_GET['tab']) ) ? sanitize_file_name($_GET['tab']) : 'general';
133 include( Helpers::view('settings/settings') );
134 }
135 }
136