PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.14
Shortcodes and extra features for Phlox theme v2.17.14
2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / classes / class-auxin-master-nav-menu-admin.php
auxin-elements / includes / classes Last commit date
class-auxels-admin-assets.php 1 year ago class-auxels-archive-menu-links.php 1 year ago class-auxels-envato-elements.php 1 year ago class-auxels-import-parser.php 3 years ago class-auxels-import.php 3 years ago class-auxels-search-post-type.php 6 months ago class-auxels-wc-attribute-nav-menu.php 1 year ago class-auxin-admin-dashboard.php 1 year ago class-auxin-demo-importer.php 6 months ago class-auxin-dependency-sorting.php 3 years ago class-auxin-import.php 1 year ago class-auxin-install.php 1 year ago class-auxin-master-nav-menu-admin.php 1 year ago class-auxin-page-template.php 1 year ago class-auxin-permalink.php 1 year ago class-auxin-plugin-requirements.php 3 years ago class-auxin-post-type-base.php 1 year ago class-auxin-svg-support-allowedattributes.php 7 years ago class-auxin-svg-support-allowedtags.php 7 years ago class-auxin-svg-support.php 1 year ago class-auxin-walker-nav-menu-back.php 1 year ago class-auxin-welcome-sections.php 1 year ago class-auxin-welcome.php 6 months ago class-auxin-whitelabel.php 3 years ago class-auxin-widget-indie.php 1 year ago class-auxin-widget-shortcode-map.php 11 months ago class-auxin-widget.php 1 year ago
class-auxin-master-nav-menu-admin.php
152 lines
1 <?php
2 /**
3 * Main class for adding configurations and custom menu item fields in admin area
4 *
5 *
6 * @package Auxin
7 * @license LICENSE.txt
8 * @author averta
9 * @link http://phlox.pro/
10 * @copyright (c) 2010-2025 averta
11 */
12 class Auxin_Master_Nav_Menu_Admin {
13
14 /**
15 * Instance of this class.
16 *
17 * @var object
18 */
19 protected static $instance = null;
20
21
22 public function __construct(){
23
24 // Back-end modification hooks
25
26 // Add extra fields to menu items in back-end menu editor
27 add_filter( 'wp_setup_nav_menu_item' , array( $this, 'add_custom_nav_item_fields' ) );
28
29 // Save and update the value of custom menu fields
30 add_action( 'wp_update_nav_menu_item', array( $this, 'update_backend_nav_menu_fields' ), 9, 3 );
31
32 // Change the walker class for back-end menu editor
33 add_filter( 'wp_edit_nav_menu_walker', array( $this, 'change_nav_menu_backend_walker' ), 1000000000, 1 ); // the high priority is a fix for "popup-maker" plugin
34
35
36 // Register stylesheet and javascript for edit menu page
37 add_action( 'admin_menu' , array( $this, 'enqueue_edit_menu_assests' ) );
38
39 }
40
41 /* Back End
42 ==========================================================================*/
43
44 /**
45 * Adds all custom fields to menu item object in back-end
46 *
47 * @param object $menu_item The menu item object
48 */
49 public function add_custom_nav_item_fields( $menu_item ){
50
51 // Loop through all custom fields and add them to menu item object
52 foreach ( $this->menu_item_fields as $field_id => $field_info ) {
53 $menu_item->{$field_id} = get_post_meta( $menu_item->ID, '_menu_item_' . $field_id , true );
54 }
55
56 return $menu_item;
57 }
58
59 /**
60 * Saves and updates the value of custom menu item fields
61 */
62 public function update_backend_nav_menu_fields( $menu_id, $menu_item_db_id, $args ){
63
64 foreach ( $this->menu_item_fields as $field_id => $field_info ){
65
66 // considering exception for checkbox field
67 if( 'switch' == $field_info['type'] ) {
68
69 if( ! isset( $_POST['menu-item-'. $field_id ][ $menu_item_db_id ] ) ){
70 $_POST['menu-item-'. $field_id ][ $menu_item_db_id ] = '0';
71 } else {
72 $_POST['menu-item-'. $field_id ][ $menu_item_db_id ] = '1';
73 }
74
75 } elseif( ! isset( $_POST['menu-item-'. $field_id ][ $menu_item_db_id ] ) ){
76 $_POST['menu-item-'. $field_id ][ $menu_item_db_id ] = '';
77 }
78
79 // save custom style in custom css file
80 if( 'custom_style' == $field_id ){
81
82 if( $custom_style = $_POST['menu-item-'. $field_id ][ $menu_item_db_id ] ){
83 auxin_add_custom_css( ".menu-item-$menu_item_db_id { $custom_style }", 'menu-item-' . $menu_item_db_id );
84 } else {
85 auxin_remove_custom_css( 'menu-item-' . $menu_item_db_id );
86 }
87
88 }
89
90 update_post_meta( $menu_item_db_id, '_menu_item_'. $field_id , sanitize_text_field( $_POST['menu-item-'. $field_id ][ $menu_item_db_id ] ) );
91 }
92
93 }
94
95 /**
96 * Modifies the walker class of back-end menu editor
97 */
98 public function change_nav_menu_backend_walker( $walker ){
99 return 'Auxin_Walker_Nav_Menu_Back';
100 }
101
102 /**
103 * Loads specific asset files only on edit menu page
104 */
105 public function enqueue_edit_menu_assests(){
106 global $pagenow;
107
108 if( 'nav-menus.php' == $pagenow ){
109 wp_enqueue_style ( 'auxin-edit-menus-css' , ADMIN_CSS_URL . 'other/edit-menus.css' , null, '1.1' );
110 wp_enqueue_script( 'auxin-edit-menus-js' , ADMIN_JS_URL . 'solo/edit-menus.js' , array('jquery'), '1.1', true );
111 }
112 }
113
114 /* Get methods
115 ==========================================================================*/
116
117 /**
118 * Magic method to get the value of accessible properties
119 *
120 * @param string The property name
121 * @return string The value of property
122 */
123 public function __get( $name ){
124
125 // Retrieve the menu item fields from Master Menu class
126 if( 'menu_item_fields' == $name ){
127 return Auxin()->Master_Menu->menu_item_fields;
128 }
129
130 if( property_exists( $this, $name ) ){
131 return $this->$name;
132 }
133
134 return null;
135 }
136
137 /**
138 * Return an instance of this class.
139 *
140 * @return object A single instance of this class.
141 */
142 public static function get_instance() {
143
144 // If the single instance hasn't been set, set it now.
145 if ( null == self::$instance ) {
146 self::$instance = new self;
147 }
148 return self::$instance;
149 }
150
151 }
152