Improvements to settings page
Validate Build / validate-build (push) Failing after 38s

This commit is contained in:
Cooper Dalrymple
2026-06-04 17:26:17 -05:00
parent e8b8fc1871
commit 1130a6d00f
3 changed files with 28 additions and 8 deletions
+1
View File
@@ -4,3 +4,4 @@ node_modules
*.zip *.zip
dist dist
*.map *.map
.DS_Store
Generated
+1 -1
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "7a93568ac8ad8943978c2656b568b574", "content-hash": "978b7fe126b61796750d67c4c7231417",
"packages": [ "packages": [
{ {
"name": "cleverogre/plugin-framework", "name": "cleverogre/plugin-framework",
+26 -7
View File
@@ -103,7 +103,16 @@ final class Settings {
public function menu() { public function menu() {
if (!current_user_can(self::CAPABILITY)) return; if (!current_user_can(self::CAPABILITY)) return;
add_options_page(sprintf(Plugin::__('%s Settings'), Plugin::get_title()), Plugin::get_title(), self::CAPABILITY, Plugin::get_id(), [$this, 'page']); add_options_page(
sprintf(
Plugin::__('%s Settings'),
Plugin::get_title()
),
Plugin::__('CAPTCHA'),
self::CAPABILITY,
Plugin::get_id(),
[$this, 'page']
);
} }
public function init() { public function init() {
@@ -139,6 +148,7 @@ final class Settings {
args: [ args: [
'name' => 'site_key', 'name' => 'site_key',
'description' => Plugin::__('Provide your Cap site key.'), 'description' => Plugin::__('Provide your Cap site key.'),
'type' => 'password',
] ]
); );
@@ -150,6 +160,7 @@ final class Settings {
args: [ args: [
'name' => 'secret_key', 'name' => 'secret_key',
'description' => Plugin::__('Provide your Cap secret key.'), 'description' => Plugin::__('Provide your Cap secret key.'),
'type' => 'password',
] ]
); );
@@ -175,10 +186,11 @@ final class Settings {
self::LOCATION_LOGIN_PAGE => Plugin::__('Login page'), self::LOCATION_LOGIN_PAGE => Plugin::__('Login page'),
self::LOCATION_REGISTRATION_PAGE => Plugin::__('Registration page'), self::LOCATION_REGISTRATION_PAGE => Plugin::__('Registration page'),
self::LOCATION_LOST_PASSWORD_FORM => Plugin::__('Lost password page'), self::LOCATION_LOST_PASSWORD_FORM => Plugin::__('Lost password page'),
self::LOCATION_LOGIN_FORM => Plugin::__('Custom login form (requires Login Page)'), self::LOCATION_LOGIN_FORM => Plugin::__('Custom login form'),
self::LOCATION_COMMENT_FORM => Plugin::__('Comment form'), self::LOCATION_COMMENT_FORM => Plugin::__('Comment form'),
self::LOCATION_POST_PASSWORD_FORM => Plugin::__('Password-protected posts and pages'), self::LOCATION_POST_PASSWORD_FORM => Plugin::__('Password-protected posts and pages'),
], ],
'description' => Plugin::__('Custom login form requires login page to also be enabled.'),
] ]
); );
} }
@@ -210,7 +222,7 @@ final class Settings {
if (empty($args['name'] ?? '')) return; if (empty($args['name'] ?? '')) return;
$attributes = [ $attributes = [
'type' => 'text', 'type' => $args['type'] ?? 'text',
'class' => 'regular-text', 'class' => 'regular-text',
'name' => sprintf( 'name' => sprintf(
'%s[%s]', '%s[%s]',
@@ -261,21 +273,28 @@ final class Settings {
} }
public function checkbox_field(array $args):void { public function checkbox_field(array $args):void {
if (empty($args['name'] ?? '') || !isset($options) || empty($options)) return; if (empty($args['name'] ?? '') || empty($args['options'] ?? [])) return;
echo implode('<br>', array_map( echo implode('<br>', array_map(
fn (string $name, string $label):string => sprintf( fn (string $name, string $label):string => sprintf(
'<label><input type="checkbox" name="%s[%s][]" value="%s" %s>&nbsp;%s (%s)</label>', '<label><input type="checkbox" name="%s[%s][]" value="%s" %s>&nbsp;%s</label>',
esc_attr(Plugin::get_id()), esc_attr(Plugin::get_id()),
esc_attr($args['name']), esc_attr($args['name']),
esc_attr($name), esc_attr($name),
checked(self::is_checked($args['name'], $name), display: false), checked(self::is_checked($args['name'], $name), display: false),
esc_html($label), esc_html($label)
esc_html($name)
), ),
array_keys($args['options']), array_keys($args['options']),
array_values($args['options']) array_values($args['options'])
)); ));
if (!empty($args['description'] ?? '')) {
printf(
'<p class="description" id="%s-description">%s</p>',
esc_attr($args['name']),
nl2br($args['description'])
);
}
} }
public static function get_url():string { public static function get_url():string {