Skip to content

Commit 9fd4de9

Browse files
author
Jippe Holwerda
committed
Support configuration of API key via wp-config.php for both normal and multisite installations.
1 parent 80bd344 commit 9fd4de9

1 file changed

Lines changed: 25 additions & 86 deletions

File tree

src/class-tiny-settings.php

Lines changed: 25 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ protected static function get_prefixed_name($name) {
3030

3131
public function __construct() {
3232
parent::__construct();
33-
if (is_multisite()) {
34-
add_action('network_admin_menu', $this->get_method('register_multisite_settings'));
35-
add_action('network_admin_edit_save_tinypng_multisite_settings', $this->get_method('save_multisite_settings'), 10, 0);
36-
}
33+
// if (is_multisite()) {
34+
// add_action('network_admin_menu', $this->get_method('register_multisite_settings'));
35+
// add_action('network_admin_edit_save_tinypng_multisite_settings', $this->get_method('save_multisite_settings'), 10, 0);
36+
// }
3737
}
3838

3939
public function admin_init() {
@@ -55,33 +55,21 @@ public function admin_init() {
5555
add_settings_field($field, self::translate('File compression'), $this->get_method('render_sizes'), 'media', $section);
5656
}
5757

58-
public function register_multisite_settings() {
59-
add_submenu_page('settings.php', self::translate('Multisite PNG and JPEG compression'),
60-
self::translate('PNG and JPEG compression'), 'manage_network_plugins',
61-
self::get_prefixed_name('multisite_settings'), $this->get_method('render_multisite_settings'));
62-
}
63-
6458
public function get_api_key() {
65-
$key = $this->get_multisite_api_key();
66-
if (empty($key)) {
67-
return get_option(self::get_prefixed_name('api_key'));
59+
if (defined('TINY_API_KEY')) {
60+
return TINY_API_KEY;
6861
} else {
69-
return $key;
62+
return get_option(self::get_prefixed_name('api_key'));
7063
}
7164
}
7265

7366
public function get_multisite_api_key() {
74-
if (tiny_is_network_activated()) {
75-
if (defined('TINY_API_KEY')) {
76-
return TINY_API_KEY;
77-
} else {
78-
$key = get_site_option(self::get_prefixed_name('api_key'));
79-
if (!empty($key)) {
80-
return $key;
81-
} else {
82-
return NULL;
83-
}
84-
}
67+
if (is_multisite()) {
68+
if (defined('TINY_API_KEY')) {
69+
return TINY_API_KEY;
70+
} else {
71+
return NULL;
72+
}
8573
} else {
8674
return NULL;
8775
}
@@ -144,65 +132,12 @@ public function get_tinify_sizes() {
144132
public function render_section() {
145133
}
146134

147-
public function render_multisite_settings() {
148-
echo '<h2>' . self::translate('PNG and JPEG compression') . '</h2>';
149-
150-
echo '<div class="wrap">';
151-
152-
$section = self::get_prefixed_name('multisite_settings');
153-
add_settings_section($section, '', $this->get_method('render_section'), self::get_prefixed_name('multisite_settings'));
154-
155-
if ( isset( $_GET['updated'] ) ) {
156-
?><div id="message" class="updated"><p><?php _e( 'Options saved.' ) ?></p></div><?php
157-
}
158-
159-
echo '<form method="post" action="edit.php?action=save_tinypng_multisite_settings">';
160-
settings_fields(self::get_prefixed_name('multisite_settings'));
161-
162-
$field = self::get_prefixed_name('multisite_api_key');
163-
add_settings_field($field, self::translate('Multisite API key'), $this->get_method('render_multisite_api_key'), self::get_prefixed_name('multisite_settings'), $section, array('label_for' => $field));
164-
165-
do_settings_sections(self::get_prefixed_name('multisite_settings'));
166-
167-
if (!defined('TINY_API_KEY')) {
168-
submit_button();
169-
}
170-
echo '</form>';
171-
echo '</div>';
172-
}
173-
174-
public function save_multisite_settings() {
175-
$options = array('page' => self::get_prefixed_name('multisite_settings'));
176-
if (array_key_exists(self::get_prefixed_name('api_key'), $_POST)) {
177-
$key = filter_var($_POST[self::get_prefixed_name('api_key')], FILTER_SANITIZE_STRING);
178-
update_site_option(self::get_prefixed_name('api_key'), $key);
179-
$options['updated'] = 'true';
180-
}
181-
wp_redirect(add_query_arg($options, network_admin_url('settings.php')));
182-
exit();
183-
}
184-
185-
public function render_multisite_api_key() {
186-
$field = self::get_prefixed_name('api_key');
187-
$value = $this->get_multisite_api_key();
188-
echo '<input type="text" id="' . $field . '" name="' . $field . '" value="' . htmlspecialchars($value) . '" size="40" ';
189-
if (defined('TINY_API_KEY')) { echo 'readonly = "readonly"'; }
190-
echo '/>';
191-
echo '<p>';
192-
if (defined('TINY_API_KEY')) {
193-
echo sprintf(self::translate('The API key has been configured in %s'), 'wp-config.php') . '.';
194-
} else {
195-
$link = '<a href="https://tinypng.com/developers">' . self::translate_escape('TinyPNG Developer section') . '</a>';
196-
printf(self::translate_escape('Visit %s to get an API key') . '.', $link);
197-
}
198-
echo '</p>';
199-
}
200-
201135
public function render_api_key() {
202136
$field = self::get_prefixed_name('api_key');
203137
$key = $this->get_api_key();
138+
$multisite_key = $this->get_multisite_api_key();
139+
204140
if (tiny_is_network_activated()) {
205-
$multisite_key = $this->get_multisite_api_key();
206141
if (empty($multisite_key)) {
207142
if (empty($key)) {
208143
echo '<p>' . self::translate('Your Network Admin has not configured an API key yet') . '.</p>';
@@ -213,12 +148,16 @@ public function render_api_key() {
213148
echo '<p>' . self::translate('The API key has been installed by the Network Admin') . '.</p>';
214149
}
215150
} else {
216-
echo '<input type="text" id="' . $field . '" name="' . $field . '" value="' . htmlspecialchars($key) . '" size="40" />';
217-
if (empty($key)) {
218-
echo '<p>';
219-
$link = '<a href="https://tinypng.com/developers">' . self::translate_escape('TinyPNG Developer section') . '</a>';
220-
printf(self::translate_escape('Visit %s to get an API key') . '.', $link);
221-
echo '</p>';
151+
if (is_multisite() && !empty($multisite_key)) {
152+
echo '<p>' . self::translate('The API key has been installed by the Network Admin') . '.</p>';
153+
} else {
154+
echo '<input type="text" id="' . $field . '" name="' . $field . '" value="' . htmlspecialchars($key) . '" size="40" />';
155+
if (empty($key)) {
156+
echo '<p>';
157+
$link = '<a href="https://tinypng.com/developers">' . self::translate_escape('TinyPNG Developer section') . '</a>';
158+
printf(self::translate_escape('Visit %s to get an API key') . '.', $link);
159+
echo '</p>';
160+
}
222161
}
223162
}
224163
}

0 commit comments

Comments
 (0)