seeing-red/seeing_red.php

209 lines
5.9 KiB
PHP
Raw Normal View History

2015-10-18 16:46:53 +00:00
<?php
/*
Plugin Name: Seeing Red
2021-07-01 22:54:08 +00:00
Plugin URI: https://www.kjodle.net/wordpress/
2015-10-18 16:46:53 +00:00
Description: Makes "Screen Options" more noticeable
2021-07-01 22:54:08 +00:00
Version: 3.0
2015-10-18 16:46:53 +00:00
Author: Kenneth John Odle
Author URI: http://techblog.kjodle.net
Text Domain: seeing-red
2021-07-01 22:54:08 +00:00
Copyright 2021 Kenneth John Odle
© 2021 Kenneth John Odle
2015-10-18 16:46:53 +00:00
Released under the GPL v.3, http://www.gnu.org/copyleft/gpl.html
This program is free software; you can redistribute it and/or modify
2021-07-01 22:54:08 +00:00
it under the terms of the GNU General Public License, version 3, as
2015-10-18 16:46:53 +00:00
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
// Prevent this page from being loaded directly.
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
// Only use this if the current user can edit pages and posts
function seeing_red_check() {
if ( ! current_user_can('edit_posts') || ! current_user_can('edit_pages') )
return;
}
// Register our activation/deactivation hooks
// register_activation_hook(__FILE__, 'add_defaults_d12sr');
register_uninstall_hook( __FILE__, 'delete_defaults_d12sr' );
// Define default option settings
/* Keep this until we get it figured out (or determine if it's even necessary).
function add_defaults_d12sr(){
$tmp = get_option('d12sr_options');
if(!is_array($tmp)) {
$arr = array(
"so" => "Red",
"ch" => "Red"
);
}
update_option('d12sr_options', $arr);
}
*/
// Delete database settings upon uninstall
function delete_defaults_d12sr(){
$option_name = 'd12sr_options';
delete_option( $option_name );
}
// Create a new admin panel
function d12sr_admin_panel_setup(){
add_submenu_page(
'options-general.php',
'Seeing Red Options',
'Seeing Red',
'manage_options',
'seeing-red-options',
'd12sr_options_callback'
);
}
add_action('admin_menu', 'd12sr_admin_panel_setup');
// Callback to create the setting page
function d12sr_options_callback(){
?>
<div class="wrap">
<h2>Seeing Red Options</h2>
2021-07-01 22:54:08 +00:00
<p><strong></strong> You have the option to style the "Screen Options" and "Help" tabs separately.</p>
2015-10-18 16:46:53 +00:00
<p>You can also choose from other color schemes besides red.</p>
2021-07-01 22:54:08 +00:00
<form method="post" action="options.php">
2015-10-18 16:46:53 +00:00
<?php settings_fields( 'd12sr_options_group' ); ?>
<?php do_settings_sections( 'd12sr_settings' ); ?>
<input name="Submit" type="submit" class="button-primary" value="<?php esc_attr_e(__('Save Options','seeing-red')); ?>" />
</form>
</div>
<?php
};
// Add the admin settings
add_action( 'admin_init', 'd12sr_admin_init');
function d12sr_admin_init() {
register_setting(
'd12sr_options_group',
'd12sr_options',
'd12sr_options_validate'
);
add_settings_section(
'd12sr_main',
'',
'so_settings_section',
'd12sr_settings'
);
add_settings_field(
'd12sr_so',
'Screen Options tab color',
'so_settings_field',
'd12sr_settings',
'd12sr_main'
);
add_settings_field(
'd12sr_ch',
'Help tab color',
'ch_settings_field',
'd12sr_settings',
'd12sr_main'
);
};
// Callback for setting_section
function so_settings_section() {
echo '';
};
// Callback for settings_field for Screen Options tab
function so_settings_field(){
$options = get_option( 'd12sr_options' );
2021-07-01 22:54:08 +00:00
$items = array("Red", "Green", "Blue", "Purple", "Default");
2015-10-18 16:46:53 +00:00
echo "<select id='d12sr-so' name='d12sr_options[so]'>";
foreach($items as $item) {
$selected = ($options[so]==$item) ? 'selected="selected"' : '';
echo "<option value='$item' $selected>$item</option>";
}
echo "</select>";
};
// Callback for settings_field for Contextual Help tab
function ch_settings_field(){
$options = get_option( 'd12sr_options' );
2021-07-01 22:54:08 +00:00
$items = array("Red", "Green", "Blue", "Purple", "Default");
2015-10-18 16:46:53 +00:00
echo "<select id='d12sr-ch' name='d12sr_options[ch]'>";
foreach($items as $item) {
$selected = ($options[ch]==$item) ? 'selected="selected"' : '';
echo "<option value='$item' $selected>$item</option>";
}
echo "</select>";
};
// Since we are only using drop-downs, we don't need to validate
function d12sr_options_validate($input) {
2021-07-01 22:54:08 +00:00
return $input;
2015-10-18 16:46:53 +00:00
}
// Retrieve Screen Options options from database, register appropriate stylesheet, and enqueue
function d12so_retrieve() {
$sroptions = get_option('d12sr_options');
switch($sroptions['so']) {
case "Red" :
wp_register_style( 'd12sr_admin_socss', plugins_url('css/sored.css', __FILE__), false, '1.0.0' );
break;
case "Green" :
wp_register_style( 'd12sr_admin_socss', plugins_url('css/sogreen.css', __FILE__), false, '1.0.0' );
break;
case "Blue" :
wp_register_style( 'd12sr_admin_socss', plugins_url('css/soblue.css', __FILE__), false, '1.0.0' );
break;
2021-07-01 22:54:08 +00:00
case "Purple" :
wp_register_style( 'd12sr_admin_socss', plugins_url('css/sopurple.css', __FILE__), false, '1.0.0' );
break;
2015-10-18 16:46:53 +00:00
default:
return;
}
wp_enqueue_style( 'd12sr_admin_socss' );
}
add_action( 'admin_enqueue_scripts', 'd12so_retrieve' );
// Retrieve Screen Options options from database, register appropriate stylesheet, and enqueue
function d12ch_retrieve() {
$sroptions = get_option('d12sr_options');
switch($sroptions['ch']) {
case "Red" :
wp_register_style( 'd12sr_admin_chcss', plugins_url('css/chred.css', __FILE__), false, '1.0.0' );
break;
case "Green" :
wp_register_style( 'd12sr_admin_chcss', plugins_url('css/chgreen.css', __FILE__), false, '1.0.0' );
break;
case "Blue" :
wp_register_style( 'd12sr_admin_chcss', plugins_url('css/chblue.css', __FILE__), false, '1.0.0' );
break;
2021-07-01 22:54:08 +00:00
case "Purple" :
wp_register_style( 'd12sr_admin_chcss', plugins_url('css/chpurple.css', __FILE__), false, '1.0.0' );
break;
2015-10-18 16:46:53 +00:00
default:
return;
}
wp_enqueue_style( 'd12sr_admin_chcss' );
}
add_action( 'admin_enqueue_scripts', 'd12ch_retrieve' );
2021-07-01 22:54:08 +00:00
?>