1 | <?php
|
---|
2 |
|
---|
3 | /***************************************************************************
|
---|
4 | * Dolphin Smart Community Builder
|
---|
5 | * -----------------
|
---|
6 | * begin : Mon Mar 23 2006
|
---|
7 | * copyright : (C) 2006 BoonEx Group
|
---|
8 | * website : http://www.boonex.com/
|
---|
9 | * This file is part of Dolphin - Smart Community Builder
|
---|
10 | *
|
---|
11 | * Dolphin is free software. This work is licensed under a Creative Commons Attribution 3.0 License.
|
---|
12 | * http://creativecommons.org/licenses/by/3.0/
|
---|
13 | *
|
---|
14 | * Dolphin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
---|
15 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
---|
16 | * See the Creative Commons Attribution 3.0 License for more details.
|
---|
17 | * You should have received a copy of the Creative Commons Attribution 3.0 License along with Dolphin,
|
---|
18 | * see license.txt file; if not, write to marketing@boonex.com
|
---|
19 | ***************************************************************************/
|
---|
20 |
|
---|
21 | require_once( 'header.inc.php' );
|
---|
22 | require_once( BX_DIRECTORY_PATH_INC . 'design.inc.php' );
|
---|
23 | require_once( BX_DIRECTORY_PATH_INC . 'images.inc.php' );
|
---|
24 | require_once( BX_DIRECTORY_PATH_INC . 'params.inc.php' );
|
---|
25 | require_once( BX_DIRECTORY_PATH_INC . 'tags.inc.php' );
|
---|
26 |
|
---|
27 | // user roles
|
---|
28 | define('BX_DOL_ROLE_GUEST', 0);
|
---|
29 | define('BX_DOL_ROLE_MEMBER', 1);
|
---|
30 | define('BX_DOL_ROLE_ADMIN', 2);
|
---|
31 | define('BX_DOL_ROLE_AFFILIATE', 4);
|
---|
32 | define('BX_DOL_ROLE_MODERATOR', 8);
|
---|
33 |
|
---|
34 | /**
|
---|
35 | * The following functions are needed to check whether user is logged in or not, active or not and get his ID.
|
---|
36 | */
|
---|
37 | function isLogged() {
|
---|
38 | return getLoggedId() != 0;
|
---|
39 | }
|
---|
40 | function isLoggedActive() {
|
---|
41 | return isProfileActive();
|
---|
42 | }
|
---|
43 | function getLoggedId() {
|
---|
44 | return isset($_COOKIE['memberID']) && ($GLOBALS['logged']['member'] || $GLOBALS['logged']['admin']) ? (int)$_COOKIE['memberID'] : 0;
|
---|
45 | }
|
---|
46 | function getLoggedPassword() {
|
---|
47 | return isset($_COOKIE['memberPassword']) && ($GLOBALS['logged']['member'] || $GLOBALS['logged']['admin']) ? $_COOKIE['memberPassword'] : '';
|
---|
48 | }
|
---|
49 |
|
---|
50 | /**
|
---|
51 | * The following functions are needed to check the ROLE of user.
|
---|
52 | */
|
---|
53 | function isMember($iId = 0) {
|
---|
54 | return isRole(BX_DOL_ROLE_MEMBER, $iId);
|
---|
55 | }
|
---|
56 | if(!function_exists("isAdmin")) {
|
---|
57 | function isAdmin($iId = 0) {
|
---|
58 | return isRole(BX_DOL_ROLE_ADMIN, $iId);
|
---|
59 | }
|
---|
60 | }
|
---|
61 | function isAffiliate($iId = 0) {
|
---|
62 | return isRole(BX_DOL_ROLE_AFFILIATE, $iId);
|
---|
63 | }
|
---|
64 | function isModerator($iId = 0) {
|
---|
65 | return isRole(BX_DOL_ROLE_MODERATOR, $iId);
|
---|
66 | }
|
---|
67 | function isRole($iRole, $iId = 0) {
|
---|
68 | $aProfile = getProfileInfo($iId);
|
---|
69 | if($aProfile === false)
|
---|
70 | return false;
|
---|
71 |
|
---|
72 | if(!((int)$aProfile['Role'] & $iRole))
|
---|
73 | return false;
|
---|
74 |
|
---|
75 | return true;
|
---|
76 | }
|
---|
77 |
|
---|
78 | $aUser = array(); //global cache array
|
---|
79 |
|
---|
80 | function ShowZodiacSign( $date ) {
|
---|
81 | global $site;
|
---|
82 |
|
---|
83 | if ( $date == "0000-00-00" )
|
---|
84 | return "";
|
---|
85 |
|
---|
86 | if ( strlen($date) ) {
|
---|
87 | $m = substr( $date, -5, 2 );
|
---|
88 | $d = substr( $date, -2, 2 );
|
---|
89 |
|
---|
90 | switch ( $m ) {
|
---|
91 | case '01': if ( $d <= 20 ) $sign = "capricorn"; else $sign = "aquarius";
|
---|
92 | break;
|
---|
93 | case '02': if ( $d <= 20 ) $sign = "aquarius"; else $sign = "pisces";
|
---|
94 | break;
|
---|
95 | case '03': if ( $d <= 20 ) $sign = "pisces"; else $sign = "aries";
|
---|
96 | break;
|
---|
97 | case '04': if ( $d <= 20 ) $sign = "aries"; else $sign = "taurus";
|
---|
98 | break;
|
---|
99 | case '05': if ( $d <= 20 ) $sign = "taurus"; else $sign = "gemini";
|
---|
100 | break;
|
---|
101 | case '06': if ( $d <= 21 ) $sign = "gemini"; else $sign = "cancer";
|
---|
102 | break;
|
---|
103 | case '07': if ( $d <= 22 ) $sign = "cancer"; else $sign = "leo";
|
---|
104 | break;
|
---|
105 | case '08': if ( $d <= 23 ) $sign = "leo"; else $sign = "virgo";
|
---|
106 | break;
|
---|
107 | case '09': if ( $d <= 23 ) $sign = "virgo"; else $sign = "libra";
|
---|
108 | break;
|
---|
109 | case '10': if ( $d <= 23 ) $sign = "libra"; else $sign = "scorpio";
|
---|
110 | break;
|
---|
111 | case '11': if ( $d <= 22 ) $sign = "scorpio"; else $sign = "sagittarius";
|
---|
112 | break;
|
---|
113 | case '12': if ( $d <= 21 ) $sign = "sagittarius"; else $sign = "capricorn";
|
---|
114 | }
|
---|
115 | $sIcon = $sign . '.png';
|
---|
116 | return '<img src="' . $site['zodiac'] . $sIcon . '" alt="' . $sign . '" title="' . $sign . '" />';
|
---|
117 | } else {
|
---|
118 | return "";
|
---|
119 | }
|
---|
120 | }
|
---|
121 |
|
---|
122 | function age( $birth_date ) {
|
---|
123 | if ( $birth_date == "0000-00-00" )
|
---|
124 | return _t("_uknown");
|
---|
125 |
|
---|
126 | $bd = explode( "-", $birth_date );
|
---|
127 | $age = date("Y") - $bd[0] - 1;
|
---|
128 |
|
---|
129 | $arr[1] = "m";
|
---|
130 | $arr[2] = "d";
|
---|
131 |
|
---|
132 | for ( $i = 1; $arr[$i]; $i++ ) {
|
---|
133 | $n = date( $arr[$i] );
|
---|
134 | if ( $n < $bd[$i] )
|
---|
135 | break;
|
---|
136 | if ( $n > $bd[$i] ) {
|
---|
137 | ++$age;
|
---|
138 | break;
|
---|
139 | }
|
---|
140 | }
|
---|
141 |
|
---|
142 | return $age;
|
---|
143 | }
|
---|
144 |
|
---|
145 | /**
|
---|
146 | * Print code for membership status
|
---|
147 | * $memberID - member ID
|
---|
148 | * $offer_upgrade - will this code be printed at [c]ontrol [p]anel
|
---|
149 | */
|
---|
150 | function GetMembershipStatus($memberID, $offer_upgrade = true) {
|
---|
151 | $ret = '';
|
---|
152 |
|
---|
153 | $membership_info = getMemberMembershipInfo($memberID);
|
---|
154 |
|
---|
155 | $viewMembershipActions = "<br />(<a onclick=\"javascript:window.open('explanation.php?explain=membership&type=".$membership_info['ID']."', '', 'width=660, height=500, menubar=no, status=no, resizable=no, scrollbars=yes, toolbar=no, location=no');\" href=\"javascript:void(0);\">"._t("_VIEW_MEMBERSHIP_ACTIONS")."</a>)<br />";
|
---|
156 |
|
---|
157 | // Show colored membership name
|
---|
158 | if ( $membership_info['ID'] == MEMBERSHIP_ID_STANDARD ) {
|
---|
159 | $ret .= _t( "_MEMBERSHIP_STANDARD" ). $viewMembershipActions;
|
---|
160 | if ( $offer_upgrade )
|
---|
161 | $ret .= " ". _t( "_MEMBERSHIP_UPGRADE_FROM_STANDARD" );
|
---|
162 | } else {
|
---|
163 | $ret .= "<font color=\"red\">{$membership_info['Name']}</font>$viewMembershipActions";
|
---|
164 |
|
---|
165 | $days_left = (int)( ($membership_info['DateExpires'] - time()) / (24 * 3600) );
|
---|
166 |
|
---|
167 | if(!is_null($membership_info['DateExpires'])) {
|
---|
168 | $ret .= ( $days_left > 0 ) ? _t( "_MEMBERSHIP_EXPIRES_IN_DAYS", $days_left ) : _t( "_MEMBERSHIP_EXPIRES_TODAY", date( "H:i", $membership_info['DateExpires'] ), date( "H:i" ) );
|
---|
169 | } else {
|
---|
170 | $ret.= _t("_MEMBERSHIP_EXPIRES_NEVER");
|
---|
171 | }
|
---|
172 | }
|
---|
173 | return $ret;
|
---|
174 | }
|
---|
175 |
|
---|
176 | function isAutoApproval( $sAction ) {
|
---|
177 | $autoApproval_ifPhoto = ( 'on' == getParam("autoApproval_ifPhoto") );
|
---|
178 | $autoApproval_ifSound = ( 'on' == getParam("autoApproval_ifSound") );
|
---|
179 | $autoApproval_ifVideo = ( 'on' == getParam("autoApproval_ifVideo") );
|
---|
180 | $autoApproval_ifProfile = ( 'on' == getParam("autoApproval_ifProfile") );
|
---|
181 | $autoApproval_ifJoin = ( 'on' == getParam("autoApproval_ifJoin") );
|
---|
182 |
|
---|
183 | switch ( $sAction ) {
|
---|
184 | case 'photo':
|
---|
185 | return $autoApproval_ifPhoto;
|
---|
186 | case 'sound':
|
---|
187 | return $autoApproval_ifSound;
|
---|
188 | case 'video':
|
---|
189 | return $autoApproval_ifVideo;
|
---|
190 | case 'profile':
|
---|
191 | return $autoApproval_ifProfile;
|
---|
192 | case 'join':
|
---|
193 | return $autoApproval_ifJoin;
|
---|
194 | default:
|
---|
195 | return false;
|
---|
196 | }
|
---|
197 | }
|
---|
198 |
|
---|
199 | function deleteUserDataFile( $userID ) {
|
---|
200 | global $aUser;
|
---|
201 |
|
---|
202 | $bUseCacheSystem = ( getParam('enable_cache_system') == 'on' ) ? true : false;
|
---|
203 | if (!$bUseCacheSystem) return false;
|
---|
204 |
|
---|
205 | $userID = (int)$userID;
|
---|
206 | $fileName = BX_DIRECTORY_PATH_CACHE . 'user' . $userID . '.php';
|
---|
207 | if( file_exists($fileName) ) {
|
---|
208 | unlink($fileName);
|
---|
209 | }
|
---|
210 | }
|
---|
211 |
|
---|
212 | function createUserDataFile( $userID ) {
|
---|
213 | global $aUser;
|
---|
214 |
|
---|
215 | $bUseCacheSystem = ( getParam('enable_cache_system') == 'on' ) ? true : false;
|
---|
216 | if (!$bUseCacheSystem) return false;
|
---|
217 |
|
---|
218 | $userID = (int)$userID;
|
---|
219 | $fileName = BX_DIRECTORY_PATH_CACHE . 'user' . $userID . '.php';
|
---|
220 | if( $userID > 0 ) {
|
---|
221 |
|
---|
222 | $aPreUser = getProfileInfoDirect ($userID);
|
---|
223 |
|
---|
224 | if( isset( $aPreUser ) and is_array( $aPreUser ) and $aPreUser) {
|
---|
225 | $sUser = '<?';
|
---|
226 | $sUser .= "\n\n";
|
---|
227 | $sUser .= '$aUser[' . $userID . '] = array();';
|
---|
228 | $sUser .= "\n";
|
---|
229 | $sUser .= '$aUser[' . $userID . '][\'datafile\'] = true;';
|
---|
230 | $sUser .= "\n";
|
---|
231 |
|
---|
232 | $replaceWhat = array( '\\', '\'' );
|
---|
233 | $replaceTo = array( '\\\\', '\\\'' );
|
---|
234 |
|
---|
235 | foreach( $aPreUser as $key => $value )
|
---|
236 | $sUser .= '$aUser[' . $userID . '][\'' . $key . '\']' . ' = ' . '\'' . str_replace( $replaceWhat, $replaceTo, $value ) . '\'' . ";\n";
|
---|
237 |
|
---|
238 | $sUser .= "\n" . '?>';
|
---|
239 |
|
---|
240 | if( $file = fopen( $fileName, "w" ) ) {
|
---|
241 | fwrite( $file, $sUser );
|
---|
242 | fclose( $file );
|
---|
243 | @chmod ($fileName, 0666);
|
---|
244 |
|
---|
245 | @include( $fileName );
|
---|
246 | return true;
|
---|
247 | } else
|
---|
248 | return false;
|
---|
249 | }
|
---|
250 | } else
|
---|
251 | return false;
|
---|
252 | }
|
---|
253 |
|
---|
254 | /**
|
---|
255 | * Check whether the requested profile is active or not.
|
---|
256 | */
|
---|
257 | function isProfileActive($iId = 0) {
|
---|
258 | $aProfile = getProfileInfo($iId);
|
---|
259 | if($aProfile === false || empty($aProfile))
|
---|
260 | return false;
|
---|
261 |
|
---|
262 | return $aProfile['Status'] == 'Active';
|
---|
263 | }
|
---|
264 | function getProfileInfoDirect ($iProfileID) {
|
---|
265 | return $GLOBALS['MySQL']->getRow("SELECT * FROM `Profiles` WHERE `ID`='" . $iProfileID . "' LIMIT 1");
|
---|
266 | }
|
---|
267 |
|
---|
268 | function getProfileInfo($iProfileID = 0, $checkActiveStatus = false, $forceCache = false) {
|
---|
269 | global $aUser;
|
---|
270 |
|
---|
271 | $iProfileID = !empty($iProfileID) ? (int)$iProfileID : getLoggedId();
|
---|
272 | if(!$iProfileID)
|
---|
273 | return false;
|
---|
274 |
|
---|
275 | if(!isset( $aUser[$iProfileID]) || !is_array($aUser[$iProfileID]) || $forceCache) {
|
---|
276 | $sCacheFile = BX_DIRECTORY_PATH_CACHE . 'user' . $iProfileID . '.php';
|
---|
277 | if( !file_exists( $sCacheFile ) || $forceCache ) {
|
---|
278 | if( !createUserDataFile( $iProfileID ) ) {
|
---|
279 | return getProfileInfoDirect ($iProfileID);
|
---|
280 | }
|
---|
281 | }
|
---|
282 |
|
---|
283 | @include( $sCacheFile );
|
---|
284 | }
|
---|
285 |
|
---|
286 | if( $checkActiveStatus and $aUser[$iProfileID]['Status'] != 'Active' )
|
---|
287 | return false;
|
---|
288 |
|
---|
289 | return $aUser[$iProfileID];
|
---|
290 | }
|
---|
291 |
|
---|
292 | /* osed only for xmlrpc */
|
---|
293 | function getNewLettersNum( $iID ) {
|
---|
294 | $sqlQuery =
|
---|
295 | "
|
---|
296 | SELECT
|
---|
297 | COUNT(`Recipient`)
|
---|
298 | FROM
|
---|
299 | `sys_messages`
|
---|
300 | WHERE
|
---|
301 | `Recipient`='$iID'
|
---|
302 | AND
|
---|
303 | `New`='1'
|
---|
304 | AND
|
---|
305 | NOT FIND_IN_SET('Recipient', `Trash`)
|
---|
306 | ";
|
---|
307 | return (int)db_value($sqlQuery);
|
---|
308 | }
|
---|
309 |
|
---|
310 | /*function for inner using only
|
---|
311 | $ID - profile ID
|
---|
312 | $iFrStatus - friend status (1 - approved, 0 - wait)
|
---|
313 | $iOnline - filter for last nav moment (in minutes)
|
---|
314 | $sqlWhere - add sql Conditions, should beginning from AND
|
---|
315 | */
|
---|
316 | function getFriendNumber($iID, $iFrStatus = 1, $iOnline = 0, $sqlWhere = '') {
|
---|
317 | $sqlAdd = '';
|
---|
318 |
|
---|
319 | if ($iOnline > 0)
|
---|
320 | $sqlAdd = " AND (p.`DateLastNav` > SUBDATE(NOW(), INTERVAL " . $iOnline . " MINUTE))";
|
---|
321 |
|
---|
322 | if (strlen($sqlWhere) > 0)
|
---|
323 | $sqlAdd .= $sqlWhere;
|
---|
324 |
|
---|
325 | $sqlQuery = "
|
---|
326 | SELECT COUNT(p.`ID`)
|
---|
327 | FROM `Profiles` AS p
|
---|
328 | LEFT JOIN `sys_friend_list` AS f1 ON (f1.`ID` = p.`ID` AND f1.`Profile` ='{$iID}' AND `f1`.`Check` = {$iFrStatus})
|
---|
329 | LEFT JOIN `sys_friend_list` AS f2 ON (f2.`Profile` = p.`ID` AND f2.`ID` ='{$iID}' AND `f2`.`Check` = {$iFrStatus})
|
---|
330 | WHERE 1
|
---|
331 | AND (f1.`ID` IS NOT NULL OR f2.`ID` IS NOT NULL)
|
---|
332 | {$sqlAdd}
|
---|
333 | ";
|
---|
334 |
|
---|
335 | return (int)db_value($sqlQuery);
|
---|
336 | }
|
---|
337 |
|
---|
338 | function getMyFriendsEx($iID, $sWhereParam = '', $sSortParam = '', $sqlLimit = '') {
|
---|
339 | $sJoin = $sOrderBy = '';
|
---|
340 |
|
---|
341 | switch($sSortParam) {
|
---|
342 | case 'activity' : // DateLastLogin
|
---|
343 | $sOrderBy = 'ORDER BY p.`DateLastLogin`';
|
---|
344 | break;
|
---|
345 | case 'activity_desc' : // DateLastLogin
|
---|
346 | $sOrderBy = 'ORDER BY p.`DateLastLogin` DESC';
|
---|
347 | break;
|
---|
348 | case 'last_nav' : // DateLastNav
|
---|
349 | $sOrderBy = 'ORDER BY p.`DateLastNav`';
|
---|
350 | break;
|
---|
351 | case 'last_nav_desc' : // DateLastNav
|
---|
352 | $sOrderBy = 'ORDER BY p.`DateLastNav` DESC';
|
---|
353 | break;
|
---|
354 | case 'date_reg' : // DateReg
|
---|
355 | $sOrderBy = 'ORDER BY p.`DateReg`';
|
---|
356 | break;
|
---|
357 | case 'date_reg_desc' : // DateReg
|
---|
358 | $sOrderBy = 'ORDER BY p.`DateReg` DESC';
|
---|
359 | break;
|
---|
360 | case 'image' : // Avatar
|
---|
361 | $sOrderBy = 'ORDER BY p.`Avatar` DESC';
|
---|
362 | break;
|
---|
363 | case 'rate' : // `sys_profile_rating`.`pr_rating_sum
|
---|
364 | $sOrderBy = 'ORDER BY `sys_profile_rating`.`pr_rating_sum`';
|
---|
365 | $sJoin = 'LEFT JOIN `sys_profile_rating` ON p.`ID` = `sys_profile_rating`.`pr_id`';
|
---|
366 | break;
|
---|
367 | default : // DateLastLogin
|
---|
368 | $sOrderBy = 'ORDER BY p.`DateLastLogin`';
|
---|
369 | break;
|
---|
370 | }
|
---|
371 |
|
---|
372 | $sLimit = ($sqlLimit == '') ? '' : /*"LIMIT 0, " .*/ $sqlLimit;
|
---|
373 | $iOnlineTime = (int)getParam( "member_online_time" );
|
---|
374 | $sqlQuery = "
|
---|
375 | SELECT p.*, if(`DateLastNav` > SUBDATE(NOW( ), INTERVAL $iOnlineTime MINUTE ), 1, 0) AS `is_online`, UNIX_TIMESTAMP(p.`DateLastLogin`) AS 'TS_DateLastLogin', UNIX_TIMESTAMP(p.`DateReg`) AS 'TS_DateReg'
|
---|
376 | FROM `Profiles` AS p
|
---|
377 | LEFT JOIN `sys_friend_list` AS f1 ON (f1.`ID` = p.`ID` AND f1.`Profile` ='{$iID}' AND `f1`.`Check` = 1)
|
---|
378 | LEFT JOIN `sys_friend_list` AS f2 ON (f2.`Profile` = p.`ID` AND f2.`ID` ='{$iID}' AND `f2`.`Check` = 1)
|
---|
379 | {$sJoin}
|
---|
380 | WHERE 1
|
---|
381 | AND (f1.`ID` IS NOT NULL OR f2.`ID` IS NOT NULL)
|
---|
382 | {$sWhereParam}
|
---|
383 | {$sOrderBy}
|
---|
384 | {$sLimit}
|
---|
385 | ";
|
---|
386 |
|
---|
387 | $aFriends = array();
|
---|
388 |
|
---|
389 | $vProfiles = db_res($sqlQuery);
|
---|
390 | while ($aProfiles = mysql_fetch_assoc($vProfiles)) {
|
---|
391 | $aFriends[$aProfiles['ID']] = array($aProfiles['ID'], $aProfiles['TS_DateLastLogin'], $aProfiles['TS_DateReg'], $aProfiles['Rate'], $aProfiles['DateLastNav'], $aProfiles['is_online']);
|
---|
392 | }
|
---|
393 |
|
---|
394 | return $aFriends;
|
---|
395 | }
|
---|
396 |
|
---|
397 | /*
|
---|
398 | * The function returns NickName by given ID. If no ID specified, it tryes to get if from _COOKIE['memberID'];
|
---|
399 | */
|
---|
400 | function getNickName( $ID = '' ) {
|
---|
401 | if ( !$ID && (int)$_COOKIE['memberID'] )
|
---|
402 | $ID = $_COOKIE['memberID'];
|
---|
403 |
|
---|
404 | if ( !$ID )
|
---|
405 | return '';
|
---|
406 |
|
---|
407 | $arr = getProfileInfo( $ID );
|
---|
408 | return $arr['NickName'];
|
---|
409 | }
|
---|
410 |
|
---|
411 | /*
|
---|
412 | * The function returns Password by given ID.
|
---|
413 | */
|
---|
414 | function getPassword( $ID = '' ) {
|
---|
415 | if ( !(int)$ID )
|
---|
416 | return '';
|
---|
417 |
|
---|
418 | $arr = getProfileInfo( $ID );
|
---|
419 | return $arr['Password'];
|
---|
420 | }
|
---|
421 |
|
---|
422 | function getProfileLink( $iID, $sLinkAdd = '' ) {
|
---|
423 | $aProfInfo = getProfileInfo( $iID );
|
---|
424 | $iID = ($aProfInfo['Couple'] > 0 && $aProfInfo['ID'] > $aProfInfo['Couple']) ? $aProfInfo['Couple'] : $iID;
|
---|
425 |
|
---|
426 | return (getParam('enable_modrewrite') == 'on') ? BX_DOL_URL_ROOT . getNickName($iID) . ( $sLinkAdd ? "?{$sLinkAdd}" : '' ) : BX_DOL_URL_ROOT . 'profile.php?ID='.$iID . ( $sLinkAdd ? "&{$sLinkAdd}" : '' );
|
---|
427 | }
|
---|
428 | function periodic_check_ban() {
|
---|
429 | //Cleaning Ban table
|
---|
430 | $CheckSQL = "
|
---|
431 | SELECT `sys_admin_ban_list`.*
|
---|
432 | FROM `sys_admin_ban_list`
|
---|
433 | WHERE (
|
---|
434 | `DateTime` + INTERVAL `Time` SECOND < NOW()
|
---|
435 | )
|
---|
436 | ";
|
---|
437 | $vCheckBanRes = db_res($CheckSQL);
|
---|
438 | while ( $aCheckBanRes = mysql_fetch_assoc($vCheckBanRes) ) {
|
---|
439 | $sDeleteBanSQL = "DELETE FROM `sys_admin_ban_list` WHERE `ProfID`='{$aCheckBanRes['ProfID']}'";
|
---|
440 | db_res($sDeleteBanSQL);
|
---|
441 | }
|
---|
442 | }
|
---|
443 |
|
---|
444 | function isLoggedBanned($iCurUserID = 0) {
|
---|
445 | $iCCurUserID = ($iCurUserID>0) ? $iCurUserID : (int)$_COOKIE['memberID'];
|
---|
446 | if ($iCCurUserID) {
|
---|
447 | $CheckSQL = "
|
---|
448 | SELECT *
|
---|
449 | FROM `sys_admin_ban_list`
|
---|
450 | WHERE `ProfID`='{$iCCurUserID}'
|
---|
451 | ";
|
---|
452 | db_res($CheckSQL);
|
---|
453 | if (db_affected_rows()>0) {
|
---|
454 | return true;
|
---|
455 | }
|
---|
456 | }
|
---|
457 | return false;
|
---|
458 | }
|
---|
459 | function bx_login($iId, $bRememberMe = false) {
|
---|
460 | bx_logout();
|
---|
461 |
|
---|
462 | $sPassword = getPassword($iId);
|
---|
463 |
|
---|
464 | $aUrl = parse_url($GLOBALS['site']['url']);
|
---|
465 | $sPath = isset($aUrl['path']) && !empty($aUrl['path']) ? $aUrl['path'] : '/';
|
---|
466 | $sHost = '';
|
---|
467 | $iCookieTime = $bRememberMe ? time() + 24*60*60*30 : 0;
|
---|
468 | setcookie("memberID", $iId, $iCookieTime, $sPath, $sHost);
|
---|
469 | $_COOKIE['memberID'] = $iId;
|
---|
470 | setcookie("memberPassword", $sPassword, $iCookieTime, $sPath, $sHost, false, true /* http only */);
|
---|
471 | $_COOKIE['memberPassword'] = $sPassword;
|
---|
472 |
|
---|
473 | db_res("UPDATE `Profiles` SET `DateLastLogin`=NOW(), `DateLastNav`=NOW() WHERE `ID`='" . $iId . "'");
|
---|
474 | createUserDataFile($iId);
|
---|
475 |
|
---|
476 | require_once(BX_DIRECTORY_PATH_CLASSES . 'BxDolAlerts.php');
|
---|
477 | $oZ = new BxDolAlerts('profile', 'login', $iId);
|
---|
478 | $oZ->alert();
|
---|
479 |
|
---|
480 | return getProfileInfo($iId);
|
---|
481 | }
|
---|
482 | function bx_logout($bNotify = true) {
|
---|
483 | if($bNotify && isMember()) {
|
---|
484 | require_once(BX_DIRECTORY_PATH_CLASSES . 'BxDolAlerts.php');
|
---|
485 | $oZ = new BxDolAlerts('profile', 'logout', (int)$_COOKIE['memberID']);
|
---|
486 | $oZ->alert();
|
---|
487 | }
|
---|
488 |
|
---|
489 | $aUrl = parse_url($GLOBALS['site']['url']);
|
---|
490 | $sPath = isset($aUrl['path']) && !empty($aUrl['path']) ? $aUrl['path'] : '/';
|
---|
491 |
|
---|
492 | setcookie('memberID', '', time() - 96 * 3600, $sPath);
|
---|
493 | setcookie('memberPassword', '', time() - 96 * 3600, $sPath);
|
---|
494 |
|
---|
495 | unset($_COOKIE['memberID']);
|
---|
496 | unset($_COOKIE['memberPassword']);
|
---|
497 | }
|
---|
498 |
|
---|
499 | function setSearchStartAge($iMin) {
|
---|
500 | if ($iMin <= 0)
|
---|
501 | return false;
|
---|
502 |
|
---|
503 | $GLOBALS['MySQL']->query("update `sys_profile_fields` set `Min` = $iMin where `Name` = 'DateOfBirth'");
|
---|
504 |
|
---|
505 | require_once(BX_DIRECTORY_PATH_CLASSES . 'BxDolPFM.php');
|
---|
506 | $oCacher = new BxDolPFMCacher();
|
---|
507 | $oCacher -> createCache();
|
---|
508 |
|
---|
509 | return true;
|
---|
510 | }
|
---|
511 |
|
---|
512 | function setSearchEndAge($iMax) {
|
---|
513 | if ($iMax <= 0)
|
---|
514 | return false;
|
---|
515 |
|
---|
516 | $GLOBALS['MySQL']->query("update `sys_profile_fields` set `Max` = $iMax where `Name` = 'DateOfBirth'");
|
---|
517 |
|
---|
518 | require_once(BX_DIRECTORY_PATH_CLASSES . 'BxDolPFM.php');
|
---|
519 | $oCacher = new BxDolPFMCacher();
|
---|
520 | $oCacher -> createCache();
|
---|
521 |
|
---|
522 | return true;
|
---|
523 | }
|
---|
524 |
|
---|
525 | check_logged();
|
---|