Beispiel #1
0
    protected function column_col3()
    {
        $words = $this->getWords();
        $member = $this->member;
        $visitor_count = $this->member->getVisitorCount();
        $layoutbits = new MOD_layoutbits();
        $purifier = MOD_htmlpure::getBasicHtmlPurifier();
        if (!$visitor_count) {
            echo $words->get("ProfileNoVisitors");
            return;
        }
        $params = new StdClass();
        $params->strategy = new HalfPagePager('right');
        $params->items = $visitor_count;
        $params->items_per_page = 20;
        $pager = new PagerWidget($params);
        $pager->render();
        echo '<div class="myvisitors">';
        foreach ($member->getVisitorsSubset($pager) as $m) {
            $image = new MOD_images_Image('', $m->Username);
            $image = MOD_layoutbits::PIC_50_50($m->Username, '', $style = 'float_left framed');
            if ($m->HideBirthDate == "No") {
                $m->age = floor($layoutbits->fage_value($m->BirthDate));
            } else {
                $m->age = $words->get("Hidden");
            }
            echo <<<HTML
<div class="subcolumns">
    <div class="c33l">
        <div class="subcl">
            {$image}
            <div class="userinfo">
                <a class="username" href="members/{$m->Username}">{$m->Username}</a><br />
                <p class="small">{$words->getFormatted("visited")}: {$layoutbits->ago(strtotime($m->visited))}</p>
                <p class="small">{$words->getFormatted("yearsold", $m->age)}, {$m->city}</p>
            </div>
        </div>
    </div>
    <div class="c66r">
        <div class="subcr">
            <div class="profilesummary">{$purifier->purify(stripslashes($words->mInTrad($m->ProfileSummary, $language_id = 0, true)))}</div>
        </div>
    </div>
</div>
HTML;
        }
        echo "</div>";
    }
//not sure if non-english profile should be shown as default in production
//$profile_language = $_SESSION['IdLanguage'];
$lang = $this->model->get_profile_language();
$profile_language = $lang->id;
$profile_language_code = $lang->ShortCode;
$profile_language_name = $lang->Name;
$words = $this->getWords();
//$words->setLanguage('fr');
$ww = $this->ww;
$wwsilent = $this->wwsilent;
$comments_count = $member->count_comments();
$layoutbits = new MOD_layoutbits();
$right = new MOD_right();
$agestr = "";
if ($member->age == "hidden") {
    $agestr .= $ww->AgeHidden;
} else {
    $agestr = $ww->AgeEqualX($layoutbits->fage_value($member->BirthDate));
}
$messengers = $member->messengers();
$website = $member->WebSite;
$languages = $member->get_profile_languages();
$occupation = $member->get_trad("Occupation", $profile_language, true);
$trips_array = $member->getTripsArray();
$trips = $trips_array[0];
$trip_data = $trips_array[1];
if ($this->myself) {
    $showEditLinks = true;
} else {
    $showEditLinks = false;
}
Beispiel #3
0
 public function get_age()
 {
     if ($this->HideBirthDate == 'Yes') {
         return 'hidden';
     }
     $layoutbits = new MOD_layoutbits();
     return $layoutbits->fage_value($this->BirthDate);
 }
