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 write() { $db = Database::getObject(); $id = Request::get(1, VAR_INT); $action = Request::get(2, VAR_URI); $options = array('title' => array(Validator::MESSAGE => 'Der Name muss mindestens 2 und darf maximal 255 Zeichen lang sein.', Validator::MIN_LENGTH => 2, Validator::MAX_LENGTH => 255), 'uri' => array(Validator::MULTIPLE => array(array(Validator::MESSAGE => 'Die URI enthält Zeichen die nicht erlaubt sind. Erlaubt sind: a-z, 0-9, _, -', Validator::REGEXP => '/^[\\w\\d\\-]*$/i'), array(Validator::MESSAGE => 'Die angegebene URI existiert bereits für eine andere Seite.', Validator::CLOSURE => function ($uri) use($db, $id) { $db->query("SELECT uri FROM <p>page WHERE id != <id:int> AND uri = <uri>", compact("id", "uri")); return $db->numRows() == 0; }))), 'content' => array(Validator::OPTIONAL => true)); $this->breadcrumb->add(iif($id > 0, "Bearbeiten", "Hinzufügen")); $this->scriptFiles[URI::build('client/scripts/wymeditor/jquery.wymeditor.js')] = 'text/javascript'; $this->header(); $data = array('id' => $id, 'title' => '', 'uri' => '', 'content' => ''); if ($action == 'send') { extract(Validator::checkRequest($options)); $data['id'] = $id; if (count($error) > 0) { CmsPage::error($error); } else { if ($id > 0) { $db->query("UPDATE <p>page SET title = <title>, uri = <uri>, content = <content> WHERE id = <id:int>", $data); } else { $db->query("INSERT INTO <p>page SET title = <title>, uri = <uri>, content = <content>", $data); $data['id'] = $db->insertId(); } CmsPage::ok("Die Seite wurde erfolgreich gespeichert."); } } else { if ($id > 0) { $db->query("SELECT id, title, uri, content FROM <p>page WHERE id = <id:int>", compact("id")); if ($db->numRows() == 1) { $data = $db->fetchAssoc(); } } } $tpl = Response::getObject()->appendTemplate('Cms/admin/docs_write'); $tpl->assign('data', $data); $tpl->output(); $this->footer(); }
public function edit() { $id = Request::get(1, VAR_INT, 0); $action = Request::get(2, VAR_URI); $this->breadcrumb->add(iif($id > 0, "Bearbeiten", "Hinzufügen")); $this->header(); $db = Database::getObject(); $data = array('id' => $id, 'flughafen' => '', 'code' => '', 'land' => '', 'stadt' => ''); if ($action == 'send') { $options = array('flughafen' => array(Validator::MESSAGE => 'Der Name muss mindestens 2 und darf maximal 128 Zeichen lang sein.', Validator::MIN_LENGTH => 2, Validator::MAX_LENGTH => 128), 'code' => array(Validator::MESSAGE => 'Der Code muss genau 3 Zeichen lang sein.', Validator::LENGTH => 3), 'land' => array(Validator::MESSAGE => 'Der Name muss mindestens 2 und darf maximal 64 Zeichen lang sein.', Validator::MIN_LENGTH => 2, Validator::MAX_LENGTH => 64), 'stadt' => array(Validator::MESSAGE => 'Der Name muss mindestens 2 und darf maximal 96 Zeichen lang sein.', Validator::MIN_LENGTH => 2, Validator::MAX_LENGTH => 96)); extract(Validator::checkRequest($options)); $data['id'] = $id; if (count($error) > 0) { CmsPage::error($error); } else { if ($id > 0) { $db->query("UPDATE <p>airports SET flughafen = <flughafen>, land = <land>, stadt = <stadt>, code = <code> WHERE id = <id:int>", $data); } else { $db->query("INSERT INTO <p>airports SET flughafen = <flughafen>, land = <land>, stadt = <stadt>, code = <code>", $data); $data['id'] = $db->insertId(); } CmsPage::ok("Der Airport wurde erfolgreich gespeichert."); } } else { if ($id > 0) { $db->query("SELECT * FROM <p>airports WHERE id = <id:int>", compact("id")); if ($db->numRows() == 1) { $data = $db->fetchAssoc(); } } } $tpl = Response::getObject()->appendTemplate('Airlines/admin/airports_edit'); $tpl->assign('data', $data); $tpl->output(); $this->footer(); }
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 remove() { $id = Request::get(1, VAR_INT); $data = new CustomData($this->position); if ($data->load($id)) { if (Request::get(2) == 'yes') { if ($data->remove()) { CmsPage::ok("Der Datensatz wurde erfolgreich gelöscht."); } else { CmsPage::error("Der Datensatz konnte leider nicht gelöscht werden."); } } else { CmsPage::yesNo("Möchten Sie den gewählten Datensatz inkl. aller evtl. verknüpften Daten wirklich löschen?", URI::build($this->baseUri . '/remove/' . $id . '/yes'), URI::build($this->baseUri)); } } else { CmsPage::error('Der Datensatz wurde nicht gefunden.'); } }
public function edit() { $id = Request::get(1, VAR_INT); $isSent = Request::get(2, VAR_URI) == 'send'; $this->breadcrumb->add('Bearbeiten'); $this->header(); $db = Database::getObject(); $db->query("SELECT * FROM <p>fields WHERE id = <id:int>", compact("id")); if ($db->numRows() == 0) { CmsPage::error('Das Feld wurde leider nicht gefunden.'); $this->overview(); } else { $field = CustomField::constructObject($db->fetchAssoc()); $_positions = $this->getPositions(); $positions = Core::constructObjectArray($_positions); // Fill data array with the default (currently saved) data $permissions = $field->getPermissions(); $data = array('name' => $field->getName(), 'description' => $field->getDescription(), 'priority' => $field->getPriority(), 'position' => $field->getPosition()->getClassPath(), 'type' => $field->getClassPath(), 'read' => $permissions['read'], 'write' => $permissions['write']); foreach ($field->getParamsData() as $key => $value) { $data[$key] = $value; } $error = array(); if ($isSent) { // Base options for every field $options = array_merge($this->getValidator(), array('position' => array(Validator::MESSAGE => 'Der Anzeigeort ist ungültig.', Validator::LIST_CS => $_positions)), $field->getValidationParams(false)); extract(Validator::checkRequest($options)); if (count($error) == 0) { $this->injectDataToField($field, $data); if ($field->update()) { CmsPage::ok("Das Feld wurde erfolgreich aktualisiert."); } else { $error[] = 'Das Feld konnt leider nicht aktualisiert werden.'; } } if (count($error) > 0) { CmsPage::error($error); } } $tpl = Response::getObject()->appendTemplate("/Cms/admin/fields_edit"); $tpl->assign('field', $field, false); $tpl->assign('positions', $positions, false); $tpl->assign('data', $data); $tpl->assign('baseUri', $this->getBaseURI()); $tpl->output(); } $this->footer(); }
public function delete() { $this->breadcrumb->add("Löschen"); $this->header(); $id = Request::get(1, VAR_INT); if (Request::get(2) == 'yes') { $db = Database::getObject(); try { $db->query("DELETE FROM <p>user WHERE id = <id:int>", compact("id")); CmsPage::ok("Das gewählte Mitglied wurde gelöscht."); } catch (QueryException $e) { CmsPage::error("Das gewählte Mitglied konnte leider nicht gelöscht werden. Möglicherweise referenzieren noch Daten auf dieses Mitglied."); } $this->members(); } else { CmsPage::yesNo("Möchten Sie das gewählte Mitglied wirklich löschen?", URI::build('cms/admin/members/delete/' . $id . '/yes'), URI::build('cms/admin/members')); } $this->footer(); }