public static function sendPasswordResetLink(\Member $member) { $email = $member->getEmail(); $locale = Localizer::get('mail.password_reset'); $num = $member->getNum(); $now = time(); $email = $member->getEmail(); $href = Router::toModule('manage', 'do_reset_password', ['num' => $num, 'exp' => time(), 'hash' => Cryption::getPasswordResetToken($num, $now, $email)]); return self::send($email, \Tbmt\view\Factory::buildMemberFullNameString($member), $locale['subject'], Localizer::insert($locale['body'], ['link' => $href], false)); }
public function buildInvitationTypeSelectGroup($fieldKey, $offType) { $label = Arr::init($this->labels, $fieldKey); $value = Arr::init($this->values, $fieldKey); $error = Arr::init($this->errors, $fieldKey); $memberTypes = Localizer::get('common.member_types'); $fieldId = $this->formName . $fieldKey; $offType--; $group = '<div class="field">' . '<label for="' . $fieldId . '">' . $label . '</label>' . '<select name="' . $fieldKey . '">'; for ($i = $offType; $i >= \Member::TYPE_MEMBER; $i--) { $group .= '<option value="' . $i . '">' . $memberTypes[$i] . '</option>'; } $group .= '</select></div>'; return $group; }
public function buildInvitationTypeSelectGroup($fieldKey, $loginType) { $label = Arr::init($this->labels, $fieldKey); $value = Arr::init($this->values, $fieldKey); $error = Arr::init($this->errors, $fieldKey); $memberTypes = Localizer::get('common.member_types'); $types = self::$invitationMapping[$loginType]; $fieldId = $this->formName . $fieldKey; $group = '<div class="field">' . '<label for="' . $fieldId . '">' . $label . '</label>' . '<select name="' . $fieldKey . '" id="' . $fieldId . '" >'; foreach ($types as $type) { $selected = ''; if ($value == $type) { $selected = 'selected="selected"'; } $group .= '<option value="' . $type . '" ' . $selected . '>' . $memberTypes[$type] . '</option>'; } $group .= '</select></div>'; return $group; }
public static function localizeErrors($results, $filters) { $locales = []; $invalid = false; foreach ($results as $key => $valid) { if ($valid === false) { $invalid = true; $filter = $filters[$key]; if (isset($filter['errorLabel'])) { $locales[$key] = Localizer::get($filter['errorLabel']); } else { $filterCode = $filter; if (isset($filter['filter'])) { $filterCode = $filter['filter']; } $locales[$key] = Localizer::get(self::$FILTER_ERROR_KEYS[$filterCode]); } } else { $locales[$key] = ''; } } return $invalid === false ? false : $locales; }
/** * Gets the error messages from the language file * * @param int $intCode * @param array $arrOptions */ public function getErrorMessage($intCode, $arrOptions = array()) { if (isset($arrOptions['error'])) { return $arrOptions['error']; } if (isset($arrOptions['message'])) { return $this->locale->insert($arrOptions['message'], array('value' => isset($arrOptions['value']) ? $arrOptions['value'] : $arrOptions['field'], 'field' => $arrOptions['field'])); } switch ($intCode) { case FILTER_VALIDATE_REQUIRED: return $this->locale->insert('error.empty', array('value' => $arrOptions['field'])); case FILTER_VALIDATE_PASSWORD: return $this->locale->get('error.password'); case FILTER_VALIDATE_USERNAME: return $this->locale->insert('error.username', array('value' => '"' . $arrOptions['value'] . '"')); case FILTER_VALIDATE_IDENTIFIER: return $this->locale->insert('error.identifier', array('value' => '"' . $arrOptions['value'] . '"')); case FILTER_VALIDATE_RESOURCE: return $this->locale->insert('error.resource', array('value' => '"' . $arrOptions['value'] . '"')); case FILTER_VALIDATE_EMAIL: return $this->locale->insert('error.not_a_address', array('value' => '"' . $arrOptions['value'] . '"', 'type' => 'E-mail')); case FILTER_VALIDATE_IPV4: return $this->locale->insert('error.not_a_address', array('value' => '"' . $arrOptions['value'] . '"', 'type' => 'IPv4')); case FILTER_VALIDATE_IPV6: return $this->locale->insert('error.not_a_address', array('value' => '"' . $arrOptions['value'] . '"', 'type' => 'IPv6')); case FILTER_VALIDATE_IP: return $this->locale->insert('error.not_a_address', array('value' => '"' . $arrOptions['value'] . '"', 'type' => 'IP')); case FILTER_VALIDATE_URL: return $this->locale->insert('error.not_a_url', array('value' => $arrOptions['value'])); case FILTER_VALIDATE_FLOAT: return $this->locale->insert('error.not_a_number', array('value' => $arrOptions['field'])); case FILTER_VALIDATE_INT: if (isset($arrOptions['min_range']) && isset($arrOptions['max_range'])) { return $this->locale->insert('error.in_between', array('value' => $arrOptions['field'], 'min' => $arrOptions['min_range'], 'max' => $arrOptions['max_range'])); } elseif (isset($arrOptions['min_range'])) { return $this->locale->insert('error.greater_than', array('value' => $arrOptions['field'], 'count' => $arrOptions['min_range'])); } elseif (isset($arrOptions['max_range'])) { return $this->locale->insert('error.less_than', array('value' => $arrOptions['field'], 'count' => $arrOptions['max_range'])); } else { return $this->locale->insert('error.not_a_int', array('value' => $arrOptions['field'])); } case FILTER_VALIDATE_BOOLEAN: break; case FILTER_VALIDATE_MIN_LENGTH: return $this->locale->insert('error.too_short', array('value' => $arrOptions['field'], 'count' => $arrOptions['len'])); case FILTER_VALIDATE_MAX_LENGTH: return $this->locale->insert('error.too_long', array('value' => $arrOptions['field'], 'count' => $arrOptions['len'])); case FILTER_VALIDATE_LENGTH: return $this->locale->insert('error.wrong_range', array('value' => $arrOptions['field'], 'min' => $arrOptions['min'], 'max' => $arrOptions['max'])); case FILTER_VALIDATE_DATE_RANGE: $arrOptions['format'] = isset($arrOptions['format']) ? $arrOptions['format'] : $this->locale->getDateFormat('date.format.default'); return $this->locale->insert('error.date_range', array('value' => $arrOptions['field'], 'min' => date($arrOptions['format'], $arrOptions['min']), 'max' => date($arrOptions['format'], $arrOptions['max']))); case FILTER_VALIDATE_DATE_START_END: $arrOptions['format'] = isset($arrOptions['format']) ? $arrOptions['format'] : $this->locale->getDateFormat('date.format.default'); return $this->locale->insert('error.date_start_end', array('value' => $arrOptions['field'], 'end' => date($arrOptions['format'], $arrOptions['end']))); default: // too_long // too_short // empty (Muss ausgefüllt werden) // invalid // start_before_end // range: Ist keine gültige {model} break; } return $this->locale->insert('error.invalid', array('value' => isset($arrOptions['value']) ? $arrOptions['value'] : $arrOptions['field'], 'field' => $arrOptions['field'])); }
public function action_ajax_tree(array $params = array()) { $ids = Arr::init($_REQUEST, 'ids', TYPE_ARRAY); $bonusOnly = Arr::init($_REQUEST, 'bonusOnly', TYPE_BOOL); $rowCount = Arr::init($_REQUEST, 'count', TYPE_INT, 100); $byColumn = Arr::init($_REQUEST, 'column', TYPE_STRING, 'ParentId'); $filterByColumn = "filterBy{$byColumn}"; $comparisonOperator = \Criteria::IN; $memberTypes = Localizer::get('common.member_types'); $rows = []; for ($i = 0; $i < $rowCount; $i++) { $members = \MemberQuery::create()->{$filterByColumn}($ids, $comparisonOperator)->orderBy(\MemberPeer::SIGNUP_DATE, \Criteria::ASC); if ($bonusOnly) { $members->filterByType(\Member::TYPE_MEMBER, \Criteria::GREATER_THAN); } $members = $members->find(); if (count($members) === 0) { break; } $row = $members->toArray(); $newIds = []; foreach ($members as $i => $member) { $row[$i]['TypeTranslated'] = $memberTypes[$member->getType()]; $newIds[] = $member->getId(); } $rows[] = $row; $ids = $newIds; } return new ControllerActionAjax($rows); }
public function getLocalizer() { return Localizer::get($this); }