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); }
* routes.home.view.name = view name * routes.home.view.enable = true|false * routes.home.view.layout = true|false, to return with layout * routes.home.method = defaultMethod * routes.home.method.post = postMethod * routes.home.method.get = getMethod * routes.home.form.enable = true|false * routes.home.url = / * routes.home.params = [] * routes.home.middleware = * routes.home.navIndex = The Index name relative to nav.front.main or nav.main * routes.home.middleware.guest = true|false, * routes.home.middleware.guestOnly = true|false, * routes.home.middleware.auth = true|false, * routes.home.middleware.admin = Admin only * routes.home.middleware.access = If this !empty(), then, user will be check if he has this access/role. Specific access check zbase_auth_is($access) * routes.home.enable = true|false * routes.home.httpverb = [get,post, put, patch, delete, options] * routes.home.children = child routes. * routes.home.backend = true|false, if to be loaded on backend * routes.adminkey * routes.adminkey.enable = FALSE, should always be false, so system will not process this * routes.adminkey.key = admin base URL e.g. domain.com/admin or domain.com/zadamin; default is admin */ return ['routes' => ['adminkey' => ['enable' => false, 'key' => zbase_admin_key()], zbase_admin_key() => ['controller' => ['name' => 'backend', 'method' => 'index', 'enable' => true], 'page' => ['title' => function () { return zbase_site_name(); }], 'url' => '/' . zbase_admin_key(), 'middleware' => ['admin' => true], 'enable' => true, 'backend' => true, 'children' => ['login' => ['controller' => ['name' => 'auth', 'method' => 'login', 'enable' => true], 'middleware' => ['guestOnly' => true], 'page' => ['headTitle' => function () { return 'Login'; }], 'form' => ['enable' => true], 'backend' => true, 'enable' => true], 'logout' => ['controller' => ['name' => 'auth', 'method' => 'logout', 'enable' => true], 'middleware' => ['auth' => true], 'backend' => true, 'enable' => true], 'file' => ['controller' => ['name' => 'post', 'method' => 'file', 'enable' => true, 'params' => ['table' => null, 'action' => null, 'id' => null, 'file' => null]], 'middleware' => ['auth' => true], 'httpVerb' => ['post', 'get'], 'url' => 'post-file/{table?}/{action?}/{id?}/{file?}', 'backend' => true, 'enable' => true], 'filetmp' => ['controller' => ['name' => 'post', 'method' => 'filetmp', 'enable' => true, 'params' => ['table' => null, 'action' => null, 'id' => null, 'file' => null]], 'middleware' => ['auth' => true], 'httpVerb' => ['post', 'get'], 'url' => 'post-file/{table?}/{action?}/{file?}', 'backend' => true, 'enable' => true]]], 'index' => ['controller' => ['name' => 'page', 'method' => 'index', 'enable' => true], 'url' => '/', 'enable' => true], 'home' => ['controller' => ['name' => 'page', 'method' => 'home', 'enable' => true], 'page' => ['title' => null, 'headTitle' => 'Home', 'subTitle' => null], 'url' => '/home', 'middleware' => ['auth' => true], 'enable' => true], 'login' => ['controller' => ['name' => 'auth', 'method' => 'login', 'enable' => true], 'page' => ['title' => 'Login', 'headTitle' => 'Login', 'subTitle' => null, 'breadcrumbs' => [['label' => 'Login', 'link' => '#']]], 'form' => ['enable' => true], 'url' => '/login', 'middleware' => ['guestOnly' => true], 'enable' => true], 'logout' => ['controller' => ['name' => 'auth', 'method' => 'logout', 'enable' => true], 'url' => '/logout', 'middleware' => ['auth' => true], 'enable' => true], 'register' => ['controller' => ['name' => 'auth', 'method' => 'register', 'enable' => true], 'page' => ['title' => 'Register', 'headTitle' => 'Register', 'subTitle' => null, 'breadcrumbs' => [['label' => 'Register', 'link' => '#']]], 'form' => ['enable' => true], 'url' => '/register', 'middleware' => ['guestOnly' => true], 'enable' => true], 'password' => ['controller' => ['name' => 'password', 'method' => 'index', 'enable' => true], 'form' => ['enable' => true], 'page' => ['title' => 'Reset Password', 'headTitle' => 'Reset Password', 'subTitle' => null, 'breadcrumbs' => [['label' => 'Reset Password', 'link' => '#']]], 'url' => '/password', 'middleware' => ['guestOnly' => true], 'enable' => true], 'password-reset' => ['usernameroute' => false, 'controller' => ['name' => 'password', 'method' => 'reset', 'enable' => true], 'page' => ['title' => 'Reset Password', 'headTitle' => 'Reset Password', 'subTitle' => null, 'breadcrumbs' => [['label' => 'Reset Password', 'link' => '#']]], 'form' => ['enable' => true], 'url' => '/password/reset/{token?}', 'middleware' => ['guestOnly' => true], 'enable' => true], 'email-verify' => ['usernameroute' => false, 'controller' => ['name' => 'auth', 'method' => 'emailVerify', 'enable' => true, 'params' => ['email' => null, 'token' => null]], 'page' => ['title' => 'Verify Email Address', 'headTitle' => 'Verify Email Address', 'subTitle' => null, 'breadcrumbs' => [['label' => 'Verify Email Address', 'link' => '#']]], 'url' => '/email-address/verify/{email?}/{token?}', 'enable' => true], 'update-email-request' => ['usernameroute' => false, 'controller' => ['name' => 'auth', 'method' => 'emailUpdateRequestVerify', 'enable' => true, 'params' => ['email' => null, 'token' => null]], 'page' => ['title' => 'Email Update Request', 'headTitle' => 'Email Update Request', 'subTitle' => null, 'breadcrumbs' => [['label' => 'Email Update Request', 'link' => '#']]], 'url' => '/email-addres-update/request/{email?}/{token?}', 'enable' => true], 'phpinfo' => ['command' => function () { return phpinfo(); }, 'url' => '/phpinfo', 'enable' => true], 'contact' => ['controller' => ['name' => 'page', 'method' => 'contact', 'enable' => true], 'form' => ['enable' => true], 'url' => '/contact-us', 'enable' => true, 'page' => ['title' => 'Contact Us', 'headTitle' => 'Contact Us', 'subTitle' => null, 'breadcrumbs' => [['label' => 'Contact Us', 'link' => '#']]]], 'userImage' => ['controller' => ['name' => 'user', 'method' => 'image', 'enable' => true], 'url' => '/user/img/{id?}/{image?}/{w?}/{h?}/{q?}.{ext?}', 'enable' => true], 'nodeImage' => ['controller' => ['name' => 'node', 'method' => 'image', 'enable' => true], 'url' => '/img/{node?}/{id?}/{w?}/{h?}/{q?}.{ext?}', 'enable' => true], 'nodeCategoryImage' => ['controller' => ['name' => 'node', 'method' => 'imageCategory', 'enable' => true], 'url' => '/img-category/{node?}/{id?}/{w?}/{h?}/{q?}.{ext?}', 'enable' => true], 'api' => ['usernameroute' => false, 'controller' => ['name' => 'api', 'method' => 'index', 'enable' => true], 'httpVerb' => ['get', 'post', 'put', 'patch'], 'url' => '/api/{username}/{key}/{format}/{module}/{object}/{method}/{paramOne?}/{paramTwo?}/{paramThree?}/{paramFour?}/{paramFive?}/{paramSix?}', 'enable' => true], 'telegramhook' => ['usernameroute' => false, 'controller' => ['name' => 'telegram', 'method' => 'telegramHook', 'enable' => true], 'httpVerb' => ['post'], 'url' => '/telegram/hook', 'enable' => true], 'file' => ['controller' => ['name' => 'post', 'method' => 'file', 'enable' => true, 'params' => ['table' => null, 'action' => null, 'id' => null, 'file' => null]], 'httpVerb' => ['post', 'get'], 'url' => 'post-file/{table?}/{action?}/{id?}/{file?}', 'enable' => true], 'filetmp' => ['controller' => ['name' => 'post', 'method' => 'filetmp', 'enable' => true, 'params' => ['table' => null, 'action' => null, 'id' => null, 'file' => null]], 'httpVerb' => ['post', 'get'], 'url' => 'post-file-tmp/{table?}/{action?}/{file?}', 'enable' => true]]];
?> </span> <br /> <br /> <a href="<?php echo zbase_url_from_route('login'); ?> ">Login Here</a> <?php } else { ?> <?php if (!empty($emailVerificationEnabled)) { ?> <h1>Welcome to <?php echo zbase_site_name(); ?> </h1> <p>Below is your Email verification code</p> <span>Email: <?php echo $entity->email(); ?> </span> <br /> <span>Code: <?php echo $code; ?> </span> <br /> <br />
/** * SEnd the welcome message * @param array $attributes The Original Attributes */ public function sendWelcomeMessage($attributes) { zbase_db_transaction_start(); try { $code = null; if ($this->passwordAutoGenerate()) { zbase_alert('info', _zt('We sent an email to %email% with your login information.', ['%email%' => $this->email()])); } else { if ($this->emailVerificationEnabled()) { $code = zbase_generate_code(); $this->setDataOption('email_verification_code', $code); zbase_alert('info', _zt('We sent an email to %email% with a link to complete your registration.', ['%email%' => $this->email()])); $this->save(); } } $subject = zbase_config_get('email.account.new.subject', _zt('Welcome to ' . zbase_site_name() . '!')); zbase_messenger_email($this->email(), 'account-noreply', $subject, zbase_view_file_contents('email.account.new'), ['entity' => $this, 'code' => $code, 'attributes' => $attributes]); zbase_db_transaction_commit(); return true; } catch (\Zbase\Exceptions\RuntimeException $e) { zbase_db_transaction_rollback(); return false; } }
/** * Return a new user Code * * @return string */ public function checkUserCode(User $user) { $userCode = \DB::table('user_tokens')->where(['taggable_type' => 'telegram', 'user_id' => $user->id()])->first(); if (!empty($userCode)) { $codeFile = zbase_storage_path() . '/tg/' . $userCode->token; if (file_exists($codeFile)) { $chatId = trim(file_get_contents($codeFile)); if (!empty($chatId)) { $user->setDataOption('telegram_chat_id', $chatId); $user->save(); $user->clearEntityCacheById(); $this->send($user, 'Welcome, you have successfully enabled ' . zbase_site_name() . ' notifications.'); unlink($codeFile); return true; } } } return false; }