%PDF- %PDF-
Direktori : /var/www/businessmultisite/wp-content/plugins/wp-nested-pages/app/Config/ |
Current File : /var/www/businessmultisite/wp-content/plugins/wp-nested-pages/app/Config/SettingsRepository.php |
<?php namespace NestedPages\Config; use NestedPages\Entities\PostType\PostTypeRepository; class SettingsRepository { /** * Is the Datepicker UI option enabled * @return boolean */ public function datepickerEnabled() { $option = get_option('nestedpages_ui', false); if ( $option && isset($option['datepicker']) && $option['datepicker'] == 'true' ) return true; return false; } /** * Is the Classic (non-indented) display option enabled * @return boolean */ public function nonIndentEnabled() { $option = get_option('nestedpages_ui', false); if ( $option && isset($option['non_indent']) && $option['non_indent'] == 'true' ) return true; return false; } /** * Is the Menu Sync Option Visible */ public function hideMenuSync() { $option = get_option('nestedpages_ui', false); $visible = ( $option && isset($option['hide_menu_sync']) && $option['hide_menu_sync'] == 'true' ) ? true : false; return apply_filters('nestedpages_menu_sync_visible', $visible); } /** * Is menu sync enabled? */ public function menuSyncEnabled() { $option = get_option('nestedpages_menusync'); $enabled = ( $option == 'sync' ) ? true : false; return apply_filters('nestedpages_menu_sync_enabled', $enabled); } /** * Is AJAX menu sync disabled? */ public function autoMenuDisabled() { $option = get_option('nestedpages_ui', false); $enabled = ( $option && isset($option['manual_menu_sync']) && $option['manual_menu_sync'] == 'true' ) ? true : false; return apply_filters('nestedpages_menu_autosync_enabled', $enabled); } /** * Are private pages viewable in the menu */ public function privateMenuEnabled() { $option = get_option('nestedpages_ui', false); $enabled = ( $option && isset($option['include_private']) && $option['include_private'] == 'true' ) ? true : false; return apply_filters('nestedpages_menu_private_enabled', $enabled); } /** * Is AJAX page order disabled? */ public function autoPageOrderDisabled() { $option = get_option('nestedpages_ui', false); if ( $option && isset($option['manual_page_order_sync']) && $option['manual_page_order_sync'] == 'true' ) return true; return false; } /** * Are menus completely disabled? * @return boolean */ public function menusDisabled() { $option = get_option('nestedpages_disable_menu'); $disabled = ( $option && $option == 'true' ) ? true : false; return apply_filters('nestedpages_menus_disabled', $disabled); } /** * Array of configurable standard fields * @return array */ public function standardFields($post_type) { $post_type_repo = new PostTypeRepository; $fields = [ 'title' => __('Post Title', 'wp-nested-pages'), 'slug' => __('Slug', 'wp-nested-pages'), 'date' => __('Post Date', 'wp-nested-pages'), 'author' => __('Author', 'wp-nested-pages'), 'status' => __('Post Status', 'wp-nested-pages'), 'password' => __('Password/Private', 'wp-nested-pages'), 'allow_comments' => __('Allow Comments', 'wp-nested-pages') ]; if ( $post_type == 'page' ) { $fields['template'] = __('Template', 'wp-nested-pages'); $fields['menu_options'] = __('Menu Options', 'wp-nested-pages'); } $fields['hide_in_np'] = __('Hide in Nested Pages', 'wp-nested-pages'); // Taxonomies $enabled_h_taxonomies = $post_type_repo->getTaxonomies($post_type); $enabled_f_taxonomies = $post_type_repo->getTaxonomies($post_type, false); $enabled_taxonomies = array_merge($enabled_h_taxonomies, $enabled_f_taxonomies); if ( empty($enabled_taxonomies) ) return $fields; $fields['hide_taxonomies'] = __('Taxonomies', 'wp-nested-pages'); $fields['taxonomies'] = []; foreach($enabled_taxonomies as $taxonomy){ $fields['taxonomies'][$taxonomy->name] = $taxonomy->labels->name; } return $fields; } /** * Get All Image Sizes Available in the theme */ public function getImageSizes() { global $_wp_additional_image_sizes; $sizes = []; foreach ( get_intermediate_image_sizes() as $_size ) { if ( in_array( $_size, ['thumbnail', 'medium', 'medium_large', 'large'] ) ) { $sizes[ $_size ]['width'] = get_option( "{$_size}_size_w" ); $sizes[ $_size ]['height'] = get_option( "{$_size}_size_h" ); $sizes[ $_size ]['crop'] = (bool) get_option( "{$_size}_crop" ); } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) { $sizes[ $_size ] = [ 'width' => $_wp_additional_image_sizes[ $_size ]['width'], 'height' => $_wp_additional_image_sizes[ $_size ]['height'], 'crop' => $_wp_additional_image_sizes[ $_size ]['crop'], ]; } } return $sizes; } /** * Get a specific image/thumbnail size */ public function getImageSize($size) { $sizes = $this->getImageSizes(); if ( isset( $sizes[ $size ] ) ) return $sizes[ $size ]; return false; } /** * Admin Customization */ public function adminCustomEnabled($enabled) { $option = get_option('nestedpages_admin'); if ( !isset($option[$enabled]) ) return false; return $option[$enabled]; } /** * Hidden Menu Items */ public function adminMenuHidden($role = 'administrator') { $roles = $this->adminCustomEnabled('nav_menu_options'); if ( !$roles ) return; $hidden = array(); if ( !isset($roles[$role]) ) return; foreach($roles[$role] as $key => $options){ if ( isset($options['hidden']) ) $hidden[] = $options['hidden']; } return $hidden; } /** * Reset all plugin settings */ public function resetSettings() { $options = [ 'nested_pages_custom_fields_hidden', 'nestedpages_allowsorting', 'nestedpages_disable_menu', 'nestedpages_menu', 'nestedpages_menusync', 'nestedpages_posttypes', 'nestedpages_ui', 'nestedpages_version', 'nestedpages_admin' ]; foreach($options as $option){ delete_option($option); } } /** * Reset admin menu customizations */ public function resetAdminMenuSettings() { $options = [ 'nestedpages_admin' ]; foreach($options as $option){ delete_option($option); } } /** * Get the Menu Name * @return term obj */ public function getMenuTerm() { $menu_id = get_option('nestedpages_menu'); if ( !$menu_id ) return false; $term = ( is_numeric($menu_id) ) ? get_term_by('id', $menu_id, 'nav_menu') : false; return $term; } /** * Sort View Enabled * @return array of role names */ public function sortViewEnabled() { $roles = get_option('nestedpages_allowsortview'); // If the option hasn't been saved yet, fall back to editors if ( !$roles ) : $roles = []; $all_roles = wp_roles(); foreach ( $all_roles->roles as $name => $role ){ $single_role = get_role($name); if ( $single_role->has_cap('edit_others_posts') ) $roles[] = $name; } endif; return $roles; } }