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(); }
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(); }