27 Commits

Author SHA1 Message Date
Emdaisy1 e60b5b3a65 Field swap from disabled to readonly
Addresses 2092 in synthesis-platform repo
2016-03-22 19:07:26 -04:00
Nathan Rice 36553a6557 Bump version, update Readme.txt. 2016-02-24 14:54:21 -05:00
Nathan Rice 4d09f1c1ac Update POT. 2016-02-24 14:51:29 -05:00
Nathan Rice 93a304aa06 Update for new term meta handling. 2016-02-24 14:48:19 -05:00
Lauren Mancke 4106eb6c68 Add StudioPress 2016-01-25 14:11:33 -05:00
Nathan Rice be896fd123 Update grunt dependencies. 2015-10-12 16:04:42 -04:00
Nathan Rice e63975e620 Update grunt tasks. 2015-09-29 17:34:15 -04:00
Nathan Rice 5d5b60de23 Grunt, POT. 2015-09-29 17:18:50 -04:00
Nick Croft 8d371db957 Make admin object global
To make it easier to alter the admin behavior the admin object should
be made into a global variable. This addresses that.
2014-06-09 11:45:48 -04:00
Nathan Rice 4b8381b9ca Comment standard. 2013-08-26 20:10:32 -04:00
Nathan Rice 4ab113f4a8 Sync with develop. 2013-08-26 20:05:25 -04:00
Nathan Rice eeddc174f8 sweep. 2013-08-26 20:03:20 -04:00
Nathan Rice 62da09e2df Merge to master. 2013-08-26 15:08:01 -04:00
Nathan Rice f021c01b25 Tagging 2.0.1. 2013-08-26 15:04:07 -04:00
Nathan Rice eedd494ae5 Use proper key for Genesis 2.0.1 compatibility. 2013-08-26 15:02:02 -04:00
Nathan Rice d8e63f2ccd Merge pull request #2 from GaryJones/patch-1
Fix incorrect text domain
2013-08-26 11:58:40 -07:00
Nathan Rice dcae718c4a Merge pull request #1 from billerickson/develop
use sidebar name rather than hardcoded labels
2013-08-26 11:58:24 -07:00
Gary Jones b69d318af9 Fix incorrect text domain 2013-08-20 03:40:55 +01:00
Bill Erickson f84db05c75 use sidebar name rather than hardcoded labels 2013-08-09 18:44:30 -05:00
Nathan Rice c47dd22e92 Tagging 2.0.0. 2013-08-09 13:43:39 -04:00
Nathan Rice 39f21130f4 Better Genesis version detection. 2013-08-09 13:38:26 -04:00
Nathan Rice 718dfd9a55 Genesis 2.0 compatibility, standards. 2013-08-09 13:35:43 -04:00
Nathan Rice cf767d3206 Tagging 1.0.0. 2013-08-09 13:11:17 -04:00
Nathan Rice 39f34f9982 Tagging 0.9.2.1. 2013-08-09 13:09:21 -04:00
Nathan Rice 78faae2bbd Tagging 0.9.2. 2013-08-09 13:07:35 -04:00
Nathan Rice 00d39a0424 Tagging 0.9.1. 2013-08-09 13:06:39 -04:00
Nathan Rice 160fe214ed Clean slate. 2013-08-09 13:04:24 -04:00
19 changed files with 1423 additions and 595 deletions
+14
View File
@@ -0,0 +1,14 @@
# Default behavior
* text=auto
# Text files
*.php text
*.css text
*.js text
*.md text
# Binary files
*.png binary
*.jpg binary
*.gif binary
*.ico binary
+4
View File
@@ -0,0 +1,4 @@
.DS_Store
Thumbs.db
.svn
node_modules/
+5
View File
@@ -0,0 +1,5 @@
.git
.gitignore
.gitattributes
.svnignore
node_modules
+97
View File
@@ -0,0 +1,97 @@
'use strict';
module.exports = function(grunt) {
// Load tasks
require('load-grunt-tasks')(grunt);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
// Dependencies
// PHP
// Lint .php files for syntax errors
phplint: {
all: [ '*.php', 'lib/**/*.php' ]
},
// I18n
// Add text domain as last argument of i18n functions
addtextdomain: {
php: {
options: {
updateDomains: true
},
src: [
'*.php',
'lib/**/*.php'
]
}
},
// Check text domain is last argument of i18n functions
checktextdomain: {
options: {
text_domain: '<%= pkg.name %>',
keywords: [
'__:1,2d',
'_e:1,2d',
'_x:1,2c,3d',
'_ex:1,2c,3d',
'_n:1,2,4d',
'_nx:1,2,4c,5d',
'_n_noop:1,2,3d',
'_nx_noop:1,2,3c,4d',
'esc_attr__:1,2d',
'esc_html__:1,2d',
'esc_attr_e:1,2d',
'esc_html_e:1,2d',
'esc_attr_x:1,2c,3d',
'esc_html_x:1,2c,3d'
]
},
files: {
expand: true,
src: [
'*.php',
'includes/**/*.php'
]
}
},
// Build language .pot file
makepot: {
plugin: {
options: {
domainPath: '/languages',
processPot: function( pot ) {
pot.headers['report-msgid-bugs-to'] = 'StudioPress <translations@studiopress.com>';
pot.headers['last-translator'] = 'StudioPress <translations@studiopress.com>';
pot.headers['language-team'] = 'English <translations@studiopress.com>';
pot.headers['plural-forms'] = 'nplurals=2; plural=n != 1;';
pot.headers['x-generator'] = 'grunt-wp-i18n';
pot.headers['x-poedit-basepath'] = '.';
pot.headers['x-poedit-language'] = 'English';
pot.headers['x-poedit-country'] = 'UNITED STATES';
pot.headers['x-poedit-sourcecharset'] = 'utf-8';
pot.headers['x-poedit-keywordslist'] = '__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;';
pot.headers['x-poedit-bookmarks'] = '';
pot.headers['x-poedit-searchpath-0'] = '.';
pot.headers['x-textdomain-support'] = 'yes';
return pot;
},
type: 'wp-plugin'
}
}
},
});
};
-181
View File
@@ -1,181 +0,0 @@
<?php
/**
* This registers the settings field and adds empty array to the options table
*/
add_action('admin_init', 'register_ss_settings');
function register_ss_settings() {
register_setting(SS_SETTINGS_FIELD, SS_SETTINGS_FIELD);
add_option(SS_SETTINGS_FIELD, '__return_empty_array', '', 'yes');
}
/**
* This function adds our "Simple Sidebars" submenu item
*/
add_action('admin_menu', 'ss_settings_init', 15);
function ss_settings_init() {
add_submenu_page('genesis', __('Simple Sidebars','ss'), __('Simple Sidebars','ss'), 'manage_options', 'simple-sidebars', 'ss_settings_admin');
}
add_action('admin_init', 'ss_action_functions');
function ss_action_functions() {
if ( !isset( $_REQUEST['page'] ) || $_REQUEST['page'] != 'simple-sidebars' ) {
return;
}
/**
* This section handles the data if a new sidebar is created
*/
if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'create' ) {
ss_create_sidebar( $_POST['new_sidebar'] );
}
/**
* This section will handle the data if a sidebar is deleted
*/
if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'delete' && isset( $_REQUEST['id'] ) ) {
ss_delete_sidebar( $_REQUEST['id'] );
}
/**
* This section will handle the data if a sidebar is to be modified
*/
if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'edit' && !isset( $_REQUEST['id'] ) ) {
ss_edit_sidebar( $_POST['edit_sidebar'] );
}
}
/**
* This function is what actually gets output to the page.
* It handles the markup, builds the form, etc.
*/
function ss_settings_admin() { ?>
<div class="wrap">
<?php
if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'edit' ) :
$_sidebars = get_option( SS_SETTINGS_FIELD );
if ( array_key_exists( $_REQUEST['id'], (array)$_sidebars ) ) {
$_sidebar = stripslashes_deep( $_sidebars[$_REQUEST['id']] );
} else {
wp_die( __('Nice try, partner. But that sidebar doesn\'t exist. Click back and try again.', 'ss') );
}
?>
<?php screen_icon('themes'); ?>
<h2><?php _e('Edit Sidebar', 'ss'); ?></h2>
<form method="post" action="<?php echo admin_url( 'admin.php?page=simple-sidebars&amp;action=edit' ); ?>">
<?php wp_nonce_field('simple-sidebars-action_edit-sidebar'); ?>
<table class="form-table">
<tr class="form-field">
<th scope="row" valign="top"><label for="edit_sidebar[name]"><?php _e('Name', 'ss'); ?></label></th>
<td><input name="edit_sidebar[name]" id="edit_sidebar[name]" type="text" value="<?php echo esc_html( $_sidebar['name'] ); ?>" size="40" />
<p class="description"><?php _e('A recognizable name for your new sidebar widget area', 'ss'); ?></p></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="edit_sidebar[id]"><?php _e('ID', 'ss'); ?></label></th>
<td>
<input type="text" value="<?php echo esc_html( $_REQUEST['id'] ); ?>" size="40" disabled="disabled" />
<input name="edit_sidebar[id]" id="edit_sidebar[id]" type="hidden" value="<?php echo esc_html( $_REQUEST['id'] ); ?>" size="40" />
<p class="description"><?php _e('The unique ID is used to register the sidebar widget area (cannot be changed)', 'ss'); ?></p></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="edit_sidebar[description]"><?php _e('Description', 'ss'); ?></label></th>
<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>
</tr>
</table>
<p class="submit"><input type="submit" class="button-primary" name="submit" value="<?php _e('Update', 'ee'); ?>" /></p>
</form>
<?php else : ?>
<?php screen_icon('themes'); ?>
<h2><?php _e('Genesis - Simple Sidebars', 'ss'); ?></h2>
<div id="col-container">
<div id="col-right">
<div class="col-wrap">
<h3><?php _e('Current Sidebars', 'ss'); ?></h3>
<table class="widefat tag fixed" cellspacing="0">
<thead>
<tr>
<th scope="col" id="name" class="manage-column column-name"><?php _e('Name', 'ss'); ?></th>
<th scope="col" class="manage-column column-slug"><?php _e('ID', 'ss'); ?></th>
<th scope="col" id="description" class="manage-column column-description"><?php _e('Description', 'ss'); ?></th>
</tr>
</thead>
<tfoot>
<tr>
<th scope="col" class="manage-column column-name"><?php _e('Name', 'ss'); ?></th>
<th scope="col" class="manage-column column-slug"><?php _e('ID', 'ss'); ?></th>
<th scope="col" class="manage-column column-description"><?php _e('Description', 'ss'); ?></th>
</tr>
</tfoot>
<tbody id="the-list" class="list:tag">
<?php ss_sidebar_table_rows(); ?>
</tbody>
</table>
</div>
</div><!-- /col-right -->
<div id="col-left">
<div class="col-wrap">
<div class="form-wrap">
<h3><?php _e('Add New Sidebar', 'ss'); ?></h3>
<form method="post" action="<?php echo admin_url( 'admin.php?page=simple-sidebars&amp;action=create' ); ?>">
<?php wp_nonce_field('simple-sidebars-action_create-sidebar'); ?>
<div class="form-field form-required">
<label for="sidebar-name"><?php _e('Name', 'ss'); ?></label>
<input name="new_sidebar[name]" id="sidebar-name" type="text" value="" size="40" aria-required="true" />
<p><?php _e('A recognizable name for your new sidebar widget area', 'ss'); ?></p>
</div>
<div class="form-field">
<label for="sidebar-id"><?php _e('ID', 'ss'); ?></label>
<input name="new_sidebar[id]" id="sidebar-id" type="text" value="" size="40" />
<p><?php _e('The unique ID is used to register the sidebar widget area', 'ss'); ?></p>
</div>
<div class="form-field">
<label for="sidebar-description"><?php _e('Description', 'ss'); ?></label>
<textarea name="new_sidebar[description]" id="sidebar-description" rows="5" cols="40"></textarea>
</div>
<p class="submit"><input type="submit" class="button" name="submit" id="submit" value="<?php _e('Add New Sidebar', 'ss'); ?>" /></p>
</form></div>
</div>
</div><!-- /col-left -->
</div><!-- /col-container -->
<?php endif; ?>
</div><!-- /wrap -->
<?php
}
-181
View File
@@ -1,181 +0,0 @@
<?php
function ss_sidebar_table_rows() {
global $wp_registered_sidebars;
$_sidebars = $wp_registered_sidebars;
$alt = true;
foreach ( (array)$_sidebars as $id => $info ) { ?>
<?php
$is_editable = isset( $info['editable'] ) && $info['editable'] ? true : false;
?>
<tr <?php if ( $alt ) { echo 'class="alternate"'; $alt = false; } else { $alt = true; } ?>>
<td class="name column-name">
<?php
if ( $is_editable ) {
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'] ) );
} else {
printf( '<strong class="row-title">%s</strong>', esc_html( $info['name'] ) );
}
?>
<?php if ( $is_editable ) : ?>
<br />
<div class="row-actions">
<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>
<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>
</div>
<?php endif; ?>
</td>
<td class="slug column-slug"><?php echo esc_html( $id ); ?></td>
<td class="description column-description"><?php echo esc_html( $info['description'] )?></td>
</tr>
<?php
}
}
function ss_create_sidebar( $args = array() ) {
if ( empty( $args['name'] ) || empty( $args['id'] ) ) {
wp_die( ss_error_message(1) );
exit;
}
// nonce verification
check_admin_referer('simple-sidebars-action_create-sidebar');
$db = (array)get_option(SS_SETTINGS_FIELD);
$new = array(
sanitize_title_with_dashes( $args['id'] ) => array(
'name' => esc_html( $args['name'] ),
'description' => esc_html( $args['description'] )
)
);
if ( array_key_exists( $args['id'], $db ) ) {
wp_die( ss_error_message(2) );
exit;
}
$_sidebars = wp_parse_args( $new, $db );
update_option( SS_SETTINGS_FIELD, $_sidebars );
wp_redirect( admin_url('admin.php?page=simple-sidebars&created=true') );
exit;
}
function ss_edit_sidebar( $args = array() ) {
if ( empty( $args['name'] ) || empty( $args['id'] ) ) {
wp_die( ss_error_message(3) );
exit;
}
// nonce verification
check_admin_referer('simple-sidebars-action_edit-sidebar');
$db = (array)get_option(SS_SETTINGS_FIELD);
$new = array(
sanitize_title_with_dashes( $args['id'] ) => array(
'name' => esc_html( $args['name'] ),
'description' => esc_html( $args['description'] )
)
);
if ( !array_key_exists( $args['id'], $db ) ) {
wp_die( ss_error_message(3) );
exit;
}
$_sidebars = wp_parse_args( $new, $db );
update_option( SS_SETTINGS_FIELD, $_sidebars );
wp_redirect( admin_url('admin.php?page=simple-sidebars&edited=true') );
exit;
}
function ss_delete_sidebar( $id = '' ) {
if ( empty( $id ) ) {
wp_die( ss_error_message(4) );
exit;
}
// nonce verification
check_admin_referer('simple-sidebars-action_delete-sidebar');
$_sidebars = (array)get_option( SS_SETTINGS_FIELD );
if ( !isset( $_sidebars[$id] ) ) {
wp_die( ss_error_message(4) );
exit;
}
unset( $_sidebars[$id] );
update_option( SS_SETTINGS_FIELD, $_sidebars );
wp_redirect( admin_url('admin.php?page=simple-sidebars&deleted=true') );
exit;
}
function ss_error_message( $error = false ) {
if ( !$error ) return false;
switch( (int)$error ) {
case 1:
return __('Oops! Please choose a valid Name and ID for this sidebar', 'ss');
break;
case 2:
return __('Oops! That sidebar ID already exists');
break;
case 3:
return __('Oops! You are trying to edit a sidebar that does not exist, or is not editable', 'ss');
break;
case 4:
return __('Oops! You are trying to delete a sidebar that does not exist, or cannot be deleted', 'ss');
break;
default:
return __('Oops! Something went wrong. Try again.', 'ss');
}
}
add_action('admin_notices', 'ss_success_message');
function ss_success_message() {
if ( !isset( $_REQUEST['page'] ) || $_REQUEST['page'] != 'simple-sidebars' ) {
return;
}
$format = '<div id="message" class="updated"><p><strong>%s</strong></p></div>';
if ( isset( $_REQUEST['created'] ) && $_REQUEST['created'] === 'true' ) {
printf( $format, __('New sidebar successfully created!', 'ss') );
return;
}
if ( isset( $_REQUEST['edited'] ) && $_REQUEST['edited'] === 'true' ) {
printf( $format, __('Sidebar successfully edited!', 'ss') );
return;
}
if ( isset( $_REQUEST['deleted'] ) && $_REQUEST['deleted'] === 'true' ) {
printf( $format, __('Sidebar successfully deleted.', 'ss') );
return;
}
return;
}
+351
View File
@@ -0,0 +1,351 @@
<?php
/**
* Controls the creation, deletion, and editing of Simple Sidebar.
*
* @author StudioPress
*/
/**
* Registers a new admin page, providing content and corresponding menu item
* for the Genesis Simple Sidebars plugin.
*
* @since 1.0.0
*/
class Genesis_Simple_Sidebars_Admin extends Genesis_Admin_Basic {
/**
* Create an admin menu item and settings page.
*
* @since 1.0.0
*
* @uses Genesis_Admin::create() Register the admin page
*
* @see Genesis_Admin_Import_Export::actions() Handle creating, editing, and deleting sidebars.
*/
public function __construct() {
$page_id = 'simple-sidebars';
$menu_ops = array(
'submenu' => array(
'parent_slug' => 'genesis',
'page_title' => __( 'Genesis - Simple Sidebars', 'genesis-simple-sidebars' ),
'menu_title' => __( 'Simple Sidebars', 'genesis-simple-sidebars' )
)
);
//* Empty, as we'll be building the page manually
$page_ops = array();
$settings_field = SS_SETTINGS_FIELD;
$this->create( $page_id, $menu_ops, $page_ops, $settings_field );
//* Simpe Sidebar actions (create, edit, or delete)
add_action( 'admin_init', array( $this, 'actions' ) );
}
/**
* Callback for displaying the Simple Sidebars admin page.
*
* Echoes out HTML.
*
* @since 1.0.0
*
*/
public function admin() {
$_sidebars = get_option( $this->settings_field );
echo '<div class="wrap">';
if ( isset( $_REQUEST['action'] ) && 'edit' == $_REQUEST['action'] )
require_once( SS_PLUGIN_DIR . '/includes/views/edit.php' );
else
require_once( SS_PLUGIN_DIR . '/includes/views/main.php' );
echo '</div>';
}
/**
* Display sidebar table rows.
*
* Displays table rows of sidebars for viewing and editing on the main admin page.
*
* @since 1.0.0
*
*/
public function table_rows() {
global $wp_registered_sidebars;
$_sidebars = $wp_registered_sidebars;
$alt = true;
foreach ( (array) $_sidebars as $id => $info ) :
$is_editable = isset( $info['editable'] ) && $info['editable'] ? true : false;
?>
<tr <?php if ( $alt ) { echo 'class="alternate"'; $alt = false; } else { $alt = true; } ?>>
<td class="name column-name">
<?php
if ( $is_editable ) {
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'] ) );
} else {
printf( '<strong class="row-title">%s</strong>', esc_html( $info['name'] ) );
}
?>
<?php if ( $is_editable ) : ?>
<br />
<div class="row-actions">
<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', 'genesis-simple-sidebars'); ?></a> | </span>
<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', 'genesis-simple-sidebars'); ?></a></span>
</div>
<?php endif; ?>
</td>
<td class="slug column-slug"><?php echo esc_html( $id ); ?></td>
<td class="description column-description"><?php echo esc_html( $info['description'] )?></td>
</tr>
<?php
endforeach;
}
/**
* Action handler.
*
* Depending on what action was intended by the user, this method calls the appropriate action method.
*
* @since 1.0.0
*
*/
public function actions() {
if ( ! genesis_is_menu_page( 'simple-sidebars' ) )
return;
/**
* This section handles the data if a new sidebar is created
*/
if ( isset( $_REQUEST['action'] ) && 'create' == $_REQUEST['action'] ) {
$this->create_sidebar( $_POST['new_sidebar'] );
}
/**
* This section will handle the data if a sidebar is deleted
*/
if ( isset( $_REQUEST['action'] ) && 'delete' == $_REQUEST['action'] && isset( $_REQUEST['id'] ) ) {
$this->delete_sidebar( $_REQUEST['id'] );
}
/**
* This section will handle the data if a sidebar is to be modified
*/
if ( isset( $_REQUEST['action'] ) && 'edit' == $_REQUEST['action'] && ! isset( $_REQUEST['id'] ) ) {
$this->edit_sidebar( $_POST['edit_sidebar'] );
}
}
/**
* Add custom notices that display when you successfully create, edit, or delete a sidebar.
*
* @since 1.0.0
*
* @return null Returns null if not on the correct admin page.
*/
public function notices() {
if ( ! genesis_is_menu_page( 'simple-sidebars' ) )
return;
$pattern = '<div id="message" class="updated"><p><strong>%s</strong></p></div>';
if ( isset( $_REQUEST['created'] ) && 'true' === $_REQUEST['created'] ) {
printf( $pattern, __( 'New sidebar successfully created!', 'genesis-simple-sidebars' ) );
return;
}
if ( isset( $_REQUEST['edited'] ) && 'true' === $_REQUEST['edited'] ) {
printf( $pattern, __( 'Sidebar successfully edited!', 'genesis-simple-sidebars' ) );
return;
}
if ( isset( $_REQUEST['deleted'] ) && 'true' === $_REQUEST['deleted'] ) {
printf( $pattern, __( 'Sidebar successfully deleted.', 'genesis-simple-sidebars' ) );
return;
}
return;
}
/**
* Create a sidebar.
*
* @since 1.0.0
*
*/
protected function create_sidebar( $args = array() ) {
if ( empty( $args['name'] ) || empty( $args['id'] ) ) {
wp_die( $this->error( 1 ) );
exit;
}
//* nonce verification
check_admin_referer( 'simple-sidebars-action_create-sidebar' );
//* WP changes a numeric sidebar id to sidebar-id which makes it inaccessible to the user
if ( is_numeric( $args['id'] ) )
$args['id'] = sanitize_title_with_dashes( $args['name'] );
$db = (array) get_option( SS_SETTINGS_FIELD );
$new = array(
sanitize_title_with_dashes( $args['id'] ) => array(
'name' => esc_html( $args['name'] ),
'description' => esc_html( $args['description'] )
)
);
if ( array_key_exists( $args['id'], $db ) ) {
wp_die( $this->error( 2 ) );
exit;
}
$_sidebars = wp_parse_args( $new, $db );
update_option( SS_SETTINGS_FIELD, $_sidebars );
wp_redirect( admin_url( 'admin.php?page=simple-sidebars&created=true' ) );
exit;
}
/**
* Edit a sidebar.
*
* @since 1.0.0
*
*/
protected function edit_sidebar( $args = array() ) {
if ( empty( $args['name'] ) || empty( $args['id'] ) ) {
wp_die( $this->error( 3 ) );
exit;
}
//* nonce verification
check_admin_referer( 'simple-sidebars-action_edit-sidebar' );
//* WP changes a numeric sidebar id to sidebar-id which makes it inaccessible to the user
if ( is_numeric( $args['id'] ) )
$args['id'] = sanitize_title_with_dashes( $args['name'] );
$db = (array) get_option( SS_SETTINGS_FIELD );
$new = array(
sanitize_title_with_dashes( $args['id'] ) => array(
'name' => esc_html( $args['name'] ),
'description' => esc_html( $args['description'] )
)
);
if ( ! array_key_exists( $args['id'], $db ) ) {
wp_die( $this->error( 3 ) );
exit;
}
$_sidebars = wp_parse_args( $new, $db );
update_option( SS_SETTINGS_FIELD, $_sidebars );
wp_redirect( admin_url( 'admin.php?page=simple-sidebars&edited=true' ) );
exit;
}
/**
* Delete a sidebar.
*
* @since 1.0.0
*
*/
protected function delete_sidebar( $id = '' ) {
if ( empty( $id ) ) {
wp_die( $this->error( 4 ) );
exit;
}
//* nonce verification
check_admin_referer( 'simple-sidebars-action_delete-sidebar' );
$_sidebars = (array) get_option( SS_SETTINGS_FIELD );
if ( ! isset( $_sidebars[$id] ) ) {
wp_die( $this->error( 4 ) );
exit;
}
unset( $_sidebars[$id] );
update_option( SS_SETTINGS_FIELD, $_sidebars );
wp_redirect( admin_url( 'admin.php?page=simple-sidebars&deleted=true' ) );
exit;
}
/**
* Returns an error message by ID.
*
* @since 1.0.0
*
* @return string Returns an error string based on an error ID.
*/
protected function error( $error = false ) {
if ( ! $error )
return false;
switch( (int) $error ) {
case 1:
return __( 'Oops! Please choose a valid Name and ID for this sidebar', 'genesis-simple-sidebars' );
break;
case 2:
return __( 'Oops! That sidebar ID already exists', 'genesis-simple-sidebars' );
break;
case 3:
return __( 'Oops! You are trying to edit a sidebar that does not exist, or is not editable', 'genesis-simple-sidebars' );
break;
case 4:
return __( 'Oops! You are trying to delete a sidebar that does not exist, or cannot be deleted', 'genesis-simple-sidebars' );
break;
default:
return __( 'Oops! Something went wrong. Try again.', 'genesis-simple-sidebars' );
}
}
}
add_action( 'genesis_admin_menu', 'simplesidebars_settings_menu' );
/**
* Instantiate the class to create the menu.
*
* @since 1.0.0
*/
function simplesidebars_settings_menu() {
global $_genesis_simple_sidebars_admin;
$_genesis_simple_sidebars_admin = new Genesis_Simple_Sidebars_Admin;
}
+102
View File
@@ -0,0 +1,102 @@
<?php
add_action('admin_menu', 'ss_add_inpost_metabox');
/**
* This bit of code registers the meta box on posts/pages,
* so that users can choose what sidebar to use.
*/
function ss_add_inpost_metabox() {
foreach ( (array) get_post_types( array( 'public' => true ) ) as $type ) {
if ( post_type_supports( $type, 'genesis-simple-sidebars' ) || $type == 'post' || $type == 'page' ) {
add_meta_box( 'ss_inpost_metabox', __( 'Sidebar Selection', 'genesis-simple-sidebars' ), 'ss_inpost_metabox', $type, 'side', 'low' );
}
}
}
function ss_inpost_metabox() {
$_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
global $wp_registered_sidebars;
?>
<input type="hidden" name="ss_inpost_nonce" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
<?php
if( isset( $wp_registered_sidebars['sidebar'] ) ) {
?>
<p>
<label class="howto" for="_ss_sidebar"><span><?php echo esc_attr( $wp_registered_sidebars['sidebar']['name'] ); ?><span></label>
<select name="_ss_sidebar" id="_ss_sidebar" style="width: 99%">
<option value=""><?php _e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $_sidebars as $id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $id ), selected( $id, genesis_get_custom_field( '_ss_sidebar' ), false), esc_html( $info['name'] ) );
}
?>
</select>
</p>
<?php
}
if( isset( $wp_registered_sidebars['sidebar-alt'] ) ) {
?>
<p>
<label class="howto" for="_ss_sidebar_alt"><span><?php echo esc_attr( $wp_registered_sidebars['sidebar-alt']['name'] ); ?><span></label>
<select name="_ss_sidebar_alt" id="_ss_sidebar_alt" style="width: 99%">
<option value=""><?php _e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $_sidebars as $id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $id ), selected( $id, genesis_get_custom_field( '_ss_sidebar_alt' ), false ), esc_html( $info['name'] ) );
}
?>
</select>
</p>
<?php
}
}
add_action( 'save_post', 'ss_inpost_metabox_save', 1, 2 );
/**
* This bit of code saves the sidebars chosen as post meta.
*/
function ss_inpost_metabox_save( $post_id, $post ) {
//* verify the nonce
if ( !isset($_POST['ss_inpost_nonce']) || !wp_verify_nonce( $_POST['ss_inpost_nonce'], plugin_basename(__FILE__) ) )
return $post->ID;
//* don't try to save the data under autosave, ajax, or future post.
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
if ( defined('DOING_AJAX') && DOING_AJAX ) return;
if ( defined('DOING_CRON') && DOING_CRON ) return;
//* is the user allowed to edit the post or page?
if ( ( 'page' == $_POST['post_type'] && ! current_user_can( 'edit_page', $post->ID ) ) || ! current_user_can( 'edit_post', $post->ID ) )
return $post->ID;
$_sidebars = array(
'_ss_sidebar' => $_POST['_ss_sidebar'],
'_ss_sidebar_alt' => $_POST['_ss_sidebar_alt'],
);
//* store the custom fields
foreach ( $_sidebars as $key => $value ) {
//* don't try to store data during revision save
if ( 'revision' === $post->post_type )
return;
if ( $value ) {
update_post_meta($post->ID, $key, $value);
} else {
delete_post_meta($post->ID, $key);
}
}
}
+69
View File
@@ -0,0 +1,69 @@
<?php
/**
* This function, hooked to display on the category/tag edit forms,
* adds new fields to select a sidebar. The variables $tag and $taxonomy
* are passed via the hook so that we can use them.
*/
function ss_term_edit_init() {
$taxonomies = ss_get_taxonomies();
if ( ! empty( $taxonomies ) && is_admin() && is_array( $taxonomies ) ) {
foreach( $taxonomies as $tax )
add_action( "{$tax}_edit_form", 'ss_term_sidebar', 9, 2 );
}
}
function ss_term_sidebar($tag, $taxonomy) {
//* Merge Defaults to prevent notices
$tag->meta = wp_parse_args( $tag->meta, array( '_ss_sidebar' => '', '_ss_sidebar_alt' => '' ) );
//* Pull custom sidebars
$_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
?>
<h3><?php _e( 'Sidebar Options', 'genesis-simple-sidebars' ); ?></h3>
<table class="form-table">
<tr class="form-field">
<th scope="row" valign="top"><label for="genesis-meta[_ss_sidebar]"><?php _e( 'Primary Sidebar', 'genesis-simple-sidebars' ); ?></label></th>
<td>
<select name="genesis-meta[_ss_sidebar]" id="genesis-meta[_ss_sidebar]" style="padding-right: 10px;">
<option value=""><?php _e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $_sidebars as $id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $id ), selected( $id, get_term_meta( $tag->term_id, '_ss_sidebar', true ), false), esc_html( $info['name'] ) );
}
?>
</select>
</td>
</tr>
<?php
//* don't show the option if there are no 3 column layouts registered
if ( ss_has_3_column_layouts() ) {
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="genesis-meta[_ss_sidebar_alt]"><?php _e( 'Secondary Sidebar', 'genesis-simple-sidebars' ); ?></label></th>
<td>
<select name="genesis-meta[_ss_sidebar_alt]" id="genesis-meta[_ss_sidebar_alt]" style="padding-right: 10px;">
<option value=""><?php _e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $_sidebars as $id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $id ), selected( $id, get_term_meta( $tag->term_id, '_ss_sidebar_alt', true ), false), esc_html( $info['name'] ) );
}
?>
</select>
</td>
</tr>
<?php
}
?>
</table>
<?php
}
+39
View File
@@ -0,0 +1,39 @@
<?php
if ( array_key_exists( $_REQUEST['id'], (array) $_sidebars ) ) {
$_sidebar = stripslashes_deep( $_sidebars[$_REQUEST['id']] );
} else {
wp_die( __( 'Nice try, partner. But that sidebar doesn\'t exist. Click back and try again.', 'genesis-simple-sidebars' ) );
}
screen_icon( 'themes' ); ?>
<h2><?php _e( 'Edit Sidebar', 'genesis-simple-sidebars' ); ?></h2>
<form method="post" action="<?php echo admin_url( 'admin.php?page=simple-sidebars&amp;action=edit' ); ?>">
<?php wp_nonce_field( 'simple-sidebars-action_edit-sidebar' ); ?>
<table class="form-table">
<tr class="form-field">
<th scope="row" valign="top"><label for="edit_sidebar[name]"><?php _e( 'Name', 'genesis-simple-sidebars' ); ?></label></th>
<td><input name="edit_sidebar[name]" id="edit_sidebar[name]" type="text" value="<?php echo esc_html( $_sidebar['name'] ); ?>" size="40" />
<p class="description"><?php _e( 'A recognizable name for your new sidebar widget area', 'genesis-simple-sidebars' ); ?></p></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="edit_sidebar[id]"><?php _e( 'ID', 'genesis-simple-sidebars' ); ?></label></th>
<td>
<input type="text" value="<?php echo esc_html( $_REQUEST['id'] ); ?>" size="40" readonly />
<input name="edit_sidebar[id]" id="edit_sidebar[id]" type="hidden" value="<?php echo esc_html( $_REQUEST['id'] ); ?>" size="40" />
<p class="description"><?php _e( 'The unique ID is used to register the sidebar widget area (cannot be changed)', 'genesis-simple-sidebars' ); ?></p></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="edit_sidebar[description]"><?php _e( 'Description', 'genesis-simple-sidebars' ); ?></label></th>
<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>
</tr>
</table>
<p class="submit"><input type="submit" class="button-primary" name="submit" value="<?php _e( 'Update', 'genesis-simple-sidebars' ); ?>" /></p>
</form>
+70
View File
@@ -0,0 +1,70 @@
<?php screen_icon( 'themes' ); ?>
<h2><?php _e( 'Genesis - Simple Sidebars', 'genesis-simple-sidebars' ); ?></h2>
<div id="col-container">
<div id="col-right">
<div class="col-wrap">
<h3><?php _e( 'Current Sidebars', 'genesis-simple-sidebars' ); ?></h3>
<table class="widefat tag fixed" cellspacing="0">
<thead>
<tr>
<th scope="col" id="name" class="manage-column column-name"><?php _e( 'Name', 'genesis-simple-sidebars' ); ?></th>
<th scope="col" class="manage-column column-slug"><?php _e( 'ID', 'genesis-simple-sidebars' ); ?></th>
<th scope="col" id="description" class="manage-column column-description"><?php _e( 'Description', 'genesis-simple-sidebars' ); ?></th>
</tr>
</thead>
<tfoot>
<tr>
<th scope="col" class="manage-column column-name"><?php _e( 'Name', 'genesis-simple-sidebars' ); ?></th>
<th scope="col" class="manage-column column-slug"><?php _e( 'ID', 'genesis-simple-sidebars' ); ?></th>
<th scope="col" class="manage-column column-description"><?php _e( 'Description', 'genesis-simple-sidebars' ); ?></th>
</tr>
</tfoot>
<tbody id="the-list" class="list:tag">
<?php $this->table_rows(); ?>
</tbody>
</table>
</div>
</div><!-- /col-right -->
<div id="col-left">
<div class="col-wrap">
<div class="form-wrap">
<h3><?php _e( 'Add New Sidebar', 'genesis-simple-sidebars' ); ?></h3>
<form method="post" action="<?php echo admin_url( 'admin.php?page=simple-sidebars&amp;action=create' ); ?>">
<?php wp_nonce_field( 'simple-sidebars-action_create-sidebar' ); ?>
<div class="form-field form-required">
<label for="sidebar-name"><?php _e( 'Name', 'genesis-simple-sidebars' ); ?></label>
<input name="new_sidebar[name]" id="sidebar-name" type="text" value="" size="40" aria-required="true" />
<p><?php _e( 'A recognizable name for your new sidebar widget area', 'genesis-simple-sidebars' ); ?></p>
</div>
<div class="form-field">
<label for="sidebar-id"><?php _e( 'ID', 'genesis-simple-sidebars' ); ?></label>
<input name="new_sidebar[id]" id="sidebar-id" type="text" value="" size="40" />
<p><?php _e( 'The unique ID is used to register the sidebar widget area', 'genesis-simple-sidebars' ); ?></p>
</div>
<div class="form-field">
<label for="sidebar-description"><?php _e( 'Description', 'genesis-simple-sidebars' ); ?></label>
<textarea name="new_sidebar[description]" id="sidebar-description" rows="5" cols="40"></textarea>
</div>
<p class="submit"><input type="submit" class="button" name="submit" id="submit" value="<?php _e( 'Add New Sidebar', 'genesis-simple-sidebars' ); ?>" /></p>
</form></div>
</div>
</div><!-- /col-left -->
</div><!-- /col-container -->
-84
View File
@@ -1,84 +0,0 @@
<?php
/**
* This bit of code registers the meta box on posts/pages,
* so that users can choose what sidebar to use.
*/
add_action('admin_menu', 'ss_add_inpost_metabox');
function ss_add_inpost_metabox() {
add_meta_box('ss_inpost_metabox', __('Sidebar Selection', 'genesis'), 'ss_inpost_metabox', 'post', 'side', 'low');
add_meta_box('ss_inpost_metabox', __('Sidebar Selection', 'genesis'), 'ss_inpost_metabox', 'page', 'side', 'low');
}
function ss_inpost_metabox() {
$_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
?>
<input type="hidden" name="ss_inpost_nonce" value="<?php echo wp_create_nonce(plugin_basename(__FILE__)); ?>" />
<p>
<label class="howto" for="_ss_sidebar"><span><?php _e('Primary Sidebar', 'ss'); ?><span></label>
<select name="_ss_sidebar" id="_ss_sidebar" style="width: 99%">
<option value=""><?php _e('Default', 'ss'); ?></option>
<?php
foreach ( (array)$_sidebars as $id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $id ), selected( $id, genesis_get_custom_field('_ss_sidebar'), false), esc_html( $info['name'] ) );
}
?>
</select>
</p>
<p>
<label class="howto" for="_ss_sidebar_alt"><span><?php _e('Secondary Sidebar', 'ss'); ?><span></label>
<select name="_ss_sidebar_alt" id="_ss_sidebar_alt" style="width: 99%">
<option value=""><?php _e('Default', 'ss'); ?></option>
<?php
foreach ( (array)$_sidebars as $id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $id ), selected( $id, genesis_get_custom_field('_ss_sidebar_alt'), false), esc_html( $info['name'] ) );
}
?>
</select>
</p>
<?php
}
/**
* This bit of code saves the sidebars chosen as post meta.
*/
add_action('save_post', 'ss_inpost_metabox_save', 1, 2);
function ss_inpost_metabox_save( $post_id, $post ) {
// verify the nonce
if ( !isset($_POST['ss_inpost_nonce']) || !wp_verify_nonce( $_POST['ss_inpost_nonce'], plugin_basename(__FILE__) ) )
return $post->ID;
// don't try to save the data under autosave, ajax, or future post.
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
if ( defined('DOING_AJAX') && DOING_AJAX ) return;
if ( defined('DOING_CRON') && DOING_CRON ) return;
// is the user allowed to edit the post or page?
if ( ( 'page' == $_POST['post_type'] && !current_user_can('edit_page', $post->ID) ) || !current_user_can('edit_post', $post->ID ) )
return $post->ID;
$_sidebars = array(
'_ss_sidebar' => $_POST['_ss_sidebar'],
'_ss_sidebar_alt' => $_POST['_ss_sidebar_alt']
);
// store the custom fields
foreach ( $_sidebars as $key => $value ) {
if ( $post->post_type == 'revision' ) return; // don't try to store data during revision save
if ( $value ) {
// save/update
update_post_meta($post->ID, $key, $value);
} else {
// delete if blank
delete_post_meta($post->ID, $key);
}
}
}
Binary file not shown.
+226
View File
@@ -0,0 +1,226 @@
# Copyright (C) 2011 Genesis Layout Extras by David Decker of deckerweb.de
# This file is distributed under the same license as the Genesis Layout Extras package.
#
msgid ""
msgstr ""
"Project-Id-Version: Genesis Simple Sidebars (Plugin)\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tags/genesis-simple-sidebars\n"
"POT-Creation-Date: 2011-12-24 01:10+0100\n"
"PO-Revision-Date: 2011-12-24 01:18+0100\n"
"Last-Translator: David Decker <deckerweb.mobil@googlemail.com>\n"
"Language-Team: DECKERWEB <deckerweb.mobil@googlemail.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Poedit-Language: German\n"
"X-Poedit-Country: GERMANY\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
"X-Textdomain-Support: yes\n"
"X-Poedit-SearchPath-0: .\n"
#@ ss
#: admin.php:17
msgid "Simple Sidebars"
msgstr "Einfache Sidebars"
#@ ss
#: admin.php:66
msgid "Nice try, partner. But that sidebar doesn't exist. Click back and try again."
msgstr "Netter Versuch, doch leider existiert diese Sidebar nicht. Gehen Sie zurück und versuchen Sie es erneut."
#@ ss
#: admin.php:72
msgid "Edit Sidebar"
msgstr "Sidebar bearbeiten"
#@ ss
#: admin.php:79
#: admin.php:117
#: admin.php:125
#: admin.php:152
msgid "Name"
msgstr "Name"
#@ ss
#: admin.php:81
#: admin.php:154
msgid "A recognizable name for your new sidebar widget area"
msgstr "Ein passender Name für Ihren neuen Sidebar-Widget-Bereich"
#@ ss
#: admin.php:85
#: admin.php:118
#: admin.php:126
#: admin.php:158
msgid "ID"
msgstr "ID"
#@ ss
#: admin.php:89
msgid "The unique ID is used to register the sidebar widget area (cannot be changed)"
msgstr "Die einzigartige ID wird verwendet, um den Sidebar-Widget-Bereich zu registrieren. Diese ID kann nicht verändert werden. Verwenden Sie am besten nur kleinbuchstaben, Bindestriche (Minus) und Zahlen."
#@ ss
#: admin.php:93
#: admin.php:119
#: admin.php:127
#: admin.php:164
msgid "Description"
msgstr "Beschreibung"
#@ ss
#: admin.php:99
msgid "Update"
msgstr "Aktualisieren"
#@ ss
#: admin.php:106
msgid "Genesis - Simple Sidebars"
msgstr "Genesis - Einfache Sidebars"
#@ ss
#: admin.php:113
msgid "Current Sidebars"
msgstr "Aktuelle Sidebars"
#@ ss
#: admin.php:146
#: admin.php:168
msgid "Add New Sidebar"
msgstr "Neue Sidebar hinzufügen"
#@ ss
#: admin.php:160
msgid "The unique ID is used to register the sidebar widget area"
msgstr "Die einzigartige ID wird verwendet, um den neuen Sidebar-Widget-Bereich zu registrieren. Diese ID kann nicht verändert werden. Verwenden Sie am besten nur kleinbuchstaben, Bindestriche (Minus) und Zahlen."
#@ ss
#: functions.php:28
msgid "Edit"
msgstr "Bearbeiten"
#@ ss
#: functions.php:29
msgid "Delete"
msgstr "Löschen"
#@ ss
#: functions.php:145
msgid "Oops! Please choose a valid Name and ID for this sidebar"
msgstr "Oops! Bitte wählen Sie einen gültigen Namen und eine gültige ID für diese Sidebar"
#@ ss
#: functions.php:148
msgid "Oops! That sidebar ID already exists"
msgstr "Oops! Diese Sidebar-ID existiert bereits"
#@ ss
#: functions.php:151
msgid "Oops! You are trying to edit a sidebar that does not exist, or is not editable"
msgstr "Oops! Sie versuchen eine Sidebar zu bearbeiten, die nicht existiert, oder nicht bearbeitet werden kann"
#@ ss
#: functions.php:154
msgid "Oops! You are trying to delete a sidebar that does not exist, or cannot be deleted"
msgstr "Oops! Sie versuchen eine Sidebar zu löschen, die nicht existiert oder nicht gelöscht werden kann/ darf"
#@ ss
#: functions.php:157
msgid "Oops! Something went wrong. Try again."
msgstr "Oops! Etwas ging schief. Bitte versuchen Sie es noch einmal."
#@ ss
#: functions.php:173
msgid "New sidebar successfully created!"
msgstr "Neue Sidebar erfolgreich erstellt!"
#@ ss
#: functions.php:178
msgid "Sidebar successfully edited!"
msgstr "Sidebar erfolgreich bearbeitet!"
#@ ss
#: functions.php:183
msgid "Sidebar successfully deleted."
msgstr "Sidebar erfolgreich gelöscht."
#@ ss
#: inpost.php:10
msgid "Sidebar Selection"
msgstr "Sidebar-Auswahl"
#@ ss
#: inpost.php:22
#: term.php:29
msgid "Primary Sidebar"
msgstr "Haupt-Sidebar (Primary)"
#@ ss
#: inpost.php:24
#: inpost.php:43
#: term.php:32
#: term.php:46
msgid "Default"
msgstr "Standard"
#@ ss
#: inpost.php:41
#: term.php:43
msgid "Secondary Sidebar"
msgstr "Zweit-Sidebar (Secondary)"
#@ ss
#: plugin.php:24
#, php-format
msgid "Sorry, you can't activate unless you have installed <a href=\"%s\">Genesis</a>"
msgstr "Hinweis: Dieses Plugin kann <em>nicht</em> aktiviert werden, solange das <a href=\"%s\">Genesis Framework</a> nicht installiert ist."
#@ ss
#: plugin.php:29
#, php-format
msgid "Sorry, you cannot activate without <a href=\"%s\">Genesis %s</a> or greater"
msgstr "Hinweis: Dieses Plugin kann <em>nicht</em> aktiviert werden, au&szlig;er das <a href=\"%s\">Genesis Framework Version %s</a> oder h&ouml;her ist installiert."
#@ ss
#: term.php:25
msgid "Sidebar Options"
msgstr "Sidebar-Optionen"
#@ ss
#. translators: plugin header field 'Name'
#: plugin.php:0
msgid "Genesis Simple Sidebars"
msgstr "Genesis Einfache Sidebars"
#@ ss
#. translators: plugin header field 'PluginURI'
#: plugin.php:0
msgid "http://www.studiopress.com/plugins/simple-sidebars"
msgstr "http://www.studiopress.com/plugins/simple-sidebars"
#@ ss
#. translators: plugin header field 'Description'
#: plugin.php:0
msgid "Genesis Simple Sidebars allows you to easily create and use new sidebar widget areas."
msgstr "Genesis Einfache Sidebars (Simple Sidebars) erlaubt es auf einfache Art und Weise neue Sidebar-Widget-Bereiche zu erstellen und zu verwenden."
#@ ss
#. translators: plugin header field 'Author'
#: plugin.php:0
msgid "Nathan Rice"
msgstr "Nathan Rice"
#@ ss
#. translators: plugin header field 'AuthorURI'
#: plugin.php:0
msgid "http://www.nathanrice.net/"
msgstr "http://www.nathanrice.net/"
#@ ss
#. translators: plugin header field 'Version'
#: plugin.php:0
msgid "0.9.2"
msgstr "0.9.2"
+175
View File
@@ -0,0 +1,175 @@
# Copyright (C) 2016 Nathan Rice
# This file is distributed under the GNU General Public License v2.0 (or later).
msgid ""
msgstr ""
"Project-Id-Version: Genesis Simple Sidebars 2.0.3\n"
"Report-Msgid-Bugs-To: StudioPress <translations@studiopress.com>\n"
"POT-Creation-Date: 2016-02-24 19:51:21+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2016-MO-DA HO:MI+ZONE\n"
"Last-Translator: StudioPress <translations@studiopress.com>\n"
"Language-Team: English <translations@studiopress.com>\n"
"X-Generator: grunt-wp-i18n\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-Language: English\n"
"X-Poedit-Country: UNITED STATES\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: "
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
"X-Poedit-Bookmarks: \n"
"X-Poedit-SearchPath-0: .\n"
"X-Textdomain-Support: yes\n"
#: includes/admin.php:32 includes/views/main.php:2
msgid "Genesis - Simple Sidebars"
msgstr ""
#: includes/admin.php:33
msgid "Simple Sidebars"
msgstr ""
#: includes/admin.php:107
msgid "Edit"
msgstr ""
#: includes/admin.php:108
msgid "Delete"
msgstr ""
#: includes/admin.php:173
msgid "New sidebar successfully created!"
msgstr ""
#: includes/admin.php:178
msgid "Sidebar successfully edited!"
msgstr ""
#: includes/admin.php:183
msgid "Sidebar successfully deleted."
msgstr ""
#: includes/admin.php:319
msgid "Oops! Please choose a valid Name and ID for this sidebar"
msgstr ""
#: includes/admin.php:322
msgid "Oops! That sidebar ID already exists"
msgstr ""
#: includes/admin.php:325
msgid ""
"Oops! You are trying to edit a sidebar that does not exist, or is not "
"editable"
msgstr ""
#: includes/admin.php:328
msgid ""
"Oops! You are trying to delete a sidebar that does not exist, or cannot be "
"deleted"
msgstr ""
#: includes/admin.php:331
msgid "Oops! Something went wrong. Try again."
msgstr ""
#: includes/inpost.php:12
msgid "Sidebar Selection"
msgstr ""
#: includes/inpost.php:35 includes/inpost.php:50 includes/term.php:37
#: includes/term.php:54
msgid "Default"
msgstr ""
#: includes/term.php:30
msgid "Sidebar Options"
msgstr ""
#: includes/term.php:34
msgid "Primary Sidebar"
msgstr ""
#: includes/term.php:51
msgid "Secondary Sidebar"
msgstr ""
#: includes/views/edit.php:5
msgid "Nice try, partner. But that sidebar doesn't exist. Click back and try again."
msgstr ""
#: includes/views/edit.php:9
msgid "Edit Sidebar"
msgstr ""
#: includes/views/edit.php:17 includes/views/main.php:13
#: includes/views/main.php:21 includes/views/main.php:48
msgid "Name"
msgstr ""
#: includes/views/edit.php:19 includes/views/main.php:50
msgid "A recognizable name for your new sidebar widget area"
msgstr ""
#: includes/views/edit.php:23 includes/views/main.php:14
#: includes/views/main.php:22 includes/views/main.php:54
msgid "ID"
msgstr ""
#: includes/views/edit.php:27
msgid ""
"The unique ID is used to register the sidebar widget area (cannot be "
"changed)"
msgstr ""
#: includes/views/edit.php:31 includes/views/main.php:15
#: includes/views/main.php:23 includes/views/main.php:60
msgid "Description"
msgstr ""
#: includes/views/edit.php:37
msgid "Update"
msgstr ""
#: includes/views/main.php:9
msgid "Current Sidebars"
msgstr ""
#: includes/views/main.php:42 includes/views/main.php:64
msgid "Add New Sidebar"
msgstr ""
#: includes/views/main.php:56
msgid "The unique ID is used to register the sidebar widget area"
msgstr ""
#: plugin.php:48
msgid ""
"Sorry, you cannot run Simple Sidebars without WordPress %s and <a "
"href=\"%s\">Genesis %s</a>, or greater."
msgstr ""
#. Plugin Name of the plugin/theme
msgid "Genesis Simple Sidebars"
msgstr ""
#. Plugin URI of the plugin/theme
msgid "http://www.studiopress.com/plugins/simple-sidebars"
msgstr ""
#. Description of the plugin/theme
msgid ""
"Genesis Simple Sidebars allows you to easily create and use new sidebar "
"widget areas."
msgstr ""
#. Author of the plugin/theme
msgid "Nathan Rice"
msgstr ""
#. Author URI of the plugin/theme
msgid "http://www.nathanrice.net/"
msgstr ""
+37
View File
@@ -0,0 +1,37 @@
{
"name": "genesis-simple-sidebars",
"description": "Development files for the Genesis Simple Sidebars plugin.",
"repository": {
"type": "git",
"url": "https://github.com/copyblogger/genesis-simple-sidebars"
},
"dependencies": {},
"devDependencies": {
"grunt": "*",
"grunt-autoprefixer": "*",
"grunt-checktextdomain": "*",
"grunt-contrib-cssmin": "*",
"grunt-contrib-imagemin": "*",
"grunt-contrib-jshint": "*",
"grunt-contrib-uglify": "*",
"grunt-contrib-watch": "*",
"grunt-csscomb": "*",
"grunt-jsbeautifier": "*",
"grunt-jsvalidate": "*",
"grunt-phplint": "*",
"grunt-styledocco": "*",
"grunt-wp-i18n": "*",
"load-grunt-tasks": "*"
},
"plugin": {
"name": "Genesis Simple Sidebars",
"uri": "https://github.com/copyblogger/genesis-simple-sidebars",
"description": "Genesis Simple Sidebars allows you to easily create and use new sidebar widget areas.",
"author": "StudioPress",
"authoruri": "http://www.studiopress.com/",
"version": "2.0.3",
"license": "GPL-2.0+",
"licenseuri": "http://www.gnu.org/licenses/gpl-2.0.html",
"textdomain": "genesis-simple-sidebars"
}
}
+190 -87
View File
@@ -3,116 +3,219 @@
Plugin Name: Genesis Simple Sidebars
Plugin URI: http://www.studiopress.com/plugins/simple-sidebars
Description: Genesis Simple Sidebars allows you to easily create and use new sidebar widget areas.
Version: 0.9
Author: Nathan Rice
Author URI: http://www.nathanrice.net/
Text Domain: genesis-simple-sidebars
Domain Path: /languages
Version: 2.0.3
License: GNU General Public License v2.0 (or later)
License URI: http://www.opensource.org/licenses/gpl-license.php
*/
// require Genesis 1.2 upon activation
register_activation_hook(__FILE__, 'ss_activation_check');
/** Define our constants */
define( 'SS_SETTINGS_FIELD', 'ss-settings' );
define( 'SS_PLUGIN_DIR', dirname( __FILE__ ) );
register_activation_hook( __FILE__, 'ss_activation_check' );
/**
* Activation hook callback.
*
* This functions runs when the plugin is activated. It checks to make sure the user is running
* a minimum Genesis version, so there are no conflicts or fatal errors.
*
* @since 0.9.0
*/
function ss_activation_check() {
$latest = '1.2';
$theme_info = get_theme_data(TEMPLATEPATH.'/style.css');
if( basename(TEMPLATEPATH) != 'genesis' ) {
deactivate_plugins(plugin_basename(__FILE__)); // Deactivate ourself
wp_die( sprintf( __('Sorry, you can\'t activate unless you have installed <a href="%s">Genesis</a>', 'ss'), 'http://www.studiopress.com/themes/genesis' ) );
}
if( version_compare( $theme_info['Version'], $latest, '<' ) ) {
deactivate_plugins(plugin_basename(__FILE__)); // Deactivate ourself
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 ) );
}
if ( ! defined( 'PARENT_THEME_VERSION' ) || ! version_compare( PARENT_THEME_VERSION, '2.2.7', '>=' ) )
ss_deactivate( '2.2.7', '4.4.2' );
}
// Define our constants
define('SS_SETTINGS_FIELD', 'ss-settings');
define('SS_PLUGIN_DIR', dirname(__FILE__));
// Include files
require_once(SS_PLUGIN_DIR . '/admin.php');
require_once(SS_PLUGIN_DIR . '/functions.php');
require_once(SS_PLUGIN_DIR . '/inpost.php');
require_once(SS_PLUGIN_DIR . '/term.php');
/**
* This function registers the created sidebars
* Deactivate Simple Sidebars.
*
* This function deactivates Simple Sidebars.
*
* @since 1.0.0
*/
add_action('widgets_init', 'ss_register_sidebars');
function ss_register_sidebars() {
$_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
if ( !$_sidebars ) return;
foreach ( (array)$_sidebars as $id => $info ) {
register_sidebar(array(
'name' => esc_html( $info['name'] ),
'id' => $id,
'description' => esc_html( $info['description'] ),
'editable' => 1,
'before_widget' => '<div id="%1$s" class="widget %2$s"><div class="widget-wrap">',
'after_widget' => "</div></div>\n",
'before_title' => '<h4 class="widgettitle">',
'after_title' => "</h4>\n"
));
}
function ss_deactivate( $genesis_version = '2.2.7', $wp_version = '4.4.2' ) {
deactivate_plugins( plugin_basename( __FILE__ ) );
wp_die( sprintf( __( 'Sorry, you cannot run Simple Sidebars without WordPress %s and <a href="%s">Genesis %s</a>, or greater.', 'genesis-simple-sidebars' ), $wp_version, 'http://my.studiopress.com/?download_id=91046d629e74d525b3f2978e404e7ffa', $genesis_version ) );
}
add_action( 'genesis_init', 'ss_genesis_init', 12 );
/**
* Plugin initialization.
*
* Initialize the plugin, set the constants, hook callbacks to actions, and include the plugin library.
*
* @since 0.9.0
*/
function ss_genesis_init() {
//* Deactivate if not running Genesis 1.8.0 or greater
if ( ! class_exists( 'Genesis_Admin_Boxes' ) )
add_action( 'admin_init', 'ss_deactivate', 10, 0 );
//* Load translations
load_plugin_textdomain( 'genesis-simple-sidebars', false, 'genesis-simple-sidebars/languages' );
//* required hooks
add_action( 'get_header', 'ss_sidebars_init' );
add_action( 'widgets_init', 'ss_register_sidebars' );
//* The rest is admin stuff, so load only if we're in the admin area
if ( ! is_admin() )
return;
//* Include admin files
require_once( SS_PLUGIN_DIR . '/includes/admin.php' );
require_once( SS_PLUGIN_DIR . '/includes/inpost.php' );
require_once( SS_PLUGIN_DIR . '/includes/term.php' );
//* let the child theme hook the genesis_simple_sidebars_taxonomies filter before hooking term edit
add_action( 'init', 'ss_term_edit_init' );
}
/**
* Register widget areas.
*
* This function registers the created sidebars as widget areas
*
* @since 0.9.0
*/
function ss_register_sidebars() {
$_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
//* If no sidebars have been created, do nothing
if ( ! $_sidebars )
return;
//* Cycle through created sidebars, register them as widget areas
foreach ( (array) $_sidebars as $id => $info ) {
genesis_register_sidebar( array(
'name' => esc_html( $info['name'] ),
'id' => $id,
'description' => esc_html( $info['description'] ),
'editable' => 1,
) );
}
}
/**
* Use custom sidebars.
*
* Remove the default sidebars, run some conditional logic,
* use alternate sidebars if necessary, else fallback on default sidebars.
*
* @since 0.9.0
*/
add_action('get_header', 'ss_sidebars_init');
function ss_sidebars_init() {
remove_action('genesis_sidebar', 'genesis_do_sidebar');
remove_action('genesis_sidebar_alt', 'genesis_do_sidebar_alt');
add_action('genesis_sidebar', 'ss_do_sidebar');
add_action('genesis_sidebar_alt', 'ss_do_sidebar_alt');
remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );
remove_action( 'genesis_sidebar_alt', 'genesis_do_sidebar_alt' );
add_action( 'genesis_sidebar', 'ss_do_sidebar' );
add_action( 'genesis_sidebar_alt', 'ss_do_sidebar_alt' );
}
/**
* Display primary sidebar.
*
* Display custom sidebar if one exists, else display default primary sidebar.
*
* @since 0.9.0
*/
function ss_do_sidebar() {
if ( is_singular() && $_sidebar = genesis_get_custom_field('_ss_sidebar') ) {
if ( dynamic_sidebar($_sidebar) ) return;
}
if ( is_category() ) {
$term = get_term( get_query_var('cat'), 'category' );
if( isset( $term->meta['_ss_sidebar'] ) && dynamic_sidebar( $term->meta['_ss_sidebar'] ) ) return;
}
if ( is_tag() ) {
$term = get_term( get_query_var('tag_id'), 'post_tag' );
if( isset( $term->meta['_ss_sidebar'] ) && dynamic_sidebar( $term->meta['_ss_sidebar'] ) ) return;
}
genesis_do_sidebar();
if ( ! ss_do_one_sidebar( '_ss_sidebar' ) )
genesis_do_sidebar();
}
/**
* Display secondary sidebar.
*
* Display custom sidebar if one exists, else display default secondary sidebar.
*
* @since 0.9.0
*/
function ss_do_sidebar_alt() {
if ( is_singular() && $_sidebar_alt = genesis_get_custom_field('_ss_sidebar_alt') ) {
if ( dynamic_sidebar($_sidebar_alt) ) return;
if ( ! ss_do_one_sidebar( '_ss_sidebar_alt' ) )
genesis_do_sidebar_alt();
}
/**
* Sidebar widget area output.
*
* Helper function to show widgets in a particular sidebar.
*
* @param string $sidebar_key sidebar id you wish to output.
*
* @since 0.9.0
*
*/
function ss_do_one_sidebar( $sidebar_key = '_ss_sidebar' ) {
if ( is_singular() && $sidebar_key = genesis_get_custom_field( $sidebar_key ) ) {
if ( dynamic_sidebar( $sidebar_key ) ) {
return true;
}
}
if ( is_category() ) {
$term = get_term( get_query_var('cat'), 'category' );
if( isset( $term->meta['_ss_sidebar_alt'] ) && dynamic_sidebar( $term->meta['_ss_sidebar_alt'] ) ) return;
if ( is_tax() || is_category() || is_tag() ) {
if ( $sidebar_key = get_term_meta( get_queried_object()->term_id, $sidebar_key, true ) ) {
dynamic_sidebar( $sidebar_key );
return true;
}
}
if ( is_tag() ) {
$term = get_term( get_query_var('tag_id'), 'post_tag' );
if( isset( $term->meta['_ss_sidebar_alt'] ) && dynamic_sidebar( $term->meta['_ss_sidebar_alt'] ) ) return;
}
genesis_do_sidebar_alt();
}
return false;
}
/**
* Return taxonomy ids.
*
* Helper function to return the array keys from a taxonomy query.
*
* @since 0.9.0
*/
function ss_get_taxonomies() {
$taxonomies = get_taxonomies( array( 'show_ui' => true, 'public' => true ) );
return apply_filters( 'genesis_simple_sidebars_taxonomies', array_keys( $taxonomies ) );
}
/**
* Does this Genesis install have the 3 column layouts deactivated?
*
* This function checks to see if the Genesis install still has active 3 column layouts. Since
* child themes and plugins can deregister layouts, we need to know if they have deregistered the 3 column layouts.
*
* @since 0.9.2
*/
function ss_has_3_column_layouts() {
$_layouts = (array) genesis_get_layouts();
$_layouts = array_keys( $_layouts );
$_3_column = array_intersect( $_layouts, array( 'content-sidebar-sidebar', 'sidebar-content-sidebar', 'sidebar-sidebar-content' ) );
return ! empty( $_3_column );
}
+44 -9
View File
@@ -1,16 +1,16 @@
=== Plugin Name ===
Contributors: nathanrice
Contributors: nathanrice, wpmuguru, studiopress
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5553118
Tags: hooks, genesis, genesiswp, studiopress
Requires at least: 2.9
Tested up to: 3.0
Stable tag: 0.9
Requires at least: 4.4.2
Tested up to: 4.4.2
Stable tag: 2.0.3
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.
This plugin allows you to create multiple, dynamic widget areas, and assign those widget areas to sidebar locations within the Genesis Framework on a per post, per page, or per tag/category archive basis.
== Description ==
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.
This plugin allows you to create multiple, dynamic widget areas, and assign those widget areas to sidebar locations within the Genesis Framework on a per post, per page, or per tag/category archive basis.
Creating widget areas programmatically, then using conditional logic to properly assign them to sidebar locations can be a complex task for a beginner. This plugin allows you to do all this from a simple administration menu, and assign widget areas to sidebar locations with simple drop-down menus within the post/page edit screens, or when editing a tag or category.
@@ -37,11 +37,46 @@ Not in the way you're probably thinking. The markup surrounding the widget area
== Changelog ==
= 0.1 =
* Initial Alpha Release
= 2.0.3 =
* Update for WordPress 4.4+ and Genesis 2.2.7+
* DO NOT upgrade to 2.0.3 unless you are running WordPress 4.4+ AND Genesis 2.2.7+
= 2.0.2 =
* Change text domain, update POT file.
= 2.0.1 =
* Genesis 2.0.1 compatibility with term meta keys
* Use actual sidebar name, instead of hard coded names
* Fix incorrect textdomain
= 2.0.0 =
* Compatibility with Genesis 2.0
* Standards
= 1.0.0 =
* Reorganize theme files
* Standards
= 0.9.2.1 =
* Restore default tag/category support
* Default custom taxonomy support to on for public taxonomies
* Remove secondary selection when no 3 column layouts are enabled
= 0.9.2 =
* Added support for custom taxonomies
* Added translation support
* bug fix to prevent invalid sidebar creation
= 0.9.1 =
* Added support for custom post types
= 0.9 =
* Fixed "is not array" errors reported by users
* Added nonce verification for security purposes
* Added error and success messages
* Bump to pre-release 0.9 branch
* Bump to pre-release 0.9 branch
= 0.1 =
* Initial Alpha Release
-53
View File
@@ -1,53 +0,0 @@
<?php
/**
* This function, hooked to display on the category/tag edit forms,
* adds new fields to select a sidebar. The variables $tag and $taxonomy
* are passed via the hook so that we can use them.
*/
add_action('category_edit_form', 'ss_term_sidebar', 9, 2);
add_action('post_tag_edit_form', 'ss_term_sidebar', 9, 2);
function ss_term_sidebar($tag, $taxonomy) {
// Merge Defaults to prevent notices
$tag->meta = wp_parse_args( $tag->meta, array( '_ss_sidebar' => '', '_ss_sidebar_alt' => '' ) );
// Pull custom sidebars
$_sidebars = stripslashes_deep( get_option( SS_SETTINGS_FIELD ) );
?>
<h3><?php _e('Sidebar Options', 'ss'); ?></h3>
<table class="form-table">
<tr class="form-field">
<th scope="row" valign="top"><label for="meta[_ss_sidebar]"><?php _e('Primary Sidebar', 'ss'); ?></label></th>
<td>
<select name="meta[_ss_sidebar]" id="meta[_ss_sidebar]" style="padding-right: 10px;">
<option value=""><?php _e('Default', 'ss'); ?></option>
<?php
foreach ( (array)$_sidebars as $id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $id ), selected( $id, $tag->meta['_ss_sidebar'] , false), esc_html( $info['name'] ) );
}
?>
</select>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="meta[_ss_sidebar_alt]"><?php _e('Secondary Sidebar', 'ss'); ?></label></th>
<td>
<select name="meta[_ss_sidebar_alt]" id="meta[_ss_sidebar_alt]" style="padding-right: 10px;">
<option value=""><?php _e('Default', 'ss'); ?></option>
<?php
foreach ( (array)$_sidebars as $id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $id ), selected( $id, $tag->meta['_ss_sidebar_alt'] , false), esc_html( $info['name'] ) );
}
?>
</select>
</td>
</tr>
</table>
<?php
}