From c204185ae86a98994f80010abf35a190c9406739 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 12 Jul 2026 18:08:19 +0000
Subject: [PATCH] =Refactor of Integrations.php. Separated different functionality into traits that classes can use to add that functionality. Hopefully will make maintaining it a little easier. Still have to finish up, as well as refactoring the individual classes to utilize the new system.
---
inc/managers/LoginManager.php | 40 ++++++++++++++++++++++++++++------------
1 files changed, 28 insertions(+), 12 deletions(-)
diff --git a/inc/managers/LoginManager.php b/inc/managers/LoginManager.php
index 970b5e6..af45d49 100644
--- a/inc/managers/LoginManager.php
+++ b/inc/managers/LoginManager.php
@@ -43,7 +43,7 @@
$this->cache = Cache::for('login');
$this->cache->flush();
// Initialize magic link support if enabled
- if (Site::has('magicLink')) {
+ if (Site::has('magic_link')) {
$this->initMagicLinkSupport();
}
@@ -65,8 +65,8 @@
add_filter( 'logout_url', [$this, 'logoutUrl'], 10, 2 );
// Allow other features to register handlers
do_action('jvbLoginManagerInit', $this);
- add_action('user_register', array($this, 'saveRegistrationFields'), 999, 2);
- add_filter('the_seo_framework_sitemap_exclude_ids', [$this, 'excludeLoginSitemap'], 10, 1);
+ add_action('user_register', [$this, 'saveRegistrationFields'], 50, 2);
+ add_filter('the_seo_framework_sitemap_exclude_ids', [$this, 'excludeLoginSitemap'], 8, 1);
}
public static function getInstance():self
{
@@ -75,7 +75,10 @@
public function excludeLoginSitemap(array $ids): array
{
- $ids[] = $this->getLoginPage();
+ $loginPage = $this->getLoginPage();
+ if (!empty($loginPage)) {
+ $ids = array_merge($ids, [$loginPage]);
+ }
return $ids;
}
/**************************************************************************
@@ -140,7 +143,7 @@
'hint' => 'Have a referral code? Paste it here!'
];
}
- $canRegister = Registrar::getFeatured('can_register', 'user');
+ $canRegister = Registrar::withFeature('can_register', 'user');
if (!empty($canRegister)) {
foreach ($canRegister as $role) {
$registrar = Registrar::getInstance($role);
@@ -219,12 +222,14 @@
'subtype' => 'password',
'label' => __('New Password', 'jvb'),
'required' => true,
+ 'autocomplete'=> 'new-password'
],
'pass2' => [
'type' => 'text',
'subtype' => 'password',
'label' => __('Confirm Password', 'jvb'),
'required' => true,
+ 'autocomplete'=> 'new-password'
],
];
break;
@@ -354,7 +359,7 @@
protected function initMagicLinkSupport(): void
{
- if (!Site::has('magicLink')) {
+ if (!Site::has('magic_link')) {
return;
}
}
@@ -453,6 +458,7 @@
protected function customStyles():void
{
$logo = get_theme_mod('custom_logo');
+ $small = $large = '';
if ($logo) {
$small = wp_get_attachment_image_src($logo, 'medium')[0]??'';
$large = wp_get_attachment_image_src($logo, 'large')[0]??'';
@@ -549,7 +555,7 @@
{
$form = $this->action.'form';
?>
- <section class="login-box col btw">
+ <section class="login-box col y-btw">
<h1><?=$this->labels['title']?></h1>
<?= $this->labels['description'] ?>
@@ -568,7 +574,7 @@
}
?>
- <div class="options row btw">
+ <div class="options row x-btw">
<?php
switch ($this->action) {
case 'login': ?>
@@ -593,7 +599,7 @@
</div>
</section>
- <div class="navigation row btw">
+ <div class="navigation row x-btw">
<a href="<?= get_home_url() ?>">Home</a>
<?php
$privacy = get_privacy_policy_url();
@@ -626,7 +632,7 @@
$redirect = !empty($redirect) ? $redirect : esc_attr($_GET['redirect_to'] ?? '');
return sprintf(
- '<form name="%sform" method="post" data-action="jvb_%s">
+ '<form name="%sform" method="post" data-action="jvb_%s" data-save="auth/login">
%s%s%s
<input type="hidden" name="action" value="jvb_%s">
<input type="hidden" name="redirect_to" value="%s">
@@ -635,7 +641,7 @@
%s
%s
%s
- <div class="row btw nowrap">
+ <div class="row x-btw nowrap">
<button type="submit" class="button button-primary button-large">%s</button>
%s
</div>
@@ -652,10 +658,19 @@
$additionalInputs,
$fields,
$turnstile,
- $this->labels['submit'],
+ $this->labels['submit']??$this->determineSubmit($action),
$magicLink
);
}
+ protected function determineSubmit(string $action):string
+ {
+ return match($action) {
+ 'rp','resetpass' => 'Reset Password',
+ 'register' => 'Register',
+ 'lostpassword' => 'Send me a reset link',
+ default => 'Login',
+ };
+ }
protected function renderHeader():void
{
?>
@@ -873,6 +888,7 @@
$this->maybeTurnstileScripts();
wp_enqueue_script('jvb-form');
+ wp_enqueue_script('jvb-login');
$action = $this->getAction();
$redirect_to = isset($_GET['redirect_to']) ? esc_url_raw($_GET['redirect_to']) : '';
--
Gitblit v1.10.0