?> </a> </h3> <?php if ($blog->name) { if ($bloggeo = $this->model->getBlogGeo($blog->blog_geonameid)) { $country = $bloggeo->getCountry(); $countryname = $country->name; } else { $countryname = ''; } echo "<span class='trip_author'>{$blog->name}, {$countryname}</span><br />"; } if ($blog->blog_text) { $blogtext = $blog->blog_text; $moreLink = '<br /><a href="blog/' . $trip->handle . '/' . $blogid . '">' . $words->get('ReadMore') . ' ...</a>'; echo '<div>' . MOD_layoutbits::truncate_words($blogtext, 60, $moreLink) . '</div>'; } ?> <div> <?php if ($member && $isOwnTrip) { ?> <a href="blog/edit/<?php echo $blogid; ?> "><img src="styles/css/minimal/images/iconsfam/pencil.png" style="vertical-align:bottom;" alt="<?php echo $words->get('Trip_EditMyOwnSubTrip'); ?> " /></a> <a href="blog/edit/<?php echo $blogid; ?>
echo $post->city; ?> , <?php echo $post->country; ?> "> <?php $maxlen = 13; if (strlen($post->city) > $maxlen) { echo '<span>' . MOD_layoutbits::truncate_words($post->city, $maxlen) . '</span>'; } else { echo $post->city; } echo "<br />"; if (strlen($post->country) > $maxlen) { echo '<span title="">' . MOD_layoutbits::truncate_words($post->country, $maxlen) . '</span>'; } else { echo $post->country; } ?> </div> <?php } } ?> </div> <!-- forumsauthor --> <div class="forumsmessage"> <div class="floatbox"> <!-- Display the time the post was made --> <p class="forumstime"> <?php
/** * * @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; }
/** * * @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; }