PluginProbe ʕ •ᴥ•ʔ
Nested Pages / 1.3.4
Nested Pages v1.3.4
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
Settings.php 11 years ago SettingsRepository.php 11 years ago
Settings.php
130 lines
1 <?php namespace NestedPages\Config;
2
3 use NestedPages\Helpers;
4 use NestedPages\Entities\User\UserRepository;
5 use NestedPages\Entities\PostType\PostTypeRepository;
6 use NestedPages\Config\SettingsRepository;
7
8 /**
9 * Plugin Settings
10 */
11 class Settings {
12
13 /**
14 * Nested Pages Menu
15 * @var object
16 */
17 private $menu;
18
19 /**
20 * User Repository
21 */
22 private $user_repo;
23
24 /**
25 * Post Types
26 */
27 private $post_types;
28
29 /**
30 * Settings Repository
31 */
32 private $settings;
33
34
35 public function __construct()
36 {
37 add_action( 'admin_menu', array( $this, 'registerSettingsPage' ) );
38 add_action( 'admin_init', array( $this, 'registerSettings' ) );
39 add_action( 'updated_option', array( $this, 'updateMenuName'), 10, 3);
40 $this->user_repo = new UserRepository;
41 $this->settings = new SettingsRepository;
42 }
43
44
45 /**
46 * Register the settings page
47 * @see admin_menu
48 */
49 public function registerSettingsPage()
50 {
51 add_options_page(
52 __('Nested Pages Settings', 'nestedpages'),
53 __('Nested Pages', 'nestedpages'),
54 'manage_options',
55 'nested-pages-settings',
56 array( $this, 'settingsPage' )
57 );
58 }
59
60
61 /**
62 * Register the settings
63 * @see admin_init
64 */
65 public function registerSettings()
66 {
67 register_setting( 'nestedpages-general', 'nestedpages_menu' );
68 register_setting( 'nestedpages-general', 'nestedpages_menusync' );
69 register_setting( 'nestedpages-general', 'nestedpages_ui' );
70 register_setting( 'nestedpages-general', 'nestedpages_allowsorting' );
71 register_setting( 'nestedpages-posttypes', 'nestedpages_posttypes' );
72 }
73
74
75 /**
76 * Update the menu name if option is updated
77 * @see updated_option in wp-includes/option.php
78 * @since 1.1.5
79 */
80 public function updateMenuName($option, $old_value, $value)
81 {
82 if ( $option == 'nestedpages_menu' ){
83
84 $menu = get_term_by('id', $old_value, 'nav_menu');
85 if ( $menu ) {
86 delete_option('nestedpages_menu'); // Delete the option to prevent infinite loop
87 update_option('nestedpages_menu', $old_value);
88 wp_update_term($menu->term_id, 'nav_menu', array(
89 'name' => $value,
90 'slug' => sanitize_title($value)
91 ));
92 }
93 }
94 }
95
96
97 /**
98 * Set the Menu Object
99 * @since 1.1.5
100 */
101 private function setMenu()
102 {
103 $menu_id = get_option('nestedpages_menu');
104 $this->menu = get_term_by('id', $menu_id, 'nav_menu');
105 }
106
107
108 /**
109 * Get Post Types
110 * @since 1.2.0
111 */
112 private function getPostTypes()
113 {
114 $post_repo = new PostTypeRepository;
115 return $post_repo->getPostTypesObject();
116 }
117
118
119 /**
120 * Display the Settings Page
121 * Callback for registerSettingsPage method
122 */
123 public function settingsPage()
124 {
125 $this->setMenu();
126 $tab = ( isset($_GET['tab']) ) ? $_GET['tab'] : 'general';
127 include( Helpers::view('settings/settings') );
128 }
129
130 }