Beispiel #4
0
    }
    // divide members into pages of Places::MEMBERS_PER_PAGE (20)
    $params = new StdClass();
    $params->strategy = new HalfPagePager('right');
    $params->page_url = $url;
    $params->page_url_marker = 'page';
    $params->page_method = 'url';
    $params->items = $this->memberCount;
    $params->active_page = $this->pageNumber;
    $params->items_per_page = Places::MEMBERS_PER_PAGE;
    $pager = new PagerWidget($params);
    // show members if there are any to show
    echo '<ul class="floatbox">';
    foreach ($this->members as $member) {
        $image = new MOD_images_Image('', $member->username);
        if ($member->HideBirthDate == "No") {
            $member->age = floor($layoutbits->fage_value($member->BirthDate));
        } else {
            $member->age = $words->get("Hidden");
        }
        echo '<li class="userpicbox float_left">';
        echo MOD_layoutbits::PIC_50_50($member->username, '', $style = 'framed float_left');
        echo '<div class="userinfo">';
        echo '  <a class="username" href="members/' . $member->username . '">' . $member->username . '</a><br />';
        echo '  <span class="small">' . $words->get("yearsold", $member->age) . '<br />' . $member->city . '</span>';
        echo '</div>';
        echo '</li>';
    }
    echo '</ul>';
    $pager->render();
}
 /**
  * this function load the list of the approved verifiers
  * @ returns a structure with the data with the list of verifications or and empty structure if password/Username dont match
  **/
 public function LoadApprovedVerifiers()
 {
     $layoutbits = new MOD_layoutbits();
     $query = "\n            SELECT\n                m1.*,\n                geonames_cache.name AS CityName,\n                geonames_countries.name AS CountryName\n            FROM\n                members m1,\n                geonames_cache,\n                rightsvolunteers,\n                rights,\n                geonames_countries\n            WHERE\n                m1.id = rightsvolunteers.IdMember\n                AND\n                geonames_cache.geonameId = m1.IdCity\n                AND\n                geonames_cache.fk_countrycode = geonames_countries.iso_alpha2\n                AND\n                rights.id = rightsvolunteers.IdRight\n                AND\n                rights.Name = 'Verifier'\n                AND\n                rightsvolunteers.Level > 0\n                AND\n                m1.Status = 'Active'\n            ORDER BY\n                CityName\n            ";
     $mm = $this->createEntity('Member')->findBySQLMany($query);
     if (!$mm) {
         throw new PException('verifymembers::LoadApprovedVerifiers Could not retrieve the verifiers list!');
     }
     $tt = array();
     // for all the records
     foreach ($mm as $m) {
         $rComment = $this->singleLookup("select count(*) as cnt from comments where IdToMember=" . $m->id);
         $m->MemberSince = strftime('%d/%m/%Y', strtotime($m->created));
         // Load Age
         $m->age = $layoutbits->fage_value($m->BirthDate, $m->HideBirthDate);
         $m->NbComments = $rComment->cnt;
         // Load full name
         $m->FullName = $m->name;
         array_push($tt, $m);
     }
     return $tt;
 }
 /**
  *
  * @param array $vars
  * @param string $admin1
  * @param string $country
  * @return multitype:unknown
  */
 public function getMembers($first, $count, $safetyTeamOrAdmin)
 {
     $langarr = explode('-', $_SESSION['lang']);
     $lang = $langarr[0];
     // First get current page and limits
     $statuses = "'Active'";
     if ($safetyTeamOrAdmin) {
         $statuses .= ", 'MailToConfirm'";
     }
     $str = "\r\n            SELECT DISTINCT\r\n                m.id,\r\n                m.Username,\r\n                m.created,\r\n                m.Status,\r\n                m.BirthDate,\r\n                m.HideBirthDate,\r\n                m.Accomodation,\r\n                m.TypicOffer,\r\n                m.Restrictions,\r\n                m.ProfileSummary,\r\n                m.Occupation,\r\n                m.Gender,\r\n                m.HideGender,\r\n                m.FirstName,\r\n                m.SecondName,\r\n                m.LastName,\r\n                m.email,\r\n                m.bewelcomed,\r\n                g.geonameid as geonameid,\r\n                g.country as country\r\n            FROM\r\n                members m,\r\n                geonames g\r\n            WHERE\r\n                m.Status IN (" . $statuses . ")\r\n                AND DATEDIFF(NOW(), created) < 90";
     if (!$safetyTeamOrAdmin) {
         $str .= " AND bewelcomed < 3";
     }
     $str .= " AND m.IdCity = g.geonameid\r\n            ORDER BY m.created ";
     if (!$safetyTeamOrAdmin) {
         $str .= " DESC";
     } else {
         $str .= " ASC";
     }
     $str .= " LIMIT\r\n                " . $first . ", " . $count;
     $rawMembers = $this->bulkLookup($str);
     $loggedInMember = $this->getLoggedInMember();
     $members = array();
     $geonameIds = array();
     $countryIds = array();
     $layoutBits = new MOD_layoutbits();
     foreach ($rawMembers as $member) {
         $geonameIds[$member->geonameid] = $member->geonameid;
         $countryIds[$member->country] = $member->country;
         $aboutMe = MOD_layoutbits::truncate_words($this->FindTrad($member->ProfileSummary, true), 70);
         $FirstName = $this->getNamePart($member->FirstName);
         $SecondName = $this->getNamePart($member->SecondName);
         $LastName = $this->getNamePart($member->LastName);
         $member->Name = trim($FirstName . " " . $SecondName . " " . $LastName);
         $member->ProfileSummary = $aboutMe;
         if ($safetyTeamOrAdmin) {
             $email = Mod_crypt::AdminReadCrypted($member->email);
             $member->EmailAddress = $email;
         }
         if ($member->HideBirthDate == "No") {
             $member->Age = floor($layoutBits->fage_value($member->BirthDate));
         } else {
             $member->Age = "";
         }
         if ($member->HideGender != "Yes") {
             $member->GenderString = MOD_layoutbits::getGenderTranslated($member->Gender, false, false);
         }
         $member->Occupation = MOD_layoutbits::truncate_words($this->FindTrad($member->Occupation), 10);
         $query = "\r\n                SELECT\r\n                    mll.Level,\r\n                    l.WordCode,\r\n                    l.EnglishName,\r\n                    l.Name\r\n                FROM\r\n                    memberslanguageslevel mll,\r\n                    languages l\r\n                WHERE\r\n                  mll.IdMember = " . $member->id . "\r\n                  AND mll.IdLanguage = l.Id\r\n                ORDER BY\r\n                  mll.Level ASC";
         $languages = $this->bulkLookup($query);
         $member->languages = $languages;
         $members[] = $member;
     }
     $inGeonameIds = implode("', '", $geonameIds);
     $query = "\r\n            SELECT\r\n                g.geonameid geonameid, a.alternatename name, a.ispreferred ispreferred, a.isshort isshort, 'alternate' source\r\n            FROM\r\n                geonames g, geonamesalternatenames a\r\n            WHERE\r\n                g.geonameid IN ('" . $inGeonameIds . "') AND g.geonameid = a.geonameid AND a.isoLanguage = '" . $lang . "'\r\n            UNION SELECT\r\n                g.geonameid geonameid, g.name name, 0 ispreferred, 0 isshort, 'geoname' source\r\n            FROM\r\n                geonames g\r\n            WHERE\r\n                g.geonameid IN ('" . $inGeonameIds . "')\r\n            ORDER BY\r\n                geonameid, source, ispreferred DESC, isshort DESC";
     $rawNames = $this->bulkLookup($query);
     $names = array();
     foreach ($rawNames as $rawName) {
         if (!isset($names[$rawName->geonameid])) {
             $names[$rawName->geonameid] = $rawName->name;
         }
     }
     $inCountries = implode("', '", $countryIds);
     // fetch country names, prefer alternate names (preferred, short) over geonames entry
     $query = "\r\n            SELECT\r\n                c.geonameid geonameid, c.country countryCode, a.alternatename country, a.ispreferred ispreferred, a.isshort isshort, 'alternate' source\r\n            FROM\r\n                geonamescountries c, geonamesalternatenames a\r\n            WHERE\r\n                c.country IN ('" . $inCountries . "') AND c.geonameid = a.geonameid AND a.isoLanguage = '" . $lang . "'\r\n            UNION SELECT\r\n                c.geonameid geonameid, c.country countryCode, c.name country, 0 ispreferred, 0 isshort, 'geoname' source\r\n            FROM\r\n                geonamescountries c\r\n            WHERE\r\n                c.country IN ('" . $inCountries . "')\r\n            ORDER BY\r\n                geonameid, source, ispreferred DESC, isshort DESC";
     $countryRawNames = $this->bulkLookup($query);
     $countryNames = array();
     foreach ($countryRawNames as $countryRawName) {
         if (!isset($countryNames[$countryRawName->countryCode])) {
             $countryNames[$countryRawName->countryCode] = $countryRawName->country;
         }
     }
     foreach ($members as &$member) {
         $member->CityName = $names[$member->geonameid];
         $member->CountryName = $countryNames[$member->country];
     }
     return $members;
 }
