<?php
|
namespace JVBase\base;
|
/**
|
* Custom settings for the login page can be set here
|
*/
|
$jvbLogin = apply_filters('jvb_login', []);
|
define('JVB_LOGIN', $jvbLogin);
|
|
class Login {
|
protected array $login;
|
protected array $favourites = [
|
'title' => 'Save your favourites',
|
'description' => null,
|
'submit' => null,
|
'extra' => [],
|
'footer' => '',
|
'email' => '',
|
'successTitle' => '',
|
'successDescription' => []
|
];
|
protected array $lostPassword;
|
protected array $resetPassword;
|
protected array $register;
|
protected array $logout;
|
protected array $magic;
|
|
protected array $types = ['login', 'favourites','lostPassword','resetPassword','register','logout', 'magic'];
|
|
public function __construct() {
|
$name = get_bloginfo('name');
|
$this->login = [
|
'title' => 'Sign in',
|
'description' => [],
|
'submit' => 'Sign In',
|
'extra' => [],
|
'footer' => '',
|
'email' => '',
|
'successTitle' => '',
|
'successDescription' => []
|
];
|
$this->register = [
|
'title' => 'Create Your Account',
|
'description' => [],
|
'submit' => 'Create Account',
|
'extra' => [],
|
'footer' => '',
|
'email' => '['.$name.'] Finish Creating Your Account',
|
'successTitle' => 'Success!',
|
'successDescription' => ['See your email for next steps','(Check your spam folder if you cannot find it after a couple minutes.)']
|
];
|
|
$this->lostPassword = [
|
'title' => 'Reset Password',
|
'description' => ['Forgot your password?', 'We\'ll send you a reset link to your email'],
|
'submit' => 'Send Reset Link',
|
'extra' => [],
|
'footer' => '',
|
'email' => '',
|
'successTitle' => 'Success!',
|
'successDescription' => ['Check your email for reset instructions']
|
];
|
$this->resetPassword = [
|
'title' => 'Reset Your Password',
|
'description' => ['Enter your new password below.'],
|
'submit' => 'Change Password',
|
'extra' => [],
|
'footer' => '',
|
'email' => '',
|
'successTitle' => '',
|
'successDescription' => []
|
];
|
|
$this->logout = [
|
'title' => 'Logged out!',
|
'description' => [''],
|
'submit' => '',
|
'extra' => [],
|
'footer' => '',
|
'email' => '',
|
'successTitle' => '',
|
'successDescription' => []
|
];
|
|
$this->magic = [
|
'title' => 'Log In with Magic Link!',
|
'description' => ['Enter your email.','You\'ll get an email with a magic link.','Click it, and you\'re logged in!'],
|
'submit' => jvbIcon('magic-wand').'Send Magic Link',
|
'extra' => [],
|
'footer' => '',
|
'email' => '',
|
'successTitle' => '',
|
'successDescription' => []
|
];
|
|
|
}
|
|
protected function checkType(string $type):bool
|
{
|
return in_array($type, $this->types);
|
}
|
public function setTitle(string $type, string $title):void
|
{
|
if (!$this->checkType($type)) {
|
return;
|
}
|
$this->$type['title'] = $title;
|
}
|
public function getTitle(string $type):string
|
{
|
if (!$this->checkType($type) ||
|
!array_key_exists('title', $this->$type)) {
|
return '';
|
}
|
return $this->$type['title'];
|
}
|
|
public function setDescription(string $type, array|string $description):void
|
{
|
if (!$this->checkType($type)) {
|
return;
|
}
|
$this->$type['description'] = $description;
|
}
|
public function getDescription(string $type):array
|
{
|
if (!$this->checkType($type) ||
|
!array_key_exists('description', $this->$type) ||
|
empty($this->$type['description'])) {
|
return [];
|
}
|
if (is_string($this->$type['description'])) {
|
return [$this->$type['description']];
|
}
|
return $this->$type['description'];
|
}
|
public function setSubmit(string $type, string $submit):void
|
{
|
if (!$this->checkType($type)) {
|
return;
|
}
|
$this->$type['submit'] = $submit;
|
}
|
|
public function getSubmit(string $type):string
|
{
|
if (!$this->checkType($type) ||
|
!array_key_exists('submit', $this->$type) ||
|
empty($this->$type['submit'])) {
|
return $this->login['submit'];
|
}
|
return $this->$type['submit'];
|
}
|
|
public function getLabels(string $type):array
|
{
|
if (!$this->checkType($type)) {
|
return [];
|
}
|
return $this->$type;
|
}
|
}
|