private function contact()
 {
     $isSent = Request::get(0, VAR_URI) == 'send';
     $options = array('name' => array(Validator::MESSAGE => 'Der Name muss mindestens 5 und darf maximal 150 Zeichen lang sein.', Validator::MIN_LENGTH => 5, Validator::MAX_LENGTH => 150), 'email' => array(Validator::MESSAGE => 'Die E-Mail-Adresse ist nicht korrekt.', Validator::CALLBACK => Validator::CB_MAIL), 'message' => array(Validator::MESSAGE => 'Die Nachricht entspricht nicht den Vorgaben (mindestens 10 Zeichen, maximal 1000 Zeichen).', Validator::MIN_LENGTH => 10, Validator::MAX_LENGTH => 1000), 'title' => array(Validator::MESSAGE => 'Der Titel entspricht nicht den Vorgaben (mindestens 5 Zeichen, maximal 100 Zeichen).', Validator::MIN_LENGTH => 5, Validator::MAX_LENGTH => 100));
     $this->enableClientFormValidation($options);
     // Don't validate the captcha via ajax as the session would end
     if (Config::get('captcha.enable')) {
         Core::loadClass('Core.Security.ReCaptcha');
         $options['recaptcha_response_field'] = array(Validator::MESSAGE => 'Der Sicherheitscode wurde nicht korrekt eingegeben.', Validator::CALLBACK => 'cb_captcha_check');
     }
     $data = array_fill_keys(array_keys($options), '');
     $data['name'] = iif(Me::get()->loggedIn(), Me::get()->getName());
     $data['email'] = iif(Me::get()->loggedIn(), Me::get()->getEmail());
     $this->breadcrumb->add('Kontakt');
     $this->header();
     if ($isSent) {
         extract(Validator::checkRequest($options));
         if (count($error) > 0) {
             CmsPage::error($error);
         } else {
             CmsTools::sendMail(Config::get('general.email'), $data['title'], $data['message'], $data['email'], $data['name']);
             CmsPage::ok('Die Anfrage wurde erfolgreich verschickt. Vielen Dank!');
             $data['title'] = '';
             $data['message'] = '';
         }
     }
     $tpl = Response::getObject()->appendTemplate('Cms/contact/contact');
     $tpl->assign('data', $data);
     if (Config::get('captcha.enable')) {
         $tpl->assign('captcha', recaptcha_get_html(Config::get('captcha.public_key')), false);
     }
     $tpl->output();
     $this->footer();
 }
