8 require_once(CH_DIRECTORY_PATH_CLASSES .
'ChWsbPageView.php');
42 $this -> aMembersInfo =
$oCache->getData(
$GLOBALS[
'MySQL']->genDbCacheKey(
'sys_browse_people'));
43 if (
null === $this -> aMembersInfo)
44 $this -> aMembersInfo = array ();
47 $iStartDate =
getParam(
'search_start_age');
48 $iLastDate =
getParam(
'search_end_age');
51 while ( $iStartDate <= $iLastDate ) {
52 $this -> aDateBirthRange[$iStartDate .
'-' . ($iStartDate + 2)] = 0;
58 $this -> bPermalinkMode = (
getParam(
'permalinks_browse') )
64 $this -> iMemberOnlineTime = (int)
getParam(
"member_online_time" );
67 ksort($aPreValues[
'Sex'], SORT_STRING);
68 foreach( $aPreValues[
'Sex'] AS $sKey => $aItems ) {
69 $this -> aSexRange[$sKey] = 0;
73 ksort($aPreValues[
'Country'], SORT_STRING);
74 foreach( $aPreValues[
'Country'] AS $sKey => $aItems ) {
75 $this -> aCountryRange[$sKey] = 0;
94 foreach( $this -> aSexRange AS $sKey => $sValue ) {
96 $sWhereParam =
" AND `Sex` = '{$sKey}' ";
97 $iCount =
db_value( $PrimaryQuery . $sWhereParam );
100 $aSexArray[$sKey] = $iCount;
114 $aAgeArray = array();
116 foreach( $this -> aDateBirthRange AS $sKey => $sValue ) {
118 $aDateRange = explode(
'-', $sKey);
120 $iFrom = (int) $aDateRange[0];
121 $iTo = (int) $aDateRange[1];
126 ((YEAR(CURDATE())-YEAR(`DateOfBirth`)) - (RIGHT(CURDATE(),5)<RIGHT(`DateOfBirth`,5))) >= {$iFrom}
128 ((YEAR(CURDATE())-YEAR(`DateOfBirth`)) - (RIGHT(CURDATE(),5)<RIGHT(`DateOfBirth`,5))) <= {$iTo}
131 $iCount =
db_value( $PrimaryQuery . $sWhereParam);
133 $aAgeArray[$sKey] = $iCount;
148 $aCountryArray =
null;
150 foreach( $this -> aCountryRange AS $sKey => $sValue ) {
152 $sWhereParam =
" AND `Country` = '{$sKey}' ";
153 $iCount =
db_value( $PrimaryQuery . $sWhereParam );
156 $aCountryArray[$sKey] = $iCount;
159 return $aCountryArray;
176 $sCurrentKey = ( $this -> sKeyName )
180 $aSexArray = $aAgeArray = $aCountryArray = array();
185 $sWhereParam .= (
$sSex )
186 ?
" AND `Sex` = '{$sSex}' "
190 ?
" AND `Country` = '{$sCountry}' "
195 $aDateRange = explode(
'-',
$sAge);
197 $iFrom = (int)$aDateRange[0] - 1;
198 $iTo = (int)$aDateRange[1];
202 if ( !$iFrom
or !$iTo )
208 ((YEAR(CURDATE())-YEAR(`DateOfBirth`)) - (RIGHT(CURDATE(),5)<RIGHT(`DateOfBirth`,5))) >= {$iFrom}
210 ((YEAR(CURDATE())-YEAR(`DateOfBirth`)) - (RIGHT(CURDATE(),5)<RIGHT(`DateOfBirth`,5))) <= {$iTo}
217 $sWhereParam .= ( $sPhoto )
218 ?
' AND `Profiles`.`Avatar` <> 0'
224 ?
" AND (`Profiles`.`DateLastNav` > SUBDATE(NOW(), INTERVAL " . $this -> iMemberOnlineTime .
" MINUTE)) "
227 $sQuery =
"SELECT COUNT(*) FROM `Profiles` WHERE `Status` = 'Active' {$sWhereParam}";
233 if ( !isset($this -> aMembersInfo[$sCurrentKey]) ) {
237 $this -> aMembersInfo[$sCurrentKey][
'sex']= $this ->
getSexCount($sQuery);
241 $this -> aMembersInfo[$sCurrentKey][
'country'] = $this ->
getCountriesCount($sQuery);
245 $this -> aMembersInfo[$sCurrentKey][
'age'] = $this ->
getAgesCount($sQuery);
266 $sBackKey =
'back_path_' . $sCurrentKey;
270 if ( !isset($this -> aMembersInfo[$sBackKey][
'sex']) ) {
271 $aSexArray[$sBackKey][
'sex'] = $this ->
getSexCount($sQuery);
277 return $aSexArray[$sBackKey][
'sex'];
279 return $this -> aMembersInfo[$sBackKey][
'sex'];
283 if ( !isset($this -> aMembersInfo[$sBackKey][
'age']) ) {
284 $aAgeArray[$sBackKey][
'age'] = $this ->
getAgesCount($sQuery);
290 return $aAgeArray[$sBackKey][
'age'];
292 return $this -> aMembersInfo[$sBackKey][
'age'];
296 if ( !isset($this -> aMembersInfo[$sBackKey][
'country']) ) {
303 return $aCountryArray[$sBackKey][
'country'];
305 return $this -> aMembersInfo[$sBackKey][
'country'];
312 return $this -> aMembersInfo[$sCurrentKey];
326 $aTmpData =
$oCache->getData(
$GLOBALS[
'MySQL']->genDbCacheKey(
'sys_browse_people'));
327 if (
null === $aTmpData)
328 $aTmpData = array ();
332 foreach(
$aFields AS $sFieldName => $aItems ) {
333 if ( is_array($aItems)
and !
empty($aItems) ) {
334 foreach( $aItems AS $sItemName => $sItemValue )
335 $aTmpData[$sKey][$sFieldName][$sItemName] = $sItemValue;
340 $oCache->setData (
$GLOBALS[
'MySQL']->genDbCacheKey(
'sys_browse_people'), $aTmpData);