| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- <?php
- class Jetpack_Comments_Settings {
- /** Variables *************************************************************/
- /**
- * The Jetpack Coments singleton
- */
- public $jetpack_comments;
- /**
- * The default comment form greeting
- * @var string
- */
- public $default_greeting = ''; // Set in constructor
- /**
- * The default comment form color scheme
- * @var string
- */
- public $color_schemes = array();
- public static function init() {
- static $instance = false;
- if ( !$instance ) {
- $instance = new Jetpack_Comments_Settings( Jetpack_Comments::init() );
- }
- return $instance;
- }
- public function __construct( Highlander_Comments_Base $jetpack_comments ) {
- $this->jetpack_comments = $jetpack_comments;
- // Setup settings
- add_action( 'admin_init', array( $this, 'add_settings' ) );
- $this->setup_globals();
- }
- /** Private Methods *******************************************************/
- /**
- * Set any global variables or class variables
- * @since JetpackComments (1.4)
- */
- protected function setup_globals() {
- // Default option values
- $this->default_greeting = __( 'Leave a Reply', 'jetpack' );
- // Possible color schemes
- $this->color_schemes = array(
- 'light' => __( 'Light', 'jetpack' ),
- 'dark' => __( 'Dark', 'jetpack' ),
- 'transparent' => __( 'Transparent', 'jetpack' ),
- );
- }
- /** Settings **************************************************************/
- /**
- * Add the Jetpack settings to WordPress's discussions page
- *
- * @since JetpackComments (1.4)
- */
- public function add_settings() {
- // Create the section
- add_settings_section(
- 'jetpack_comment_form',
- __( 'Comments', 'jetpack' ),
- array( $this, 'comment_form_settings_section' ),
- 'discussion'
- );
- /** Clever Greeting ***************************************************/
- add_settings_field(
- 'highlander_comment_form_prompt',
- __( 'Greeting Text', 'jetpack' ),
- array( $this, 'comment_form_greeting_setting' ),
- 'discussion',
- 'jetpack_comment_form'
- );
- register_setting(
- 'discussion',
- 'highlander_comment_form_prompt',
- array( $this, 'comment_form_greeting_sanitize' )
- );
- /** Color Scheme ******************************************************/
- add_settings_field(
- 'jetpack_comment_form_color_scheme',
- __( 'Color Scheme', 'jetpack' ),
- array( $this, 'comment_form_color_scheme_setting' ),
- 'discussion',
- 'jetpack_comment_form'
- );
- register_setting(
- 'discussion',
- 'jetpack_comment_form_color_scheme',
- array( $this, 'comment_form_color_scheme_sanitize' )
- );
- }
- /**
- * Discussions setting section blurb
- *
- * @since JetpackComments (1.4)
- */
- public function comment_form_settings_section() {
- ?>
- <p id="jetpack-comments-settings"><?php _e( 'Adjust your Comments form with a clever greeting and color-scheme.', 'jetpack' ); ?></p>
- <?php
- }
- /**
- * Custom Comment Greeting Text
- *
- * @since JetpackComments (1.4)
- */
- public function comment_form_greeting_setting() {
- // The greeting
- $greeting = get_option( 'highlander_comment_form_prompt', $this->default_greeting ); ?>
- <input type="text" name="highlander_comment_form_prompt" id="jetpack-comment-form-greeting" value="<?php echo esc_attr( $greeting ); ?>" class="regular-text">
- <p class="description"><?php _e( 'A few catchy words to motivate your readers to comment', 'jetpack' ); ?></p>
- <?php
- }
- /**
- * Sanitize the clever comment greeting
- *
- * @since JetpackComments (1.4)
- * @param type $val
- * @return string
- */
- function comment_form_greeting_sanitize( $val ) {
- // Delete if empty or the default
- if ( empty( $val ) || ( $this->default_greeting == $val ) ) {
- delete_option( 'highlander_comment_form_prompt' );
- return false;
- }
- return wp_kses( $val, array() );
- }
- /**
- * Color Scheme Setting
- *
- * @since JetpackComments (1.4)
- */
- public function comment_form_color_scheme_setting() {
- // The color scheme
- $scheme = get_option( 'jetpack_comment_form_color_scheme', $this->jetpack_comments->default_color_scheme ); ?>
- <fieldset>
- <legend class="screen-reader-text"><?php _e( 'Color Scheme', 'jetpack' ); ?></legend>
- <?php foreach( $this->color_schemes as $key => $label ) : ?>
- <label>
- <input type="radio" name="jetpack_comment_form_color_scheme" id="jetpack-comment-form-color-scheme" value="<?php echo $key; ?>" <?php checked( $scheme, $key ); ?>>
- <?php echo $label; ?>
- </label>
- <br />
- <?php endforeach; ?>
- </fieldset>
- <?php
- }
- /**
- * Sanitize the color scheme
- *
- * @since JetpackComments (1.4)
- * @param type $val
- * @return string
- */
- public function comment_form_color_scheme_sanitize( $val ) {
- // Delete the option if it's...
- if (
- empty( $val ) || !in_array( $val, array_keys( $this->color_schemes ) ) // ... unknown
- ||
- $val == $this->jetpack_comments->default_color_scheme // ... or the default
- ) {
- delete_option( 'jetpack_comment_form_color_scheme' );
- return false;
- }
- return $val;
- }
- }
- Jetpack_Comments_Settings::init();
|