Dropdown Menu Widget - Version 1.3.2

Version Description

  • Bundled with "Exclude Pages" plugin by Simon Wheatley. You can now easily exclude pages from the navigation. Just uncheck the the "Include page in menus" checkbox on the page edit screen. See screenshots for more information.
Download this release

Release Info

Developer mattsay
Plugin Icon wp plugin Dropdown Menu Widget
Version 1.3.2
Comparing to
See all releases

Code changes from version 1.3.1 to 1.3.2

exclude_pages.php ADDED
@@ -0,0 +1,330 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Exclude Pages from Navigation
4
+ http://wordpress.org/extend/plugins/exclude-pages/
5
+
6
+
7
+ Provides a checkbox on the editing page which you can check to exclude pages from the primary navigation. IMPORTANT NOTE: This will remove the pages from any "consumer" side page listings, which may not be limited to your page navigation listings.
8
+
9
+ Version: 1.8
10
+
11
+ Simon Wheatley
12
+ http://simonwheatley.co.uk/wordpress/
13
+
14
+ Copyright 2007 Simon Wheatley
15
+
16
+ This script is free software; you can redistribute it and/or modify
17
+ it under the terms of the GNU General Public License as published by
18
+ the Free Software Foundation; either version 3 of the License, or
19
+ (at your option) any later version.
20
+
21
+ This script is distributed in the hope that it will be useful,
22
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24
+ GNU General Public License for more details.
25
+
26
+ You should have received a copy of the GNU General Public License
27
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
28
+
29
+ */
30
+
31
+ // Full filesystem path to this dir
32
+ define('EP_PLUGIN_DIR', dirname(__FILE__));
33
+
34
+ // Option name for exclusion data
35
+ define('EP_OPTION_NAME', 'ep_exclude_pages');
36
+ // Separator for the string of IDs stored in the option value
37
+ define('EP_OPTION_SEP', ',');
38
+
39
+ // Take the pages array, and return the pages array without the excluded pages
40
+ // Doesn't do this when in the admin area
41
+ function ep_exclude_pages( $pages )
42
+ {
43
+ // If the URL includes "wp-admin", just return the unaltered list
44
+ // This constant, WP_ADMIN, only came into WP on 2007-12-19 17:56:16 rev 6412, i.e. not something we can rely upon unfortunately.
45
+ // May as well check it though.
46
+ // Also check the URL... let's hope they haven't got a page called wp-admin (probably not)
47
+ // SWTODO: Actually, you can create a page with an address of wp-admin (which is then inaccessible), I consider this a bug in WordPress (which I may file a report for, and patch, another time).
48
+ $bail_out = ( ( defined( 'WP_ADMIN' ) && WP_ADMIN == true ) || ( strpos( $_SERVER[ 'PHP_SELF' ], 'wp-admin' ) !== false ) );
49
+ $bail_out = apply_filters( 'ep_admin_bail_out', $bail_out );
50
+ if ( $bail_out ) return $pages;
51
+ $excluded_ids = ep_get_excluded_ids();
52
+ $length = count($pages);
53
+ // Ensure we catch all descendant pages, so that if a parent
54
+ // is hidden, it's children are too.
55
+ for ( $i=0; $i<$length; $i++ ) {
56
+ $page = & $pages[$i];
57
+ // If one of the ancestor pages is excluded, add it to our exclude array
58
+ if ( ep_ancestor_excluded( $page, $excluded_ids, $pages ) ) {
59
+ // Can't actually delete the pages at the moment,
60
+ // it'll screw with our recursive search.
61
+ // For the moment, just tag the ID onto our excluded IDs
62
+ $excluded_ids[] = $page->ID;
63
+ }
64
+ }
65
+
66
+ // Ensure the array only has unique values
67
+ $delete_ids = array_unique( $excluded_ids );
68
+
69
+ // Loop though the $pages array and actually unset/delete stuff
70
+ for ( $i=0; $i<$length; $i++ ) {
71
+ $page = & $pages[$i];
72
+ // If one of the ancestor pages is excluded, add it to our exclude array
73
+ if ( in_array( $page->ID, $delete_ids ) ) {
74
+ // Finally, delete something(s)
75
+ unset( $pages[$i] );
76
+ }
77
+ }
78
+
79
+ // Reindex the array, for neatness
80
+ // SWFIXME: Is reindexing the array going to create a memory optimisation problem for large arrays of WP post/page objects?
81
+ if ( ! is_array( $pages ) ) $pages = (array) $pages;
82
+ $pages = array_values( $pages );
83
+
84
+ return $pages;
85
+ }
86
+
87
+ // Recurse down an ancestor chain, checking if one is excluded
88
+ // Returns the ID of the "nearest" excluded ancestor
89
+ function ep_ancestor_excluded( & $page, & $excluded_ids, & $pages )
90
+ {
91
+ $parent = & ep_get_page( $page->post_parent, $pages );
92
+ // Is it excluded?
93
+ if ( in_array( $parent->ID, $excluded_ids ) ) {
94
+ return $parent->ID;
95
+ }
96
+ // Is it the homepage?
97
+ if ( $parent->ID == 0 ) return false;
98
+ // Otherwise we have another ancestor to check
99
+ return ep_ancestor_excluded( $parent, $excluded_ids, $pages );
100
+ }
101
+
102
+ // Return the portion of the $pages array which refers to the ID passed as $page_id
103
+ function ep_get_page( $page_id, & $pages )
104
+ {
105
+ // PHP 5 would be much nicer here, we could use foreach by reference, ah well.
106
+ $length = count($pages);
107
+ for ( $i=0; $i<$length; $i++ ) {
108
+ $page = & $pages[$i];
109
+ if ( $page->ID == $page_id ) return $page;
110
+ }
111
+ // Unusual.
112
+ return false;
113
+ }
114
+
115
+ // Is this page we're editing (defined by global $post_ID var)
116
+ // currently NOT excluded (i.e. included),
117
+ // returns true if NOT excluded (i.e. included)
118
+ // returns false is it IS excluded.
119
+ // (Tricky this upside down flag business.)
120
+ function ep_this_page_included()
121
+ {
122
+ global $post_ID;
123
+ // New post? Must be included then.
124
+ if ( ! $post_ID ) return true;
125
+ $excluded_ids = ep_get_excluded_ids();
126
+ // If there's no exclusion array, we can return true
127
+ if ( empty($excluded_ids) ) return true;
128
+ // Check if our page is in the exclusion array
129
+ // The bang (!) reverses the polarity [1] of the boolean
130
+ return ! in_array( $post_ID, $excluded_ids );
131
+ // fn1. (of the neutron flow, ahem)
132
+ }
133
+
134
+ // Check the ancestors for the page we're editing (defined by
135
+ // global $post_ID var), return the ID if the nearest one which
136
+ // is excluded (if any);
137
+ function ep_nearest_excluded_ancestor()
138
+ {
139
+ global $post_ID, $wpdb;
140
+ // New post? No problem.
141
+ if ( ! $post_ID ) return false;
142
+ $excluded_ids = ep_get_excluded_ids();
143
+ // Manually get all the pages, to avoid our own filter.
144
+ $sql = "SELECT ID, post_parent FROM $wpdb->posts WHERE post_type = 'page'";
145
+ $pages = $wpdb->get_results( $sql );
146
+ // Start recursively checking the ancestors
147
+ $parent = ep_get_page( $post_ID, $pages );
148
+ return ep_ancestor_excluded( $parent, $excluded_ids, $pages );
149
+ }
150
+
151
+ function ep_get_excluded_ids()
152
+ {
153
+ $exclude_ids_str = get_option( EP_OPTION_NAME );
154
+ // No excluded IDs? Return an empty array
155
+ if ( empty($exclude_ids_str) ) return array();
156
+ // Otherwise, explode the separated string into an array, and return that
157
+ return explode( EP_OPTION_SEP, $exclude_ids_str );
158
+ }
159
+
160
+ // This function gets all the exclusions out of the options
161
+ // table, updates them, and resaves them in the options table.
162
+ // We're avoiding making this a postmeta (custom field) because we
163
+ // don't want to have to retrieve meta for every page in order to
164
+ // determine if it's to be excluded. Storing all the exclusions in
165
+ // one row seems more sensible.
166
+ function ep_update_exclusions( $post_ID )
167
+ {
168
+ // Bang (!) to reverse the polarity of the boolean, turning include into exclude
169
+ $exclude_this_page = ! (bool) $_POST['ep_this_page_included'];
170
+ // SWTODO: Also check for a hidden var, which confirms that this checkbox was present
171
+ // If hidden var not present, then default to including the page in the nav (i.e. bomb out here rather
172
+ // than add the page ID to the list of IDs to exclude)
173
+ $ctrl_present = (bool) @ $_POST['ep_ctrl_present'];
174
+ if ( ! $ctrl_present ) return;
175
+
176
+ $excluded_ids = ep_get_excluded_ids();
177
+ // If we need to EXCLUDE the page from the navigation...
178
+ if ( $exclude_this_page ) {
179
+ // Add the post ID to the array of excluded IDs
180
+ array_push( $excluded_ids, $post_ID );
181
+ // De-dupe the array, in case it was there already
182
+ $excluded_ids = array_unique( $excluded_ids );
183
+ }
184
+ // If we need to INCLUDE the page in the navigation...
185
+ if ( ! $exclude_this_page ) {
186
+ // Find the post ID in the array of excluded IDs
187
+ $index = array_search( $post_ID, $excluded_ids );
188
+ // Delete any index found
189
+ if ( $index !== false ) unset( $excluded_ids[$index] );
190
+ }
191
+ $excluded_ids_str = implode( EP_OPTION_SEP, $excluded_ids );
192
+ ep_set_option( EP_OPTION_NAME, $excluded_ids_str, "Comma separated list of post and page IDs to exclude when returning pages from the get_pages function." );
193
+ }
194
+
195
+ // Take an option, delete it if it exists, then add it.
196
+ function ep_set_option( $name, $value, $description )
197
+ {
198
+ // Delete option
199
+ delete_option($name);
200
+ // Insert option
201
+ add_option($name, $value, $description);
202
+ }
203
+
204
+ // Pre WP2.5
205
+ // Add some HTML for the DBX sidebar control into the edit page page
206
+ function ep_admin_sidebar()
207
+ {
208
+ $nearest_excluded_ancestor = ep_nearest_excluded_ancestor();
209
+ echo ' <fieldset id="excludepagediv" class="dbx-box">';
210
+ echo ' <h3 class="dbx-handle">'.__('Navigation').'</h3>';
211
+ echo ' <div class="dbx-content">';
212
+ echo ' <label for="ep_this_page_included" class="selectit">';
213
+ echo ' <input ';
214
+ echo ' type="checkbox" ';
215
+ echo ' name="ep_this_page_included" ';
216
+ echo ' id="ep_this_page_included" ';
217
+ if ( ep_this_page_included() ) echo 'checked="checked"';
218
+ echo ' />';
219
+ echo ' '.__('Include this page in menus').'</label>';
220
+ echo ' <input type="hidden" name="ep_ctrl_present" value="1" />';
221
+ if ( $nearest_excluded_ancestor !== false ) {
222
+ echo '<div class="exclude_alert">';
223
+ echo __('An ancestor of this page is excluded, so this page is too. ');
224
+ echo '<a href="page.php?action=edit&amp;post='.$nearest_excluded_ancestor.'"';
225
+ echo ' title="'.__('edit the excluded ancestor').'">'.__('Edit ancestor').'</a>.</div>';
226
+ }
227
+ echo ' </div></fieldset>';
228
+ }
229
+
230
+ // Post WP 2.5
231
+ // Add some HTML below the submit box
232
+ function ep_admin_sidebar_wp25()
233
+ {
234
+ $nearest_excluded_ancestor = ep_nearest_excluded_ancestor();
235
+ echo ' <div id="excludepagediv" class="new-admin-wp25">';
236
+ echo ' <div class="outer"><div class="inner">';
237
+ echo ' <label for="ep_this_page_included" class="selectit">';
238
+ echo ' <input ';
239
+ echo ' type="checkbox" ';
240
+ echo ' name="ep_this_page_included" ';
241
+ echo ' id="ep_this_page_included" ';
242
+ if ( ep_this_page_included() ) echo 'checked="checked"';
243
+ echo ' />';
244
+ echo ' '.__('Include this page in user menus').'</label>';
245
+ echo ' <input type="hidden" name="ep_ctrl_present" value="1" />';
246
+ if ( $nearest_excluded_ancestor !== false ) {
247
+ echo '<div class="exclude_alert"><em>';
248
+ echo __('N.B. An ancestor of this page is excluded, so this page is too. ');
249
+ echo '<a href="page.php?action=edit&amp;post='.$nearest_excluded_ancestor.'"';
250
+ echo ' title="'.__('edit the excluded ancestor').'">'.__('Edit ancestor').'</a>.</em></div>';
251
+ }
252
+ echo ' </div><!-- .inner --></div><!-- .outer -->';
253
+ echo ' </div><!-- #excludepagediv -->';
254
+ }
255
+
256
+ // Add some CSS into the HEAD element of the admin area
257
+ function ep_admin_css()
258
+ {
259
+ echo ' <style type="text/css" media="screen">';
260
+ echo ' div.exclude_alert { font-size: 11px; }';
261
+ echo ' .new-admin-wp25 { font-size: 11px; background-color: #fff; }';
262
+ echo ' .new-admin-wp25 div.inner { padding: 8px 12px; background-color: #EAF3FA; border: 1px solid #EAF3FA; -moz-border-radius: 3px; -khtml-border-bottom-radius: 3px; -webkit-border-bottom-radius: 3px; border-bottom-radius: 3px; }';
263
+ echo ' #ep_admin_meta_box div.inner { padding: inherit; background-color: transparent; border: none; }';
264
+ echo ' #ep_admin_meta_box div.inner label { background-color: none; }';
265
+ echo ' .new-admin-wp25 div.exclude_alert { padding-top: 5px; }';
266
+ echo ' .new-admin-wp25 div.exclude_alert em { font-style: normal; }';
267
+ echo ' </style>';
268
+ }
269
+
270
+ // Add our ctrl to the list of controls which AREN'T hidden
271
+ function ep_hec_show_dbx( $to_show )
272
+ {
273
+ array_push( $to_show, 'excludepagediv' );
274
+ return $to_show;
275
+ }
276
+
277
+ // PAUSE & RESUME FUNCTIONS
278
+
279
+ function pause_exclude_pages()
280
+ {
281
+ remove_filter('get_pages','ep_exclude_pages');
282
+ }
283
+
284
+ function resume_exclude_pages()
285
+ {
286
+ add_filter('get_pages','ep_exclude_pages');
287
+ }
288
+
289
+ // INIT FUNCTIONS
290
+
291
+ function ep_init()
292
+ {
293
+ // Call this function on the get_pages filter
294
+ // (get_pages filter appears to only be called on the "consumer" side of WP,
295
+ // the admin side must use another function to get the pages. So we're safe to
296
+ // remove these pages every time.)
297
+ add_filter('get_pages','ep_exclude_pages');
298
+ }
299
+
300
+ function ep_admin_init()
301
+ {
302
+ // Add panels into the editing sidebar(s)
303
+ global $wp_version;
304
+ if ( version_compare( $wp_version, '2.7-beta', '>=' ) ) {
305
+ add_meta_box('ep_admin_meta_box', __('Exclude Pages'), 'ep_admin_sidebar_wp25', 'page', 'side', 'low');
306
+ } else {
307
+ add_action('dbx_page_sidebar', 'ep_admin_sidebar'); // Pre WP2.5
308
+ add_action('submitpage_box', 'ep_admin_sidebar_wp25'); // Post WP 2.5, pre WP 2.7
309
+ }
310
+
311
+ // Set the exclusion when the post is saved
312
+ add_action('save_post', 'ep_update_exclusions');
313
+
314
+ // Add some CSS to the admin header
315
+ add_action('admin_head', 'ep_admin_css');
316
+
317
+ // Call this function on our very own hec_show_dbx filter
318
+ // This filter is harmless to add, even if we don't have the
319
+ // Hide Editor Clutter plugin installed as it's using a custom filter
320
+ // which won't be called except by the HEC plugin.
321
+ // Uncomment to show the control by default
322
+ // add_filter('hec_show_dbx','ep_hec_show_dbx');
323
+ }
324
+
325
+ // HOOK IT UP TO WORDPRESS
326
+
327
+ add_action( 'init', 'ep_init' );
328
+ add_action( 'admin_init', 'ep_admin_init' )
329
+
330
+ ?>
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Shailan Dropdown Menu Widget ===
2
- Contributors: mattsay
3
  Donate link: http://shailan.com/donate
