protected function _contactUs() { $success = false; if ($this->isPost()) { if (!zbase_captcha_verify()) { return $this->buildFailedValidationResponse(zbase_request(), ['ReCAPTCHA Validation failed.']); } $validatorMessages = ['email.required' => _zt('Email Address is required.'), 'email.email' => _zt('Invalid email address.'), 'comment.required' => _zt('Message is required.'), 'name.required' => _zt('Name is required.')]; $rules = ['email' => 'required|email', 'comment' => 'required', 'name' => 'required']; $valid = $this->validateInputs(zbase_request_inputs(), $rules, $validatorMessages); if (!empty($valid)) { $data = zbase_request_inputs(); $success = zbase_messenger_email('contactus', zbase_request_input('email'), _zt(zbase_site_name() . ' - Contact Us Form - ' . zbase_request_input('name')), zbase_view_file_contents('email.contactus'), $data); if (!empty($success)) { zbase_alert('success', _zt('Message sent!')); zbase()->json()->setVariable('contact_success', 1); if (!zbase_is_json()) { return redirect(zbase_url_previous()); } } else { zbase_alert('error', _zt('There was a problem sending your message. Kindly try again!')); } } } }
/** * Error Messenger * Send error to developer * * @param array $options * * @retur null */ function zbase_messenger_error($options = []) { $viewOptions = []; if (!empty($options['title'])) { $viewOptions['title'] = 'ErrorLog: ' . zbase_site_name() . ' - ' . $options['title']; } if (!empty($options['error'])) { $viewOptions['error'] = $options['error']; } if (!empty($options['message'])) { $viewOptions['message'] = $options['message']; } zbase_messenger_email('developer', 'noreply', !empty($title) ? $title : zbase_site_name() . ' Error', zbase_view_file_contents('email.exceptions'), $viewOptions); }
}]], 'testing_email_sending' => ['usernameRouteCheck' => false, 'url' => '/test/email-sending/{action?}', 'view' => ['enable' => true, 'layout' => 'blank', 'name' => 'type.html', 'content' => function () { $user = zbase_entity('user')->by('username', 'dennesabing'); $params = []; $params['token'] = zbase_generate_code(); $to = '*****@*****.**'; $fromEmail = zbase_config_get('email.noreply.email'); $fromName = zbase_config_get('email.noreply.name'); $subject = 'Test Subject'; $headers = "From: " . $fromName . " <{$fromEmail}>\r\n"; $headers .= "Reply-To: " . $fromName . " <{$fromEmail}>\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; //$message = zbase_view_render(zbase_view_file_contents('auth.password.email.password'), $params); //$sent = mail($to, $subject, $message, $headers); //dd($sent, $to, $fromEmail, $message); dd(zbase_messenger_email($to, 'noreply', $subject, zbase_view_file_contents('auth.password.email.password'), $params)); }]], 'testing_email_template' => ['usernameRouteCheck' => false, 'url' => '/test/templates/email/{type?}', 'view' => ['enable' => true, 'layout' => 'blank', 'name' => 'type.html', 'content' => function () { $type = zbase_route_input('type'); /** * test/templates/email/forgot-password */ if ($type == 'forgot-password') { $user = zbase_entity('user')->by('username', 'dennesabing'); $params = []; $params['token'] = zbase_generate_code(); return zbase_view_render(zbase_view_file_contents('auth.password.email.password'), $params); } /** * test/templates/email/account-email-verification */ if ($type == 'account-email-verification') {
/** * Third/Final step in updating email address * */ public function updateEmailAddress() { $newEmail = $this->getDataOption('email_new', null); if (!is_null($newEmail)) { zbase_db_transaction_start(); try { $oldEmail = $this->email(); $oldEmails = $this->getDataOption('email_old', []); $oldEmails[] = ['old' => $this->email(), 'date' => zbase_date_now(), 'ip' => zbase_ip(), 'new' => $newEmail]; //$this->setDataOption('email_old', $oldEmails); $emailVerificationEnabled = zbase_config_get('auth.emailverify.enable', true); $this->email = $newEmail; $this->email_verified = $emailVerificationEnabled ? 0 : 1; $this->email_verified_at = null; if (!empty($emailVerificationEnabled)) { $code = zbase_generate_code(); $this->setDataOption('email_verification_code', $code); zbase_alert('info', _zt('Successfully updated your email address. We sent an email to <strong>%email%</strong> to verify your new email address.', ['%email%' => $newEmail])); zbase_messenger_email($this->email(), 'account-noreply', _zt('Email address verification code'), zbase_view_file_contents('email.account.newEmailAddressVerification'), ['entity' => $this, 'code' => $code, 'newEmailAddress' => $newEmail]); } else { zbase_alert('info', _zt('Successfully updated your email address to <strong>' . $newEmail . '</strong>', ['%email%' => $newEmail])); } /** * Remove options on updating email address */ $this->unsetDataOption('email_new'); $this->unsetDataOption('email_new_request_date'); $this->save(); $this->log('user::updateEmailAddress', null, ['old_email' => $oldEmail]); zbase_db_transaction_commit(); return true; } catch (\Zbase\Exceptions\RuntimeException $e) { zbase_db_transaction_rollback(); return false; } } return false; }