PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 7.1.1
Jetpack – WP Security, Backup, Speed, & Growth v7.1.1
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
jetpack / modules / comments / admin.php

admin.php in Jetpack – WP Security, Backup, Speed, & Growth 7.1.1, at modules/comments/admin.php

211 lines 4.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class Jetpack_Comments_Settings {
4
5 /** Variables *************************************************************/
6
7 /**
8 * The Jetpack Coments singleton
9 */
10 public $jetpack_comments;
11
12 /**
13 * The default comment form greeting
14 * @var string
15 */
16 public $default_greeting = ''; // Set in constructor
17
18 /**
19 * The default comment form color scheme
20 * @var string
21 */
22 public $color_schemes = array();
23
24 public static function init() {
25 static $instance = false;
26
27 if ( ! $instance ) {
28 $instance = new Jetpack_Comments_Settings( Jetpack_Comments::init() );
29 }
30
31 return $instance;
32 }
33
34 public function __construct( Highlander_Comments_Base $jetpack_comments ) {
35 $this->jetpack_comments = $jetpack_comments;
36
37 // Setup settings
38 add_action( 'admin_init', array( $this, 'add_settings' ) );
39 $this->setup_globals();
40 }
41
42 /** Private Methods *******************************************************/
43
44 /**
45 * Set any global variables or class variables
46 * @since JetpackComments (1.4)
47 */
48 protected function setup_globals() {
49 // Default option values
50 $this->default_greeting = __( 'Leave a Reply', 'jetpack' );
51
52 // Possible color schemes
53 $this->color_schemes = array(
54 'light' => __( 'Light', 'jetpack' ),
55 'dark' => __( 'Dark', 'jetpack' ),
56 'transparent' => __( 'Transparent', 'jetpack' ),
57 );
58 }
59
60 /** Settings **************************************************************/
61
62 /**
63 * Add the Jetpack settings to WordPress's discussions page
64 *
65 * @since JetpackComments (1.4)
66 */
67 public function add_settings() {
68
69 // Create the section
70 add_settings_section(
71 'jetpack_comment_form',
72 __( 'Comments', 'jetpack' ),
73 array( $this, 'comment_form_settings_section' ),
74 'discussion'
75 );
76
77 /** Clever Greeting ***************************************************/
78
79 add_settings_field(
80 'highlander_comment_form_prompt',
81 __( 'Greeting Text', 'jetpack' ),
82 array( $this, 'comment_form_greeting_setting' ),
83 'discussion',
84 'jetpack_comment_form'
85 );
86
87 register_setting(
88 'discussion',
89 'highlander_comment_form_prompt',
90 array( $this, 'comment_form_greeting_sanitize' )
91 );
92
93 /** Color Scheme ******************************************************/
94
95 add_settings_field(
96 'jetpack_comment_form_color_scheme',
97 __( 'Color Scheme', 'jetpack' ),
98 array( $this, 'comment_form_color_scheme_setting' ),
99 'discussion',
100 'jetpack_comment_form'
101 );
102
103 register_setting(
104 'discussion',
105 'jetpack_comment_form_color_scheme',
106 array( $this, 'comment_form_color_scheme_sanitize' )
107 );
108 }
109
110 /**
111 * Discussions setting section blurb
112 *
113 * @since JetpackComments (1.4)
114 */
115 public function comment_form_settings_section() {
116 ?>
117
118 <p id="jetpack-comments-settings"><?php _e( 'Adjust your Comments form with a clever greeting and color-scheme.', 'jetpack' ); ?></p>
119
120 <?php
121 }
122
123 /**
124 * Custom Comment Greeting Text
125 *
126 * @since JetpackComments (1.4)
127 */
128 public function comment_form_greeting_setting() {
129
130 // The greeting
131 $greeting = get_option( 'highlander_comment_form_prompt', $this->default_greeting );
132 ?>
133
134 <input type="text" name="highlander_comment_form_prompt" id="jetpack-comment-form-greeting" value="<?php echo esc_attr( $greeting ); ?>" class="regular-text">
135 <p class="description"><?php _e( 'A few catchy words to motivate your readers to comment', 'jetpack' ); ?></p>
136
137 <?php
138 }
139
140 /**
141 * Sanitize the clever comment greeting
142 *
143 * @since JetpackComments (1.4)
144 * @param type $val
145 * @return string
146 */
147 function comment_form_greeting_sanitize( $val ) {
148
149 // Delete if empty or the default
150 if ( empty( $val ) || ( $this->default_greeting == $val ) ) {
151 delete_option( 'highlander_comment_form_prompt' );
152 return false;
153 }
154
155 return wp_kses( $val, array() );
156 }
157
158 /**
159 * Color Scheme Setting
160 *
161 * @since JetpackComments (1.4)
162 */
163 public function comment_form_color_scheme_setting() {
164
165 // The color scheme
166 $scheme = get_option( 'jetpack_comment_form_color_scheme', $this->jetpack_comments->default_color_scheme );
167 ?>
168
169 <fieldset>
170 <legend class="screen-reader-text"><?php _e( 'Color Scheme', 'jetpack' ); ?></legend>
171
172 <?php foreach ( $this->color_schemes as $key => $label ) : ?>
173
174 <label>
175 <input type="radio" name="jetpack_comment_form_color_scheme" id="jetpack-comment-form-color-scheme" value="<?php echo $key; ?>" <?php checked( $scheme, $key ); ?>>
176 <?php echo $label; ?>
177 </label>
178 <br />
179
180 <?php endforeach; ?>
181
182 </fieldset>
183
184 <?php
185 }
186
187 /**
188 * Sanitize the color scheme
189 *
190 * @since JetpackComments (1.4)
191 * @param type $val
192 * @return string
193 */
194 public function comment_form_color_scheme_sanitize( $val ) {
195
196 // Delete the option if it's...
197 if (
198 empty( $val ) || ! in_array( $val, array_keys( $this->color_schemes ) ) // ... unknown
199 ||
200 $val == $this->jetpack_comments->default_color_scheme // ... or the default
201 ) {
202 delete_option( 'jetpack_comment_form_color_scheme' );
203 return false;
204 }
205
206 return $val;
207 }
208 }
209
210 Jetpack_Comments_Settings::init();
211