'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; } }