Ejemplo n.º 1
0
/**
 * Return the most Active users
 * @param integer $limit (optional - default: 5)
 * @param number $from the time from which to get thier activity expressed in milliseconds
 * @return ActivitySet or Error
 */
function getUsersMostActive($limit = 5, $from, $style = 'long')
{
    global $DB, $CFG, $USER, $HUB_SQL;
    $params = array();
    $as = new ActivitySet();
    $sql = $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_SELECT;
    $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_SELECT_SELECT;
    $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_SELECT_NODE;
    if ($from > 0) {
        $params[count($params)] = $from;
        $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_MOD_DATE;
    }
    $sql .= $HUB_SQL->UNION;
    $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_SELECT_CONN;
    if ($from > 0) {
        $params[count($params)] = $from;
        $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_MOD_DATE;
    }
    $sql .= $HUB_SQL->UNION;
    $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_MODE_DATE_WHERE;
    if ($from > 0) {
        $params[count($params)] = $from;
        $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_MOD_DATE_VOTE;
    }
    $sql .= $HUB_SQL->UNION;
    $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_SELECT_FOLLOW;
    if ($from > 0) {
        $params[count($params)] = $from;
        $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_MOD_DATE;
    }
    $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_END;
    $sql .= $HUB_SQL->APILIB_USERS_BY_MOST_ACTIVE_ORDER;
    // ADD LIMITING
    if ($limit > 0) {
        $sql = $DB->addLimitingResults($sql, 0, $limit);
    }
    $us = new UserSet();
    return $us->loadActive($sql, $style);
}