Example #2
0
 public function executePostSenderId()
 {
     $this->userInit();
     $cmsTools = new CmsTools();
     $smsContact = new smsContact();
     $departmentAvailable = $cmsTools->departmentAvailable($this->department->getId());
     $param = $this->getAllRequestParameter();
     if (empty($param['id'])) {
         $this->jsonwrapper->show_json_error('missing param', 'Missing parameter Id');
     }
     if (empty($param['text'])) {
         $this->jsonwrapper->show_json_error('missing param', 'Missing parameter text');
     }
     $criteria = new Criteria();
     $criteria->add(SmsSenderIdPeer::ID, $param['id'], Criteria::EQUAL);
     $criteria->add(SmsSenderIdPeer::DEPARTMENT_ID, $departmentAvailable, Criteria::IN);
     $senderId = SmsSenderIdPeer::doSelectOne($criteria);
     if (!$senderId) {
         $this->jsonwrapper->show_json_error('not found', 'Sender Id Not Found');
     } else {
         $senderId->setText($param['text']);
         $senderId->save();
         $this->jsonwrapper->print_json(array('success' => 1, 'message' => 'Edit succeed'));
     }
 }
 public function pwremind()
 {
     $action = Request::get(1, VAR_URI);
     $this->breadcrumb->add('Neues Passwort anfordern');
     $this->header();
     $tpl = Response::getObject()->appendTemplate('Cms/user/pwremind');
     if (Me::get()->loggedIn()) {
         CmsPage::error('Sie sind bereits angemeldet!');
     } else {
         if ($action == 'send') {
             $mail = Request::get("email");
             $user = UserUtils::getByEmail($mail);
             if ($user !== null) {
                 if (!$user->isActive()) {
                     CmsPage::error("Ihr Benutzerkonto ist leider noch nicht freigeschaltet.");
                 } else {
                     $data = array('hash' => Hash::getRandom(), 'id' => $user->getId(), 'name' => UserUtils::getSalutation($user->getGender(), $user->getForeName(), $user->getSurName()));
                     $db = Database::getObject();
                     $db->query("UPDATE <p>user SET verification = <hash> WHERE id = <id:int> AND active = 1", $data);
                     $tpl = Response::getObject()->getTemplate('Cms/mails/pwremind_verify');
                     $tpl->assign('data', $data, false);
                     CmsTools::sendMail($user->getEmail(), Config::get('general.title') . ': Bestätigung deiner Passwortanfrage', $tpl->parse());
                     CmsPage::ok("Wir haben Ihnen eine E-Mail geschickt. Bitte folgen Sie den dortigen Anweisungen.");
                 }
             } else {
                 CmsPage::error("Die von Ihnen angegebene E-Mail-Adresse wurde leider nicht gefunden.");
                 $tpl->output();
             }
         } else {
             $tpl->output();
         }
     }
     $this->footer();
 }
 public function edit()
 {
     $id = Request::get(1, VAR_INT);
     $action = Request::get(2, VAR_URI);
     $this->breadcrumb->add('Bearbeiten');
     $this->header();
     $member = UserUtils::getById($id);
     if ($member === null) {
         CmsPage::error('Das angeforderte Mitglied wurde leider nicht gefunden.');
         $this->members();
     } else {
         $min_year = date('Y') - 110;
         $max_year = date('Y') - 8;
         $countries = CmsTools::getCountries();
         $db = Database::getObject();
         $db->query("SELECT id, title FROM <p>group WHERE registered = 1 ORDER BY admin ASC, editor ASC, title");
         $groups = array();
         while ($row = $db->fetchAssoc()) {
             $groups[$row['id']] = $row['title'];
         }
         $options = UserPages::getFieldValidation($countries, $min_year, $max_year);
         $options['pw1'][Validator::OPTIONAL] = true;
         $options['email'] = array(Validator::MULTIPLE => array(array(Validator::MESSAGE => 'Die E-Mail-Adresse ist nicht korrekt.', Validator::CALLBACK => Validator::CB_MAIL), array(Validator::MESSAGE => 'Diese E-Mail-Adresse ist bereits registriert.', Validator::CLOSURE => function ($mail) use($id) {
             $other = UserUtils::getByEmail($mail);
             return !($other !== null && $id != $other->getId());
         })));
         if (Me::get()->getId() != $id) {
             $options['group_id'] = array(Validator::MESSAGE => 'Die Gruppe ist nicht gültig.', Validator::LIST_CS => array_keys($groups));
             $options['active'] = array(Validator::OPTIONAL => true, Validator::EQUALS => 1, Validator::VAR_TYPE => VAR_INT);
         }
         $error = array();
         $data = array();
         if ($action == 'send') {
             extract(Validator::checkRequest($options));
             if (count($error) > 0) {
                 CmsPage::error($error);
             } else {
                 // Update data
                 if (!empty($data['pw1']) && !empty($data['pw2'])) {
                     $data['pw'] = Hash::generate($data['pw1']);
                 }
                 // prepare SQL update
                 $sql = $data;
                 unset($sql['pw1'], $sql['pw2'], $sql['birthday'], $sql['birthmonth'], $sql['birthyear']);
                 if (Me::get()->getId() == $id) {
                     unset($sql['group_id'], $sql['active']);
                     // Don't allow to change own group or active state
                 }
                 $dt = new DT();
                 $dt->setDate($data['birthyear'], $data['birthmonth'], $data['birthday']);
                 $sql['birth'] = $dt->dbDate();
                 $update = array();
                 foreach ($sql as $field => $value) {
                     $update[] = "{$field} = <{$field}>";
                 }
                 $update = implode(', ', $update);
                 $sql['id'] = $id;
                 $db->query("UPDATE <p>user SET {$update} WHERE id = <id:int>", $sql);
                 // Update global data about me
                 Session::getObject()->refreshMe();
                 CmsPage::ok("Ihre Angaben wurden erfolgreich gespeichert.");
             }
         }
         $user = $member->getArray();
         $user = array_merge($user, $data);
         $tpl = Response::getObject()->appendTemplate("Cms/admin/members_edit");
         $tpl->assign('user', $user);
         $tpl->assign('r_birthday', range(1, 31));
         $tpl->assign('r_birthmonth', range(1, 12));
         $tpl->assign('r_birthyear', range($min_year, $max_year));
         $tpl->assign('countries', $countries);
         $tpl->assign('groups', $groups);
         $tpl->output();
     }
     $this->footer();
 }