Code Duplication    Length = 68-73 lines in 2 locations

main/inc/lib/online.inc.php 1 location

@@ 323-390 (lines=68) @@
320
    }
321
}
322
323
function who_is_online_count($time_limit = null, $friends = false)
324
{
325
    if (empty($time_limit)) {
326
        $time_limit = api_get_setting('time_limit_whosonline');
327
    } else {
328
        $time_limit = intval($time_limit);
329
    }
330
	$track_online_table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ONLINE);
331
	$friend_user_table = Database::get_main_table(TABLE_MAIN_USER_REL_USER);
332
	$table_user = Database::get_main_table(TABLE_MAIN_USER);
333
	$online_time = time() - $time_limit * 60;
334
	$current_date = api_get_utc_datetime($online_time);
335
336
	if ($friends) {
337
		// 	who friends from social network is online
338
		$query = "SELECT DISTINCT count(login_user_id) as count
339
				  FROM $track_online_table INNER JOIN $friend_user_table
340
                  ON (friend_user_id = login_user_id)
341
				  WHERE
342
				        login_date >= '$current_date' AND
343
				        friend_user_id <> '".api_get_user_id()."' AND
344
				        relation_type='".USER_RELATION_TYPE_FRIEND."' AND
345
				        user_id = '".api_get_user_id()."' ";
346
	} else {
347
		// All users online
348
		$query = "SELECT count(login_id) as count
349
                  FROM $track_online_table track INNER JOIN $table_user u
350
                  ON (u.id=track.login_user_id)
351
                  WHERE u.status != ".ANONYMOUS." AND login_date >= '$current_date'  ";
352
	}
353
354
	if (api_get_multiple_access_url()) {
355
		$access_url_id = api_get_current_access_url_id();
356
		if ($access_url_id != -1) {
357
			if ($friends) {
358
				// 	friends from social network is online
359
				$query = "SELECT DISTINCT count(login_user_id) as count
360
							FROM $track_online_table track
361
							INNER JOIN $friend_user_table ON (friend_user_id = login_user_id)
362
							WHERE
363
							    track.access_url_id = $access_url_id AND
364
							    login_date >= '".$current_date."' AND
365
							    friend_user_id <> '".api_get_user_id()."' AND
366
							    relation_type='".USER_RELATION_TYPE_FRIEND."'  ";
367
			} else {
368
				// all users online
369
				$query = "SELECT count(login_id) as count FROM $track_online_table  track
370
                          INNER JOIN $table_user u ON (u.id=track.login_user_id)
371
						  WHERE
372
						    u.status != ".ANONYMOUS." AND
373
						    track.access_url_id =  $access_url_id AND
374
						    login_date >= '$current_date' ";
375
			}
376
		}
377
	}
378
379
    // Dev purposes show all users online
380
    /*$table_user = Database::get_main_table(TABLE_MAIN_USER);
381
    $query = "SELECT count(*)  as count FROM ".$table_user;*/
382
383
	$result = Database::query($query);
384
	if (Database::num_rows($result) > 0) {
385
		$row = Database::fetch_array($result);
386
		return $row['count'];
387
	} else {
388
		return false;
389
	}
390
}
391
392
393
/**

main/inc/lib/usermanager.lib.php 1 location

@@ 5563-5635 (lines=73) @@
5560
    }
5561
5562
5563
    public static function whoIsOnlineCount(
5564
        $time_limit = null,
5565
        $friends = false
5566
    ) {
5567
        if (empty($time_limit)) {
5568
            $time_limit = api_get_setting('display.time_limit_whosonline');
5569
        } else {
5570
            $time_limit = intval($time_limit);
5571
        }
5572
        $track_online_table = Database::get_main_table(
5573
            TABLE_STATISTIC_TRACK_E_ONLINE
5574
        );
5575
        $friend_user_table = Database::get_main_table(TABLE_MAIN_USER_REL_USER);
5576
        $table_user = Database::get_main_table(TABLE_MAIN_USER);
5577
        $online_time = time() - $time_limit * 60;
5578
        $current_date = api_get_utc_datetime($online_time);
5579
5580
        if ($friends) {
5581
            // 	who friends from social network is online
5582
            $query = "SELECT DISTINCT count(login_user_id) as count
5583
				  FROM $track_online_table INNER JOIN $friend_user_table
5584
                  ON (friend_user_id = login_user_id)
5585
				  WHERE
5586
				        login_date >= '$current_date' AND
5587
				        friend_user_id <> '".api_get_user_id()."' AND
5588
				        relation_type='".USER_RELATION_TYPE_FRIEND."' AND
5589
				        user_id = '".api_get_user_id()."' ";
5590
        } else {
5591
            // All users online
5592
            $query = "SELECT count(login_id) as count
5593
                  FROM $track_online_table track INNER JOIN $table_user u
5594
                  ON (u.id=track.login_user_id)
5595
                  WHERE u.status != ".ANONYMOUS." AND login_date >= '$current_date'  ";
5596
        }
5597
5598
        if (api_get_multiple_access_url()) {
5599
            $access_url_id = api_get_current_access_url_id();
5600
            if ($access_url_id != -1) {
5601
                if ($friends) {
5602
                    // 	friends from social network is online
5603
                    $query = "SELECT DISTINCT count(login_user_id) as count
5604
							FROM $track_online_table track
5605
							INNER JOIN $friend_user_table ON (friend_user_id = login_user_id)
5606
							WHERE
5607
							    track.access_url_id = $access_url_id AND
5608
							    login_date >= '".$current_date."' AND
5609
							    friend_user_id <> '".api_get_user_id()."' AND
5610
							    relation_type='".USER_RELATION_TYPE_FRIEND."'  ";
5611
                } else {
5612
                    // all users online
5613
                    $query = "SELECT count(login_id) as count FROM $track_online_table  track
5614
                          INNER JOIN $table_user u ON (u.id=track.login_user_id)
5615
						  WHERE
5616
						    u.status != ".ANONYMOUS." AND
5617
						    track.access_url_id =  $access_url_id AND
5618
						    login_date >= '$current_date' ";
5619
                }
5620
            }
5621
        }
5622
5623
        // Dev purposes show all users online
5624
        /*$table_user = Database::get_main_table(TABLE_MAIN_USER);
5625
        $query = "SELECT count(*)  as count FROM ".$table_user;*/
5626
5627
        $result = Database::query($query);
5628
        if (Database::num_rows($result) > 0) {
5629
            $row = Database::fetch_array($result);
5630
5631
            return $row['count'];
5632
        } else {
5633
            return false;
5634
        }
5635
    }
5636
5637
    /**
5638
     * Gives a list of people online now (and in the last $valid minutes)