Genesis Simple Sidebars - Version 1.0.0

Version Description

  • Increase requirement to WordPress 3.3 and Genesis 1.8.0
  • Switch to Genesis Admin class to build admin menu.
Download this release

Release Info

Developer wpmuguru
Plugin Icon 128x128 Genesis Simple Sidebars
Version 1.0.0
Comparing to
See all releases

Code changes from version 0.9.2.1 to 1.0.0

admin.php DELETED
@@ -1,181 +0,0 @@
1
- <?php
2
- /**
3
- * This registers the settings field and adds empty array to the options table
4
- */
5
- add_action('admin_init', 'register_ss_settings');
6
- function register_ss_settings() {
7
- register_setting(SS_SETTINGS_FIELD, SS_SETTINGS_FIELD);
8
- add_option(SS_SETTINGS_FIELD, array(), '', 'yes');
9
- }
10
-
11
- /**
12
- * This function adds our "Simple Sidebars" submenu item
13
- */
14
- add_action('admin_menu', 'ss_settings_init', 15);
15
- function ss_settings_init() {
16
-
17
- add_submenu_page('genesis', __('Simple Sidebars','ss'), __('Simple Sidebars','ss'), 'manage_options', 'simple-sidebars', 'ss_settings_admin');
18
-
19
- }
20
-
21
- add_action('admin_init', 'ss_action_functions');
22
- function ss_action_functions() {
23
-
24
- if ( !isset( $_REQUEST['page'] ) || $_REQUEST['page'] != 'simple-sidebars' ) {
25
- return;
26
- }
27
-
28
- /**
29
- * This section handles the data if a new sidebar is created
30
- */
31
- if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'create' ) {
32
- ss_create_sidebar( $_POST['new_sidebar'] );
33
- }
34
-
35
- /**
36
- * This section will handle the data if a sidebar is deleted
37
- */
38
- if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'delete' && isset( $_REQUEST['id'] ) ) {
39
- ss_delete_sidebar( $_REQUEST['id'] );
40
- }
41
-
42
- /**
43
- * This section will handle the data if a sidebar is to be modified
44
- */
45
- if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'edit' && !isset( $_REQUEST['id'] ) ) {
46
- ss_edit_sidebar( $_POST['edit_sidebar'] );
47
- }
48
- }
49
-
50
- /**
51
- * This function is what actually gets output to the page.
52
- * It handles the markup, builds the form, etc.
53
- */
54
- function ss_settings_admin() { ?>
55
-
56
- <div class="wrap">
57
-
58
- <?php
59
- if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'edit' ) :
60
-
61
- $_sidebars = get_option( SS_SETTINGS_FIELD );
62
-
63
- if ( array_key_exists( $_REQUEST['id'], (array)$_sidebars ) ) {
64
- $_sidebar = stripslashes_deep( $_sidebars[$_REQUEST['id']] );
65
- } else {
66
- wp_die( __('Nice try, partner. But that sidebar doesn\'t exist. Click back and try again.', 'ss') );
67
- }
68
-
69
- ?>
70
-
71
- <?php screen_icon('themes'); ?>
72
- <h2><?php _e('Edit Sidebar', 'ss'); ?></h2>
73
-
74
- <form method="post" action="<?php echo admin_url( 'admin.php?page=simple-sidebars&amp;action=edit' ); ?>">
75
- <?php wp_nonce_field('simple-sidebars-action_edit-sidebar'); ?>
76
- <table class="form-table">
77
-
78
- <tr class="form-field">
79
- <th scope="row" valign="top"><label for="edit_sidebar[name]"><?php _e('Name', 'ss'); ?></label></th>
80
- <td><input name="edit_sidebar[name]" id="edit_sidebar[name]" type="text" value="<?php echo esc_html( $_sidebar['name'] ); ?>" size="40" />
81
- <p class="description"><?php _e('A recognizable name for your new sidebar widget area', 'ss'); ?></p></td>
82
- </tr>
83
-
84
- <tr class="form-field">
85
- <th scope="row" valign="top"><label for="edit_sidebar[id]"><?php _e('ID', 'ss'); ?></label></th>
86
- <td>
87
- <input type="text" value="<?php echo esc_html( $_REQUEST['id'] ); ?>" size="40" disabled="disabled" />
88
- <input name="edit_sidebar[id]" id="edit_sidebar[id]" type="hidden" value="<?php echo esc_html( $_REQUEST['id'] ); ?>" size="40" />
89
- <p class="description"><?php _e('The unique ID is used to register the sidebar widget area (cannot be changed)', 'ss'); ?></p></td>
90
- </tr>
91
-
92
- <tr class="form-field">
93
- <th scope="row" valign="top"><label for="edit_sidebar[description]"><?php _e('Description', 'ss'); ?></label></th>
94
- <td><textarea name="edit_sidebar[description]" id="edit_sidebar[description]" rows="3" cols="50" style="width: 97%;"><?php echo esc_html( $_sidebar['description'] ); ?></textarea></td>
95
- </tr>
96
-
97
- </table>
98
-
99
- <p class="submit"><input type="submit" class="button-primary" name="submit" value="<?php _e('Update', 'ss'); ?>" /></p>
100
-
101
- </form>
102
-
103
- <?php else : ?>
104
-
105
- <?php screen_icon('themes'); ?>
106
- <h2><?php _e('Genesis - Simple Sidebars', 'ss'); ?></h2>
107
-
108
- <div id="col-container">
109
-
110
- <div id="col-right">
111
- <div class="col-wrap">
112
-
113
- <h3><?php _e('Current Sidebars', 'ss'); ?></h3>
114
- <table class="widefat tag fixed" cellspacing="0">
115
- <thead>
116
- <tr>
117
- <th scope="col" id="name" class="manage-column column-name"><?php _e('Name', 'ss'); ?></th>
118
- <th scope="col" class="manage-column column-slug"><?php _e('ID', 'ss'); ?></th>
119
- <th scope="col" id="description" class="manage-column column-description"><?php _e('Description', 'ss'); ?></th>
120
- </tr>
121
- </thead>
122
-
123
- <tfoot>
124
- <tr>
125
- <th scope="col" class="manage-column column-name"><?php _e('Name', 'ss'); ?></th>
126
- <th scope="col" class="manage-column column-slug"><?php _e('ID', 'ss'); ?></th>
127
- <th scope="col" class="manage-column column-description"><?php _e('Description', 'ss'); ?></th>
128
- </tr>
129
- </tfoot>
130
-
131
- <tbody id="the-list" class="list:tag">
132
-
133
- <?php ss_sidebar_table_rows(); ?>
134
-
135
- </tbody>
136
- </table>
137
-
138
- </div>
139
- </div><!-- /col-right -->
140
-
141
- <div id="col-left">
142
- <div class="col-wrap">
143
-
144
-
145
- <div class="form-wrap">
146
- <h3><?php _e('Add New Sidebar', 'ss'); ?></h3>
147
-
148
- <form method="post" action="<?php echo admin_url( 'admin.php?page=simple-sidebars&amp;action=create' ); ?>">
149
- <?php wp_nonce_field('simple-sidebars-action_create-sidebar'); ?>
150
-
151
- <div class="form-field form-required">
152
- <label for="sidebar-name"><?php _e('Name', 'ss'); ?></label>
153
- <input name="new_sidebar[name]" id="sidebar-name" type="text" value="" size="40" aria-required="true" />
154
- <p><?php _e('A recognizable name for your new sidebar widget area', 'ss'); ?></p>
155
- </div>
156
-
157
- <div class="form-field">
158
- <label for="sidebar-id"><?php _e('ID', 'ss'); ?></label>
159
- <input name="new_sidebar[id]" id="sidebar-id" type="text" value="" size="40" />
160
- <p><?php _e('The unique ID is used to register the sidebar widget area', 'ss'); ?></p>
161
- </div>
162
-
163
- <div class="form-field">
164
- <label for="sidebar-description"><?php _e('Description', 'ss'); ?></label>
165
- <textarea name="new_sidebar[description]" id="sidebar-description" rows="5" cols="40"></textarea>
166
- </div>
167
-
168
- <p class="submit"><input type="submit" class="button" name="submit" id="submit" value="<?php _e('Add New Sidebar', 'ss'); ?>" /></p>
169
- </form></div>
170
-
171
- </div>
172
- </div><!-- /col-left -->
173
-
174
- </div><!-- /col-container -->
175
-
176
- <?php endif; ?>
177
-
178
- </div><!-- /wrap -->
179
-
180
- <?php
181
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
functions.php DELETED
@@ -1,189 +0,0 @@
1
- <?php
2
- function ss_sidebar_table_rows() {
3
- global $wp_registered_sidebars;
4
-
5
- $_sidebars = $wp_registered_sidebars;
6
-
7
- $alt = true;
8
-
9
- foreach ( (array)$_sidebars as $id => $info ) { ?>
10
-
11
- <?php
12
- $is_editable = isset( $info['editable'] ) && $info['editable'] ? true : false;
13
- ?>
14
-
15
- <tr <?php if ( $alt ) { echo 'class="alternate"'; $alt = false; } else { $alt = true; } ?>>
16
- <td class="name column-name">
17
- <?php
18
- if ( $is_editable ) {
19
- printf( '<a class="row-title" href="%s" title="Edit %s">%s</a>', admin_url('admin.php?page=simple-sidebars&amp;action=edit&amp;id=' . esc_html( $id ) ), esc_html( $info['name'] ), esc_html( $info['name'] ) );
20
- } else {
21
- printf( '<strong class="row-title">%s</strong>', esc_html( $info['name'] ) );
22
- }
23
- ?>
24
-
25
- <?php if ( $is_editable ) : ?>
26
- <br />
27
- <div class="row-actions">
28
- <span class="edit"><a href="<?php echo admin_url('admin.php?page=simple-sidebars&amp;action=edit&amp;id=' . esc_html( $id ) ); ?>"><?php _e('Edit', 'ss'); ?></a> | </span>
29
- <span class="delete"><a class="delete-tag" href="<?php echo wp_nonce_url( admin_url( 'admin.php?page=simple-sidebars&amp;action=delete&amp;id=' . esc_html( $id ) ), 'simple-sidebars-action_delete-sidebar' ); ?>"><?php _e('Delete', 'ss'); ?></a></span>
30
- </div>
31
- <?php endif; ?>
32
-
33
- </td>
34
- <td class="slug column-slug"><?php echo esc_html( $id ); ?></td>
35
- <td class="description column-description"><?php echo esc_html( $info['description'] )?></td>
36
- </tr>
37
-
38
- <?php
39
- }
40
-
41
- }
42
-
43
- function ss_create_sidebar( $args = array() ) {
44
-
45
- if ( empty( $args['name'] ) || empty( $args['id'] ) ) {
46
- wp_die( ss_error_message(1) );
47
- exit;
48
- }
49
-
50
- // nonce verification
51
- check_admin_referer('simple-sidebars-action_create-sidebar');
52
-
53
- // WP changes a numeric sidebar id to sidebar-id which makes it inaccessible to the user
54
- if ( is_numeric( $args['id'] ) )
55
- $args['id'] = sanitize_title_with_dashes( $args['name'] );
56
-
57
- $db = (array)get_option(SS_SETTINGS_FIELD);
58
- $new = array(
59
- sanitize_title_with_dashes( $args['id'] ) => array(
60
- 'name' => esc_html( $args['name'] ),
61
- 'description' => esc_html( $args['description'] )
62
- )
63
- );
64
-
65
- if ( array_key_exists( $args['id'], $db ) ) {
66
- wp_die( ss_error_message(2) );
67
- exit;
68
- }
69
-
70
- $_sidebars = wp_parse_args( $new, $db );
71
-
72
- update_option( SS_SETTINGS_FIELD, $_sidebars );
73
- wp_redirect( admin_url('admin.php?page=simple-sidebars&created=true') );
74
- exit;
75
-
76
- }
77
-
78
- function ss_edit_sidebar( $args = array() ) {
79
-
80
- if ( empty( $args['name'] ) || empty( $args['id'] ) ) {
81
- wp_die( ss_error_message(3) );
82
- exit;
83
- }
84
-
85
- // nonce verification
86
- check_admin_referer('simple-sidebars-action_edit-sidebar');
87
-
88
- // WP changes a numeric sidebar id to sidebar-id which makes it inaccessible to the user
89
- if ( is_numeric( $args['id'] ) )
90
- $args['id'] = sanitize_title_with_dashes( $args['name'] );
91
-
92
- $db = (array)get_option(SS_SETTINGS_FIELD);
93
- $new = array(
94
- sanitize_title_with_dashes( $args['id'] ) => array(
95
- 'name' => esc_html( $args['name'] ),
96
- 'description' => esc_html( $args['description'] )
97
- )
98
- );
99
-
100
- if ( !array_key_exists( $args['id'], $db ) ) {
101
- wp_die( ss_error_message(3) );
102
- exit;
103
- }
104
-
105
- $_sidebars = wp_parse_args( $new, $db );
106
-
107
- update_option( SS_SETTINGS_FIELD, $_sidebars );
108
- wp_redirect( admin_url('admin.php?page=simple-sidebars&edited=true') );
109
- exit;
110
-
111
- }
112
-
113
- function ss_delete_sidebar( $id = '' ) {
114
-
115
- if ( empty( $id ) ) {
116
- wp_die( ss_error_message(4) );
117
- exit;
118
- }
119
-
120
- // nonce verification
121
- check_admin_referer('simple-sidebars-action_delete-sidebar');
122
-
123
- $_sidebars = (array)get_option( SS_SETTINGS_FIELD );
124
-
125
- if ( !isset( $_sidebars[$id] ) ) {
126
- wp_die( ss_error_message(4) );
127
- exit;
128
- }
129
-
130
- unset( $_sidebars[$id] );
131
-
132
- update_option( SS_SETTINGS_FIELD, $_sidebars );
133
- wp_redirect( admin_url('admin.php?page=simple-sidebars&deleted=true') );
134
- exit;
135
-
136
- }
137
-
138
- function ss_error_message( $error = false ) {
139
-
140
- if ( !$error ) return false;
141
-
142
- switch( (int)$error ) {
143
-
144
- case 1:
145
- return __('Oops! Please choose a valid Name and ID for this sidebar', 'ss');
146
- break;
147
- case 2:
148
- return __('Oops! That sidebar ID already exists', 'ss');
149
- break;
150
- case 3:
151
- return __('Oops! You are trying to edit a sidebar that does not exist, or is not editable', 'ss');
152
- break;
153
- case 4:
154
- return __('Oops! You are trying to delete a sidebar that does not exist, or cannot be deleted', 'ss');
155
- break;
156
- default:
157
- return __('Oops! Something went wrong. Try again.', 'ss');
158
-
159
- }
160
-
161
- }
162
-
163
- add_action('admin_notices', 'ss_success_message');
164
- function ss_success_message() {
165
-
166
- if ( !isset( $_REQUEST['page'] ) || $_REQUEST['page'] != 'simple-sidebars' ) {
167
- return;
168
- }
169
-
170
- $format = '<div id="message" class="updated"><p><strong>%s</strong></p></div>';
171
-
172
- if ( isset( $_REQUEST['created'] ) && $_REQUEST['created'] === 'true' ) {
173
- printf( $format, __('New sidebar successfully created!', 'ss') );
174
- return;
175
- }
176
-
177
- if ( isset( $_REQUEST['edited'] ) && $_REQUEST['edited'] === 'true' ) {
178
- printf( $format, __('Sidebar successfully edited!', 'ss') );
179
- return;
180
- }
181
-
182
- if ( isset( $_REQUEST['deleted'] ) && $_REQUEST['deleted'] === 'true' ) {
183
- printf( $format, __('Sidebar successfully deleted.', 'ss') );
184
- return;
185
- }
186
-
187
- return;
188
-
189
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/admin.php ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Controls the creation, deletion, and editing of Simple Sidebar.
4
+ *
5
+ * @author StudioPress
6
+ */
7
+
8
+ /**
9
+ * Registers a new admin page, providing content and corresponding menu item
10
+ * for the Genesis Simple Sidebars plugin.
11
+ *
12
+ * @since 1.0.0
13
+ */
14
+ class Genesis_Simple_Sidebars_Admin extends Genesis_Admin_Basic {
15
+
16
+ /**
17
+ * Create an admin menu item and settings page.
18
+ *
19
+ * @since 1.0.0
20
+ *
21
+ * @uses Genesis_Admin::create() Register the admin page
22
+ *
23
+ * @see Genesis_Admin_Import_Export::actions() Handle creating, editing, and deleting sidebars.
24
+ */
25
+ public function __construct() {
26
+
27
+ $page_id = 'simple-sidebars';
28
+
29
+ $menu_ops = array(
30
+ 'submenu' => array(
31
+ 'parent_slug' => 'genesis',
32
+ 'page_title' => __( 'Genesis - Simple Sidebars', 'ss' ),
33
+ 'menu_title' => __( 'Simple Sidebars', 'ss' )
34
+ )
35
+ );
36
+
37
+ /** Empty, as we'll be building the page manually */
38
+ $page_ops = array();
39
+
40
+ $settings_field = SS_SETTINGS_FIELD;
41
+
42
+ $this->create( $page_id, $menu_ops, $page_ops, $settings_field );
43
+
44
+ /** Simpe Sidebar actions (create, edit, or delete) */
45
+ add_action( 'admin_init', array( $this, 'actions' ) );
46
+
47
+ }
48
+
49
+ /**
50
+ * Callback for displaying the Simple Sidebars admin page.
51
+ *
52
+ * Echoes out HTML.
53
+ *
54
+ * @since 1.0.0
55
+ *
56
+ */
57
+ public function admin() {
58
+
59
+ $_sidebars = get_option( $this->settings_field );
60
+
61
+ echo '<div class="wrap">';
62
+
63
+ if ( isset( $_REQUEST['action'] ) && 'edit' == $_REQUEST['action'] )
64
+ require_once( SS_PLUGIN_DIR . '/includes/views/edit.php' );
65
+ else
66
+ require_once( SS_PLUGIN_DIR . '/includes/views/main.php' );
67
+
68
+ echo '</div>';
69
+
70
+ }
71
+
72
+ /**
73
+ * Display sidebar table rows.
74
+ *
75
+ * Displays table rows of sidebars for viewing and editing on the main admin page.
76
+ *
77
+ * @since 1.0.0
78
+ *
79
+ */
80
+ public function table_rows() {
81
+
82
+ global $wp_registered_sidebars;
83
+
84
+ $_sidebars = $wp_registered_sidebars;
85
+
86
+ $alt = true;
87
+
88
+ foreach ( (array) $_sidebars as $id => $info ) :
89
+
90
+ $is_editable = isset( $info['editable'] ) && $info['editable'] ? true : false;
91
+
92
+ ?>
93
+
94
+ <tr <?php if ( $alt ) { echo 'class="alternate"'; $alt = false; } else { $alt = true; } ?>>
95
+ <td class="name column-name">
96
+ <?php
97
+ if ( $is_editable ) {
98
+ printf( '<a class="row-title" href="%s" title="Edit %s">%s</a>', admin_url('admin.php?page=simple-sidebars&amp;action=edit&amp;id=' . esc_html( $id ) ), esc_html( $info['name'] ), esc_html( $info['name'] ) );
99
+ } else {
100
+ printf( '<strong class="row-title">%s</strong>', esc_html( $info['name'] ) );
101
+ }
102
+ ?>
103
+
104
+ <?php if ( $is_editable ) : ?>
105
+ <br />
106
+ <div class="row-actions">
107
+ <span class="edit"><a href="<?php echo admin_url('admin.php?page=simple-sidebars&amp;action=edit&amp;id=' . esc_html( $id ) ); ?>"><?php _e('Edit', 'ss'); ?></a> | </span>
108
+ <span class="delete"><a class="delete-tag" href="<?php echo wp_nonce_url( admin_url( 'admin.php?page=simple-sidebars&amp;action=delete&amp;id=' . esc_html( $id ) ), 'simple-sidebars-action_delete-sidebar' ); ?>"><?php _e('Delete', 'ss'); ?></a></span>
109
+ </div>
110
+ <?php endif; ?>
111
+
112
+ </td>
113
+ <td class="slug column-slug"><?php echo esc_html( $id ); ?></td>
114
+ <td class="description column-description"><?php echo esc_html( $info['description'] )?></td>
115
+ </tr>
116
+
117
+ <?php
118
+ endforeach;
119
+
120
+ }
121
+
122
+ /**
123
+ * Action handler.
124
+ *
125
+ * Depending on what action was intended by the user, this method calls the appropriate action method.
126
+ *
127
+ * @since 1.0.0
128
+ *
129
+ */
130
+ public function actions() {
131
+
132
+ if ( ! genesis_is_menu_page( 'simple-sidebars' ) )
133
+ return;
134
+
135
+ /**
136
+ * This section handles the data if a new sidebar is created
137
+ */
138
+ if ( isset( $_REQUEST['action'] ) && 'create' == $_REQUEST['action'] ) {
139
+ $this->create_sidebar( $_POST['new_sidebar'] );
140
+ }
141
+
142
+ /**
143
+ * This section will handle the data if a sidebar is deleted
144
+ */
145
+ if ( isset( $_REQUEST['action'] ) && 'delete' == $_REQUEST['action'] && isset( $_REQUEST['id'] ) ) {
146
+ $this->delete_sidebar( $_REQUEST['id'] );
147
+ }
148
+
149
+ /**
150
+ * This section will handle the data if a sidebar is to be modified
151
+ */
152
+ if ( isset( $_REQUEST['action'] ) && 'edit' == $_REQUEST['action'] && ! isset( $_REQUEST['id'] ) ) {
153
+ $this->edit_sidebar( $_POST['edit_sidebar'] );
154
+ }
155
+
156
+ }
157
+
158
+ /**
159
+ * Add custom notices that display when you successfully create, edit, or delete a sidebar.
160
+ *
161
+ * @since 1.0.0
162
+ *
163
+ * @return null Returns null if not on the correct admin page.
164
+ */
165
+ public function notices() {
166
+
167
+ if ( ! genesis_is_menu_page( 'simple-sidebars' ) )
168
+ return;
169
+
170
+ $pattern = '<div id="message" class="updated"><p><strong>%s</strong></p></div>';
171
+
172
+ if ( isset( $_REQUEST['created'] ) && 'true' === $_REQUEST['created'] ) {
173
+ printf( $pattern, __( 'New sidebar successfully created!', 'ss' ) );
174
+ return;
175
+ }
176
+
177
+ if ( isset( $_REQUEST['edited'] ) && 'true' === $_REQUEST['edited'] ) {
178
+ printf( $pattern, __( 'Sidebar successfully edited!', 'ss' ) );
179
+ return;
180
+ }
181
+
182
+ if ( isset( $_REQUEST['deleted'] ) && 'true' === $_REQUEST['deleted'] ) {
183
+ printf( $pattern, __( 'Sidebar successfully deleted.', 'ss' ) );
184
+ return;
185
+ }
186
+
187
+ return;
188
+
189
+ }
190
+
191
+ /**
192
+ * Create a sidebar.
193
+ *
194
+ * @since 1.0.0
195
+ *
196
+ */
197
+ protected function create_sidebar( $args = array() ) {
198
+
199
+ if ( empty( $args['name'] ) || empty( $args['id'] ) ) {
200
+ wp_die( $this->error( 1 ) );
201
+ exit;
202
+ }
203
+
204
+ // nonce verification
205
+ check_admin_referer( 'simple-sidebars-action_create-sidebar' );
206
+
207
+ // WP changes a numeric sidebar id to sidebar-id which makes it inaccessible to the user
208
+ if ( is_numeric( $args['id'] ) )
209
+ $args['id'] = sanitize_title_with_dashes( $args['name'] );
210
+
211
+ $db = (array) get_option( SS_SETTINGS_FIELD );
212
+ $new = array(
213
+ sanitize_title_with_dashes( $args['id'] ) => array(
214
+ 'name' => esc_html( $args['name'] ),
215
+ 'description' => esc_html( $args['description'] )
216
+ )
217
+ );
218
+
219
+ if ( array_key_exists( $args['id'], $db ) ) {
220
+ wp_die( $this->error( 2 ) );
221
+ exit;
222
+ }
223
+
224
+ $_sidebars = wp_parse_args( $new, $db );
225
+
226
+ update_option( SS_SETTINGS_FIELD, $_sidebars );
227
+ wp_redirect( admin_url( 'admin.php?page=simple-sidebars&created=true' ) );
228
+ exit;
229
+
230
+ }
231
+
232
+ /**
233
+ * Edit a sidebar.
234
+ *
235
+ * @since 1.0.0
236
+ *
237
+ */
238
+ protected function edit_sidebar( $args = array() ) {
239
+
240
+ if ( empty( $args['name'] ) || empty( $args['id'] ) ) {
241
+ wp_die( $this->error( 3 ) );
242
+ exit;
243
+ }
244
+
245
+ // nonce verification
246
+ check_admin_referer( 'simple-sidebars-action_edit-sidebar' );
247
+
248
+ // WP changes a numeric sidebar id to sidebar-id which makes it inaccessible to the user
249
+ if ( is_numeric( $args['id'] ) )
250
+ $args['id'] = sanitize_title_with_dashes( $args['name'] );
251
+
252
+ $db = (array) get_option( SS_SETTINGS_FIELD );
253
+ $new = array(
254
+ sanitize_title_with_dashes( $args['id'] ) => array(
255
+ 'name' => esc_html( $args['name'] ),
256
+ 'description' => esc_html( $args['description'] )
257
+ )
258
+ );
259
+
260
+ if ( ! array_key_exists( $args['id'], $db ) ) {
261
+ wp_die( $this->error( 3 ) );
262
+ exit;
263
+ }
264
+
265
+ $_sidebars = wp_parse_args( $new, $db );
266
+
267
+ update_option( SS_SETTINGS_FIELD, $_sidebars );
268
+ wp_redirect( admin_url( 'admin.php?page=simple-sidebars&edited=true' ) );
269
+ exit;
270
+
271
+ }
272
+
273
+ /**
274
+ * Delete a sidebar.
275
+ *
276
+ * @since 1.0.0
277
+ *
278
+ */
279
+ protected function delete_sidebar( $id = '' ) {
280
+
281
+ if ( empty( $id ) ) {
282
+ wp_die( $this->error( 4 ) );
283
+ exit;
284
+ }
285
+
286
+ // nonce verification
287
+ check_admin_referer( 'simple-sidebars-action_delete-sidebar' );
288
+
289
+ $_sidebars = (array) get_option( SS_SETTINGS_FIELD );
290
+
291
+ if ( ! isset( $_sidebars[$id] ) ) {
292
+ wp_die( $this->error( 4 ) );
293
+ exit;
294
+ }
295
+
296
+ unset( $_sidebars[$id] );
297
+
298
+ update_option( SS_SETTINGS_FIELD, $_sidebars );
299
+ wp_redirect( admin_url( 'admin.php?page=simple-sidebars&deleted=true' ) );
300
+ exit;
301
+
302
+ }
303
+
304
+ /**
305
+ * Returns an error message by ID.
306
+ *
307
+ * @since 1.0.0
308
+ *
309
+ * @return string Returns an error string based on an error ID.
310
+ */
311
+ protected function error( $error = false ) {
312
+
313
+ if ( ! $error )
314
+ return false;
315
+
316
+ switch( (int) $error ) {
317
+
318
+ case 1:
319
+ return __( 'Oops! Please choose a valid Name and ID for this sidebar', 'ss' );
320
+ break;
321
+ case 2:
322
+ return __( 'Oops! That sidebar ID already exists', 'ss' );
323
+ break;
324
+ case 3:
325
+ return __( 'Oops! You are trying to edit a sidebar that does not exist, or is not editable', 'ss' );
326
+ break;
327
+ case 4:
328
+ return __( 'Oops! You are trying to delete a sidebar that does not exist, or cannot be deleted', 'ss' );
329
+ break;
330
+ default:
331
+ return __( 'Oops! Something went wrong. Try again.', 'ss' );
332
+
333
+ }
334
+
335
+ }
336
+
337
+ }
338
+
339
+ add_action( 'genesis_admin_menu', 'simplesidebars_settings_menu' );
340
+ /**
341
+ * Instantiate the class to create the menu.
342
+ *
343
+ * @since 1.0.0
344
+ */
345
+ function simplesidebars_settings_menu() {
346
+
347
+ new Genesis_Simple_Sidebars_Admin;
348
+
349
+ }
inpost.php → includes/inpost.php RENAMED
@@ -4,20 +4,26 @@
4
  * so that users can choose what sidebar to use.
5
  */
6
  add_action('admin_menu', 'ss_add_inpost_metabox');
7
- function ss_add_inpost_metabox() {
 
8
  foreach ( (array)get_post_types( array( 'public' => true ) ) as $type ) {
 
9
  if ( post_type_supports( $type, 'genesis-simple-sidebars' ) || $type == 'post' || $type == 'page' ) {
10
  add_meta_box('ss_inpost_metabox', __('Sidebar Selection', 'ss'), 'ss_inpost_metabox', $type, 'side', 'low');
11
- }
 
12
  }
 
13
  }
14
 
15
- function ss_inpost_metabox() {
 
16
  $_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
 
17
  ?>
18
-
19
  <input type="hidden" name="ss_inpost_nonce" value="<?php echo wp_create_nonce(plugin_basename(__FILE__)); ?>" />
20
-
21
  <p>
22
  <label class="howto" for="_ss_sidebar"><span><?php _e('Primary Sidebar', 'ss'); ?><span></label>
23
  <select name="_ss_sidebar" id="_ss_sidebar" style="width: 99%">
@@ -31,7 +37,7 @@ function ss_inpost_metabox() {
31
  </p>
32
  <?php
33
  // don't show the option if there are no 3 column layouts registered
34
- if ( !ss_has_3_column_layouts() )
35
  return;
36
  ?>
37
  <p>
@@ -45,8 +51,8 @@ function ss_inpost_metabox() {
45
  ?>
46
  </select>
47
  </p>
48
-
49
- <?php
50
  }
51
 
52
  /**
@@ -54,11 +60,11 @@ function ss_inpost_metabox() {
54
  */
55
  add_action('save_post', 'ss_inpost_metabox_save', 1, 2);
56
  function ss_inpost_metabox_save( $post_id, $post ) {
57
-
58
  // verify the nonce
59
  if ( !isset($_POST['ss_inpost_nonce']) || !wp_verify_nonce( $_POST['ss_inpost_nonce'], plugin_basename(__FILE__) ) )
60
  return $post->ID;
61
-
62
  // don't try to save the data under autosave, ajax, or future post.
63
  if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
64
  if ( defined('DOING_AJAX') && DOING_AJAX ) return;
@@ -67,17 +73,17 @@ function ss_inpost_metabox_save( $post_id, $post ) {
67
  // is the user allowed to edit the post or page?
68
  if ( ( 'page' == $_POST['post_type'] && !current_user_can('edit_page', $post->ID) ) || !current_user_can('edit_post', $post->ID ) )
69
  return $post->ID;
70
-
71
  $_sidebars = array(
72
  '_ss_sidebar' => $_POST['_ss_sidebar'],
73
  '_ss_sidebar_alt' => $_POST['_ss_sidebar_alt']
74
  );
75
-
76
  // store the custom fields
77
  foreach ( $_sidebars as $key => $value ) {
78
-
79
  if ( $post->post_type == 'revision' ) return; // don't try to store data during revision save
80
-
81
  if ( $value ) {
82
  // save/update
83
  update_post_meta($post->ID, $key, $value);
@@ -87,5 +93,5 @@ function ss_inpost_metabox_save( $post_id, $post ) {
87
  }
88
 
89
  }
90
-
91
  }
4
  * so that users can choose what sidebar to use.
5
  */
6
  add_action('admin_menu', 'ss_add_inpost_metabox');
7
+ function ss_add_inpost_metabox() {
8
+
9
  foreach ( (array)get_post_types( array( 'public' => true ) ) as $type ) {
10
+
11
  if ( post_type_supports( $type, 'genesis-simple-sidebars' ) || $type == 'post' || $type == 'page' ) {
12
  add_meta_box('ss_inpost_metabox', __('Sidebar Selection', 'ss'), 'ss_inpost_metabox', $type, 'side', 'low');
13
+ }
14
+
15
  }
16
+
17
  }
18
 
19
+ function ss_inpost_metabox() {
20
+
21
  $_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
22
+
23
  ?>
24
+
25
  <input type="hidden" name="ss_inpost_nonce" value="<?php echo wp_create_nonce(plugin_basename(__FILE__)); ?>" />
26
+
27
  <p>
28
  <label class="howto" for="_ss_sidebar"><span><?php _e('Primary Sidebar', 'ss'); ?><span></label>
29
  <select name="_ss_sidebar" id="_ss_sidebar" style="width: 99%">
37
  </p>
38
  <?php
39
  // don't show the option if there are no 3 column layouts registered
40
+ if ( ! ss_has_3_column_layouts() )
41
  return;
42
  ?>
43
  <p>
51
  ?>
52
  </select>
53
  </p>
54
+
55
+ <?php
56
  }
57
 
58
  /**
60
  */
61
  add_action('save_post', 'ss_inpost_metabox_save', 1, 2);
62
  function ss_inpost_metabox_save( $post_id, $post ) {
63
+
64
  // verify the nonce
65
  if ( !isset($_POST['ss_inpost_nonce']) || !wp_verify_nonce( $_POST['ss_inpost_nonce'], plugin_basename(__FILE__) ) )
66
  return $post->ID;
67
+
68
  // don't try to save the data under autosave, ajax, or future post.
69
  if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
70
  if ( defined('DOING_AJAX') && DOING_AJAX ) return;
73
  // is the user allowed to edit the post or page?
74
  if ( ( 'page' == $_POST['post_type'] && !current_user_can('edit_page', $post->ID) ) || !current_user_can('edit_post', $post->ID ) )
75
  return $post->ID;
76
+
77
  $_sidebars = array(
78
  '_ss_sidebar' => $_POST['_ss_sidebar'],
79
  '_ss_sidebar_alt' => $_POST['_ss_sidebar_alt']
80
  );
81
+
82
  // store the custom fields
83
  foreach ( $_sidebars as $key => $value ) {
84
+
85
  if ( $post->post_type == 'revision' ) return; // don't try to store data during revision save
86
+
87
  if ( $value ) {
88
  // save/update
89
  update_post_meta($post->ID, $key, $value);
93
  }
94
 
95
  }
96
+
97
  }
term.php → includes/term.php RENAMED
@@ -5,26 +5,31 @@
5
  * are passed via the hook so that we can use them.
6
  */
7
  function ss_term_edit_init() {
 
8
  $taxonomies = ss_get_taxonomies();
9
- if( !empty( $taxonomies ) && is_admin() && is_array( $taxonomies ) ) {
 
 
10
  foreach( $taxonomies as $tax )
11
  add_action( "{$tax}_edit_form", 'ss_term_sidebar', 9, 2 );
 
12
  }
 
13
  }
14
 
15
  function ss_term_sidebar($tag, $taxonomy) {
16
-
17
  // Merge Defaults to prevent notices
18
  $tag->meta = wp_parse_args( $tag->meta, array( '_ss_sidebar' => '', '_ss_sidebar_alt' => '' ) );
19
 
20
  // Pull custom sidebars
21
  $_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
22
-
23
  ?>
24
 
25
  <h3><?php _e('Sidebar Options', 'ss'); ?></h3>
26
  <table class="form-table">
27
-
28
  <tr class="form-field">
29
  <th scope="row" valign="top"><label for="meta[_ss_sidebar]"><?php _e('Primary Sidebar', 'ss'); ?></label></th>
30
  <td>
@@ -41,7 +46,7 @@ function ss_term_sidebar($tag, $taxonomy) {
41
  <?php
42
  // don't show the option if there are no 3 column layouts registered
43
  if ( ss_has_3_column_layouts() ) {
44
- ?>
45
  <tr class="form-field">
46
  <th scope="row" valign="top"><label for="meta[_ss_sidebar_alt]"><?php _e('Secondary Sidebar', 'ss'); ?></label></th>
47
  <td>
@@ -59,6 +64,6 @@ function ss_term_sidebar($tag, $taxonomy) {
59
  }
60
  ?>
61
  </table>
62
-
63
  <?php
64
  }
5
  * are passed via the hook so that we can use them.
6
  */
7
  function ss_term_edit_init() {
8
+
9
  $taxonomies = ss_get_taxonomies();
10
+
11
+ if ( ! empty( $taxonomies ) && is_admin() && is_array( $taxonomies ) ) {
12
+
13
  foreach( $taxonomies as $tax )
14
  add_action( "{$tax}_edit_form", 'ss_term_sidebar', 9, 2 );
15
+
16
  }
17
+
18
  }
19
 
20
  function ss_term_sidebar($tag, $taxonomy) {
21
+
22
  // Merge Defaults to prevent notices
23
  $tag->meta = wp_parse_args( $tag->meta, array( '_ss_sidebar' => '', '_ss_sidebar_alt' => '' ) );
24
 
25
  // Pull custom sidebars
26
  $_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
27
+
28
  ?>
29
 
30
  <h3><?php _e('Sidebar Options', 'ss'); ?></h3>
31
  <table class="form-table">
32
+
33
  <tr class="form-field">
34
  <th scope="row" valign="top"><label for="meta[_ss_sidebar]"><?php _e('Primary Sidebar', 'ss'); ?></label></th>
35
  <td>
46
  <?php
47
  // don't show the option if there are no 3 column layouts registered
48
  if ( ss_has_3_column_layouts() ) {
49
+ ?>
50
  <tr class="form-field">
51
  <th scope="row" valign="top"><label for="meta[_ss_sidebar_alt]"><?php _e('Secondary Sidebar', 'ss'); ?></label></th>
52
  <td>
64
  }
65
  ?>
66
  </table>
67
+
68
  <?php
69
  }
includes/views/edit.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( array_key_exists( $_REQUEST['id'], (array) $_sidebars ) ) {
3
+ $_sidebar = stripslashes_deep( $_sidebars[$_REQUEST['id']] );
4
+ } else {
5
+ wp_die( __( 'Nice try, partner. But that sidebar doesn\'t exist. Click back and try again.', 'ss' ) );
6
+ }
7
+
8
+ screen_icon('themes'); ?>
9
+ <h2><?php _e('Edit Sidebar', 'ss'); ?></h2>
10
+
11
+ <form method="post" action="<?php echo admin_url( 'admin.php?page=simple-sidebars&amp;action=edit' ); ?>">
12
+ <?php wp_nonce_field('simple-sidebars-action_edit-sidebar'); ?>
13
+
14
+ <table class="form-table">
15
+
16
+ <tr class="form-field">
17
+ <th scope="row" valign="top"><label for="edit_sidebar[name]"><?php _e('Name', 'ss'); ?></label></th>
18
+ <td><input name="edit_sidebar[name]" id="edit_sidebar[name]" type="text" value="<?php echo esc_html( $_sidebar['name'] ); ?>" size="40" />
19
+ <p class="description"><?php _e('A recognizable name for your new sidebar widget area', 'ss'); ?></p></td>
20
+ </tr>
21
+
22
+ <tr class="form-field">
23
+ <th scope="row" valign="top"><label for="edit_sidebar[id]"><?php _e('ID', 'ss'); ?></label></th>
24
+ <td>
25
+ <input type="text" value="<?php echo esc_html( $_REQUEST['id'] ); ?>" size="40" disabled="disabled" />
26
+ <input name="edit_sidebar[id]" id="edit_sidebar[id]" type="hidden" value="<?php echo esc_html( $_REQUEST['id'] ); ?>" size="40" />
27
+ <p class="description"><?php _e('The unique ID is used to register the sidebar widget area (cannot be changed)', 'ss'); ?></p></td>
28
+ </tr>
29
+
30
+ <tr class="form-field">
31
+ <th scope="row" valign="top"><label for="edit_sidebar[description]"><?php _e('Description', 'ss'); ?></label></th>
32
+ <td><textarea name="edit_sidebar[description]" id="edit_sidebar[description]" rows="3" cols="50" style="width: 97%;"><?php echo esc_html( $_sidebar['description'] ); ?></textarea></td>
33
+ </tr>
34
+
35
+ </table>
36
+
37
+ <p class="submit"><input type="submit" class="button-primary" name="submit" value="<?php _e('Update', 'ss'); ?>" /></p>
38
+
39
+ </form>
includes/views/main.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php screen_icon('themes'); ?>
2
+ <h2><?php _e('Genesis - Simple Sidebars', 'ss'); ?></h2>
3
+
4
+ <div id="col-container">
5
+
6
+ <div id="col-right">
7
+ <div class="col-wrap">
8
+
9
+ <h3><?php _e('Current Sidebars', 'ss'); ?></h3>
10
+ <table class="widefat tag fixed" cellspacing="0">
11
+ <thead>
12
+ <tr>
13
+ <th scope="col" id="name" class="manage-column column-name"><?php _e('Name', 'ss'); ?></th>
14
+ <th scope="col" class="manage-column column-slug"><?php _e('ID', 'ss'); ?></th>
15
+ <th scope="col" id="description" class="manage-column column-description"><?php _e('Description', 'ss'); ?></th>
16
+ </tr>
17
+ </thead>
18
+
19
+ <tfoot>
20
+ <tr>
21
+ <th scope="col" class="manage-column column-name"><?php _e('Name', 'ss'); ?></th>
22
+ <th scope="col" class="manage-column column-slug"><?php _e('ID', 'ss'); ?></th>
23
+ <th scope="col" class="manage-column column-description"><?php _e('Description', 'ss'); ?></th>
24
+ </tr>
25
+ </tfoot>
26
+
27
+ <tbody id="the-list" class="list:tag">
28
+
29
+ <?php $this->table_rows(); ?>
30
+
31
+ </tbody>
32
+ </table>
33
+
34
+ </div>
35
+ </div><!-- /col-right -->
36
+
37
+ <div id="col-left">
38
+ <div class="col-wrap">
39
+
40
+
41
+ <div class="form-wrap">
42
+ <h3><?php _e('Add New Sidebar', 'ss'); ?></h3>
43
+
44
+ <form method="post" action="<?php echo admin_url( 'admin.php?page=simple-sidebars&amp;action=create' ); ?>">
45
+ <?php wp_nonce_field('simple-sidebars-action_create-sidebar'); ?>
46
+
47
+ <div class="form-field form-required">
48
+ <label for="sidebar-name"><?php _e('Name', 'ss'); ?></label>
49
+ <input name="new_sidebar[name]" id="sidebar-name" type="text" value="" size="40" aria-required="true" />
50
+ <p><?php _e('A recognizable name for your new sidebar widget area', 'ss'); ?></p>
51
+ </div>
52
+
53
+ <div class="form-field">
54
+ <label for="sidebar-id"><?php _e('ID', 'ss'); ?></label>
55
+ <input name="new_sidebar[id]" id="sidebar-id" type="text" value="" size="40" />
56
+ <p><?php _e('The unique ID is used to register the sidebar widget area', 'ss'); ?></p>
57
+ </div>
58
+
59
+ <div class="form-field">
60
+ <label for="sidebar-description"><?php _e('Description', 'ss'); ?></label>
61
+ <textarea name="new_sidebar[description]" id="sidebar-description" rows="5" cols="40"></textarea>
62
+ </div>
63
+
64
+ <p class="submit"><input type="submit" class="button" name="submit" id="submit" value="<?php _e('Add New Sidebar', 'ss'); ?>" /></p>
65
+ </form></div>
66
+
67
+ </div>
68
+ </div><!-- /col-left -->
69
+
70
+ </div><!-- /col-container -->
languages/ss-fr_FR.mo ADDED
Binary file
languages/ss-fr_FR.po ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: Simple Sidebar\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2011-08-06 21:23-0300\n"
11
+ "PO-Revision-Date: 2012-12-03 08:27+0100\n"
12
+ "Last-Translator: gregoire noyelle <hello@gregoirenoyelle.com>\n"
13
+ "Language-Team: Grégoire Noyelle <hello@gregoirenoyelle.com>\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=2;plural=n>1;\n"
18
+ "Language: French\n"
19
+ "X-Poedit-SourceCharset: UTF-8\n"
20
+ "X-Generator: Poedit 1.5.4\n"
21
+
22
+ #: admin.php:17
23
+ msgid "Simple Sidebars"
24
+ msgstr "Barre latérale"
25
+
26
+ #: admin.php:66
27
+ msgid ""
28
+ "Nice try, partner. But that sidebar doesn't exist. Click back and try again."
29
+ msgstr ""
30
+ "Chouette essai. Mais cette barre latérale n'existe pas. Merci de revenir en "
31
+ "arrière et d'essayer à nouveau"
32
+
33
+ #: admin.php:72
34
+ msgid "Edit Sidebar"
35
+ msgstr "Editer la Barre Latérale"
36
+
37
+ #: admin.php:79 admin.php:117 admin.php:125 admin.php:152
38
+ msgid "Name"
39
+ msgstr "Nom"
40
+
41
+ #: admin.php:81 admin.php:154
42
+ msgid "A recognizable name for your new sidebar widget area"
43
+ msgstr "Un nom reconnaissable qui apparaîtra dans vos réglages"
44
+
45
+ #: admin.php:85 admin.php:118 admin.php:126 admin.php:158
46
+ msgid "ID"
47
+ msgstr "ID (identifiant) ATTENTION VOIR NOTE"
48
+
49
+ #: admin.php:89
50
+ msgid ""
51
+ "The unique ID is used to register the sidebar widget area (cannot be changed)"
52
+ msgstr ""
53
+ "Le ID unique est utilisé pour enregistrer la nouvelle zone de widget pour la "
54
+ "Barre Latérale (ne peux pas être changé). <b>ATTENTION</b> à ne pas mettre "
55
+ "de lettre accentuées, pas d'espace ou autre signes que des lettres. Le plus "
56
+ "simple est de prendre des minuscules et des tirets à la place des espaces. "
57
+
58
+ #: admin.php:93 admin.php:119 admin.php:127 admin.php:164
59
+ msgid "Description"
60
+ msgstr "Description"
61
+
62
+ #: admin.php:99
63
+ msgid "Update"
64
+ msgstr "Mise à jour"
65
+
66
+ #: admin.php:106
67
+ msgid "Genesis - Simple Sidebars"
68
+ msgstr "Genesis - Barre latérale"
69
+
70
+ #: admin.php:113
71
+ msgid "Current Sidebars"
72
+ msgstr "Zones de Widgets activées"
73
+
74
+ #: admin.php:146 admin.php:168
75
+ msgid "Add New Sidebar"
76
+ msgstr "Ajouter une nouvelle Barre Latérale"
77
+
78
+ #: admin.php:160
79
+ msgid "The unique ID is used to register the sidebar widget area"
80
+ msgstr ""
81
+ "Le ID unique est utilisé pour enregistrer la barre nouvelle zone de widget "
82
+ "pour la Barre Latérale. <b>ATTENTION</b> à ne pas mettre de lettre "
83
+ "accentuées, pas d'espace ou autre signes que des lettres. Le plus simple est "
84
+ "de prendre des minuscules et des tirets à la place des espaces."
85
+
86
+ #: functions.php:28
87
+ msgid "Edit"
88
+ msgstr "Editer"
89
+
90
+ #: functions.php:29
91
+ msgid "Delete"
92
+ msgstr "Suprimer"
93
+
94
+ #: functions.php:137
95
+ msgid "Oops! Please choose a valid Name and ID for this sidebar"
96
+ msgstr ""
97
+ "Oups ! Merci de choisir un Nom valide et un ID pour cette Barre Latérale. "
98
+ "<b>ATTENTION</b> à ne pas mettre de lettre accentuées, pas d'espace ou autre "
99
+ "signes que des lettres. Le plus simple est de prendre des minuscules et des "
100
+ "tirets à la place des espaces."
101
+
102
+ #: functions.php:140
103
+ msgid "Oops! That sidebar ID already exists"
104
+ msgstr "Oups ! Ce ID de Barre Latérale existe déjà."
105
+
106
+ #: functions.php:143
107
+ msgid ""
108
+ "Oops! You are trying to edit a sidebar that does not exist, or is not "
109
+ "editable"
110
+ msgstr ""
111
+ "Oups ! Vous essayez d'éditer une Barre Latérale qui n'existe pas, ou qui "
112
+ "n'est pas évitable."
113
+
114
+ #: functions.php:146
115
+ msgid ""
116
+ "Oops! You are trying to delete a sidebar that does not exist, or cannot be "
117
+ "deleted"
118
+ msgstr ""
119
+ "Oups ! Vous essayez de supprimer une Barre Latérale qui n'existe pas, ou qui "
120
+ "ne peux pas être supprimée."
121
+
122
+ #: functions.php:149
123
+ msgid "Oops! Something went wrong. Try again."
124
+ msgstr "Oups ! Quelque-chose va de travers. Essayez à nouveau"
125
+
126
+ #: functions.php:165
127
+ msgid "New sidebar successfully created!"
128
+ msgstr "La nouvelle Barre Latérale a été créé avec succès!"
129
+
130
+ #: functions.php:170
131
+ msgid "Sidebar successfully edited!"
132
+ msgstr "La Barre Latérale a été édité avec succès!"
133
+
134
+ #: functions.php:175
135
+ msgid "Sidebar successfully deleted."
136
+ msgstr "La Barre Latérale a été supprimé avec succès!"
137
+
138
+ #: inpost.php:10
139
+ msgid "Sidebar Selection"
140
+ msgstr "Sélection des Barres Latérales"
141
+
142
+ #: inpost.php:22 term.php:29
143
+ msgid "Primary Sidebar"
144
+ msgstr "Barre Latérale 1"
145
+
146
+ #: inpost.php:24 inpost.php:36 term.php:32 term.php:46
147
+ msgid "Default"
148
+ msgstr "Par défaut"
149
+
150
+ #: inpost.php:34 term.php:43
151
+ msgid "Secondary Sidebar"
152
+ msgstr "Barre Latérale 2"
153
+
154
+ #: plugin.php:21
155
+ #, php-format
156
+ msgid ""
157
+ "Sorry, you can't activate unless you have installed <a href=\"%s\">Genesis</"
158
+ "a>"
159
+ msgstr ""
160
+ "Désolé, vous ne pouvez pas activer ce plugin tant que vous n'avez pas "
161
+ "installé <a href=\"%s\">Genesis</a>."
162
+
163
+ #: plugin.php:26
164
+ #, php-format
165
+ msgid ""
166
+ "Sorry, you cannot activate without <a href=\"%s\">Genesis %s</a> or greater"
167
+ msgstr ""
168
+ "Désolé, vous ne pouvez activer ce plugin sans <a href=\"%s\">Genesis %s</a> "
169
+ "ou supérieur."
170
+
171
+ #: term.php:25
172
+ msgid "Sidebar Options"
173
+ msgstr "Options des Barres Latérales"
plugin.php CHANGED
@@ -3,102 +3,159 @@
3
  Plugin Name: Genesis Simple Sidebars
4
  Plugin URI: http://www.studiopress.com/plugins/simple-sidebars
5
  Description: Genesis Simple Sidebars allows you to easily create and use new sidebar widget areas.
6
- Version: 0.9.2.1
7
  Author: Nathan Rice
8
  Author URI: http://www.nathanrice.net/
 
9
  Text Domain: ss
10
  Domain Path: /languages/
 
 
 
 
 
11
  */
12
 
13
- // require Genesis 1.2 upon activation
14
- register_activation_hook(__FILE__, 'ss_activation_check');
15
- function ss_activation_check() {
16
 
17
- $latest = '1.2';
18
-
19
- $theme_info = get_theme_data(TEMPLATEPATH.'/style.css');
20
-
21
- if( basename(TEMPLATEPATH) != 'genesis' ) {
22
- load_plugin_textdomain( 'ss', false, 'genesis-simple-sidebars/languages' );
23
- deactivate_plugins(plugin_basename(__FILE__)); // Deactivate ourself
24
- wp_die( sprintf( __('Sorry, you can\'t activate unless you have installed <a href="%s">Genesis</a>', 'ss'), 'http://www.studiopress.com/themes/genesis' ) );
25
- }
 
26
 
27
- if( version_compare( $theme_info['Version'], $latest, '<' ) ) {
28
- deactivate_plugins(plugin_basename(__FILE__)); // Deactivate ourself
29
- wp_die( sprintf( __('Sorry, you cannot activate without <a href="%s">Genesis %s</a> or greater', 'ss'), 'http://www.studiopress.com/support/showthread.php?t=19576', $latest ) );
30
- }
31
 
32
  }
33
 
34
  /**
35
- * Hook into Genesis
 
 
 
 
36
  */
 
 
 
 
 
 
 
37
  add_action( 'genesis_init', 'ss_genesis_init', 12 );
 
 
 
 
 
 
 
38
  function ss_genesis_init() {
39
- // Define our constants
40
- define( 'SS_SETTINGS_FIELD', 'ss-settings' );
41
- define( 'SS_PLUGIN_DIR', dirname( __FILE__ ) );
42
 
43
- // required hooks
 
 
 
 
 
 
 
44
  add_action( 'get_header', 'ss_sidebars_init' );
45
  add_action( 'widgets_init', 'ss_register_sidebars' );
46
- if ( !is_admin() )
 
 
47
  return;
48
 
49
- // Include admin files
50
- load_plugin_textdomain( 'ss', false, 'genesis-simple-sidebars/languages' );
51
- require_once( SS_PLUGIN_DIR . '/admin.php' );
52
- require_once( SS_PLUGIN_DIR . '/functions.php' );
53
- require_once( SS_PLUGIN_DIR . '/inpost.php' );
54
- require_once( SS_PLUGIN_DIR . '/term.php' );
55
- // let the child theme hook the genesis_simple_sidebars_taxonomies filter before hooking term edit
56
  add_action( 'init', 'ss_term_edit_init' );
 
57
  }
58
  /**
59
- * This function registers the created sidebars
 
 
 
 
60
  */
61
  function ss_register_sidebars() {
62
-
63
  $_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
64
- if ( !$_sidebars ) return;
65
-
66
- foreach ( (array)$_sidebars as $id => $info ) {
67
-
68
- register_sidebar(array(
 
 
 
 
69
  'name' => esc_html( $info['name'] ),
70
  'id' => $id,
71
  'description' => esc_html( $info['description'] ),
72
  'editable' => 1,
73
-
74
  'before_widget' => '<div id="%1$s" class="widget %2$s"><div class="widget-wrap">',
75
  'after_widget' => "</div></div>\n",
76
  'before_title' => '<h4 class="widgettitle">',
77
  'after_title' => "</h4>\n"
78
- ));
79
-
80
  }
81
-
82
- }
83
 
 
84
 
85
  /**
 
 
86
  * Remove the default sidebars, run some conditional logic,
87
  * use alternate sidebars if necessary, else fallback on default sidebars.
 
 
88
  */
89
  function ss_sidebars_init() {
90
- remove_action('genesis_sidebar', 'genesis_do_sidebar');
91
- remove_action('genesis_sidebar_alt', 'genesis_do_sidebar_alt');
92
- add_action('genesis_sidebar', 'ss_do_sidebar');
93
- add_action('genesis_sidebar_alt', 'ss_do_sidebar_alt');
 
 
94
  }
95
 
 
 
 
 
 
 
 
96
  function ss_do_sidebar() {
97
 
98
  if ( ! ss_do_one_sidebar( '_ss_sidebar' ) )
99
  genesis_do_sidebar();
100
 
101
  }
 
 
 
 
 
 
 
 
102
  function ss_do_sidebar_alt() {
103
 
104
  if ( ! ss_do_one_sidebar( '_ss_sidebar_alt' ) )
@@ -106,44 +163,62 @@ function ss_do_sidebar_alt() {
106
 
107
  }
108
 
109
- function ss_do_one_sidebar( $bar = '_ss_sidebar' ) {
 
 
 
 
 
 
 
 
 
 
 
110
  static $taxonomies = null;
111
-
112
- if ( is_singular() && $_bar = genesis_get_custom_field( $bar ) ) {
113
- if ( dynamic_sidebar( $_bar ) ) return true;
114
  }
115
-
116
  if ( is_category() ) {
117
- $term = get_term( get_query_var('cat'), 'category' );
118
- if( isset( $term->meta[$bar] ) && dynamic_sidebar( $term->meta[$bar] ) ) return true;
119
  }
120
-
121
  if ( is_tag() ) {
122
- $term = get_term( get_query_var('tag_id'), 'post_tag' );
123
- if( isset( $term->meta[$bar] ) && dynamic_sidebar( $term->meta[$bar] ) ) return true;
124
  }
125
-
126
  if ( is_tax() ) {
127
- if( $taxonomies === null )
128
  $taxonomies = ss_get_taxonomies();
129
-
130
- foreach( $taxonomies as $tax ) {
131
- if( $tax == 'post_tag' || $tax == 'category' )
132
  continue;
133
-
134
- if( is_tax( $tax ) ) {
135
  $obj = get_queried_object();
136
  $term = get_term( $obj->term_id, $tax );
137
- if( isset( $term->meta[$bar] ) && dynamic_sidebar( $term->meta[$bar] ) ) return true;
138
  break;
139
  }
140
  }
141
  }
142
-
143
  return false;
144
-
145
  }
146
 
 
 
 
 
 
 
 
147
  function ss_get_taxonomies() {
148
 
149
  $taxonomies = get_taxonomies( array( 'show_ui' => true, 'public' => true ) );
@@ -151,11 +226,20 @@ function ss_get_taxonomies() {
151
 
152
  }
153
 
 
 
 
 
 
 
 
 
154
  function ss_has_3_column_layouts() {
155
 
156
  $_layouts = (array) genesis_get_layouts();
157
  $_layouts = array_keys( $_layouts );
158
  $_3_column = array_intersect( $_layouts, array( 'content-sidebar-sidebar', 'sidebar-content-sidebar', 'sidebar-sidebar-content' ) );
 
159
  return ! empty( $_3_column );
160
 
161
  }
3
  Plugin Name: Genesis Simple Sidebars
4
  Plugin URI: http://www.studiopress.com/plugins/simple-sidebars
5
  Description: Genesis Simple Sidebars allows you to easily create and use new sidebar widget areas.
 
6
  Author: Nathan Rice
7
  Author URI: http://www.nathanrice.net/
8
+
9
  Text Domain: ss
10
  Domain Path: /languages/
11
+
12
+ Version: 1.0.0
13
+
14
+ License: GNU General Public License v2.0 (or later)
15
+ License URI: http://www.opensource.org/licenses/gpl-license.php
16
  */
17
 
18
+ /** Define our constants */
19
+ define( 'SS_SETTINGS_FIELD', 'ss-settings' );
20
+ define( 'SS_PLUGIN_DIR', dirname( __FILE__ ) );
21
 
22
+ register_activation_hook( __FILE__, 'ss_activation_check' );
23
+ /**
24
+ * Activation hook callback.
25
+ *
26
+ * This functions runs when the plugin is activated. It checks to make sure the user is running
27
+ * a minimum Genesis version, so there are no conflicts or fatal errors.
28
+ *
29
+ * @since 0.9.0
30
+ */
31
+ function ss_activation_check() {
32
 
33
+ if ( 'genesis' != basename( TEMPLATEPATH ) ) {
34
+ ss_deactivate( '1.8.0', '3.3' );
35
+ }
 
36
 
37
  }
38
 
39
  /**
40
+ * Deactivate Simple Sidebars.
41
+ *
42
+ * This function deactivates Simple Sidebars.
43
+ *
44
+ * @since 1.0.0
45
  */
46
+ function ss_deactivate( $genesis_version = '1.8.0', $wp_version = '3.3' ) {
47
+
48
+ deactivate_plugins( plugin_basename( __FILE__ ) );
49
+ wp_die( sprintf( __( 'Sorry, you cannot run Simple Sidebars without WordPress %s and <a href="%s">Genesis %s</a>, or greater.', 'ss' ), $wp_version, 'http://www.studiopress.com/support/showthread.php?t=19576', $genesis_version ) );
50
+
51
+ }
52
+
53
  add_action( 'genesis_init', 'ss_genesis_init', 12 );
54
+ /**
55
+ * Plugin initialization.
56
+ *
57
+ * Initialize the plugin, set the constants, hook callbacks to actions, and include the plugin library.
58
+ *
59
+ * @since 0.9.0
60
+ */
61
  function ss_genesis_init() {
 
 
 
62
 
63
+ /** Deactivate if not running Genesis 1.8.0 or greater */
64
+ if ( ! class_exists( 'Genesis_Admin_Boxes' ) )
65
+ add_action( 'admin_init', 'ss_deactivate', 10, 0 );
66
+
67
+ /** Load translations */
68
+ load_plugin_textdomain( 'ss', false, 'genesis-simple-sidebars/languages' );
69
+
70
+ /** required hooks */
71
  add_action( 'get_header', 'ss_sidebars_init' );
72
  add_action( 'widgets_init', 'ss_register_sidebars' );
73
+
74
+ /** The rest is admin stuff, so load only if we're in the admin area */
75
+ if ( ! is_admin() )
76
  return;
77
 
78
+ /** Include admin files */
79
+ require_once( SS_PLUGIN_DIR . '/includes/admin.php' );
80
+ require_once( SS_PLUGIN_DIR . '/includes/inpost.php' );
81
+ require_once( SS_PLUGIN_DIR . '/includes/term.php' );
82
+
83
+ /** let the child theme hook the genesis_simple_sidebars_taxonomies filter before hooking term edit */
 
84
  add_action( 'init', 'ss_term_edit_init' );
85
+
86
  }
87
  /**
88
+ * Register widget areas.
89
+ *
90
+ * This function registers the created sidebars as widget areas
91
+ *
92
+ * @since 0.9.0
93
  */
94
  function ss_register_sidebars() {
95
+
96
  $_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
97
+
98
+ /** If no sidebars have been created, do nothing */
99
+ if ( ! $_sidebars )
100
+ return;
101
+
102
+ /** Cycle through created sidebars, register them as widget areas */
103
+ foreach ( (array) $_sidebars as $id => $info ) {
104
+
105
+ register_sidebar( array(
106
  'name' => esc_html( $info['name'] ),
107
  'id' => $id,
108
  'description' => esc_html( $info['description'] ),
109
  'editable' => 1,
110
+
111
  'before_widget' => '<div id="%1$s" class="widget %2$s"><div class="widget-wrap">',
112
  'after_widget' => "</div></div>\n",
113
  'before_title' => '<h4 class="widgettitle">',
114
  'after_title' => "</h4>\n"
115
+ ) );
116
+
117
  }
 
 
118
 
119
+ }
120
 
121
  /**
122
+ * Use custom sidebars.
123
+ *
124
  * Remove the default sidebars, run some conditional logic,
125
  * use alternate sidebars if necessary, else fallback on default sidebars.
126
+ *
127
+ * @since 0.9.0
128
  */
129
  function ss_sidebars_init() {
130
+
131
+ remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );
132
+ remove_action( 'genesis_sidebar_alt', 'genesis_do_sidebar_alt' );
133
+ add_action( 'genesis_sidebar', 'ss_do_sidebar' );
134
+ add_action( 'genesis_sidebar_alt', 'ss_do_sidebar_alt' );
135
+
136
  }
137
 
138
+ /**
139
+ * Display primary sidebar.
140
+ *
141
+ * Display custom sidebar if one exists, else display default primary sidebar.
142
+ *
143
+ * @since 0.9.0
144
+ */
145
  function ss_do_sidebar() {
146
 
147
  if ( ! ss_do_one_sidebar( '_ss_sidebar' ) )
148
  genesis_do_sidebar();
149
 
150
  }
151
+
152
+ /**
153
+ * Display secondary sidebar.
154
+ *
155
+ * Display custom sidebar if one exists, else display default secondary sidebar.
156
+ *
157
+ * @since 0.9.0
158
+ */
159
  function ss_do_sidebar_alt() {
160
 
161
  if ( ! ss_do_one_sidebar( '_ss_sidebar_alt' ) )
163
 
164
  }
165
 
166
+ /**
167
+ * Sidebar widget area output.
168
+ *
169
+ * Helper function to show widgets in a particular sidebar.
170
+ *
171
+ * @param string $sidebar_key sidebar id you wish to output.
172
+ *
173
+ * @since 0.9.0
174
+ *
175
+ */
176
+ function ss_do_one_sidebar( $sidebar_key = '_ss_sidebar' ) {
177
+
178
  static $taxonomies = null;
179
+
180
+ if ( is_singular() && $sidebar_key = genesis_get_custom_field( $sidebar_key ) ) {
181
+ if ( dynamic_sidebar( $sidebar_key ) ) return true;
182
  }
183
+
184
  if ( is_category() ) {
185
+ $term = get_term( get_query_var( 'cat' ), 'category' );
186
+ if ( isset( $term->meta[$sidebar_key] ) && dynamic_sidebar( $term->meta[$sidebar_key] ) ) return true;
187
  }
188
+
189
  if ( is_tag() ) {
190
+ $term = get_term( get_query_var( 'tag_id' ), 'post_tag' );
191
+ if ( isset( $term->meta[$sidebar_key] ) && dynamic_sidebar( $term->meta[$sidebar_key] ) ) return true;
192
  }
193
+
194
  if ( is_tax() ) {
195
+ if ( null === $taxonomies )
196
  $taxonomies = ss_get_taxonomies();
197
+
198
+ foreach ( $taxonomies as $tax ) {
199
+ if ( 'post_tag' == $tax || 'category' == $tax )
200
  continue;
201
+
202
+ if ( is_tax( $tax ) ) {
203
  $obj = get_queried_object();
204
  $term = get_term( $obj->term_id, $tax );
205
+ if ( isset( $term->meta[$sidebar_key] ) && dynamic_sidebar( $term->meta[$sidebar_key] ) ) return true;
206
  break;
207
  }
208
  }
209
  }
210
+
211
  return false;
212
+
213
  }
214
 
215
+ /**
216
+ * Return taxonomy ids.
217
+ *
218
+ * Helper function to return the array keys from a taxonomy query.
219
+ *
220
+ * @since 0.9.0
221
+ */
222
  function ss_get_taxonomies() {
223
 
224
  $taxonomies = get_taxonomies( array( 'show_ui' => true, 'public' => true ) );
226
 
227
  }
228
 
229
+ /**
230
+ * Does this Genesis install have the 3 column layouts deactivated?
231
+ *
232
+ * This function checks to see if the Genesis install still has active 3 column layouts. Since
233
+ * child themes and plugins can deregister layouts, we need to know if they have deregistered the 3 column layouts.
234
+ *
235
+ * @since 0.9.2
236
+ */
237
  function ss_has_3_column_layouts() {
238
 
239
  $_layouts = (array) genesis_get_layouts();
240
  $_layouts = array_keys( $_layouts );
241
  $_3_column = array_intersect( $_layouts, array( 'content-sidebar-sidebar', 'sidebar-content-sidebar', 'sidebar-sidebar-content' ) );
242
+
243
  return ! empty( $_3_column );
244
 
245
  }
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: nathanrice, wpmuguru
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5553118
4
  Tags: hooks, genesis, genesiswp, studiopress
5
- Requires at least: 3.0
6
- Tested up to: 3.3
7
- Stable tag: 0.9.2.1
8
 
9
  This plugin allows you to create multiple, dynamic widget areas, and assign those widget areas to sidebar locations within the Genesis Theme Framework on a per post, per page, or per tag/category archive basis.
10
 
@@ -59,3 +59,6 @@ Not in the way you're probably thinking. The markup surrounding the widget area
59
  * Default custom taxonomy support to on for public taxonomies
60
  * Remove secondary selection when no 3 column layouts are enabled
61
 
 
 
 
2
  Contributors: nathanrice, wpmuguru
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5553118
4
  Tags: hooks, genesis, genesiswp, studiopress
5
+ Requires at least: 3.3
6
+ Tested up to: 3.3.1
7
+ Stable tag: 1.0.0
8
 
9
  This plugin allows you to create multiple, dynamic widget areas, and assign those widget areas to sidebar locations within the Genesis Theme Framework on a per post, per page, or per tag/category archive basis.
10
 
59
  * Default custom taxonomy support to on for public taxonomies
60
  * Remove secondary selection when no 3 column layouts are enabled
61
 
62
+ = 1.0.0 =
63
+ * Increase requirement to WordPress 3.3 and Genesis 1.8.0
64
+ * Switch to Genesis Admin class to build admin menu.