function _languageOptions($words) { $model = new FlaglistModel(); $languages = $model->getLanguages(); $langarr = array(); foreach ($languages as $language) { $lang = new StdClass(); $lang->Name = $language->Name; $lang->TranslatedName = $words->getSilent($language->WordCode); $lang->ShortCode = $language->ShortCode; $langarr[] = $lang; } usort($langarr, "cmpLang"); $langOptions = ''; $request_string = htmlspecialchars(implode('/', PVars::get()->request), ENT_QUOTES); $langOptions = ''; foreach ($langarr as $language) { $abbr = $language->ShortCode; $png = $abbr . '.png'; if (!isset($_SESSION['lang'])) { // hmm } else { $langOptions .= '<option value="' . PVars::getObj("env")->baseuri . 'rox/in/' . $abbr . '/' . $request_string . '" ' . ($_SESSION['lang'] == $abbr ? 'selected="selected"' : ''); $langOptions .= '>' . $language->TranslatedName . ' (' . trim($language->Name) . ')</option>'; } } return $langOptions; }
/** * * FIXME: IdCity is written both to the members and the address table! * This is just imitating the strategy of bw/signup.php! * JY Comment : wont fix, this redudancy is on purpose (this is so useful ...) * * This has NOT been executed: * ALTER TABLE members * MODIFY COLUMN `id` int( 11 ) NOT NULL COMMENT 'IdMember' * As a result, we do NOT use * '.$this->dao->nextId('members').', * */ public function registerBWMember($vars) { // ******************************************************************** // members // ******************************************************************** $query = ' INSERT INTO `members` ( `Username`, `IdCity`, `Gender`, `HideGender`, `created`, `BirthDate`, `HideBirthDate`, `Accomodation` ) VALUES ( \'' . $vars['username'] . '\', ' . $vars['geonameid'] . ', \'' . $vars['gender'] . '\', \'' . $vars['genderhidden'] . '\', now(), \'' . $vars['iso_date'] . '\', \'' . $vars['agehidden'] . '\', \'' . $vars['accommodation'] . '\' )'; $members = $this->dao->query($query); $memberID = $members->insertId(); $memberEntity = new Member($memberID); $vars['password'] = $memberEntity->preparePassword($vars['password']); $motherTongue = $this->createEntity('Language', $vars['mothertongue']); $memberLanguageEntity = $this->createEntity('MemberLanguage'); $memberLanguageEntity->setSpokenLanguage($memberEntity, $motherTongue, 'MotherLanguage'); // Check if selected MotherTongue is in the list of translated languages and set it as preferred language $model = new FlaglistModel(); $languages = $model->getLanguages(); $languageFilter = function ($lang) { return function ($v) use($lang) { return $v->id == $lang; }; }; $filteredLanguages = array_filter($languages, $languageFilter($motherTongue->id)); if (!empty($filteredLanguages)) { $update = "\r\n INSERT INTO\r\n memberspreferences\r\n SET\r\n IdMember = " . $memberEntity->id . ",\r\n IdPreference = 1,\r\n Value = " . $motherTongue->id; $this->dao->query($update); } $memberEntity->update(); $memberEntity->setPassword($vars['password']); // ******************************************************************** // e-mail, names/members // ******************************************************************** $cryptedfieldsEmail = MOD_crypt::insertCrypted($vars['email'], "members.Email", $memberID, $memberID, "always"); $cryptedfieldsFirstname = MOD_crypt::insertCrypted($this->dao->escape(strip_tags($vars['firstname'])), "members.FirstName", $memberID, $memberID); $cryptedfieldsSecondname = MOD_crypt::insertCrypted($this->dao->escape(strip_tags($vars['secondname'])), "members.SecondName", $memberID, $memberID); $cryptedfieldsLastname = MOD_crypt::insertCrypted($this->dao->escape(strip_tags($vars['lastname'])), "members.LastName", $memberID, $memberID); $query = ' UPDATE `members` SET `Email`=' . $cryptedfieldsEmail . ', `FirstName`=' . $cryptedfieldsFirstname . ', `SecondName`=' . $cryptedfieldsSecondname . ', `LastName`=' . $cryptedfieldsLastname . ' WHERE `id` = ' . $memberID; $this->dao->query($query); // ******************************************************************** // address/addresses // ******************************************************************** $query = ' INSERT INTO addresses ( `IdMember`, `IdCity`, `HouseNumber`, `StreetName`, `Zip`, `created`, `Explanation` ) VALUES ( ' . $memberID . ', ' . $vars['geonameid'] . ', 0, 0, 0, now(), 0)'; $s = $this->dao->query($query); if (!$s->insertId()) { $vars['errors'] = array('inserror'); return false; } // ******************************************************************** // location (where Philipp would put it) // ******************************************************************** $geomodel = new GeoModel(); if (!$geomodel->addGeonameId($vars['geonameid'], 'member_primary')) { $vars['errors'] = array('geoinserterror'); return false; } // Only for bugtesting and backwards compatibility the geo-views in our DB $CityName = "not found in cities view"; $geonameId = intval($vars['geonameid']); $sqry = "\r\n SELECT\r\n name\r\n FROM\r\n geonames_cache\r\n WHERE\r\n geonameId = {$geonameId}\r\n "; $qry = $this->dao->query($sqry); if ($qry) { $rr = $qry->fetch(PDB::FETCH_OBJ); if (isset($rr->name)) { $CityName = $rr->name; } else { MOD_log::get()->write("Signup bug [" . $sqry . "]" . " (With New Signup !)", "Signup"); } } MOD_log::get()->writeIdMember($memberID, "member <b>" . $vars['username'] . "</b> is signuping with success in city [" . $CityName . "] using language (" . $_SESSION["lang"] . " IdMember=#" . $memberID . " (With New Signup !)", "Signup"); return $memberID; }
<?php function cmpPrefLang($a, $b) { if ($a->TranslatedName == $b->TranslatedName) { return 0; } return strtolower($a->TranslatedName) < strtolower($b->TranslatedName) ? -1 : 1; } $words = $this->getWords(); $layoutkit = $this->layoutkit; $formkit = $layoutkit->formkit; $callback_tag = $formkit->setPostCallback('MembersController', 'myPreferencesCallback'); $flaglist = new FlaglistModel(); $languages = $flaglist->getLanguages(); foreach ($languages as &$language) { $language->TranslatedName = $words->getSilent($language->WordCode); } usort($languages, "cmpPrefLang"); $value = $this->member->get_publicProfile(); $pref_publicprofile = isset($value) && $value ? true : false; $p = $this->member->preferences; //get baseuri $baseuri = PVars::getObj('env')->baseuri; if (PVars::getObj('env')->force_ssl_sensitive) { $baseuri = PVars::getObj('env')->baseuri_https; } // Check if preferred language is set if (!isset($p['PreferenceLanguage']->Value)) { $p['PreferenceLanguage']->Value = $_SESSION['IdLanguage']; }