Beispiel #7
0
 /**
  *
  * @param array $vars
  * @param string $admin1
  * @param string $country
  * @return multitype:unknown
  */
 private function getMemberDetails(&$vars, $admin1 = false, $country = false)
 {
     $langarr = explode('-', $_SESSION['lang']);
     $lang = $langarr[0];
     // First get current page and limits
     $limit = $this->getParameter($vars, 'search-number-items', 10);
     $pageno = $this->getParameter($vars, 'search-page', 1);
     $start = ($pageno - 1) * $limit;
     $this->statusCondition = $this->getStatusCondition($vars);
     $this->maxGuestCondition = "AND m.MaxGuest >= " . $vars['search-can-host'];
     $this->locationCondition = $this->getLocationCondition($vars, $admin1, $country);
     $this->genderCondition = $this->getGenderCondition($vars);
     $this->ageCondition = $this->getAgeCondition($vars);
     $this->usernameCondition = $this->getUsernameCondition($vars);
     $this->keywordCondition = $this->getKeywordCondition($vars);
     $this->groupsCondition = $this->getGroupsCondition($vars);
     $this->languagesCondition = $this->getLanguagesCondition($vars);
     $this->typicalOfferCondition = $this->getTypicalOfferCondition($vars);
     $this->accommodationCondition = $this->getAccommodationCondition($vars);
     $this->tables = "addresses a,\n                geonames g";
     if (!empty($this->keywordCondition)) {
         $this->tables .= ", memberstrads mt";
     }
     if (!empty($this->groupsCondition)) {
         $this->tables .= ", membersgroups mg";
     }
     if (!empty($this->languagesCondition)) {
         $this->tables .= ", memberslanguageslevel mll";
     }
     $this->tables .= ", members m";
     // Fetch count of members at/around the given place
     $vars['countOfMembers'] = $this->getMembersCount(false);
     $vars['countOfPublicMembers'] = $this->getMembersCount(true);
     // *FROM* and *WHERE* will be replaced later on (don't change)
     $str = "\n            SELECT DISTINCT\n                m.id,\n                m.Username,\n                m.created,\n                m.BirthDate,\n                m.HideBirthDate,\n                m.Accomodation,\n                m.TypicOffer,\n                m.Restrictions,\n                m.ProfileSummary,\n                m.Occupation,\n                m.Gender,\n                m.HideGender,\n                m.MaxGuest,\n                m.FirstName,\n                m.SecondName,\n                m.LastName,\n                date_format(m.LastLogin,'%Y-%m-%d') AS LastLogin,\n                IF(m.ProfileSummary != 0, 1, 0) AS HasProfileSummary,\n                IF(mp.photoCount IS NULL, 0, 1) AS HasProfilePhoto,\n                g.geonameid,\n                g.country,\n                g.latitude,\n                g.longitude,\n                ((g.latitude - " . $vars['search-latitude'] . ") * (g.latitude - " . $vars['search-latitude'] . ") +\n                        (g.longitude - " . $vars['search-longitude'] . ") * (g.longitude - " . $vars['search-longitude'] . "))  AS Distance,\n                IF(c.IdToMember IS NULL, 0, c.commentCount) AS CommentCount\n            *FROM*\n                " . $this->tables . "\n            LEFT JOIN (\n                SELECT\n                    COUNT(*) As commentCount, IdToMember\n                FROM\n                    comments, members m2\n                WHERE\n                    IdFromMember = m2.id\n                    AND m2.Status IN ('Active', 'OutOfRemind')\n                GROUP BY\n                    IdToMember ) c\n            ON\n                c.IdToMember = m.id\n            LEFT JOIN (\n                SELECT\n                    COUNT(*) As photoCount, IdMember\n                FROM\n                    membersphotos\n                GROUP BY\n                    IdMember) mp\n            ON\n                mp.IdMember = m.id\n            *WHERE*\n                m.id = a.idmember\n                " . $this->maxGuestCondition . "\n                " . $this->statusCondition . "\n                " . $this->locationCondition . "\n                " . $this->genderCondition . "\n                " . $this->ageCondition . "\n                " . $this->usernameCondition . "\n                " . $this->keywordCondition . "\n                " . $this->groupsCondition . "\n                " . $this->languagesCondition . "\n                " . $this->accommodationCondition . "\n                " . $this->typicalOfferCondition . "\n            ORDER BY\n                " . $this->getOrderBy($vars['search-sort-order']) . "\n            LIMIT\n                " . $start . ", " . $limit;
     // Make sure only public profiles are found if no one's logged in
     if (!$this->getLoggedInMember()) {
         $str = str_replace('*FROM*', 'FROM memberspublicprofiles mpp,', $str);
         $str = str_replace('*WHERE*', 'WHERE m.id = mpp.IdMember AND ', $str);
     }
     $str = str_replace('*FROM*', 'FROM', $str);
     $str = str_replace('*WHERE*', 'WHERE', $str);
     $rawMembers = $this->bulkLookup($str);
     $loggedInMember = $this->getLoggedInMember();
     $members = array();
     $geonameIds = array();
     $countryIds = array();
     $layoutBits = new MOD_layoutbits();
     foreach ($rawMembers as $member) {
         $geonameIds[$member->geonameid] = $member->geonameid;
         $countryIds[$member->country] = $member->country;
         $aboutMe = MOD_layoutbits::truncate_words($this->FindTrad($member->ProfileSummary, true), 70);
         $FirstName = $this->getNamePart($member->FirstName);
         $SecondName = $this->getNamePart($member->SecondName);
         $LastName = $this->getNamePart($member->LastName);
         $member->Name = trim($FirstName . " " . $SecondName . " " . $LastName);
         $member->ProfileSummary = $aboutMe;
         if ($member->HideBirthDate == "No") {
             $member->Age = floor($layoutBits->fage_value($member->BirthDate));
         } else {
             $member->Age = "";
         }
         if ($member->HideGender != "Yes") {
             $member->GenderString = MOD_layoutbits::getGenderTranslated($member->Gender, false, false);
         }
         $member->Occupation = MOD_layoutbits::truncate_words($this->FindTrad($member->Occupation), 10);
         if ($loggedInMember) {
             // get message count for found member with current member
             $query = "\n                    SELECT\n                        COUNT(*) cnt\n                    FROM\n                        `messages`\n                    WHERE\n                        (IdSender = " . $member->id . " OR IdReceiver = " . $member->id . ")\n                        AND (IdSender = " . $loggedInMember->id . " OR IdReceiver = " . $loggedInMember->id . ")";
             $messageCount = $this->singleLookup($query);
             $member->MessageCount = $messageCount->cnt;
         } else {
             $member->MessageCount = 0;
         }
         $members[] = $member;
     }
     $inGeonameIds = implode("', '", $geonameIds);
     $query = "\n            SELECT\n                g.geonameid geonameid, a.alternatename name, a.ispreferred ispreferred, a.isshort isshort, 'alternate' source\n            FROM\n                geonames g, geonamesalternatenames a\n            WHERE\n                g.geonameid IN ('" . $inGeonameIds . "') AND g.geonameid = a.geonameid AND a.isoLanguage = '" . $lang . "'\n            UNION SELECT\n                g.geonameid geonameid, g.name name, 0 ispreferred, 0 isshort, 'geoname' source\n            FROM\n                geonames g\n            WHERE\n                g.geonameid IN ('" . $inGeonameIds . "')\n            ORDER BY\n                geonameid, source, ispreferred DESC, isshort DESC";
     $rawNames = $this->bulkLookup($query);
     $names = array();
     foreach ($rawNames as $rawName) {
         if (!isset($names[$rawName->geonameid])) {
             $names[$rawName->geonameid] = $rawName->name;
         }
     }
     $inCountries = implode("', '", $countryIds);
     // fetch country names, prefer alternate names (preferred, short) over geonames entry
     $query = "\n            SELECT\n                c.geonameid geonameid, c.country countryCode, a.alternatename country, a.ispreferred ispreferred, a.isshort isshort, 'alternate' source\n            FROM\n                geonamescountries c, geonamesalternatenames a\n            WHERE\n                c.country IN ('" . $inCountries . "') AND c.geonameid = a.geonameid AND a.isoLanguage = '" . $lang . "'\n            UNION SELECT\n                c.geonameid geonameid, c.country countryCode, c.name country, 0 ispreferred, 0 isshort, 'geoname' source\n            FROM\n                geonamescountries c\n            WHERE\n                c.country IN ('" . $inCountries . "')\n            ORDER BY\n                geonameid, source, ispreferred DESC, isshort DESC";
     $countryRawNames = $this->bulkLookup($query);
     $countryNames = array();
     foreach ($countryRawNames as $countryRawName) {
         if (!isset($countryNames[$countryRawName->countryCode])) {
             $countryNames[$countryRawName->countryCode] = $countryRawName->country;
         }
     }
     foreach ($members as &$member) {
         $member->CityName = $names[$member->geonameid];
         $member->CountryName = $countryNames[$member->country];
     }
     return $members;
 }
<?php

$member = $this->member;
$lang = $this->model->get_profile_language();
$profile_language = $lang->id;
$profile_language_code = $lang->ShortCode;
$words = $this->getWords();
$ww = $this->ww;
$wwsilent = $this->wwsilent;
$comments_count = $member->count_comments();
$layoutbits = new MOD_layoutbits();
$right = new MOD_right();
$verification_status = $member->verification_status;
if ($verification_status) {
    $verification_text = $words->getSilent('verifymembers_' . $verification_status);
}
$agestr = "";
if ($member->age == "hidden") {
    $agestr .= $ww->AgeHidden;
} else {
    if ($this->passedAway) {
        $agestr = $ww->AgeEqualX($layoutbits->fage_value($member->BirthDate, substr($member->updated, 0, 10)));
    } else {
        $agestr = $ww->AgeEqualX($layoutbits->fage_value($member->BirthDate));
    }
}
$occupation = $member->get_trad("Occupation", $profile_language, true);