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;
}
Esempio n. 2
0
    /**
     *
     * 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'];
}