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