本文整理匯總了PHP中Model_Config::getvalues方法的典型用法代碼示例。如果您正苦於以下問題:PHP Model_Config::getvalues方法的具體用法?PHP Model_Config::getvalues怎麽用?PHP Model_Config::getvalues使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Model_Config
的用法示例。
在下文中一共展示了Model_Config::getvalues方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: getConfig
/**
* get config
* get email config values from db and set it to ready for FuelPHP email configuration array.
*
* @author Vee Winch.
* @return array all email configuration in db.
*/
public static function getConfig()
{
$cfg_email = \Model_Config::getvalues(array('mail_protocol', 'mail_mailpath', 'mail_smtp_host', 'mail_smtp_user', 'mail_smtp_pass', 'mail_smtp_port'));
$config['driver'] = $cfg_email['mail_protocol']['value'];
$config['sendmail_path'] = $cfg_email['mail_mailpath']['value'];
$config['smtp']['host'] = $cfg_email['mail_smtp_host']['value'];
$config['smtp']['port'] = (int) $cfg_email['mail_smtp_port']['value'];
$config['smtp']['username'] = $cfg_email['mail_smtp_user']['value'];
$config['smtp']['password'] = $cfg_email['mail_smtp_pass']['value'];
$config['smtp']['timeout'] = 20;
$config['newline'] = "\r\n";
unset($cfg_email);
return $config;
}
示例2: action_index
public function action_index()
{
// load language
\Lang::load('account');
// is user logged in?
if (\Model_Accounts::isMemberLogin() == false) {
\Response::redirect(\Uri::create('account/login') . '?rdr=' . urlencode(\Uri::main()));
}
// load config from db.
$cfg_values = array('allow_avatar', 'avatar_size', 'avatar_allowed_types');
$config = \Model_Config::getvalues($cfg_values);
$output['config'] = $config;
// set config data to display in view file.
$output['allow_avatar'] = $config['allow_avatar']['value'];
$output['avatar_size'] = $config['avatar_size']['value'];
$output['avatar_allowed_types'] = $config['avatar_allowed_types']['value'];
unset($cfg_values);
// read flash message for display errors. this is REQUIRED if you coding the check login with simultaneous login detection on.
$form_status = \Session::get_flash('form_status');
if (isset($form_status['form_status']) && isset($form_status['form_status_message'])) {
$output['form_status'] = $form_status['form_status'];
$output['form_status_message'] = $form_status['form_status_message'];
}
unset($form_status);
// get account id
$cookie_account = \Model_Accounts::forge()->getAccountCookie();
// get account data
$query = \Model_Accounts::query()->where('account_id', $cookie_account['account_id'])->where('account_username', $cookie_account['account_username'])->where('account_email', $cookie_account['account_email']);
if ($query->count() > 0) {
// found
$row = $query->get_one();
$output['row'] = $row;
// loop set data for display in form.
foreach ($row as $key => $field) {
$output[$key] = $field;
}
// get account_fields data of current user and send to views form
// to access data from view, use $account_field['field_name']. for example: the field_name is phone, just use $account_field['phone'];
$account_fields = \Model_AccountFields::getData($cookie_account['account_id']);
if ($account_fields->count() > 0) {
foreach ($account_fields as $af) {
$output['account_field'][$af->field_name] = \Extension\Str::isJsonFormat($af->field_value) ? json_decode($af->field_value, true) : $af->field_value;
}
}
unset($account_fields, $af);
// get timezone list to display.
\Config::load('timezone', 'timezone');
$output['timezone_list'] = \Config::get('timezone.timezone', array());
unset($query);
} else {
// not found account.
unset($cookie_account, $query);
\Model_Accounts::logout();
\Response::redirect(\Uri::create('account/login') . '?rdr=' . urlencode(\Uri::main()));
}
// if form submitted
if (\Input::method() == 'POST') {
// store data for save to db.
$data['account_id'] = $cookie_account['account_id'];
$data['account_username'] = $cookie_account['account_username'];
//trim(\Input::post('account_username'));//no, do not edit username.
$data['account_old_email'] = $cookie_account['account_email'];
$data['account_email'] = \Security::strip_tags(trim(\Input::post('account_email')));
$data['account_password'] = trim(\Input::post('account_password'));
$data['account_new_password'] = trim(\Input::post('account_new_password'));
$data['account_display_name'] = \Security::htmlentities(\Input::post('account_display_name'));
$data['account_firstname'] = \Security::htmlentities(trim(\Input::post('account_firstname', null)));
if ($data['account_firstname'] == null) {
$data['account_firstname'] = null;
}
$data['account_middlename'] = \Security::htmlentities(trim(\Input::post('account_middlename', null)));
if ($data['account_middlename'] == null) {
$data['account_middlename'] = null;
}
$data['account_lastname'] = \Security::htmlentities(trim(\Input::post('account_lastname', null)));
if ($data['account_lastname'] == null) {
$data['account_lastname'] = null;
}
$data['account_birthdate'] = \Security::strip_tags(trim(\Input::post('account_birthdate', null)));
if ($data['account_birthdate'] == null) {
$data['account_birthdate'] = null;
}
$data['account_signature'] = \Security::htmlentities(trim(\Input::post('account_signature', null)));
if ($data['account_signature'] == null) {
$data['account_signature'] = null;
}
$data['account_timezone'] = \Security::strip_tags(trim(\Input::post('account_timezone')));
$data['account_language'] = \Security::strip_tags(trim(\Input::post('account_language', null)));
if ($data['account_language'] == null) {
$data['account_language'] = null;
}
// store data for account_fields
$data_field = array();
if (is_array(\Input::post('account_field'))) {
foreach (\Input::post('account_field') as $field_name => $field_value) {
if (is_string($field_name)) {
if (is_array($field_value)) {
$field_value = json_encode($field_value);
}
$data_field[$field_name] = $field_value;
//.........這裏部分代碼省略.........
示例3: uploadAvatar
/**
* upload avatar
*
* @param array $data
* @return mixed.
*/
public function uploadAvatar(array $data = array())
{
if (isset($data['account_id']) && !is_numeric($data['account_id'])) {
return 'Account ID is required.';
}
if (!isset($data['input_field'])) {
$data['input_field'] = 'account_avatar';
}
$cfg_values = array('allow_avatar', 'avatar_size', 'avatar_allowed_types', 'avatar_path');
$config = \Model_Config::getvalues($cfg_values);
unset($cfg_values);
if ($config['allow_avatar']['value'] != '1') {
return \Lang::get('account_didnot_allow_avatar');
}
$upload = new \Extension\Upload();
$upload->allowed_ext = explode('|', $config['avatar_allowed_types']['value']);
$upload->auto_validate_mime = true;
$upload->allowed_max_size = $config['avatar_size']['value'] . 'K';
$upload->directory = $config['avatar_path']['value'];
$upload->new_name = md5(\Str::random('alnum', 5) . time());
$upload->overwrite = false;
if ($upload->upload($data['input_field']) == false) {
unset($config);
return '<ul>' . $upload->displayErrors('<li>', '</li>') . '</ul>';
} else {
// upload success. delete old avatar but not delete path in db.
if (isset($data['account_id'])) {
$this->deleteAccountAvatar($data['account_id'], false);
}
// get uploaded data
$upload_data = $upload->getData();
// check required memory to resize image to prevent error.
if (\Extension\Image::checkMemAvailbleForResize($config['avatar_path']['value'] . $upload_data['name'], 400, 1000, false, 3.9) == true) {
// resize to prevent very large image.
include_once APPPATH . 'vendor' . DS . 'okvee' . DS . 'vimage' . DS . 'Okvee' . DS . 'Vimage' . DS . 'Vimage.php';
$vimage = new \Okvee\Vimage\Vimage($config['avatar_path']['value'] . $upload_data['name']);
$vimage->resize(400, 1000);
$vimage->save($config['avatar_path']['value'] . $upload_data['name']);
$vimage->clear();
unset($vimage);
} else {
// delete uploaded file
\File::delete($config['avatar_path']['value'] . $upload_data['name']);
// delete old avatar path in db
if (isset($data['account_id'])) {
$this->deleteAccountAvatar($data['account_id']);
}
// not enough memory to resize image.
unset($config, $upload, $upload_data);
return \Lang::get('account_not_enough_memory_to_resize_image');
}
// done.
return array('result' => true, 'account_avatar' => $config['avatar_path']['value'] . $upload_data['name']);
}
}
示例4: action_index
public function action_index()
{
// load language
\Lang::load('admin');
\Lang::load('account');
// load config from db.
$cfg_values = array('member_max_login_fail', 'member_login_fail_wait_time');
$config = Model_Config::getvalues($cfg_values);
$output['config'] = $config;
unset($cfg_values);
// set active theme for admin. this controller is not based on admin controller, then it is require to set to admin theme.
$theme = \Theme::instance();
$theme->active($this->theme_system_name);
// set login redirect
if (\Input::get('rdr') != null) {
$output['go_to'] = urlencode(\Input::get('rdr'));
} else {
$output['go_to'] = urlencode(\Uri::create('admin'));
}
// read flash message for display errors. this is REQUIRED if you coding the check login with simultaneous login detection on.
// this is REQUIRED in login page. because failed 'is login' check will redirect to here.
$form_status = \Session::get_flash('form_status');
if (isset($form_status['form_status']) && isset($form_status['form_status_message'])) {
$output['form_status'] = $form_status['form_status'];
$output['form_status_message'] = $form_status['form_status_message'];
}
unset($form_status);
// count login fail and show captcha.
if (\Session::get('login_all_fail_count', '0') >= $this->login_fail_time_show_captcha || \Session::get('show_captcha', false) === true) {
$output['show_captcha'] = true;
// if last time login failed is over wait time, reset it
if ((time() - \Session::get('login_all_fail_time', time())) / 60 > $config['member_login_fail_wait_time']['value']) {
// reset captcha requirement and wait time.
\Session::set('login_all_fail_count', \Session::get('login_all_fail_count') - ($this->login_fail_time_show_captcha + 1));
// do not reset this, just reduce to fail time show captcha+1. doing this to prevent brute force attack.
\Session::delete('login_all_fail_time');
\Session::delete('show_captcha');
}
}
// browser check
$output['browser_check'] = $this->browserCheck();
// if form submitted --------------------------------------------------------------------------------------------
if (\Input::method() == 'POST') {
// store data for login
$data['account_identity'] = trim(\Input::post('account_identity'));
if (strpos($data['account_identity'], '@') === false) {
$data['account_username'] = $data['account_identity'];
} else {
$data['account_email'] = $data['account_identity'];
}
$data['account_password'] = trim(\Input::post('account_password'));
// validate form.
$validate = \Validation::forge();
// check username or email required
$validate->add('account_identity', \Lang::get('account_username_or_email'), array(), array('required'));
$validate->add('account_password', \Lang::get('account_password'), array(), array('required'));
if (!\Extension\NoCsrf::check()) {
// validate token failed
$output['form_status'] = 'error';
$output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token');
$output['input_csrf_token'] = \Extension\NoCsrf::generate();
} elseif (!$validate->run()) {
// validate failed
$output['form_status'] = 'error';
$output['form_status_message'] = $validate->show_errors();
if (\Input::is_ajax()) {
$response = new \Response();
$response->set_header('Content-Type', 'application/json');
$response->body(json_encode($output));
return $response;
}
} else {
// count login failed and wait if it was exceed max failed allowed.
if (\Session::get('login_all_fail_count', '0') > $config['member_max_login_fail']['value'] && (time() - \Session::get('login_all_fail_time', time())) / 60 <= $config['member_login_fail_wait_time']['value']) {
// continuous login failed over max fail limit.
$result = Lang::get('account_login_failed_too_many', array('wait_minute' => $config['member_login_fail_wait_time']['value'], 'wait_til_time' => date('d F Y H:i:s', time() + $config['member_login_fail_wait_time']['value'] * 60)));
} else {
// not reach maximum limit
// check if show captcha
if (isset($output['show_captcha']) && $output['show_captcha'] === true) {
include APPPATH . 'vendor' . DS . 'securimage' . DS . 'securimage.php';
$securimage = new \Securimage();
if ($securimage->check(\Input::post('captcha')) == false) {
$result = \Lang::get('account_wrong_captcha_code');
}
}
// try to login. ---------------------------------------------
if (!isset($result) || isset($result) && $result == null) {
$result = \Model_Accounts::adminLogin($data);
}
}
// check login result ----------------------------------------------
if ($result === true) {
// success
$all_fail_count = 0;
\Session::delete('login_all_fail_count');
\Session::delete('login_all_fail_time');
\Session::delete('show_captcha');
if (\Input::is_ajax()) {
$output['login_status'] = true;
//.........這裏部分代碼省略.........
示例5: action_edit
public function action_edit($account_id = '')
{
// set redirect url
$redirect = $this->getAndSetSubmitRedirection();
// check permission
if (\Model_AccountLevelPermission::checkAdminPermission('account_perm', 'account_edit_perm') == false) {
\Session::set_flash('form_status', array('form_status' => 'error', 'form_status_message' => \Lang::get('admin_permission_denied', array('page' => \Uri::string()))));
\Response::redirect($redirect);
}
// if editing guest.
if ($account_id == '0') {
\Response::redirect($redirect);
}
// if no account id, get current user's' account id
if ($account_id == null) {
$cookie = \Model_Accounts::forge()->getAccountCookie('admin');
if (isset($cookie['account_id'])) {
$account_id = $cookie['account_id'];
} else {
unset($cookie);
\Response::redirect($redirect);
}
unset($cookie);
}
// load language
\Lang::load('account');
// load config from db.
$cfg_values = array('allow_avatar', 'avatar_size', 'avatar_allowed_types', 'site_timezone');
$config = \Model_Config::getvalues($cfg_values);
$output['config'] = $config;
// set config data to display in view file.
$output['allow_avatar'] = $config['allow_avatar']['value'];
$output['avatar_size'] = $config['avatar_size']['value'];
$output['avatar_allowed_types'] = $config['avatar_allowed_types']['value'];
unset($cfg_values);
// read flash message for display errors.
$form_status = \Session::get_flash('form_status');
if (isset($form_status['form_status']) && isset($form_status['form_status_message'])) {
$output['form_status'] = $form_status['form_status'];
$output['form_status_message'] = $form_status['form_status_message'];
}
unset($form_status);
// get timezone list to display.
\Config::load('timezone', 'timezone');
$output['timezone_list'] = \Config::get('timezone.timezone', array());
$output['default_timezone'] = $config['site_timezone']['value'];
// get levels to select
$output['account_levels'] = \Model_AccountLevelGroup::listLevels(array('no_guest' => true));
// get selected user data. -------------------------------------------------------------------------------------
$row = \Model_Accounts::find($account_id);
$output['account_id'] = $account_id;
if ($row == null) {
// not found selected user.
unset($config, $output, $row);
\Response::redirect($redirect);
}
// loop set form field.
foreach ($row as $key => $value) {
$output[$key] = $value;
}
foreach ($row->account_level as $lvl) {
$output['level_group_id'][] = $lvl->level_group_id;
}
// check if editing account that has higher level
if (\Model_Accounts::forge()->canIAddEditAccount($output['level_group_id']) == false) {
\Session::set_flash('form_status', array('form_status' => 'error', 'form_status_message' => \Lang::get('account_you_cannot_edit_account_that_contain_role_higher_than_yours')));
\Response::redirect($redirect);
}
// if form submitted --------------------------------------------------------------------------------------------
if (\Input::method() == 'POST') {
// store data for accounts table
$data['account_id'] = $account_id;
$data['account_username'] = $row->account_username;
//trim(\Input::post('account_username'));//no, do not edit username.
$data['account_old_email'] = $row->account_email;
$data['account_email'] = \Security::strip_tags(trim(\Input::post('account_email')));
$data['account_password'] = trim(\Input::post('account_password'));
$data['account_new_password'] = trim(\Input::post('account_new_password'));
$data['account_display_name'] = \Security::htmlentities(\Input::post('account_display_name'));
$data['account_firstname'] = \Security::htmlentities(trim(\Input::post('account_firstname', null)));
if ($data['account_firstname'] == null) {
$data['account_firstname'] = null;
}
$data['account_middlename'] = \Security::htmlentities(trim(\Input::post('account_middlename', null)));
if ($data['account_middlename'] == null) {
$data['account_middlename'] = null;
}
$data['account_lastname'] = \Security::htmlentities(trim(\Input::post('account_lastname', null)));
if ($data['account_lastname'] == null) {
$data['account_lastname'] = null;
}
$data['account_birthdate'] = \Security::strip_tags(trim(\Input::post('account_birthdate', null)));
if ($data['account_birthdate'] == null) {
$data['account_birthdate'] = null;
}
$data['account_signature'] = \Security::htmlentities(trim(\Input::post('account_signature', null)));
if ($data['account_signature'] == null) {
$data['account_signature'] = null;
}
$data['account_timezone'] = \Security::strip_tags(trim(\Input::post('account_timezone')));
//.........這裏部分代碼省略.........
示例6: generateTitle
/**
* Generate title by set title name and name separator position.
*
* @param string|array $title Title name. This can be array that the title will be generate respectively.
* @param string $name_position Position of name to generate. if first, the site name will come first then title name. example: site name | title 1 | title 2
* @return string Generated title.
*/
public function generateTitle($title, $name_position = 'last')
{
$cfg_values = array('site_name', 'page_title_separator');
$config = Model_Config::getvalues($cfg_values);
unset($cfg_values);
// @todo [fuelstart][basecontroller][plug] generate title plug.
$plugin = new \Library\Plugins();
if ($plugin->hasFilter('BaseControllerGenTitle')) {
$generated_title = $plugin->doFilter('BaseControllerGenTitle', $title, $name_position, $config);
if (is_string($generated_title) && ($generated_title != null || !empty($generated_title))) {
return $generated_title;
}
unset($generated_title);
}
unset($plugin);
if ($name_position == 'first') {
$output = $config['site_name']['value'];
$output .= $config['page_title_separator']['value'];
} else {
$output = '';
}
if (is_array($title)) {
if ($name_position == 'last') {
$title = array_reverse($title);
}
foreach ($title as $a_title) {
$output .= $a_title;
if ($a_title != end($title)) {
$output .= $config['page_title_separator']['value'];
}
}
} else {
$output .= $title;
}
if ($name_position == 'last') {
$output .= $config['page_title_separator']['value'];
$output .= $config['site_name']['value'];
}
unset($a_title, $config);
return $output;
}
示例7: action_index
public function action_index()
{
// load language
\Lang::load('account');
// load config from db.
$cfg_values = array('member_allow_register', 'member_verification');
$config = \Model_Config::getvalues($cfg_values);
$output['config'] = $config;
unset($cfg_values);
// pre-set form values
$output['account_username'] = null;
$output['account_email'] = null;
$output['account_password'] = null;
$output['account_confirm_password'] = null;
$output['captcha'] = null;
if (\Input::method() == 'POST' && $config['member_allow_register']['value'] == '1') {
// store data to array for send to model with add/register method.
$data['account_username'] = trim(\Input::post('account_username'));
$data['account_display_name'] = \Security::htmlentities($data['account_username']);
$data['account_email'] = \Security::strip_tags(trim(\Input::post('account_email')));
$data['account_password'] = trim(\Input::post('account_password'));
// validate form.
$validate = \Validation::forge();
$validate->add_callable(new \Extension\FsValidate());
$validate->add('account_username', \Lang::get('account_username'), array(), array('required', 'noSpaceBetweenText'));
$validate->add('account_email', \Lang::get('account_email'), array(), array('required', 'valid_email'));
$validate->add('account_password', \Lang::get('account_password'), array(), array('required'));
$validate->add('account_confirm_password', \Lang::get('account_confirm_password'), array(), array('required'))->add_rule('match_field', 'account_password');
if (!\Extension\NoCsrf::check()) {
// validate token failed
$output['form_status'] = 'error';
$output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token');
} elseif (!$validate->run()) {
// validate failed
$output['form_status'] = 'error';
$output['form_status_message'] = $validate->show_errors();
} else {
// validate pass
include APPPATH . 'vendor' . DS . 'securimage' . DS . 'securimage.php';
$securimage = new \Securimage();
if ($securimage->check(\Input::post('captcha')) == false) {
$output['form_status'] = 'error';
$output['form_status_message'] = \Lang::get('account_wrong_captcha_code');
} else {
$continue_register = true;
}
// if captcha pass
if (isset($continue_register) && $continue_register === true) {
// register action
$result = \Model_Accounts::registerAccount($data);
if ($result === true) {
$output['hide_register_form'] = true;
// if member verification is need, show those message. if no need, just show success message.
if ($config['member_verification']['value'] == '0') {
$output['form_status'] = 'success';
$output['form_status_message'] = \Lang::get('account_registration_complted');
} elseif ($config['member_verification']['value'] == '1') {
$output['form_status'] = 'success';
$output['form_status_message'] = \Lang::get('account_registration_completed_need_confirm');
} elseif ($config['member_verification']['value'] == '2') {
$output['form_status'] = 'success';
$output['form_status_message'] = \Lang::get('account_registration_completed_need_admin_verify');
}
} else {
$output['form_status'] = 'error';
$output['form_status_message'] = $result;
}
}
}
// re-populate form
$output['account_username'] = trim(\Input::post('account_username'));
$output['account_email'] = trim(\Input::post('account_email'));
//$output['account_password'] = trim(\Input::post('account_password'));
//$output['account_confirm_password'] = trim(\Input::post('account_confirm_password'));
//$output['captcha'] = \Input::post('captcha');
}
// <head> output ----------------------------------------------------------------------------------------------
$output['page_title'] = $this->generateTitle(\Lang::get('account_register'));
// <head> output ----------------------------------------------------------------------------------------------
return $this->generatePage('front/templates/account/register_v', $output, false);
}
示例8: action_index
public function action_index($account_id = '', $confirm_code = '', $action = '')
{
// load language
\Lang::load('account');
// get config
$cfg_values = array('member_confirm_wait_time');
$config = Model_Config::getvalues($cfg_values);
$output['config'] = $config;
unset($cfg_values);
$output['reset_action'] = $action;
// check account id and confirm code.
$query = \Model_Accounts::query()->where('account_id', $account_id)->where('account_confirm_code', $confirm_code);
if ($query->count() <= 0) {
$output['hide_form'] = true;
$output['form_status'] = 'error';
$output['form_status_message'] = \Lang::get('account_invalid_reset_password_request_code');
}
// if cancel reset password
if ($action == 'cancel' && $query->count() > 0) {
// cancel no need to use form, hide it.
$output['hide_form'] = true;
// empty confirm code.
$row = $query->get_one();
$row->account_confirm_code = null;
$row->account_confirm_code_since = null;
$row->save();
$output['form_status'] = 'success';
$output['form_status_message'] = \Lang::get('account_your_reset_password_request_was_cancelled');
}
// form submitted
if (\Input::method() == 'POST' && $action == 'reset') {
$data['account_password'] = trim(\Input::post('account_password'));
// validate form.
$validate = \Validation::forge();
$validate->add('account_password', \Lang::get('account_password'), array(), array('required'));
$validate->add('account_confirm_password', \Lang::get('account_confirm_password'), array(), array('required'))->add_rule('match_field', 'account_password');
if (!\Extension\NoCsrf::check()) {
// validate token failed
$output['form_status'] = 'error';
$output['form_status_message'] = \Lang::get('fslang_invalid_csrf_token');
} elseif (!$validate->run()) {
// validate failed
$output['form_status'] = 'error';
$output['form_status_message'] = $validate->show_errors();
} else {
$row = $query->get_one();
$cfg_member_confirm_wait_time = $config['member_confirm_wait_time']['value'] * 60;
if (time() - $row->account_confirm_code_since > $cfg_member_confirm_wait_time) {
// confirm wait time is too long than limit.
$output['form_status'] = 'error';
$output['form_status_message'] = \Lang::get('account_reset_password_time_expired');
// empty confirm code.
$row->account_confirm_code = null;
$row->account_confirm_code_since = null;
$row->save();
} else {
// empty confirm code and update password
$row->account_password = \Model_Accounts::forge()->hashPassword($data['account_password']);
$row->account_confirm_code = null;
$row->account_confirm_code_since = null;
$row->save();
$output['hide_form'] = true;
$output['form_status'] = 'success';
$output['form_status_message'] = \Lang::get('account_reset_password_successfully');
}
}
unset($cfg_member_confirm_wait_time, $data, $validate);
}
unset($config, $query, $row);
// <head> output ----------------------------------------------------------------------------------------------
$output['page_title'] = $this->generateTitle(\Lang::get('account_reset_password'));
// <head> output ----------------------------------------------------------------------------------------------
return $this->generatePage('front/templates/account/resetpw_v', $output, false);
}