| @@ -1,145 +1,204 @@ | ||
| 1 | 1 | <?php |
| 2 | -// options for WP nav menu | |
| 2 | +/** | |
| 3 | + * @package Adminimize | |
| 4 | + * @subpackage Nav Menu Options | |
| 5 | + * @author Frank Bültge | |
| 6 | + */ | |
| 7 | +if ( ! function_exists( 'add_action' ) ) { | |
| 8 | + echo "Hi there! I'm just a part of plugin, not much I can do when called directly."; | |
| 9 | + exit; | |
| 10 | +} | |
| 3 | 11 | ?> |
| 4 | - <div id="poststuff" class="ui-sortable meta-box-sortables"> | |
| 5 | - <div class="postbox"> | |
| 6 | - <div class="handlediv" title="<?php _e('Click to toggle'); ?>"><br/></div> | |
| 7 | - <h3 class="hndle" id="nav_menu_options"><?php _e('WP Nav Menu options', FB_ADMINIMIZE_TEXTDOMAIN ); ?></h3> | |
| 8 | - <div class="inside"> | |
| 9 | - <br class="clear" /> | |
| 12 | +<div id="poststuff" class="ui-sortable meta-box-sortables"> | |
| 13 | + <div class="postbox"> | |
| 14 | + <div class="handlediv" title="<?php esc_attr_e( 'Click to toggle' ); ?>"><br /></div> | |
| 15 | + <h3 class="hndle" id="nav_menu_options"><?php esc_attr_e( 'WP Nav Menu', 'adminimize' ); ?></h3> | |
| 10 | 16 | |
| 11 | - <table summary="config_nav_menu" class="widefat"> | |
| 12 | - <thead> | |
| 13 | - <tr> | |
| 14 | - <th><?php _e('Option', FB_ADMINIMIZE_TEXTDOMAIN ); ?></th> | |
| 15 | - <?php | |
| 16 | - foreach ($user_roles_names as $role_name) { ?> | |
| 17 | - <th><?php _e('Deactivate for', FB_ADMINIMIZE_TEXTDOMAIN ); echo '<br/>' . $role_name; ?></th> | |
| 18 | - <?php } ?> | |
| 19 | - </tr> | |
| 20 | - </thead> | |
| 17 | + <div class="inside"> | |
| 18 | + <br class="clear" /> | |
| 21 | 19 | |
| 22 | - <tbody> | |
| 23 | - <?php | |
| 24 | - foreach ($user_roles as $role) { | |
| 25 | - $disabled_nav_menu_option_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_nav_menu_option_'. $role .'_items'); | |
| 26 | - } | |
| 27 | - | |
| 28 | - $nav_menu_options = array( | |
| 29 | - '#contextual-help-link-wrap', | |
| 30 | - '#screen-options-link-wrap', | |
| 31 | - '#nav-menu-theme-locations', | |
| 32 | - '#add-custom-links', | |
| 33 | - '.menu-add-new' | |
| 34 | - ); | |
| 35 | - | |
| 36 | - if ( wp_get_nav_menus() ) | |
| 37 | - array( $nav_menu_options, '#nav-menu-theme-locations' ); | |
| 38 | - | |
| 39 | - $nav_menu_options_names = array( | |
| 40 | - __('Help'), | |
| 41 | - __('Screen Options'), | |
| 42 | - __('Theme Locations'), | |
| 43 | - __('Custom Links'), | |
| 44 | - __('#') . '(' . __('Add menu') . ')' | |
| 45 | - ); | |
| 46 | - | |
| 47 | - if ( wp_get_nav_menus() ) | |
| 48 | - array( $nav_menu_options_names, __( 'Theme Locations' ) ); | |
| 49 | - | |
| 50 | - // taxonomies | |
| 51 | - $taxonomies = get_taxonomies( array( 'show_in_nav_menus' => true ), 'object' ); | |
| 52 | - if ($taxonomies) { | |
| 53 | - foreach ( $taxonomies as $tax ) { | |
| 54 | - if ( $tax ) { | |
| 55 | - array_push($nav_menu_options, '#add-' . $tax->name); | |
| 56 | - array_push($nav_menu_options_names, $tax->labels->name); | |
| 57 | - } | |
| 58 | - } | |
| 59 | - } | |
| 60 | - | |
| 61 | - // post types | |
| 62 | - $post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'object' ); | |
| 63 | - if ($post_types) { | |
| 64 | - foreach ( $post_types as $post_type ) { | |
| 65 | - if ( $post_type ) { | |
| 66 | - array_push($nav_menu_options, '#add-' . $post_type->name); | |
| 67 | - array_push($nav_menu_options_names, $post_type->labels->name); | |
| 68 | - } | |
| 69 | - } | |
| 70 | - } | |
| 71 | - | |
| 72 | - $_mw_adminimize_own_nav_menu_values = _mw_adminimize_getOptionValue('_mw_adminimize_own_nav_menu_values'); | |
| 73 | - $_mw_adminimize_own_nav_menu_values = preg_split( "/\r\n/", $_mw_adminimize_own_nav_menu_values ); | |
| 74 | - foreach ( (array) $_mw_adminimize_own_nav_menu_values as $key => $_mw_adminimize_own_nav_menu_value ) { | |
| 75 | - $_mw_adminimize_own_nav_menu_value = trim($_mw_adminimize_own_nav_menu_value); | |
| 76 | - array_push($nav_menu_options, $_mw_adminimize_own_nav_menu_value); | |
| 77 | - } | |
| 78 | - | |
| 79 | - $_mw_adminimize_own_nav_menu_options = _mw_adminimize_getOptionValue('_mw_adminimize_own_nav_menu_options'); | |
| 80 | - $_mw_adminimize_own_nav_menu_options = preg_split( "/\r\n/", $_mw_adminimize_own_nav_menu_options ); | |
| 81 | - foreach ( (array) $_mw_adminimize_own_nav_menu_options as $key => $_mw_adminimize_own_nav_menu_option ) { | |
| 82 | - $_mw_adminimize_own_nav_menu_option = trim($_mw_adminimize_own_nav_menu_option); | |
| 83 | - array_push($nav_menu_options_names, $_mw_adminimize_own_nav_menu_option); | |
| 84 | - } | |
| 85 | - | |
| 86 | - $x = 0; | |
| 87 | - foreach ($nav_menu_options as $index => $nav_menu_option) { | |
| 88 | - if ( $nav_menu_option != '') { | |
| 89 | - $checked_user_role_ = array(); | |
| 90 | - foreach ($user_roles as $role) { | |
| 91 | - $checked_user_role_[$role] = ( isset($disabled_nav_menu_option_[$role]) && in_array($nav_menu_option, $disabled_nav_menu_option_[$role]) ) ? ' checked="checked"' : ''; | |
| 92 | - } | |
| 93 | - echo '<tr>' . "\n"; | |
| 94 | - echo '<td>' . $nav_menu_options_names[$index] . ' <span style="color:#ccc; font-weight: 400;">(' . $nav_menu_option . ')</span> </td>' . "\n"; | |
| 95 | - foreach ($user_roles as $role) { | |
| 96 | - echo '<td class="num"><input id="check_post'. $role . $x .'" type="checkbox"' . $checked_user_role_[$role] . ' name="mw_adminimize_disabled_nav_menu_option_'. $role .'_items[]" value="' . $nav_menu_option . '" /></td>' . "\n"; | |
| 97 | - } | |
| 98 | - echo '</tr>' . "\n"; | |
| 99 | - $x++; | |
| 100 | - } | |
| 101 | - } | |
| 102 | - ?> | |
| 103 | - </tbody> | |
| 104 | - </table> | |
| 105 | - | |
| 20 | + <table summary="config_nav_menu" class="widefat"> | |
| 21 | + <thead> | |
| 22 | + <tr> | |
| 23 | + <th><?php esc_attr_e( 'Option', 'adminimize' ); ?></th> | |
| 106 | 24 | <?php |
| 107 | - //your own global options | |
| 108 | - ?> | |
| 109 | - <br style="margin-top: 10px;" /> | |
| 110 | - <table summary="config_edit_post" class="widefat"> | |
| 111 | - <thead> | |
| 112 | - <tr> | |
| 113 | - <th><?php _e('Your own options', FB_ADMINIMIZE_TEXTDOMAIN ); echo '<br />'; _e('ID or class', FB_ADMINIMIZE_TEXTDOMAIN ); ?></th> | |
| 114 | - <th><?php echo '<br />'; _e('Option', FB_ADMINIMIZE_TEXTDOMAIN ); ?></th> | |
| 115 | - </tr> | |
| 116 | - </thead> | |
| 25 | + foreach ( $user_roles_names as $role_name ) { ?> | |
| 26 | + <th><?php esc_attr_e( 'Deactivate for', 'adminimize' ); | |
| 27 | + echo '<br/>' . $role_name; ?></th> | |
| 28 | + <?php } ?> | |
| 29 | + </tr> | |
| 30 | + <tr> | |
| 31 | + <td><?php esc_attr_e( 'Select all', 'adminimize' ); ?></td> | |
| 32 | + <?php | |
| 33 | + foreach ( $user_roles_names as $role_name ) { | |
| 34 | + $role_name = strtolower( $role_name ); | |
| 35 | + $role_name = preg_replace( '/[^a-z0-9]+/', '', $role_name ); | |
| 36 | + echo '<td class="num">'; | |
| 37 | + echo '<input id="select_all" class="wp_nav_menu_options_' . $role_name | |
| 38 | + . '" type="checkbox" name="" value="" />'; | |
| 39 | + echo '</td>' . "\n"; | |
| 40 | + } ?> | |
| 41 | + </tr> | |
| 42 | + </thead> | |
| 117 | 43 | |
| 118 | - <tbody> | |
| 119 | - <tr valign="top"> | |
| 120 | - <td colspan="2"><?php _e('It is possible to add your own IDs or classes from elements and tags. You can find IDs and classes with the FireBug Add-on for Firefox. Assign a value and the associate name per line.', FB_ADMINIMIZE_TEXTDOMAIN ); ?></td> | |
| 121 | - </tr> | |
| 122 | - <tr valign="top"> | |
| 123 | - <td> | |
| 124 | - <textarea name="_mw_adminimize_own_nav_menu_options" cols="60" rows="3" id="_mw_adminimize_own_nav_menu_options" style="width: 95%;" ><?php echo _mw_adminimize_getOptionValue('_mw_adminimize_own_nav_menu_options'); ?></textarea> | |
| 125 | - <br /> | |
| 126 | - <?php _e('Possible nomination for ID or class. Separate multiple nominations through a carriage return.', FB_ADMINIMIZE_TEXTDOMAIN ); ?> | |
| 127 | - </td> | |
| 128 | - <td> | |
| 129 | - <textarea class="code" name="_mw_adminimize_own_nav_menu_values" cols="60" rows="3" id="_mw_adminimize_own_nav_menu_values" style="width: 95%;" ><?php echo _mw_adminimize_getOptionValue('_mw_adminimize_own_nav_menu_values'); ?></textarea> | |
| 130 | - <br /> | |
| 131 | - <?php _e('Possible IDs or classes. Separate multiple values through a carriage return.', FB_ADMINIMIZE_TEXTDOMAIN ); ?> | |
| 132 | - </td> | |
| 133 | - </tr> | |
| 134 | - </tbody> | |
| 135 | - </table> | |
| 136 | - | |
| 137 | - <p id="submitbutton"> | |
| 138 | - <input type="hidden" name="_mw_adminimize_action" value="_mw_adminimize_insert" /> | |
| 139 | - <input class="button button-primary" type="submit" name="_mw_adminimize_save" value="<?php _e('Update Options', FB_ADMINIMIZE_TEXTDOMAIN ); ?> »" /><input type="hidden" name="page_options" value="'dofollow_timeout'" /> | |
| 140 | - </p> | |
| 141 | - <p><a class="alignright button" href="javascript:void(0);" onclick="window.scrollTo(0,0);" style="margin:3px 0 0 30px;"><?php _e('scroll to top', FB_ADMINIMIZE_TEXTDOMAIN); ?></a><br class="clear" /></p> | |
| 142 | - | |
| 143 | - </div> | |
| 144 | - </div> | |
| 44 | + <tbody> | |
| 45 | + <?php | |
| 46 | + foreach ( $user_roles as $role ) { | |
| 47 | + $disabled_nav_menu_option_[ $role ] = _mw_adminimize_get_option_value( | |
| 48 | + 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items' | |
| 49 | + ); | |
| 50 | + } | |
| 51 | + | |
| 52 | + $nav_menu_options = array( | |
| 53 | + '#contextual-help-link-wrap', | |
| 54 | + '#screen-options-link-wrap', | |
| 55 | + '#nav-menu-theme-locations', | |
| 56 | + '#add-custom-links', | |
| 57 | + '.menu-add-new', | |
| 58 | + ); | |
| 59 | + | |
| 60 | + if ( wp_get_nav_menus() ) { | |
| 61 | + array( $nav_menu_options, '#nav-menu-theme-locations' ); | |
| 62 | + } | |
| 63 | + | |
| 64 | + $nav_menu_options_names = array( | |
| 65 | + esc_attr__( 'Help', 'adminimize' ), | |
| 66 | + esc_attr__( 'Screen Options' ), | |
| 67 | + esc_attr__( 'Theme Locations', 'adminimize' ), | |
| 68 | + esc_attr__( 'Custom Links', 'adminimize' ), | |
| 69 | + '#(' . esc_attr__( 'Add menu', 'adminimize' ) . ')', | |
| 70 | + ); | |
| 71 | + | |
| 72 | + if ( wp_get_nav_menus() ) { | |
| 73 | + array( $nav_menu_options_names, esc_attr__( 'Theme Locations' ) ); | |
| 74 | + } | |
| 75 | + | |
| 76 | + // taxonomies | |
| 77 | + $taxonomies = get_taxonomies( array( 'show_in_nav_menus' => TRUE ), 'object' ); | |
| 78 | + if ( $taxonomies ) { | |
| 79 | + foreach ( $taxonomies as $tax ) { | |
| 80 | + if ( $tax ) { | |
| 81 | + $nav_menu_options[] = '#add-' . $tax->name; | |
| 82 | + $nav_menu_options_names[] = $tax->labels->name; | |
| 83 | + } | |
| 84 | + } | |
| 85 | + } | |
| 86 | + | |
| 87 | + // post types | |
| 88 | + $post_types = get_post_types( array( 'show_in_nav_menus' => TRUE ), 'object' ); | |
| 89 | + if ( $post_types ) { | |
| 90 | + foreach ( $post_types as $post_type ) { | |
| 91 | + if ( $post_type ) { | |
| 92 | + $nav_menu_options[] = '#add-' . $post_type->name; | |
| 93 | + $nav_menu_options_names[] = $post_type->labels->name; | |
| 94 | + } | |
| 95 | + } | |
| 96 | + } | |
| 97 | + | |
| 98 | + $_mw_adminimize_own_nav_menu_values = _mw_adminimize_get_option_value( | |
| 99 | + '_mw_adminimize_own_nav_menu_values' | |
| 100 | + ); | |
| 101 | + $_mw_adminimize_own_nav_menu_values = preg_split( "/\r\n/", $_mw_adminimize_own_nav_menu_values ); | |
| 102 | + foreach ( (array) $_mw_adminimize_own_nav_menu_values as $key => $_mw_adminimize_own_nav_menu_value ) { | |
| 103 | + $_mw_adminimize_own_nav_menu_value = trim( $_mw_adminimize_own_nav_menu_value ); | |
| 104 | + $nav_menu_options[] = $_mw_adminimize_own_nav_menu_value; | |
| 105 | + } | |
| 106 | + | |
| 107 | + $_mw_adminimize_own_nav_menu_options = _mw_adminimize_get_option_value( | |
| 108 | + '_mw_adminimize_own_nav_menu_options' | |
| 109 | + ); | |
| 110 | + $_mw_adminimize_own_nav_menu_options = preg_split( "/\r\n/", $_mw_adminimize_own_nav_menu_options ); | |
| 111 | + foreach ( (array) $_mw_adminimize_own_nav_menu_options as $key => $_mw_adminimize_own_nav_menu_option ) { | |
| 112 | + $_mw_adminimize_own_nav_menu_option = trim( $_mw_adminimize_own_nav_menu_option ); | |
| 113 | + $nav_menu_options_names[] = $_mw_adminimize_own_nav_menu_option; | |
| 114 | + } | |
| 115 | + | |
| 116 | + $x = 0; | |
| 117 | + foreach ( $nav_menu_options as $index => $nav_menu_option ) { | |
| 118 | + if ( $nav_menu_option != '' ) { | |
| 119 | + $checked_user_role_ = array(); | |
| 120 | + foreach ( $user_roles as $role ) { | |
| 121 | + $checked_user_role_[ $role ] = ( isset( $disabled_nav_menu_option_[ $role ] ) | |
| 122 | + && in_array( | |
| 123 | + $nav_menu_option, $disabled_nav_menu_option_[ $role ] | |
| 124 | + ) ) ? ' checked="checked"' : ''; | |
| 125 | + } | |
| 126 | + echo '<tr>' . "\n"; | |
| 127 | + echo '<td>' . $nav_menu_options_names[ $index ] . ' <span>(' . $nav_menu_option . ')</span> </td>' . "\n"; | |
| 128 | + foreach ( $user_roles as $role ) { | |
| 129 | + echo '<td class="num">'; | |
| 130 | + echo '<input id="check_post' . $role . $x . '" class="wp_nav_menu_options_' | |
| 131 | + . preg_replace( '/[^a-z0-9]+/', '', $role ) . '" type="checkbox"' | |
| 132 | + . $checked_user_role_[ $role ] . ' name="mw_adminimize_disabled_nav_menu_option_' | |
| 133 | + . $role . '_items[]" value="' . $nav_menu_option . '" />'; | |
| 134 | + echo '</td>' . "\n"; | |
| 135 | + } | |
| 136 | + echo '</tr>' . "\n"; | |
| 137 | + $x ++; | |
| 138 | + } | |
| 139 | + } | |
| 140 | + ?> | |
| 141 | + </tbody> | |
| 142 | + </table> | |
| 143 | + | |
| 144 | + <?php | |
| 145 | + //your own global options | |
| 146 | + ?> | |
| 147 | + <br style="margin-top: 10px;" /> | |
| 148 | + <table summary="config_edit_post" class="widefat"> | |
| 149 | + <thead> | |
| 150 | + <tr> | |
| 151 | + <th><?php esc_attr_e( 'Your own Nav Menu options', 'adminimize' ); | |
| 152 | + echo '<br />'; | |
| 153 | + esc_attr_e( 'ID or class', 'adminimize' ); ?></th> | |
| 154 | + <th><?php echo '<br />'; | |
| 155 | + esc_attr_e( 'Option', 'adminimize' ); ?></th> | |
| 156 | + </tr> | |
| 157 | + </thead> | |
| 158 | + | |
| 159 | + <tbody> | |
| 160 | + <tr valign="top"> | |
| 161 | + <td colspan="2"><?php esc_attr_e( | |
| 162 | + 'It is possible to add your own IDs or classes from elements and tags. You can find IDs and classes with the FireBug Add-on for Firefox. Assign a value and the associate name per line.', | |
| 163 | + 'adminimize' | |
| 164 | + ); ?></td> | |
| 165 | + </tr> | |
| 166 | + <tr valign="top"> | |
| 167 | + <td> | |
| 168 | + <textarea name="_mw_adminimize_own_nav_menu_options" cols="60" rows="3" id="_mw_adminimize_own_nav_menu_options" style="width: 95%;"><?php echo _mw_adminimize_get_option_value( | |
| 169 | + '_mw_adminimize_own_nav_menu_options' | |
| 170 | + ); ?></textarea> | |
| 171 | + <br /> | |
| 172 | + <?php esc_attr_e( | |
| 173 | + 'Possible nomination for ID or class. Separate multiple nominations through a carriage return.', | |
| 174 | + 'adminimize' | |
| 175 | + ); ?> | |
| 176 | + </td> | |
| 177 | + <td> | |
| 178 | + <textarea class="code" name="_mw_adminimize_own_nav_menu_values" cols="60" rows="3" id="_mw_adminimize_own_nav_menu_values" style="width: 95%;"><?php echo _mw_adminimize_get_option_value( | |
| 179 | + '_mw_adminimize_own_nav_menu_values' | |
| 180 | + ); ?></textarea> | |
| 181 | + <br /> | |
| 182 | + <?php esc_attr_e( | |
| 183 | + 'Possible IDs or classes. Separate multiple values through a carriage return.', 'adminimize' | |
| 184 | + ); ?> | |
| 185 | + </td> | |
| 186 | + </tr> | |
| 187 | + </tbody> | |
| 188 | + </table> | |
| 189 | + | |
| 190 | + <p id="submitbutton"> | |
| 191 | + <input type="hidden" name="_mw_adminimize_action" value="_mw_adminimize_insert" /> | |
| 192 | + <input class="button button-primary" type="submit" name="_mw_adminimize_save" value="<?php esc_attr_e( | |
| 193 | + 'Update Options', 'adminimize' | |
| 194 | + ); ?> »" /><input type="hidden" name="page_options" value="'dofollow_timeout'" /> | |
| 195 | + </p> | |
| 196 | + | |
| 197 | + <p> | |
| 198 | + <a class="alignright button" href="javascript:void(0);" onclick="window.scrollTo(0,0);" style="margin:3px 0 0 30px;"><?php esc_attr_e( | |
| 199 | + 'scroll to top', 'adminimize' | |
| 200 | + ); ?></a><br class="clear" /></p> | |
| 201 | + | |
| 145 | 202 | </div> |
| 203 | + </div> | |
| 204 | +</div> | |