4
  Tags: css, dropdown, menu, widget, pages, categories
5
  Requires at least: 2.5
6
- Tested up to: 2.9
7
- Stable tag: 1.3.1
8
 
9
  This widget adds a beatiful vertical/horizontal CSS only dropdown menu of pages OR categories of your blog.
10
 
@@ -47,6 +47,9 @@ You can submit errors and bugs using the [online form](http://shailan.com/contac
47
 
48
  == Changelog ==
49
 
 
 
 
50
  = 1.3.1 =
51
  * Added "Blue gradient" theme.
52
 
@@ -112,5 +115,4 @@ You can submit errors and bugs using the [online form](http://shailan.com/contac
112
  == TODO ==
113
 
114
  * Add option for custom menus.
115
- * Add option for including homepage link.
116
  * Add some more themes.. [Request a theme](http://shailan.com/contact)
1
  === Shailan Dropdown Menu Widget ===
2
+ Contributors: mattsay
3
  Donate link: http://shailan.com/donate
4
  Tags: css, dropdown, menu, widget, pages, categories
5
  Requires at least: 2.5
6
+ Tested up to: 2.9.1
7
+ Stable tag: 1.3.2
8
 
9
  This widget adds a beatiful vertical/horizontal CSS only dropdown menu of pages OR categories of your blog.
10
 
47
 
48
  == Changelog ==
49
 
50
+ = 1.3.2 =
51
+ * Bundled with "Exclude Pages" plugin by [Simon Wheatley](http://simonwheatley.co.uk/wordpress/). You can now easily exclude pages from the navigation. Just uncheck the the "Include page in menus" checkbox on the page edit screen. See [screenshots](http://wordpress.org/extend/plugins/dropdown-menu-widget/screenshots/) for more information.
52
+
53
  = 1.3.1 =
54
  * Added "Blue gradient" theme.
55
 
115
  == TODO ==
116
 
117
  * Add option for custom menus.
 
118
  * Add some more themes.. [Request a theme](http://shailan.com/contact)
screenshot-5.PNG ADDED
Binary file
shailan.DropDownMenu.php CHANGED
@@ -3,13 +3,13 @@
3
  Plugin Name: Shailan Dropdown Menu Widget
4
  Plugin URI: http://shailan.com/wordpress/plugins/dropdown-menu
5
  Description: A multi widget to generate drop-down menus from your pages and categories. This widget is best used in <a href="http://shailan.com">Shailan.com</a> themes. You can find more widgets, plugins and themes at <a href="http://shailan.com">shailan.com</a>.
6
- Version: 1.3.1
7
  Author: Matt Say
8
  Author URI: http://shailan.com
9
  Text Domain: shailan-dropdown-menu
10
  */
11
 
12
- define('SHAILAN_DM_VERSION','1.3.1');
13
  define('SHAILAN_DM_TITLE', 'Dropdown Menu');
14
  define('SHAILAN_DM_FOLDER', 'dropdown-menu-widget');
15
 
@@ -93,6 +93,7 @@ class shailan_DropdownWidget extends WP_Widget {
93
  'None'=>'NONE',
94
  'Simple White'=>'simple',
95
  'Wordpress Default'=>'wpdefault',
 
96
  'Grayscale'=>'grayscale',
97
  'Aqua'=>'aqua',
98
  'Blue gradient'=>'simple-blue',
@@ -347,6 +348,7 @@ load_plugin_textdomain( 'shailan-dropdown-menu', 'wp-content/plugins/' . $plugin
347
  // add admin menu
348
  add_action('admin_menu', array('shailan_DropdownWidget', 'adminMenu'));
349
 
 
350
  include('shailan-page-walker.php'); // Load custom page walker
351
  include('shailan-category-walker.php'); // Load custom category walker
352
 
3
  Plugin Name: Shailan Dropdown Menu Widget
4
  Plugin URI: http://shailan.com/wordpress/plugins/dropdown-menu
5
  Description: A multi widget to generate drop-down menus from your pages and categories. This widget is best used in <a href="http://shailan.com">Shailan.com</a> themes. You can find more widgets, plugins and themes at <a href="http://shailan.com">shailan.com</a>.
6
+ Version: 1.3.2
7
  Author: Matt Say
8
  Author URI: http://shailan.com
9
  Text Domain: shailan-dropdown-menu
10
  */
11
 
12
+ define('SHAILAN_DM_VERSION','1.3.2');
13
  define('SHAILAN_DM_TITLE', 'Dropdown Menu');
14
  define('SHAILAN_DM_FOLDER', 'dropdown-menu-widget');
15
 
93
  'None'=>'NONE',
94
  'Simple White'=>'simple',
95
  'Wordpress Default'=>'wpdefault',
96
+ 'Mystique'=>'mystique',
97
  'Grayscale'=>'grayscale',
98
  'Aqua'=>'aqua',
99
  'Blue gradient'=>'simple-blue',
348
  // add admin menu
349
  add_action('admin_menu', array('shailan_DropdownWidget', 'adminMenu'));
350
 
351
+ include_once('exclude_pages.php');
352
  include('shailan-page-walker.php'); // Load custom page walker
353
  include('shailan-category-walker.php'); // Load custom category walker
354
 
themes/mystique.css ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* --- Dropdown background --- */
2
+ .shailan-dropdown-menu{
3
+ background:#006 url(images/blue_menu_bg.gif) repeat-x;
4
+ width:1000px; height:47px;
5
+ font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif;
6
+ font-size:14px;}
7
+ ul.dropdown{padding-left:20px;}
8
+ /* --- Dropdown basics ---*/
9
+ ul.dropdown a {
10
+ display:block;
11
+ vertical-align:middle;
12
+ text-align:center;
13
+ padding:12px 10px 10px 12px;
14
+ color: #000;
15
+ text-decoration:none;
16
+ text-transform:uppercase;}
17
+ /*--- Top level ---*/
18
+ ul.dropdown li a{
19
+ height:100%;
20
+ color:#fff;
21
+ }
22
+ ul.dropdown li+li a{
23
+ background:url(images/blue_menu_sep.gif) left center no-repeat;
24
+ }
25
+ ul.dropdown li a:hover{
26
+ text-decoration:underline;
27
+ color:#eee;
28
+ }
29
+ /*--- Sub level ---*/
30
+ ul.dropdown ul {
31
+ margin:0px;
32
+ list-style:none;
33
+ padding:0px;
34
+ background:#002055;
35
+ border:1px solid #000047;
36
+ text-align:left;
37
+ }
38
+
39
+ ul.dropdown ul li a{
40
+ color:#fff;
41
+ width:auto;
42
+ min-width:100px;
43
+ padding:2px 5px 3px 5px;
44
+ margin:0px;
45
+ height:auto;
46
+ text-align:left;
47
+ background:transparent;
48
+ }
49
+
50
+ ul.dropdown ul li a:hover{
51
+ position:relative;
52
+ background-color:#002f6a;
53
+ color: #fff;
54
+ text-decoration:none;
55
+ }
56
+ ul.dropdown li.current_page_item>a, ul.dropdown li.current-cat>a { font-weight:bold; }
themes/simple-blue.css CHANGED
@@ -50,7 +50,6 @@ ul.dropdown ul li a{
50
  ul.dropdown ul li a:hover{
51
  position:relative;
52
  background-color:#002f6a;
53
- border-style:solid;
54
  color: #fff;
55
  text-decoration:none;
56
  }
50
  ul.dropdown ul li a:hover{
51
  position:relative;
52
  background-color:#002f6a;
 
53
  color: #fff;
54
  text-decoration:none;
55
  }