Exemple #1
0
 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));
 }
Exemple #2
0
 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;
 }
Exemple #4
0
 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;
 }
Exemple #5
0
 /**
  * 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);
 }
Exemple #7
0
 public function getLocalizer()
 {
     return Localizer::get($this);
 }