Esempio n. 1
0
 /**
  * Get user usage info
  *
  * This returns usage info for a user
  * <br/>Example:
  * <code>
  * $info = EfrontStats :: getUserUsageInfo('jdoe');                   //Get usage information for user jdoe
  * </code>
  * @param mixed $user Either a user login or a EfrontUser object
  * @return array the users' basic info
  * @since 3.5.0
  * @access public
  * @static
  */
 public static function getUserUsageInfo($user)
 {
     if (!$user instanceof EfrontUser) {
         $user = EfrontUserFactory::factory($user);
     }
     $info = array();
     $login_info = eF_getTableData("logs", "*", "users_LOGIN='******' and action = 'login'", "timestamp desc");
     $info['last_ip'] = eF_decodeIP($login_info[0]['session_ip']);
     $logins = array();
     foreach ($login_info as $login) {
         $logins[$login['id']] = $login;
     }
     $month_login_info = eF_getTableData("logs", "*", "users_LOGIN='******' and action = 'login' and timestamp > " . (time() - 2592000) . "");
     $month_logins = array();
     foreach ($month_login_info as $login) {
         $month_logins[$login['id']] = $login;
     }
     $week_login_info = eF_getTableData("logs", "*", "users_LOGIN='******' and action = 'login' and timestamp > " . (time() - 604800) . "");
     $week_logins = array();
     foreach ($week_login_info as $login) {
         $week_logins[$login['id']] = $login;
     }
     $timeReport = new EfrontTimes();
     $mean_duration = round($timeReport->getUserMeanSessionTime($user->login) / 60);
     $timeReport = new EfrontTimes(array(time() - 2592000, time()));
     $month_mean_duration = round($timeReport->getUserMeanSessionTime($user->login) / 60);
     $timeReport = new EfrontTimes(array(time() - 604800, time()));
     $week_mean_duration = round($timeReport->getUserMeanSessionTime($user->login) / 60);
     /*
             $temp = self :: getUserTimes($user -> login);
             sizeof($temp['duration']) > 0 ? $mean_duration = ceil((array_sum($temp['duration']) / sizeof($temp['duration'])) / 60) : $mean_duration = 0;
             $temp = self :: getUserTimes($user -> login, array('from' => time() - 2592000, 'to' => time()));
             sizeof($temp['duration']) > 0 ? $month_mean_duration = ceil((array_sum($temp['duration']) / sizeof($temp['duration']) / 60)) : $month_mean_duration = 0;
             $temp = self :: getUserTimes($user -> login, array('from' => time() - 604800, 'to' => time()));
             sizeof($temp['duration']) > 0 ? $week_mean_duration = ceil((array_sum($temp['duration']) / sizeof($temp['duration']) / 60)) : $week_mean_duration = 0;
     */
     $info['logins'] = $logins;
     if (sizeof($info['logins']) > 0) {
         $info['last_login'] = current($info['logins']);
     }
     $info['month_logins'] = $month_logins;
     $info['week_logins'] = $week_logins;
     $info['mean_duration'] = $mean_duration;
     $info['month_mean_duration'] = $month_mean_duration;
     $info['week_mean_duration'] = $week_mean_duration;
     return $info;
 }