1 Commits

Author SHA1 Message Date
Nathan Rice 785344b41a Update plugin for new term meta method. 2016-04-19 11:36:09 -04:00
28 changed files with 941 additions and 2203 deletions
-39
View File
@@ -1,39 +0,0 @@
version: 2.1
orbs:
wp-svn: studiopress/wp-svn@0.2
jobs:
lint:
docker:
- image: cimg/php:7.3-node
steps:
- checkout
- run: composer install && composer phpcs
workflows:
lint-deploy:
jobs:
- lint
- approval-for-deploy-tested-up-to-bump:
requires:
- lint
type: approval
filters:
tags:
ignore: /.*/
branches:
only: /^bump-tested-up-to.*/
- wp-svn/deploy-tested-up-to-bump:
context: genesis-svn
requires:
- approval-for-deploy-tested-up-to-bump
- wp-svn/deploy:
context: genesis-svn
filters:
tags:
only: /^\d+\.\d+\.\d+$/
branches:
ignore: /.*/
requires:
- lint
-21
View File
@@ -1,21 +0,0 @@
# This file is for unifying the coding style for different editors and IDEs
# editorconfig.org
# WordPress Coding Standards
# http://make.wordpress.org/core/handbook/coding-standards/
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = tab
[*.yml]
indent_style = space
indent_size = 2
[*.md]
trim_trailing_whitespace = false
-2
View File
@@ -2,5 +2,3 @@
Thumbs.db Thumbs.db
.svn .svn
node_modules/ node_modules/
vendor/
*.swp
-1
View File
@@ -3,4 +3,3 @@
.gitattributes .gitattributes
.svnignore .svnignore
node_modules node_modules
.circleci
+4 -8
View File
@@ -27,14 +27,10 @@ module.exports = function(grunt) {
options: { options: {
updateDomains: true updateDomains: true
}, },
target: { src: [
files: { '*.php',
src: [ 'lib/**/*.php'
'*.php', ]
'lib/**/*.php'
]
}
}
} }
}, },
-36
View File
@@ -1,36 +0,0 @@
{
"name": "studiopress/genesis-simple-sidebars",
"type": "wordpress-plugin",
"description": "Genesis Simple Sidebars allows you to easily create and use new sidebar widget areas.",
"homepage": "https://github.com/studiopress/genesis-simple-sidebars",
"license": "GPL-2.0-or-later",
"require": {
"php": "^5.3 || ^7 || ^8",
"composer/installers": "^1"
},
"require-dev": {
"php": "^5.6 || ^7 || ^8",
"dealerdirect/phpcodesniffer-composer-installer": "*",
"squizlabs/php_codesniffer": "^3.6.2",
"phpcompatibility/phpcompatibility-wp": "*",
"wp-coding-standards/wpcs": "^1"
},
"config": {
"sort-order": true,
"allow-plugins": {
"composer/installers": true,
"dealerdirect/phpcodesniffer-composer-installer": true
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"phpcs": "phpcs --standard=WordPress --ignore=vendor/,node_modules/,assets/ --extensions=php -p ./",
"phpcs-compat": "phpcs --extensions=php --standard=PHPCompatibilityWP --ignore=vendor/,node_modules/,assets/ --runtime-set testVersion 5.6- -p ./",
"phpcbf": "phpcbf --standard=WordPress --ignore=vendor/,node_modules/,assets/ --extensions=php -p ./"
},
"support": {
"issues": "https://github.com/studiopress/genesis-simple-sidebars/issues",
"source": "https://github.com/studiopress/genesis-simple-sidebars"
}
}
Generated
-526
View File
@@ -1,526 +0,0 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "60bdbed78b63458c8decfc4af93cae8a",
"packages": [
{
"name": "composer/installers",
"version": "v1.12.0",
"source": {
"type": "git",
"url": "https://github.com/composer/installers.git",
"reference": "d20a64ed3c94748397ff5973488761b22f6d3f19"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/installers/zipball/d20a64ed3c94748397ff5973488761b22f6d3f19",
"reference": "d20a64ed3c94748397ff5973488761b22f6d3f19",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0 || ^2.0"
},
"replace": {
"roundcube/plugin-installer": "*",
"shama/baton": "*"
},
"require-dev": {
"composer/composer": "1.6.* || ^2.0",
"composer/semver": "^1 || ^3",
"phpstan/phpstan": "^0.12.55",
"phpstan/phpstan-phpunit": "^0.12.16",
"symfony/phpunit-bridge": "^4.2 || ^5",
"symfony/process": "^2.3"
},
"type": "composer-plugin",
"extra": {
"class": "Composer\\Installers\\Plugin",
"branch-alias": {
"dev-main": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"Composer\\Installers\\": "src/Composer/Installers"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Kyle Robinson Young",
"email": "kyle@dontkry.com",
"homepage": "https://github.com/shama"
}
],
"description": "A multi-framework Composer library installer",
"homepage": "https://composer.github.io/installers/",
"keywords": [
"Craft",
"Dolibarr",
"Eliasis",
"Hurad",
"ImageCMS",
"Kanboard",
"Lan Management System",
"MODX Evo",
"MantisBT",
"Mautic",
"Maya",
"OXID",
"Plentymarkets",
"Porto",
"RadPHP",
"SMF",
"Starbug",
"Thelia",
"Whmcs",
"WolfCMS",
"agl",
"aimeos",
"annotatecms",
"attogram",
"bitrix",
"cakephp",
"chef",
"cockpit",
"codeigniter",
"concrete5",
"croogo",
"dokuwiki",
"drupal",
"eZ Platform",
"elgg",
"expressionengine",
"fuelphp",
"grav",
"installer",
"itop",
"joomla",
"known",
"kohana",
"laravel",
"lavalite",
"lithium",
"magento",
"majima",
"mako",
"mediawiki",
"miaoxing",
"modulework",
"modx",
"moodle",
"osclass",
"pantheon",
"phpbb",
"piwik",
"ppi",
"processwire",
"puppet",
"pxcms",
"reindex",
"roundcube",
"shopware",
"silverstripe",
"sydes",
"sylius",
"symfony",
"tastyigniter",
"typo3",
"wordpress",
"yawik",
"zend",
"zikula"
],
"support": {
"issues": "https://github.com/composer/installers/issues",
"source": "https://github.com/composer/installers/tree/v1.12.0"
},
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2021-09-13T08:19:44+00:00"
}
],
"packages-dev": [
{
"name": "dealerdirect/phpcodesniffer-composer-installer",
"version": "v0.7.2",
"source": {
"type": "git",
"url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
"reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
"reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0 || ^2.0",
"php": ">=5.3",
"squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0"
},
"require-dev": {
"composer/composer": "*",
"php-parallel-lint/php-parallel-lint": "^1.3.1",
"phpcompatibility/php-compatibility": "^9.0"
},
"type": "composer-plugin",
"extra": {
"class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
},
"autoload": {
"psr-4": {
"Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Franck Nijhof",
"email": "franck.nijhof@dealerdirect.com",
"homepage": "http://www.frenck.nl",
"role": "Developer / IT Manager"
},
{
"name": "Contributors",
"homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors"
}
],
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
"homepage": "http://www.dealerdirect.com",
"keywords": [
"PHPCodeSniffer",
"PHP_CodeSniffer",
"code quality",
"codesniffer",
"composer",
"installer",
"phpcbf",
"phpcs",
"plugin",
"qa",
"quality",
"standard",
"standards",
"style guide",
"stylecheck",
"tests"
],
"support": {
"issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
"source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
},
"time": "2022-02-04T12:51:07+00:00"
},
{
"name": "phpcompatibility/php-compatibility",
"version": "9.3.5",
"source": {
"type": "git",
"url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
"reference": "9fb324479acf6f39452e0655d2429cc0d3914243"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243",
"reference": "9fb324479acf6f39452e0655d2429cc0d3914243",
"shasum": ""
},
"require": {
"php": ">=5.3",
"squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
},
"conflict": {
"squizlabs/php_codesniffer": "2.6.2"
},
"require-dev": {
"phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
},
"suggest": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
},
"type": "phpcodesniffer-standard",
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0-or-later"
],
"authors": [
{
"name": "Wim Godden",
"homepage": "https://github.com/wimg",
"role": "lead"
},
{
"name": "Juliette Reinders Folmer",
"homepage": "https://github.com/jrfnl",
"role": "lead"
},
{
"name": "Contributors",
"homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
}
],
"description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
"homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
"keywords": [
"compatibility",
"phpcs",
"standards"
],
"support": {
"issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues",
"source": "https://github.com/PHPCompatibility/PHPCompatibility"
},
"time": "2019-12-27T09:44:58+00:00"
},
{
"name": "phpcompatibility/phpcompatibility-paragonie",
"version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
"reference": "ddabec839cc003651f2ce695c938686d1086cf43"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/ddabec839cc003651f2ce695c938686d1086cf43",
"reference": "ddabec839cc003651f2ce695c938686d1086cf43",
"shasum": ""
},
"require": {
"phpcompatibility/php-compatibility": "^9.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7",
"paragonie/random_compat": "dev-master",
"paragonie/sodium_compat": "dev-master"
},
"suggest": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
},
"type": "phpcodesniffer-standard",
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0-or-later"
],
"authors": [
{
"name": "Wim Godden",
"role": "lead"
},
{
"name": "Juliette Reinders Folmer",
"role": "lead"
}
],
"description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.",
"homepage": "http://phpcompatibility.com/",
"keywords": [
"compatibility",
"paragonie",
"phpcs",
"polyfill",
"standards"
],
"support": {
"issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues",
"source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie"
},
"time": "2021-02-15T10:24:51+00:00"
},
{
"name": "phpcompatibility/phpcompatibility-wp",
"version": "2.1.3",
"source": {
"type": "git",
"url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git",
"reference": "d55de55f88697b9cdb94bccf04f14eb3b11cf308"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/d55de55f88697b9cdb94bccf04f14eb3b11cf308",
"reference": "d55de55f88697b9cdb94bccf04f14eb3b11cf308",
"shasum": ""
},
"require": {
"phpcompatibility/php-compatibility": "^9.0",
"phpcompatibility/phpcompatibility-paragonie": "^1.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7"
},
"suggest": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
},
"type": "phpcodesniffer-standard",
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0-or-later"
],
"authors": [
{
"name": "Wim Godden",
"role": "lead"
},
{
"name": "Juliette Reinders Folmer",
"role": "lead"
}
],
"description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.",
"homepage": "http://phpcompatibility.com/",
"keywords": [
"compatibility",
"phpcs",
"standards",
"wordpress"
],
"support": {
"issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues",
"source": "https://github.com/PHPCompatibility/PHPCompatibilityWP"
},
"time": "2021-12-30T16:37:40+00:00"
},
{
"name": "squizlabs/php_codesniffer",
"version": "3.6.2",
"source": {
"type": "git",
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
"reference": "5e4e71592f69da17871dba6e80dd51bce74a351a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
"reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
"shasum": ""
},
"require": {
"ext-simplexml": "*",
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
"php": ">=5.4.0"
},
"require-dev": {
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
},
"bin": [
"bin/phpcs",
"bin/phpcbf"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.x-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Greg Sherwood",
"role": "lead"
}
],
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
"homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
"keywords": [
"phpcs",
"standards"
],
"support": {
"issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
},
"time": "2021-12-12T21:44:58+00:00"
},
{
"name": "wp-coding-standards/wpcs",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
"reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c",
"reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c",
"shasum": ""
},
"require": {
"php": ">=5.3",
"squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2"
},
"require-dev": {
"phpcompatibility/php-compatibility": "^9.0"
},
"suggest": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically."
},
"type": "phpcodesniffer-standard",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Contributors",
"homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors"
}
],
"description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
"keywords": [
"phpcs",
"standards",
"wordpress"
],
"support": {
"issues": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues",
"source": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards",
"wiki": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki"
},
"time": "2018-12-18T09:43:51+00:00"
}
],
"aliases": [],
"minimum-stability": "dev",
"stability-flags": [],
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": "^5.3 || ^7 || ^8"
},
"platform-dev": {
"php": "^5.6 || ^7"
},
"plugin-api-version": "2.2.0"
}
-43
View File
@@ -1,43 +0,0 @@
<?php
/**
* Genesis Simple Sidebars constants.
*
* @package genesis-simple-sidebars
*/
/**
* Load the plugin file.
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
define( 'GENESIS_SIMPLE_SIDEBARS_SETTINGS_FIELD', 'genesis_simple_sidebars_settings' );
define( 'GENESIS_SIMPLE_SIDEBARS_VERSION', '2.2.3' );
define( 'GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'GENESIS_SIMPLE_SIDEBARS_PLUGIN_URL', plugins_url( '', __FILE__ ) );
require_once plugin_dir_path( __FILE__ ) . 'includes/class-genesis-simple-sidebars.php';
/**
* Helper function to retrieve the static object without using globals.
*
* @since 2.1.0
*/
function genesis_simple_sidebars() {
static $object;
if ( null === $object ) {
$object = new Genesis_Simple_Sidebars();
}
return $object;
}
/**
* Initialize the object on `plugins_loaded`.
*/
add_action( 'plugins_loaded', array( Genesis_Simple_Sidebars(), 'init' ) );
+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;
}
@@ -1,386 +0,0 @@
<?php
/**
* Controls the creation, deletion, and editing of Simple Sidebar.
*
* @author StudioPress
* @package genesis-simple-sidebars
*/
/**
* 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 {
/**
* Settings field.
*
* @var string
*
* @since 2.1.0
*/
public $settings_field;
/**
* Constructor.
*/
public function __construct() {
$this->settings_field = Genesis_Simple_Sidebars()->settings_field;
// For backward compatibility.
define( 'SS_SETTINGS_FIELD', $this->settings_field );
}
/**
* 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 admin_menu() {
$page_id = 'simple-sidebars';
$menu_ops = array(
'submenu' => array(
'parent_slug' => 'genesis',
/*
* These strings intentionally avoid using the plugin text
* domain here because this method can be called before the
* `init` action (via `genesis_setup`). Using `__()` with the
* `genesis-simple-sidebars` domain at that point would cause
* WordPress 6.7+ to emit a "_load_textdomain_just_in_time
* was called incorrectly" notice. Other plugin strings remain
* fully translatable once the text domain is loaded on `init`.
*/
'page_title' => 'Genesis - Simple Sidebars',
'menu_title' => 'Simple Sidebars',
),
);
// Empty, as we'll be building the page manually.
$page_ops = array();
$this->create( $page_id, $menu_ops, $page_ops, $this->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() {
echo '<div class="wrap">';
// phpcs:ignore WordPress.Security.NonceVerification.NoNonceVerification
if ( isset( $_REQUEST['action'] ) && 'edit' === $_REQUEST['action'] ) {
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/views/admin-edit.php';
} else {
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/views/admin-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>', esc_url( 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 esc_attr( admin_url( 'admin.php?page=simple-sidebars&amp;action=edit&amp;id=' . esc_html( $id ) ) ); ?>"><?php esc_html_e( 'Edit', 'genesis-simple-sidebars' ); ?></a> | </span>
<span class="delete"><a class="delete-tag" href="<?php echo esc_attr( wp_nonce_url( admin_url( 'admin.php?page=simple-sidebars&amp;action=delete&amp;id=' . esc_html( $id ) ), 'simple-sidebars-action_delete-sidebar' ) ); ?>"><?php esc_html_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
*/
// phpcs:disable WordPress.Security.NonceVerification.NoNonceVerification
if ( isset( $_REQUEST['action'] ) && 'create' === $_REQUEST['action'] && isset( $_POST['new_sidebar'] ) ) {
$this->create_sidebar( array_map( 'sanitize_text_field', wp_unslash( $_POST['new_sidebar'] ) ) );
}
/**
* This section will handle the data if a sidebar is deleted
*/
// phpcs:disable WordPress.Security.NonceVerification.NoNonceVerification
if ( isset( $_REQUEST['action'] ) && 'delete' === $_REQUEST['action'] && isset( $_REQUEST['id'] ) ) {
$this->delete_sidebar( sanitize_text_field( wp_unslash( $_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'] ) && isset( $_POST['edit_sidebar'] ) ) {
$this->edit_sidebar( array_map( 'sanitize_text_field', wp_unslash( $_POST['edit_sidebar'] ) ) );
}
// phpcs:enable
}
/**
* 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>';
// phpcs:disable WordPress.Security.NonceVerification.NoNonceVerification
if ( isset( $_REQUEST['created'] ) && 'true' === $_REQUEST['created'] ) {
printf( wp_kses_post( $pattern ), esc_html__( 'New sidebar successfully created!', 'genesis-simple-sidebars' ) );
return;
}
if ( isset( $_REQUEST['edited'] ) && 'true' === $_REQUEST['edited'] ) {
printf( wp_kses_post( $pattern ), esc_html__( 'Sidebar successfully edited!', 'genesis-simple-sidebars' ) );
return;
}
if ( isset( $_REQUEST['deleted'] ) && 'true' === $_REQUEST['deleted'] ) {
printf( wp_kses_post( $pattern ), esc_html__( 'Sidebar successfully deleted.', 'genesis-simple-sidebars' ) );
return;
}
}
/**
* Create a sidebar.
*
* @param array $args Arguments.
*
* @since 1.0.0
*/
protected function create_sidebar( $args = array() ) {
if ( empty( $args['name'] ) ) {
wp_die( esc_html( $this->error( 1 ) ) );
exit;
}
// nonce verification.
check_admin_referer( 'simple-sidebars-action_create-sidebar' );
$db = (array) get_option( $this->settings_field );
// Change empty or numeric IDs to the name, lowercased and separated by dashes.
if ( empty( $args['id'] ) || is_numeric( $args['id'] ) ) {
$args['id'] = $args['name'];
}
// Strip all but alphanumeric, sanitize with dashes.
$id = preg_replace( '/[^a-zA-Z0-9 -]+/', '', sanitize_title_with_dashes( $args['id'] ) );
// Preface numeric IDs with 'sidebar-'.
$id = is_numeric( $id ) ? 'gss-sidebar-' . $id : $id;
// If empty after all the sanitizing ...
if ( ! $id || is_registered_sidebar( $id ) ) {
$n = count( $db ) + 1;
do {
$n = $n++;
$id = 'gss-sidebar-' . $n;
} while ( is_registered_sidebar( $id ) );
}
$new = array(
$id => array(
'name' => esc_html( $args['name'] ),
'description' => esc_html( $args['description'] ),
),
);
if ( array_key_exists( $id, $db ) ) {
wp_die( esc_html( $this->error( 2 ) ) );
exit;
}
$_sidebars = wp_parse_args( $new, $db );
update_option( $this->settings_field, $_sidebars );
wp_safe_redirect( admin_url( 'admin.php?page=simple-sidebars&created=true' ) );
exit;
}
/**
* Edit a sidebar.
*
* @param array $args Arguments.
* @since 1.0.0
*/
protected function edit_sidebar( $args = array() ) {
if ( empty( $args['name'] ) || empty( $args['id'] ) ) {
wp_die( esc_html( $this->error( 3 ) ) );
exit;
}
// nonce verification.
check_admin_referer( 'simple-sidebars-action_edit-sidebar' );
$db = (array) get_option( $this->settings_field );
$new = array(
$args['id'] => array(
'name' => esc_html( $args['name'] ),
'description' => esc_html( $args['description'] ),
),
);
if ( ! array_key_exists( $args['id'], $db ) ) {
wp_die( esc_html( $this->error( 3 ) ) );
exit;
}
$_sidebars = wp_parse_args( $new, $db );
update_option( $this->settings_field, $_sidebars );
wp_safe_redirect( admin_url( 'admin.php?page=simple-sidebars&edited=true' ) );
exit;
}
/**
* Delete a sidebar.
*
* @param string $id Id.
* @since 1.0.0
*/
protected function delete_sidebar( $id = '' ) {
if ( empty( $id ) ) {
wp_die( esc_html( $this->error( 4 ) ) );
exit;
}
// nonce verification.
check_admin_referer( 'simple-sidebars-action_delete-sidebar' );
$_sidebars = (array) get_option( $this->settings_field );
if ( ! isset( $_sidebars[ $id ] ) ) {
wp_die( esc_html( $this->error( 4 ) ) );
exit;
}
unset( $_sidebars[ $id ] );
update_option( $this->settings_field, $_sidebars );
wp_safe_redirect( admin_url( 'admin.php?page=simple-sidebars&deleted=true' ) );
exit;
}
/**
* Returns an error message by ID.
*
* @param bool $error Error 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 for this sidebar', 'genesis-simple-sidebars' );
case 2:
return __( 'Oops! That sidebar ID already exists', 'genesis-simple-sidebars' );
case 3:
return __( 'Oops! You are trying to edit a sidebar that does not exist, or is not editable', 'genesis-simple-sidebars' );
case 4:
return __( 'Oops! You are trying to delete a sidebar that does not exist, or cannot be deleted', 'genesis-simple-sidebars' );
default:
return __( 'Oops! Something went wrong. Try again.', 'genesis-simple-sidebars' );
}
}
}
@@ -1,235 +0,0 @@
<?php
/**
* Genesis Simple Sidebars Core.
*
* @package genesis-simple-sidebars
*/
/**
* Controls the core functions of registration and output of Sidebars
*
* @since 2.1.0
*/
class Genesis_Simple_Sidebars_Core {
/**
* The created sidebars.
*
* @var array
*/
private $sidebars;
/**
* Public taxonomies.
*
* @var array
*/
private $public_taxonomies;
/**
* Initialize the class.
*/
public function init() {
add_action( 'after_setup_theme', array( $this, 'backward_compatibility' ) );
add_action( 'widgets_init', array( $this, 'register_sidebars' ) );
add_filter( 'sidebars_widgets', array( $this, 'sidebars_widgets_filter' ) );
}
/**
* For backward compatibility, we need to use old functions to hook in sidebar output.
*
* @since 2.1.0
*/
public function backward_compatibility() {
remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );
add_action( 'genesis_sidebar', 'ss_do_sidebar' );
remove_action( 'genesis_sidebar_alt', 'genesis_do_sidebar_alt' );
add_action( 'genesis_sidebar_alt', 'ss_do_sidebar_alt' );
}
/**
* Take created sidebars and register them with WordPress.
*
* @since 2.1.0
*/
public function register_sidebars() {
$sidebars = $this->get_sidebars();
if ( ! $sidebars ) {
return;
}
// Cycle through created sidebars, register them as widget areas.
foreach ( (array) $sidebars as $id => $info ) {
if ( ! isset( $info['name'] ) || ! isset( $info['description'] ) ) {
continue;
}
genesis_register_sidebar(
array(
'name' => esc_html( $info['name'] ),
'id' => $id,
'description' => esc_html( $info['description'] ),
'editable' => 1,
)
);
}
}
/**
* Filter the widgets in each widget area.
*
* @param array $widgets Widgets.
*
* @since 2.1.0
*/
public function sidebars_widgets_filter( $widgets ) {
$sidebars = array();
if ( is_singular() || is_home() && isset( get_queried_object()->ID ) ) {
$post_id = get_queried_object()->ID;
$sidebars = array(
'sidebar' => genesis_get_custom_field( '_ss_sidebar', $post_id ),
'sidebar-alt' => genesis_get_custom_field( '_ss_sidebar_alt', $post_id ),
'header-right' => genesis_get_custom_field( '_ss_header', $post_id ),
);
}
if ( is_tax() || is_category() || is_tag() ) {
$sidebars = array(
'sidebar' => get_term_meta( get_queried_object()->term_id, '_ss_sidebar', true ),
'sidebar-alt' => get_term_meta( get_queried_object()->term_id, '_ss_sidebar_alt', true ),
'header-right' => get_term_meta( get_queried_object()->term_id, '_ss_header', true ),
);
}
$widgets = $this->swap_widgets( $widgets, $sidebars );
return $widgets;
}
/**
* Take the $widgets array and swap the contents of each widget area with a custom widget area, if specified.
*
* @param array $widgets Widgets.
* @param array $sidebars Sidebars.
*
* @since 2.1.0
*/
public function swap_widgets( $widgets, $sidebars ) {
if ( is_admin() ) {
return $widgets;
}
foreach ( (array) $sidebars as $old_sidebar => $new_sidebar ) {
if ( ! is_registered_sidebar( $old_sidebar ) ) {
continue;
}
if ( $new_sidebar && ! empty( $widgets[ $new_sidebar ] ) ) {
$widgets[ $old_sidebar ] = $widgets[ $new_sidebar ];
}
}
return $widgets;
}
/**
* Get all custom registered sidebars.
*
* @param bool $cache Indicates if should get from cache.
*
* @since 2.1.0
*/
public function get_sidebars( $cache = true ) {
if ( $cache && ! is_null( $this->sidebars ) ) {
return $this->sidebars;
}
$sidebars = stripslashes_deep( get_option( Genesis_Simple_Sidebars()->settings_field ) );
/**
* Sidebars without a name are invalid. Filtering these prevents
* corrupted sidebar data from throwing errors, as seen in:
* https://wordpress.org/support/topic/php-8-2-error-6/#post-17472734
*/
$this->sidebars = array_filter(
(array) $sidebars,
function( $sidebar ) {
return isset( $sidebar['name'] );
}
);
return $this->sidebars;
}
/**
* Return taxonomy ids.
*
* Helper function to return the array keys from a taxonomy query.
*
* @since 2.1.0
*/
public function get_public_taxonomies() {
if ( is_null( $this->public_taxonomies ) ) {
$this->public_taxonomies = get_taxonomies(
array(
'show_ui' => true,
'public' => true,
)
);
}
$this->public_taxonomies = apply_filters( 'genesis_simple_sidebars_taxonomies', array_keys( $this->public_taxonomies ) );
return $this->public_taxonomies;
}
/**
* Determines if this site has disabled 3 column layouts or not.
*
* @since 2.1.0
*/
public function has_3_column_layout() {
$layouts = genesis_get_layouts();
$three_column_layouts = array(
'content-sidebar-sidebar',
'sidebar-content-sidebar',
'sidebar-sidebar-content',
);
foreach ( $three_column_layouts as $layout ) {
if ( array_key_exists( $layout, $layouts ) ) {
return true;
}
}
return false;
}
}
@@ -1,79 +0,0 @@
<?php
/**
* Genesis Simple Sidebars Entry file.
*
* @package genesis-simple-sidebars
*/
/**
* Genesis Simple Sidebars Entry class.
*/
class Genesis_Simple_Sidebars_Entry {
/**
* Init function.
*/
public function init() {
add_action( 'admin_menu', array( $this, 'add_metaboxes' ) );
add_action( 'save_post', array( $this, 'metabox_save' ), 1, 2 );
}
/**
* Cycle through supported post types and add metaboxes.
*
* @since 2.1.0
*/
public function add_metaboxes() {
foreach ( (array) get_post_types( array( 'public' => true ) ) as $type ) {
if ( post_type_supports( $type, 'genesis-simple-sidebars' ) || 'post' === $type || 'page' === $type ) {
add_meta_box( 'ss_inpost_metabox', __( 'Sidebar Selection', 'genesis-simple-sidebars' ), array( $this, 'metabox_content' ), $type, 'side', 'low' );
}
}
}
/**
* Include the metabox content.
*
* @since 2.1.0
*/
public function metabox_content() {
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/views/entry-metabox-content.php';
}
/**
* Save the metabox fields when the entry is saved.
*
* @param string $post_id Post Id.
* @param array $post Post.
* @since 2.1.0
*/
public function metabox_save( $post_id, $post ) {
// phpcs:ignore WordPress.Security.NonceVerification.NoNonceVerification
$genesis_simple_sidebars = isset( $_POST['genesis_simple_sidebars'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST['genesis_simple_sidebars'] ) ) : '';
if ( empty( $genesis_simple_sidebars ) ) {
return;
}
$data = wp_parse_args(
$genesis_simple_sidebars,
array(
'_ss_header' => '',
'_ss_sidebar' => '',
'_ss_sidebar_alt' => '',
)
);
genesis_save_custom_fields( $data, 'genesis-simple-sidebars-save-entry', 'genesis-simple-sidebars-save-entry-nonce', $post );
}
}
@@ -1,50 +0,0 @@
<?php
/**
* Genesis Simple Sidebars Term.
*
* @package genesis-simple-sidebars
*/
/**
* Class Genesis Simple Sidebars Term.
*/
class Genesis_Simple_Sidebars_Term {
/**
* Init function.
*/
public function init() {
add_action( 'init', array( $this, 'add_term_fields' ), 12 );
}
/**
* Adds term fields.
*/
public function add_term_fields() {
$taxonomies = Genesis_Simple_Sidebars()->core->get_public_taxonomies();
if ( ! empty( $taxonomies ) && is_admin() && is_array( $taxonomies ) ) {
foreach ( $taxonomies as $tax ) {
add_action( "{$tax}_edit_form", array( $this, 'term_sidebar_form' ), 9, 2 );
}
}
}
/**
* Import the sidebar form.
*
* @param string $tag Tag.
* @param string $taxonomy Taxonomy.
*/
public function term_sidebar_form( $tag, $taxonomy ) {
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/views/term-edit-sidebar-form.php';
}
}
-191
View File
@@ -1,191 +0,0 @@
<?php
/**
* Genesis Simple Sidebars main class.
*
* @package genesis-simple-sidebars
*/
/**
* Genesis Simple Sidebars class.
*/
class Genesis_Simple_Sidebars {
/**
* Minimum WordPress version.
*
* @var string
*/
public $min_wp_version = '4.7.2';
/**
* Minimum Genesis version.
*
* @var string
*/
public $min_genesis_version = '2.4.2';
/**
* The plugin textdomain, for translations.
*
* @var string
*/
public $plugin_textdomain = 'genesis-simple-sidebars';
/**
* The main settings field for this plugin.
*
* @var string
*/
public $settings_field = 'ss-settings';
/**
* Core functions of sidebar registration and output.
*
* @var Genesis_Simple_Sidebars_Core
*/
public $core;
/**
* Admin menu and settings page.
*
* @var Genesis_Simple_Sidebars_Admin
*/
public $admin;
/**
* Entry settings and metadata.
*
* @var Genesis_Simple_Sidebars_Entry
*/
public $entry;
/**
* Term.
*
* @var Genesis_Simple_Sidebars_Term
*/
public $term;
/**
* Constructor.
*
* @since 2.1.0
*/
public function __construct() {
// For backward compatibility.
define( 'SS_PLUGIN_DIR', GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR );
}
/**
* Initialize.
*
* @since 2.1.0
*/
public function init() {
add_action( 'init', array( $this, 'load_plugin_textdomain' ) );
add_action( 'admin_notices', array( $this, 'requirements_notice' ) );
$this->includes();
$this->instantiate();
}
/**
* Show admin notice if minimum requirements aren't met.
*
* @since 2.1.0
*/
public function requirements_notice() {
if ( ! defined( 'PARENT_THEME_VERSION' ) || ! version_compare( PARENT_THEME_VERSION, $this->min_genesis_version, '>=' ) ) {
$action = defined( 'PARENT_THEME_VERSION' ) ? __( 'upgrade to', 'genesis-simple-sidebars' ) : __( 'install and activate', 'genesis-simple-sidebars' );
// translators: %1$s is WordPress minimum version, %2$s is Genesis minimum version, %3$s is action and %4$s is link.
$message = sprintf( __( 'Genesis Simple Sidebars requires WordPress %1$s and Genesis %2$s, or greater. Please %3$s the latest version of <a href="%4$s" target="_blank">Genesis</a> to use this plugin.', 'genesis-simple-sidebars' ), $this->min_wp_version, $this->min_genesis_version, $action, 'http://my.studiopress.com/?download_id=91046d629e74d525b3f2978e404e7ffa' );
$allowed_html = array(
'a' => array(
'href' => array(),
'target' => array(),
),
);
echo '<div class="notice notice-warning"><p>' . wp_kses( $message, $allowed_html ) . '</p></div>';
}
}
/**
* Load the plugin textdomain, for translation.
*
* @since 2.1.0
*/
public function load_plugin_textdomain() {
load_plugin_textdomain( $this->plugin_textdomain, false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
/**
* All general includes.
*
* @since 2.1.0
*/
public function includes() {
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/functions.php';
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/deprecated.php';
}
/**
* Include the class file, instantiate the classes, create objects.
*
* @since 2.1.0
*/
public function instantiate() {
add_action( 'genesis_setup', array( $this, 'genesis_dependencies' ) );
}
/**
* Load and instantiate any Genesis dependencies.
*
* @since 2.1.0
*/
public function genesis_dependencies() {
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/class-genesis-simple-sidebars-core.php';
$this->core = new Genesis_Simple_Sidebars_Core();
$this->core->init();
// Anything beyond this point should only be loaded if in the admin.
if ( ! is_admin() ) {
return;
}
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/class-genesis-simple-sidebars-entry.php';
$this->entry = new Genesis_Simple_Sidebars_Entry();
$this->entry->init();
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/class-genesis-simple-sidebars-term.php';
$this->term = new Genesis_Simple_Sidebars_Term();
$this->term->init();
require_once GENESIS_SIMPLE_SIDEBARS_PLUGIN_DIR . '/includes/class-genesis-simple-sidebars-admin.php';
$this->admin = new Genesis_Simple_Sidebars_Admin();
$this->admin->admin_menu();
// For backward compatibility.
global $_genesis_simple_sidebars;
$_genesis_simple_sidebars = $this->admin;
}
}
-160
View File
@@ -1,160 +0,0 @@
<?php
/**
* Deprecated functions file.
*
* @package genesis-simple-sidebars
*/
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_activation_check() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 1.0.0
* @deprecated 2.1.0
*/
function ss_deactivate() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_genesis_init() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_register_sidebars() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_sidebars_init() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @param string $sidebar_key Sidebar Key.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_do_one_sidebar( $sidebar_key = '' ) {
_deprecated_function( __FUNCTION__, '2.1.0', esc_html__( 'dynamic_sidebar() with sidebars_widget filter', 'genesis-simple-sidebars' ) );
if ( '_ss_sidebar' === $sidebar_key ) {
genesis_do_sidebar();
return true;
}
if ( '_ss_sidebar_alt' === $sidebar_key ) {
genesis_do_sidebar_alt();
return true;
}
}
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_get_taxonomies() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 0.9.2
* @deprecated 2.1.0
*/
function ss_has_3_column_layouts() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 1.0.0
* @deprecated 2.1.0
*/
function simplesidebars_settings_menu() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_add_inpost_metabox() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_inpost_metabox() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_inpost_metabox_save() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_term_edit_init() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
/**
* Deprecated.
*
* @since 0.9.0
* @deprecated 2.1.0
*/
function ss_term_sidebar() {
_deprecated_function( __FUNCTION__, '2.1.0' );
}
-24
View File
@@ -1,24 +0,0 @@
<?php
/**
* Functions file.
*
* @package genesis-simple-sidebars
*/
/**
* Dummy function for backward compatibility. Outputs the primary sidebar.
*
* @since 0.9.0
*/
function ss_do_sidebar() {
genesis_do_sidebar();
}
/**
* Dummy function for backward compatibility. Outputs the secondary sidebar.
*
* @since 0.9.0
*/
function ss_do_sidebar_alt() {
genesis_do_sidebar_alt();
}
+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
}
-49
View File
@@ -1,49 +0,0 @@
<?php
/**
* Admin edit.
*
* @package genesis-simple-sidebars
*/
$sidebars = Genesis_Simple_Sidebars()->core->get_sidebars();
// phpcs:disable WordPress.Security.NonceVerification.NoNonceVerification
if ( isset( $_REQUEST['id'] ) && array_key_exists( sanitize_text_field( wp_unslash( $_REQUEST['id'] ) ), (array) $sidebars ) ) {
$sidebar = stripslashes_deep( $sidebars[ sanitize_text_field( wp_unslash( $_REQUEST['id'] ) ) ] );
} else {
wp_die( esc_html__( 'Nice try, partner. But that sidebar doesn\'t exist. Click back and try again.', 'genesis-simple-sidebars' ) );
}
// phpcs:enable
?>
<h1><?php esc_html_e( 'Edit Sidebar', 'genesis-simple-sidebars' ); ?></h1>
<form method="post" action="<?php echo esc_url( 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 esc_html_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 esc_html_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 esc_html_e( 'ID', 'genesis-simple-sidebars' ); ?></label></th>
<td>
<?php // phpcs:disable WordPress.Security.NonceVerification.NoNonceVerification ?>
<input type="text" value="<?php echo esc_html( sanitize_text_field( wp_unslash( $_REQUEST['id'] ) ) ); ?>" size="40" readonly />
<input name="edit_sidebar[id]" id="edit_sidebar[id]" type="hidden" value="<?php echo esc_attr( sanitize_text_field( wp_unslash( $_REQUEST['id'] ) ) ); ?>" size="40" />
<p class="description"><?php esc_html_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 esc_html_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 esc_attr_e( 'Update', 'genesis-simple-sidebars' ); ?>" /></p>
</form>
-78
View File
@@ -1,78 +0,0 @@
<?php
/**
* Main Admin View.
*
* @package genesis-simple-sidebar
*/
?>
<h1><?php esc_html_e( 'Genesis - Simple Sidebars', 'genesis-simple-sidebars' ); ?></h1>
<div id="col-container">
<div id="col-right">
<div class="col-wrap">
<h3><?php esc_html_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 esc_html_e( 'Name', 'genesis-simple-sidebars' ); ?></th>
<th scope="col" class="manage-column column-slug"><?php esc_html_e( 'ID', 'genesis-simple-sidebars' ); ?></th>
<th scope="col" id="description" class="manage-column column-description"><?php esc_html_e( 'Description', 'genesis-simple-sidebars' ); ?></th>
</tr>
</thead>
<tfoot>
<tr>
<th scope="col" class="manage-column column-name"><?php esc_html_e( 'Name', 'genesis-simple-sidebars' ); ?></th>
<th scope="col" class="manage-column column-slug"><?php esc_html_e( 'ID', 'genesis-simple-sidebars' ); ?></th>
<th scope="col" class="manage-column column-description"><?php esc_html_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 esc_html_e( 'Add New Sidebar', 'genesis-simple-sidebars' ); ?></h3>
<form method="post" action="<?php echo esc_attr( esc_url( 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 esc_html_e( 'Name', 'genesis-simple-sidebars' ); ?></label>
<input name="new_sidebar[name]" id="sidebar-name" type="text" value="" size="40" aria-required="true" />
<p><?php esc_html_e( 'A recognizable name for your new sidebar widget area', 'genesis-simple-sidebars' ); ?></p>
</div>
<div class="form-field">
<label for="sidebar-id"><?php esc_html_e( 'ID', 'genesis-simple-sidebars' ); ?></label>
<input name="new_sidebar[id]" id="sidebar-id" type="text" value="" size="40" />
<p><?php esc_html_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 esc_html_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 esc_attr_e( 'Add New Sidebar', 'genesis-simple-sidebars' ); ?>" /></p>
</form></div>
</div>
</div><!-- /col-left -->
</div><!-- /col-container -->
+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" 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)', '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>
-57
View File
@@ -1,57 +0,0 @@
<?php
/**
* Genesis view for metabox content.
*
* @package genesis-simple-sidebars
*/
$sidebars = Genesis_Simple_Sidebars()->core->get_sidebars();
global $wp_registered_sidebars;
wp_nonce_field( 'genesis-simple-sidebars-save-entry', 'genesis-simple-sidebars-save-entry-nonce' );
if ( is_registered_sidebar( 'header-right' ) ) : ?>
<p>
<label class="howto" for="genesis_simple_sidebars[_ss_header]"><span><?php echo esc_attr( $wp_registered_sidebars['header-right']['name'] ); ?><span></label>
<select name="genesis_simple_sidebars[_ss_header]" id="genesis_simple_sidebars[_ss_header]">
<option value=""><?php esc_html_e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $sidebars as $sidebar_id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $sidebar_id ), selected( $sidebar_id, genesis_get_custom_field( '_ss_header' ), false ), esc_html( $info['name'] ) );
}
?>
</select>
</p>
<?php
endif;
if ( is_registered_sidebar( 'sidebar' ) ) :
?>
<p>
<label class="howto" for="genesis_simple_sidebars[_ss_sidebar]"><span><?php echo esc_attr( $wp_registered_sidebars['sidebar']['name'] ); ?><span></label>
<select name="genesis_simple_sidebars[_ss_sidebar]" id="genesis_simple_sidebars[_ss_sidebar]">
<option value=""><?php esc_html_e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $sidebars as $sidebar_id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $sidebar_id ), selected( $sidebar_id, genesis_get_custom_field( '_ss_sidebar' ), false ), esc_html( $info['name'] ) );
}
?>
</select>
</p>
<?php
endif;
if ( is_registered_sidebar( 'sidebar-alt' ) ) :
?>
<p>
<label class="howto" for="genesis_simple_sidebars[_ss_sidebar_alt]"><span><?php echo esc_attr( $wp_registered_sidebars['sidebar-alt']['name'] ); ?><span></label>
<select name="genesis_simple_sidebars[_ss_sidebar_alt]" id="genesis_simple_sidebars[_ss_sidebar_alt]">
<option value=""><?php esc_html_e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $sidebars as $sidebar_id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $sidebar_id ), selected( $sidebar_id, genesis_get_custom_field( '_ss_sidebar_alt' ), false ), esc_html( $info['name'] ) );
}
?>
</select>
</p>
<?php
endif;
+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 -->
-59
View File
@@ -1,59 +0,0 @@
<?php
/**
* Term Edit Form View.
*
* @package genesis-simple-sidebars
*/
$sidebars = Genesis_Simple_Sidebars()->core->get_sidebars();
?>
<h3><?php esc_html_e( 'Sidebar Options', 'genesis-simple-sidebars' ); ?></h3>
<table class="form-table">
<?php if ( is_registered_sidebar( 'header-right' ) ) : ?>
<tr class="form-field">
<th scope="row" valign="top"><label for="genesis-meta[_ss_header]"><?php esc_html_e( 'Header Right', 'genesis-simple-sidebars' ); ?></label></th>
<td>
<select name="genesis-meta[_ss_header]" id="genesis-meta[_ss_header]" style="padding-right: 10px;">
<option value=""><?php esc_html_e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $sidebars as $sidebar_id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $sidebar_id ), selected( $sidebar_id, get_term_meta( $tag->term_id, '_ss_header', true ), false ), esc_html( $info['name'] ) );
}
?>
</select>
</td>
</tr>
<?php endif; ?>
<tr class="form-field">
<th scope="row" valign="top"><label for="genesis-meta[_ss_sidebar]"><?php esc_html_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 esc_html_e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $sidebars as $sidebar_id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $sidebar_id ), selected( $sidebar_id, get_term_meta( $tag->term_id, '_ss_sidebar', true ), false ), esc_html( $info['name'] ) );
}
?>
</select>
</td>
</tr>
<?php if ( Genesis_Simple_Sidebars()->core->has_3_column_layout() ) : ?>
<tr class="form-field">
<th scope="row" valign="top"><label for="genesis-meta[_ss_sidebar_alt]"><?php esc_html_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 esc_html_e( 'Default', 'genesis-simple-sidebars' ); ?></option>
<?php
foreach ( (array) $sidebars as $sidebar_id => $info ) {
printf( '<option value="%s" %s>%s</option>', esc_html( $sidebar_id ), selected( $sidebar_id, get_term_meta( $tag->term_id, '_ss_sidebar_alt', true ), false ), esc_html( $info['name'] ) );
}
?>
</select>
</td>
</tr>
<?php endif; ?>
</table>
+48 -72
View File
@@ -1,14 +1,14 @@
# Copyright (C) 2024 StudioPress # Copyright (C) 2015 Nathan Rice
# This file is distributed under the GNU General Public License v2.0 (or later). # This file is distributed under the GNU General Public License v2.0 (or later).
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Genesis Simple Sidebars 2.2.3\n" "Project-Id-Version: Genesis Simple Sidebars 2.0.2\n"
"Report-Msgid-Bugs-To: StudioPress <translations@studiopress.com>\n" "Report-Msgid-Bugs-To: StudioPress <translations@studiopress.com>\n"
"POT-Creation-Date: 2024-03-06 09:04:30+00:00\n" "POT-Creation-Date: 2015-09-29 20:53:32+00:00\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2024-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
"Last-Translator: StudioPress <translations@studiopress.com>\n" "Last-Translator: StudioPress <translations@studiopress.com>\n"
"Language-Team: English <translations@studiopress.com>\n" "Language-Team: English <translations@studiopress.com>\n"
"X-Generator: grunt-wp-i18n 0.4.4\n" "X-Generator: grunt-wp-i18n 0.4.4\n"
@@ -24,156 +24,132 @@ msgstr ""
"X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPath-0: .\n"
"X-Textdomain-Support: yes\n" "X-Textdomain-Support: yes\n"
#: includes/class-genesis-simple-sidebars-admin.php:54 #: includes/admin.php:32 includes/views/main.php:2
#: includes/views/admin-main.php:10
msgid "Genesis - Simple Sidebars" msgid "Genesis - Simple Sidebars"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:55 #: includes/admin.php:33
msgid "Simple Sidebars" msgid "Simple Sidebars"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:133 #: includes/admin.php:107
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:134 #: includes/admin.php:108
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:203 #: includes/admin.php:173
msgid "New sidebar successfully created!" msgid "New sidebar successfully created!"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:208 #: includes/admin.php:178
msgid "Sidebar successfully edited!" msgid "Sidebar successfully edited!"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:213 #: includes/admin.php:183
msgid "Sidebar successfully deleted." msgid "Sidebar successfully deleted."
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:362 #: includes/admin.php:319
msgid "Oops! Please choose a valid Name for this sidebar" msgid "Oops! Please choose a valid Name and ID for this sidebar"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:364 #: includes/admin.php:322
msgid "Oops! That sidebar ID already exists" msgid "Oops! That sidebar ID already exists"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:366 #: includes/admin.php:325
msgid "" msgid ""
"Oops! You are trying to edit a sidebar that does not exist, or is not " "Oops! You are trying to edit a sidebar that does not exist, or is not "
"editable" "editable"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:368 #: includes/admin.php:328
msgid "" msgid ""
"Oops! You are trying to delete a sidebar that does not exist, or cannot be " "Oops! You are trying to delete a sidebar that does not exist, or cannot be "
"deleted" "deleted"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-admin.php:370 #: includes/admin.php:331
msgid "Oops! Something went wrong. Try again." msgid "Oops! Something went wrong. Try again."
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars-entry.php:33 #: includes/inpost.php:12
msgid "Sidebar Selection" msgid "Sidebar Selection"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars.php:99 #: includes/inpost.php:35 includes/inpost.php:50 includes/term.php:37
msgid "upgrade to" #: includes/term.php:54
msgid "Default"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars.php:99 #: includes/term.php:30
msgid "install and activate" msgid "Sidebar Options"
msgstr "" msgstr ""
#: includes/class-genesis-simple-sidebars.php:102 #: includes/term.php:34
#. translators: %1$s is WordPress minimum version, %2$s is Genesis minimum msgid "Primary Sidebar"
#. version, %3$s is action and %4$s is link.
msgid ""
"Genesis Simple Sidebars requires WordPress %1$s and Genesis %2$s, or "
"greater. Please %3$s the latest version of <a href=\"%4$s\" "
"target=\"_blank\">Genesis</a> to use this plugin."
msgstr "" msgstr ""
#: includes/deprecated.php:68 #: includes/term.php:51
msgid "dynamic_sidebar() with sidebars_widget filter" msgid "Secondary Sidebar"
msgstr "" msgstr ""
#: includes/views/admin-edit.php:14 #: includes/views/edit.php:5
msgid "Nice try, partner. But that sidebar doesn't exist. Click back and try again." msgid "Nice try, partner. But that sidebar doesn't exist. Click back and try again."
msgstr "" msgstr ""
#: includes/views/admin-edit.php:18 #: includes/views/edit.php:9
msgid "Edit Sidebar" msgid "Edit Sidebar"
msgstr "" msgstr ""
#: includes/views/admin-edit.php:26 includes/views/admin-main.php:21 #: includes/views/edit.php:17 includes/views/main.php:13
#: includes/views/admin-main.php:29 includes/views/admin-main.php:56 #: includes/views/main.php:21 includes/views/main.php:48
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: includes/views/admin-edit.php:28 includes/views/admin-main.php:58 #: includes/views/edit.php:19 includes/views/main.php:50
msgid "A recognizable name for your new sidebar widget area" msgid "A recognizable name for your new sidebar widget area"
msgstr "" msgstr ""
#: includes/views/admin-edit.php:32 includes/views/admin-main.php:22 #: includes/views/edit.php:23 includes/views/main.php:14
#: includes/views/admin-main.php:30 includes/views/admin-main.php:62 #: includes/views/main.php:22 includes/views/main.php:54
msgid "ID" msgid "ID"
msgstr "" msgstr ""
#: includes/views/admin-edit.php:37 #: includes/views/edit.php:27
msgid "" msgid ""
"The unique ID is used to register the sidebar widget area (cannot be " "The unique ID is used to register the sidebar widget area (cannot be "
"changed)" "changed)"
msgstr "" msgstr ""
#: includes/views/admin-edit.php:41 includes/views/admin-main.php:23 #: includes/views/edit.php:31 includes/views/main.php:15
#: includes/views/admin-main.php:31 includes/views/admin-main.php:68 #: includes/views/main.php:23 includes/views/main.php:60
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: includes/views/admin-edit.php:47 #: includes/views/edit.php:37
msgid "Update" msgid "Update"
msgstr "" msgstr ""
#: includes/views/admin-main.php:17 #: includes/views/main.php:9
msgid "Current Sidebars" msgid "Current Sidebars"
msgstr "" msgstr ""
#: includes/views/admin-main.php:50 includes/views/admin-main.php:72 #: includes/views/main.php:42 includes/views/main.php:64
msgid "Add New Sidebar" msgid "Add New Sidebar"
msgstr "" msgstr ""
#: includes/views/admin-main.php:64 #: includes/views/main.php:56
msgid "The unique ID is used to register the sidebar widget area" msgid "The unique ID is used to register the sidebar widget area"
msgstr "" msgstr ""
#: includes/views/entry-metabox-content.php:16 #: plugin.php:48
#: includes/views/entry-metabox-content.php:32 msgid ""
#: includes/views/entry-metabox-content.php:48 "Sorry, you cannot run Simple Sidebars without WordPress %s and <a "
#: includes/views/term-edit-sidebar-form.php:19 "href=\"%s\">Genesis %s</a>, or greater."
#: includes/views/term-edit-sidebar-form.php:34
#: includes/views/term-edit-sidebar-form.php:49
msgid "Default"
msgstr ""
#: includes/views/term-edit-sidebar-form.php:11
msgid "Sidebar Options"
msgstr ""
#: includes/views/term-edit-sidebar-form.php:16
msgid "Header Right"
msgstr ""
#: includes/views/term-edit-sidebar-form.php:31
msgid "Primary Sidebar"
msgstr ""
#: includes/views/term-edit-sidebar-form.php:46
msgid "Secondary Sidebar"
msgstr "" msgstr ""
#. Plugin Name of the plugin/theme #. Plugin Name of the plugin/theme
@@ -181,7 +157,7 @@ msgid "Genesis Simple Sidebars"
msgstr "" msgstr ""
#. Plugin URI of the plugin/theme #. Plugin URI of the plugin/theme
msgid "https://github.com/studiopress/genesis-simple-sidebars" msgid "http://www.studiopress.com/plugins/simple-sidebars"
msgstr "" msgstr ""
#. Description of the plugin/theme #. Description of the plugin/theme
@@ -191,9 +167,9 @@ msgid ""
msgstr "" msgstr ""
#. Author of the plugin/theme #. Author of the plugin/theme
msgid "StudioPress" msgid "Nathan Rice"
msgstr "" msgstr ""
#. Author URI of the plugin/theme #. Author URI of the plugin/theme
msgid "https://www.studiopress.com/" msgid "http://www.nathanrice.net/"
msgstr "" msgstr ""
+17 -17
View File
@@ -5,23 +5,23 @@
"type": "git", "type": "git",
"url": "https://github.com/copyblogger/genesis-simple-sidebars" "url": "https://github.com/copyblogger/genesis-simple-sidebars"
}, },
"dependencies": {},
"devDependencies": { "devDependencies": {
"grunt": "^0.4.5", "grunt": "*",
"grunt-autoprefixer": "^0.8.1", "grunt-autoprefixer": "*",
"grunt-checktextdomain": "^0.1.1", "grunt-checktextdomain": "*",
"grunt-cli": "^1.4.3", "grunt-contrib-cssmin": "*",
"grunt-contrib-cssmin": "^0.10.0", "grunt-contrib-imagemin": "*",
"grunt-contrib-imagemin": "^0.7.1", "grunt-contrib-jshint": "*",
"grunt-contrib-jshint": "^0.10.0", "grunt-contrib-uglify": "*",
"grunt-contrib-uglify": "^0.5.0", "grunt-contrib-watch": "*",
"grunt-contrib-watch": "^0.6.1", "grunt-csscomb": "*",
"grunt-csscomb": "~2.0.1", "grunt-jsbeautifier": "*",
"grunt-jsbeautifier": "^0.2.7", "grunt-jsvalidate": "*",
"grunt-jsvalidate": "^0.2.2", "grunt-phplint": "*",
"grunt-phplint": "0.0.5", "grunt-styledocco": "*",
"grunt-styledocco": "^0.1.4", "grunt-wp-i18n": "*",
"grunt-wp-i18n": "^1.0.3", "load-grunt-tasks": "*"
"load-grunt-tasks": "^0.6.0"
}, },
"plugin": { "plugin": {
"name": "Genesis Simple Sidebars", "name": "Genesis Simple Sidebars",
@@ -29,7 +29,7 @@
"description": "Genesis Simple Sidebars allows you to easily create and use new sidebar widget areas.", "description": "Genesis Simple Sidebars allows you to easily create and use new sidebar widget areas.",
"author": "StudioPress", "author": "StudioPress",
"authoruri": "http://www.studiopress.com/", "authoruri": "http://www.studiopress.com/",
"version": "2.2.3", "version": "2.0.2",
"license": "GPL-2.0+", "license": "GPL-2.0+",
"licenseuri": "http://www.gnu.org/licenses/gpl-2.0.html", "licenseuri": "http://www.gnu.org/licenses/gpl-2.0.html",
"textdomain": "genesis-simple-sidebars" "textdomain": "genesis-simple-sidebars"
+216 -21
View File
@@ -1,26 +1,221 @@
<?php <?php
/** /*
* Plugin Name: Genesis Simple Sidebars Plugin Name: Genesis Simple Sidebars
* Plugin URI: https://github.com/studiopress/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. Description: Genesis Simple Sidebars allows you to easily create and use new sidebar widget areas.
* Version: 2.2.3 Author: Nathan Rice
* Author: StudioPress Author URI: http://www.nathanrice.net/
* Author URI: https://www.studiopress.com/
* License: GNU General Public License v2.0 (or later)
* License URI: https://www.opensource.org/licenses/gpl-license.php
*
* Text Domain: genesis-simple-sidebars
* Domain Path: /languages
*
* @package genesis-simple-sidebars
*/
/** Text Domain: genesis-simple-sidebars
* Load the plugin file. 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
*/
/** 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() {
if ( ! defined( 'PARENT_THEME_VERSION' ) || ! version_compare( PARENT_THEME_VERSION, '2.2.7', '>=' ) )
ss_deactivate( '2.2.7', '4.4.2' );
if ( ! defined( 'ABSPATH' ) ) {
exit;
} }
require_once plugin_dir_path( __FILE__ ) . 'genesis-simple-sidebars.php'; /**
* Deactivate Simple Sidebars.
*
* This function deactivates Simple Sidebars.
*
* @since 1.0.0
*/
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
*/
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' );
}
/**
* Display primary sidebar.
*
* Display custom sidebar if one exists, else display default primary sidebar.
*
* @since 0.9.0
*/
function ss_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 ( ! 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_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;
}
}
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 );
}
+24 -48
View File
@@ -1,10 +1,10 @@
=== Plugin Name === === Plugin Name ===
Contributors: nathanrice, wpmuguru, marksabbath Contributors: nathanrice, wpmuguru, studiopress
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5553118 Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5553118
Tags: hooks, genesis, genesiswp, studiopress Tags: hooks, genesis, genesiswp, studiopress
Requires at least: 4.7.3 Requires at least: 3.6
Tested up to: 6.9 Tested up to: 4.3.1
Stable tag: 2.2.3 Stable tag: 2.0.2
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. 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.
@@ -37,66 +37,42 @@ Not in the way you're probably thinking. The markup surrounding the widget area
== Changelog == == Changelog ==
= 2.2.3 =
* Prevent a PHP fatal error under PHP 8.x if incomplete sidebar data exists.
* Fix a PHP deprecation warning under PHP 8.x.
* Fix Genesis download link in admin notice if a Genesis child theme is not active.
= 2.2.2 =
* Fix overlapping of sidebar selector in editor.
= 2.2.1 =
* Allow sidebars to show in the WordPress Posts page.
= 2.2.0 =
* Fixed coding standards errors.
* Introduced coding standards validation.
= 2.1.0 =
* Rewrite based on new plugin boilerplate.
* Make ID field readonly, rather than disabled.
* Add header widget area support.
* Allow for empty ID (auto-generate ID from name).
* Allow for only alphanumeric characters in ID.
* Use WordPress native term meta functions.
= 2.0.3 =
* Fix warnings and notices.
= 2.0.2 = = 2.0.2 =
* Change text domain, update POT file. * Change text domain, update POT file.
= 2.0.1 = = 2.0.1 =
* Genesis 2.0.1 compatibility with term meta keys. * Genesis 2.0.1 compatibility with term meta keys
* Use actual sidebar name, instead of hard coded names. * Use actual sidebar name, instead of hard coded names
* Fix incorrect textdomain. * Fix incorrect textdomain
= 2.0.0 = = 2.0.0 =
* Compatibility with Genesis 2.0.0. * Compatibility with Genesis 2.0
* Standards. * Standards
= 1.0.0 = = 1.0.0 =
* Reorganize theme files. * Reorganize theme files
* Standards * Standards
= 0.9.2.1 = = 0.9.2.1 =
* Restore default tag/category support. * Restore default tag/category support
* Default custom taxonomy support to on for public taxonomies. * Default custom taxonomy support to on for public taxonomies
* Remove secondary selection when no 3 column layouts are enabled. * Remove secondary selection when no 3 column layouts are enabled
= 0.9.2 = = 0.9.2 =
* Added support for custom taxonomies. * Added support for custom taxonomies
* Added translation support. * Added translation support
* bug fix to prevent invalid sidebar creation. * bug fix to prevent invalid sidebar creation
= 0.9.1 = = 0.9.1 =
* Added support for custom post types. * Added support for custom post types
= 0.9 = = 0.9 =
* Fixed "is not array" errors reported by users. * Fixed "is not array" errors reported by users
* Added nonce verification for security purposes. * Added nonce verification for security purposes
* Added error and success messages. * Added error and success messages
* Bump to pre-release 0.9 branch. * Bump to pre-release 0.9 branch
= 0.1 = = 0.1 =
* Initial Alpha Release. * Initial Alpha Release