Sync plugins from current page
Signed-off-by: Adrian Nöthlich <git@promasu.tech>
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
<?php
|
||||
/**
|
||||
* SnS_Settings_Page
|
||||
*
|
||||
* Allows WordPress admin users the ability to add custom CSS
|
||||
* and JavaScript directly to individual Post, Pages or custom
|
||||
* post types.
|
||||
*/
|
||||
|
||||
class SnS_Settings_Page
|
||||
{
|
||||
/**
|
||||
* Constants
|
||||
*/
|
||||
const MENU_SLUG = 'sns_settings';
|
||||
|
||||
/**
|
||||
* Initializing method.
|
||||
* @static
|
||||
*/
|
||||
static function init() {
|
||||
$hook_suffix = add_submenu_page( SnS_Admin::$parent_slug, __( 'Scripts n Styles', 'scripts-n-styles' ), __( 'Settings' ), 'unfiltered_html', self::MENU_SLUG, array( 'SnS_Form', 'page' ) );
|
||||
|
||||
add_action( "load-$hook_suffix", array( __CLASS__, 'admin_load' ) );
|
||||
add_action( "load-$hook_suffix", array( 'SnS_Admin', 'help' ) );
|
||||
add_action( "load-$hook_suffix", array( 'SnS_Form', 'take_action' ), 49 );
|
||||
add_action( "admin_print_styles-$hook_suffix", array( __CLASS__, 'admin_enqueue_scripts' ) );
|
||||
|
||||
// Make the page into a tab.
|
||||
if ( SnS_Admin::MENU_SLUG != SnS_Admin::$parent_slug ) {
|
||||
remove_submenu_page( SnS_Admin::$parent_slug, self::MENU_SLUG );
|
||||
add_filter( 'parent_file', array( __CLASS__, 'parent_file') );
|
||||
}
|
||||
}
|
||||
static function parent_file( $parent_file ) {
|
||||
global $plugin_page, $submenu_file;
|
||||
if ( self::MENU_SLUG == $plugin_page ) $submenu_file = SnS_Admin::MENU_SLUG;
|
||||
return $parent_file;
|
||||
}
|
||||
|
||||
static function admin_enqueue_scripts() {
|
||||
$options = get_option( 'SnS_options' );
|
||||
$cm_theme = isset( $options[ 'cm_theme' ] ) ? $options[ 'cm_theme' ] : '';
|
||||
|
||||
wp_enqueue_style( 'sns-options' );
|
||||
|
||||
wp_enqueue_script( 'sns-settings-page' );
|
||||
wp_localize_script( 'sns-settings-page', 'codemirror_options', array( 'theme' => $cm_theme ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Settings Page
|
||||
* Adds Admin Menu Item via WordPress' "Administration Menus" API. Also hook actions to register options via WordPress' Settings API.
|
||||
*/
|
||||
static function admin_load() {
|
||||
wp_enqueue_style( 'sns-options' );
|
||||
|
||||
register_setting(
|
||||
SnS_Admin::OPTION_GROUP,
|
||||
'SnS_options' );
|
||||
|
||||
add_settings_section(
|
||||
'settings',
|
||||
__( 'Scripts n Styles Settings', 'scripts-n-styles' ),
|
||||
array( __CLASS__, 'settings_section' ),
|
||||
SnS_Admin::MENU_SLUG );
|
||||
|
||||
add_settings_field(
|
||||
'metabox',
|
||||
__( '<strong>Hide Metabox by default</strong>: ', 'scripts-n-styles' ),
|
||||
array( 'SnS_Form', 'radio' ),
|
||||
SnS_Admin::MENU_SLUG,
|
||||
'settings',
|
||||
array(
|
||||
'label_for' => 'metabox',
|
||||
'setting' => 'SnS_options',
|
||||
'choices' => array( 'yes', 'no' ),
|
||||
'layout' => 'horizontal',
|
||||
'default' => 'yes',
|
||||
'legend' => __( 'Hide Metabox by default', 'scripts-n-styles' ),
|
||||
'description' => __( '<span class="description" style="max-width: 500px; display: inline-block;">This is overridable via Screen Options on each edit screen.</span>', 'scripts-n-styles' )
|
||||
) );
|
||||
|
||||
add_settings_field(
|
||||
'menu_position',
|
||||
__( '<strong>Menu Position</strong>: ', 'scripts-n-styles' ),
|
||||
array( 'SnS_Form', 'radio' ),
|
||||
SnS_Admin::MENU_SLUG,
|
||||
'settings',
|
||||
array(
|
||||
'label_for' => 'menu_position',
|
||||
'setting' => 'SnS_options',
|
||||
'choices' => array( 'menu', 'object', 'utility', 'tools.php', 'options-general.php', 'themes.php' ),
|
||||
'default' => 'tools.php',
|
||||
'legend' => __( 'Theme', 'scripts-n-styles' ),
|
||||
'layout' => 'vertical',
|
||||
'description' => __( '<span class="description" style="max-width: 500px; display: inline-block;">Some people are fussy about where the menu goes, so I made an option.</span>', 'scripts-n-styles' ),
|
||||
) );
|
||||
|
||||
add_settings_section(
|
||||
'demo',
|
||||
__( 'Code Mirror Demo', 'scripts-n-styles' ),
|
||||
array( __CLASS__, 'demo_section' ),
|
||||
SnS_Admin::MENU_SLUG );
|
||||
|
||||
add_settings_field(
|
||||
'cm_theme',
|
||||
__( '<strong>Theme</strong>: ', 'scripts-n-styles' ),
|
||||
array( 'SnS_Form', 'radio' ),
|
||||
SnS_Admin::MENU_SLUG,
|
||||
'demo',
|
||||
array(
|
||||
'label_for' => 'cm_theme',
|
||||
'setting' => 'SnS_options',
|
||||
'choices' => Scripts_n_Styles::$cm_themes,
|
||||
'default' => 'default',
|
||||
'legend' => __( 'Theme', 'scripts-n-styles' ),
|
||||
'layout' => 'horizontal',
|
||||
'description' => '',
|
||||
) );
|
||||
add_settings_field(
|
||||
'hoops_widget',
|
||||
__( '<strong>Hoops Widgets</strong>: ', 'scripts-n-styles' ),
|
||||
array( 'SnS_Form', 'radio' ),
|
||||
SnS_Admin::MENU_SLUG,
|
||||
'settings',
|
||||
array(
|
||||
'label_for' => 'hoops_widget',
|
||||
'setting' => 'SnS_options',
|
||||
'choices' => array( 'yes', 'no' ),
|
||||
'layout' => 'horizontal',
|
||||
'default' => 'no',
|
||||
'legend' => __( 'Shortcode Widgets', 'scripts-n-styles' ),
|
||||
'description' => __( '<span class="description" style="max-width: 500px; display: inline-block;">This enables Hoops shortcodes to be used via a "Hoops" Text Widget.</span>', 'scripts-n-styles' )
|
||||
) );
|
||||
add_settings_field(
|
||||
'delete_data_uninstall',
|
||||
__( '<strong>Delete Data When Uninstalling</strong>: ', 'scripts-n-styles' ),
|
||||
array( 'SnS_Form', 'radio' ),
|
||||
SnS_Admin::MENU_SLUG,
|
||||
'settings',
|
||||
array(
|
||||
'label_for' => 'delete_data_uninstall',
|
||||
'setting' => 'SnS_options',
|
||||
'choices' => array( 'yes', 'no' ),
|
||||
'layout' => 'horizontal',
|
||||
'default' => 'no',
|
||||
'legend' => __( 'Delete Data When Uninstalling', 'scripts-n-styles' ),
|
||||
'description' => __( '<span class="description" style="max-width: 500px; display: inline-block;">Should the plugin clean up after itself and delete all of its saved data.</span>', 'scripts-n-styles' )
|
||||
) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Settings Page
|
||||
* Outputs Description text for the Global Section.
|
||||
*/
|
||||
static function settings_section() {
|
||||
?>
|
||||
<div style="max-width: 55em;">
|
||||
<p><?php _e( 'Control how and where Scripts n Styles menus and metaboxes appear. These options are here because sometimes users really care about this stuff. Feel free to adjust to your liking. :-)', 'scripts-n-styles' ) ?></p>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Settings Page
|
||||
* Outputs Description text for the Global Section.
|
||||
*/
|
||||
static function demo_section() {
|
||||
?>
|
||||
<div style="max-width: 55em;">
|
||||
<textarea id="codemirror_demo" name="code" style="min-width: 500px; width:97%;" rows="5" cols="40">
|
||||
<?php echo esc_textarea( '<?php
|
||||
function hello($who) {
|
||||
return "Hello " . $who;
|
||||
}
|
||||
?>
|
||||
<p>The program says <?= hello("World") ?>.</p>
|
||||
<script>
|
||||
alert("And here is some JS code"); // also colored
|
||||
</script>' ); ?>
|
||||
</textarea>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user