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 / SettingsRepository.php
wp-nested-pages / app / Config Last commit date
AdminMenuSettings.php 4 years ago Settings.php 2 years ago SettingsRepository.php 3 years ago
SettingsRepository.php
265 lines
1 <?php
2 namespace NestedPages\Config;
3
4 use NestedPages\Entities\PostType\PostTypeRepository;
5
6 class SettingsRepository
7 {
8 /**
9 * Is the Datepicker UI option enabled
10 * @return boolean
11 */
12 public function datepickerEnabled()
13 {
14 $option = get_option('nestedpages_ui', false);
15 if ( $option && isset($option['datepicker']) && $option['datepicker'] == 'true' ) return true;
16 return false;
17 }
18
19 /**
20 * Is the Classic (non-indented) display option enabled
21 * @return boolean
22 */
23 public function nonIndentEnabled()
24 {
25 $option = get_option('nestedpages_ui', false);
26 if ( $option && isset($option['non_indent']) && $option['non_indent'] == 'true' ) return true;
27 return false;
28 }
29
30
31 /**
32 * Is the Menu Sync Option Visible
33 */
34 public function hideMenuSync()
35 {
36 $option = get_option('nestedpages_ui', false);
37 $visible = ( $option && isset($option['hide_menu_sync']) && $option['hide_menu_sync'] == 'true' ) ? true : false;
38 return apply_filters('nestedpages_menu_sync_visible', $visible);
39 }
40
41 /**
42 * Is menu sync enabled?
43 */
44 public function menuSyncEnabled()
45 {
46 $option = get_option('nestedpages_menusync');
47 $enabled = ( $option == 'sync' ) ? true : false;
48 return apply_filters('nestedpages_menu_sync_enabled', $enabled);
49 }
50
51 /**
52 * Is AJAX menu sync disabled?
53 */
54 public function autoMenuDisabled()
55 {
56 $option = get_option('nestedpages_ui', false);
57 $enabled = ( $option && isset($option['manual_menu_sync']) && $option['manual_menu_sync'] == 'true' ) ? true : false;
58 return apply_filters('nestedpages_menu_autosync_enabled', $enabled);
59 }
60
61 /**
62 * Are private pages viewable in the menu
63 */
64 public function privateMenuEnabled()
65 {
66 $option = get_option('nestedpages_ui', false);
67 $enabled = ( $option && isset($option['include_private']) && $option['include_private'] == 'true' ) ? true : false;
68 return apply_filters('nestedpages_menu_private_enabled', $enabled);
69 }
70
71 /**
72 * Is AJAX page order disabled?
73 */
74 public function autoPageOrderDisabled()
75 {
76 $option = get_option('nestedpages_ui', false);
77 if ( $option && isset($option['manual_page_order_sync']) && $option['manual_page_order_sync'] == 'true' ) return true;
78 return false;
79 }
80
81 /**
82 * Should new pages default to "hide in nav menu"
83 */
84 public function defaultHideInNav()
85 {
86 $option = get_option('nestedpages_ui', false);
87 if ( $option && isset($option['menu_sync_default_hide']) && $option['menu_sync_default_hide'] == 'true' ) return true;
88 return false;
89 }
90
91 /**
92 * Are menus completely disabled?
93 * @return boolean
94 */
95 public function menusDisabled()
96 {
97 $option = get_option('nestedpages_disable_menu');
98 $disabled = ( $option && $option == 'true' ) ? true : false;
99 return apply_filters('nestedpages_menus_disabled', $disabled);
100 }
101
102 /**
103 * Array of configurable standard fields
104 * @return array
105 */
106 public function standardFields($post_type)
107 {
108 $post_type_repo = new PostTypeRepository;
109
110 $fields = [
111 'title' => __('Post Title', 'wp-nested-pages'),
112 'slug' => __('Slug', 'wp-nested-pages'),
113 'date' => __('Post Date', 'wp-nested-pages'),
114 'author' => __('Author', 'wp-nested-pages'),
115 'status' => __('Post Status', 'wp-nested-pages'),
116 'password' => __('Password/Private', 'wp-nested-pages'),
117 'allow_comments' => __('Allow Comments', 'wp-nested-pages')
118 ];
119
120 if ( $post_type == 'page' ) {
121 $fields['template'] = __('Template', 'wp-nested-pages');
122 $fields['menu_options'] = __('Menu Options', 'wp-nested-pages');
123 }
124
125 $fields['hide_in_np'] = __('Hide in Nested Pages', 'wp-nested-pages');
126
127 // Taxonomies
128 $enabled_h_taxonomies = $post_type_repo->getTaxonomies($post_type);
129 $enabled_f_taxonomies = $post_type_repo->getTaxonomies($post_type, false);
130 $enabled_taxonomies = array_merge($enabled_h_taxonomies, $enabled_f_taxonomies);
131 if ( empty($enabled_taxonomies) ) return $fields;
132
133 $fields['hide_taxonomies'] = __('Taxonomies', 'wp-nested-pages');
134 $fields['taxonomies'] = [];
135 foreach($enabled_taxonomies as $taxonomy){
136 $fields['taxonomies'][$taxonomy->name] = $taxonomy->labels->name;
137 }
138
139 return $fields;
140 }
141
142 /**
143 * Get All Image Sizes Available in the theme
144 */
145 public function getImageSizes()
146 {
147 global $_wp_additional_image_sizes;
148 $sizes = [];
149 foreach ( get_intermediate_image_sizes() as $_size ) {
150 if ( in_array( $_size, ['thumbnail', 'medium', 'medium_large', 'large'] ) ) {
151 $sizes[ $_size ]['width'] = get_option( "{$_size}_size_w" );
152 $sizes[ $_size ]['height'] = get_option( "{$_size}_size_h" );
153 $sizes[ $_size ]['crop'] = (bool) get_option( "{$_size}_crop" );
154 } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
155 $sizes[ $_size ] = [
156 'width' => $_wp_additional_image_sizes[ $_size ]['width'],
157 'height' => $_wp_additional_image_sizes[ $_size ]['height'],
158 'crop' => $_wp_additional_image_sizes[ $_size ]['crop'],
159 ];
160 }
161 }
162 return $sizes;
163 }
164
165 /**
166 * Get a specific image/thumbnail size
167 */
168 public function getImageSize($size)
169 {
170 $sizes = $this->getImageSizes();
171 if ( isset( $sizes[ $size ] ) ) return $sizes[ $size ];
172 return false;
173 }
174
175 /**
176 * Admin Customization
177 */
178 public function adminCustomEnabled($enabled)
179 {
180 $option = get_option('nestedpages_admin');
181 if ( !isset($option[$enabled]) ) return false;
182 return $option[$enabled];
183 }
184
185 /**
186 * Hidden Menu Items
187 */
188 public function adminMenuHidden($role = 'administrator')
189 {
190 $roles = $this->adminCustomEnabled('nav_menu_options');
191 if ( !$roles ) return;
192 $hidden = array();
193 if ( !isset($roles[$role]) ) return;
194 foreach($roles[$role] as $key => $options){
195 if ( isset($options['hidden']) ) $hidden[] = $options['hidden'];
196 }
197 return $hidden;
198 }
199
200 /**
201 * Reset all plugin settings
202 */
203 public function resetSettings()
204 {
205 $options = [
206 'nested_pages_custom_fields_hidden',
207 'nestedpages_allowsorting',
208 'nestedpages_disable_menu',
209 'nestedpages_menu',
210 'nestedpages_menusync',
211 'nestedpages_posttypes',
212 'nestedpages_ui',
213 'nestedpages_version',
214 'nestedpages_admin'
215 ];
216 foreach($options as $option){
217 delete_option($option);
218 }
219 }
220
221 /**
222 * Reset admin menu customizations
223 */
224 public function resetAdminMenuSettings()
225 {
226 $options = [
227 'nestedpages_admin'
228 ];
229 foreach($options as $option){
230 delete_option($option);
231 }
232 }
233
234 /**
235 * Get the Menu Name
236 * @return term obj
237 */
238 public function getMenuTerm()
239 {
240 $menu_id = get_option('nestedpages_menu');
241 if ( !$menu_id ) return false;
242 $term = ( is_numeric($menu_id) ) ? get_term_by('id', $menu_id, 'nav_menu') : false;
243 return $term;
244 }
245
246 /**
247 * Sort View Enabled
248 * @return array of role names
249 */
250 public function sortViewEnabled()
251 {
252 $roles = get_option('nestedpages_allowsortview');
253
254 // If the option hasn't been saved yet, fall back to editors
255 if ( !$roles ) :
256 $roles = [];
257 $all_roles = wp_roles();
258 foreach ( $all_roles->roles as $name => $role ){
259 $single_role = get_role($name);
260 if ( $single_role->has_cap('edit_others_posts') ) $roles[] = $name;
261 }
262 endif;
263 return $roles;
264 }
265 }