?>
</a>
            <?php 
}
?>
          </h2>
          <p class="grey">
            <?php 
echo $agestr;
if ($occupation != null) {
    echo ", " . $occupation;
}
?>
<br />
             <?php 
$strGender = MOD_layoutbits::getGenderTranslated($member->Gender, $member->HideGender, true);
if (!empty($strGender)) {
    echo $strGender . "<br />";
}
?>
            <?php 
if ($this->loggedInMember) {
    ?>
                <?php 
    echo $words->get("MemberSince") . ': ';
    if (strtotime($member->created) > strtotime('-1 week')) {
        echo $words->get("LastLoginPrivacy");
    } else {
        echo $layoutbits->ago(strtotime($member->created));
    }
    echo $this->memberSinceDate($member);
 echo '<div class="picture"><div>' . $layoutbits->PIC_75_75($member->Username) . '</div>';
 echo '<div><a href="members/' . $member->Username . '" target="_blank">' . $member->Username . '</a></div>';
 echo '</div>';
 echo '</td><td class="memberright">';
 echo '<div class="left">';
 echo '<strong><a href="members/' . $member->Username . '" target="_blank">' . (empty($member->Name) ? $member->Username : $member->Name) . '</a></strong>';
 if ($member->MessageCount) {
     echo '<a href="messages/with/' . $member->Username . '"><img src="images/icons/comments.png" alt="' . $words->getSilent('messages_allmessageswith', $member->Username) . '" title="' . $words->getSilent('messages_allmessageswith', $member->Username) . '" /></a>';
 }
 echo '<br />';
 $prefix = "";
 if (!empty($member->Age)) {
     echo $words->get('SearchYearsOld', $member->Age);
     $prefix = ", ";
 }
 $gender = $layoutbits->getGenderTranslated($member->Gender, $member->HideGender, false);
 if (!empty($gender)) {
     echo $prefix . $gender;
 }
 echo '<br />';
 echo $member->CityName . ", " . $member->CountryName . '<br />';
 echo '<br />';
 echo $member->Occupation . '</div>';
 echo '</td>';
 echo '<td class="summary">' . $profileSummary . '</td>';
 echo '<td class="details"><div class="red"><div class="left">' . $accommodationIcon . '</div>' . '<div>' . $words->get('SearchMaxGuestInfo', '<strong>' . $member->MaxGuest . '</strong>') . '<br />' . $words->get('SearchCommentsInfo', '<strong>' . $member->CommentCount . '</strong>') . '</div></div>';
 echo '<div class="clearfix"></div>';
 echo $words->get('SearchMemberSinceInfo', '<strong>' . date('d M y', strtotime($member->created)) . '</strong>') . '<br />';
 $lastlogin = $member->LastLogin == '0000-00-00' ? 'Never' : $layoutbits->ago(strtotime($member->LastLogin));
 $class = 'red';
 if ($member->LastLogin != '0000-00-00') {
Beispiel #3
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;
 }
 /**
  *
  * @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 #5
0
function ShowMembersAjaxShort($TM, $maxpos, $Accomodation, $Nr)
{
    static $ii = 0;
    $words = new MOD_words();
    $layoutbits = new MOD_layoutbits();
    $memberProfileLink = "members/" . $TM->Username;
    $ago = $TM->LastLogin == 0 ? $layoutbits->ago($TM->LastLogin) : $layoutbits->ago(strtotime(implode('/', explode('-', $TM->LastLogin))));
    if ($TM->Accomodation == '') {
        $TM->Accomodation = 'dependonrequest';
    }
    $info_styles = array(0 => "<div class=\"blank \" align=\"left\" valign=\"center\">", 1 => "<div class=\"highlight \" align=\"left\" valign=\"center\">");
    $string = $info_styles[$ii++ % 2];
    // this display the <tr>
    $string .= "<table id=\"memberDetail" . $Nr . "\" class=\"profileLinkArea full\"";
    // highlight marker on member list mouse over: $string .= " onmouseover=\"mapBuilder.highlightMarker(".$Nr.");\" onmouseout=\"mapBuilder.unhighlightMarker(".$Nr.");\"";
    $string .= " ><tr><td valign=\"top\" class=\"memberlist\">";
    $string .= "<a class=\"profileLink\" href=" . $memberProfileLink . " target=\"_blank\">";
    $string .= "<img src=\"members/avatar/" . $TM->Username . "?xs\" class=\"framed\">";
    $string .= "</a>";
    $string .= "</td>";
    $string .= "<td class=\"memberlist\" valign=\"top\">";
    $string .= '<p><a href="members/' . $TM->Username . '" target="_blank"><b>' . $TM->Username . '</b></a><br />';
    $string .= "<span class=\"small\">" . $words->getFormatted('YearsOld', $TM->Age) . ", ";
    $strGender = $layoutbits->getGenderTranslated($TM->Gender, $TM->HideGender, false);
    if (!empty($strGender)) {
        $string .= $strGender . ", ";
    }
    $string .= $TM->CityName . ", " . $TM->CountryName . "<br />";
    $string .= $words->getFormatted('LastLogin') . ": <span title=" . $TM->LastLogin . "><strong>" . $ago . "</strong></span><br />";
    $string .= $words->getFormatted('MemberSince') . ": <span title=" . $TM->created . "><strong>" . date('d M y', strtotime($TM->created)) . "</strong><br />";
    $string .= $words->getFormatted('Comments') . ": <span title=" . $TM->NbComment . "><strong>" . $TM->NbComment . "</strong><br />";
    $string .= "</span></td><td align=\"right\" class=\"accommodation\">";
    $string .= "<div class=\"markerLabelList " . $TM->Accomodation . "\"><a href=\"javascript:geosearchMapBuilder.openMarker(" . $Nr . ");\" title=\"" . $words->getBuffered('Accomodation') . ": " . $Accomodation[$TM->Accomodation] . "\">" . $Nr . "</a></div>";
    $string .= "</td></tr></table>";
    $string .= "</div>";
    return $string;
}