/** * Display a list of members * * @apiMethod GET * @apiUri /members/list * @apiParameter { * "name": "limit", * "description": "Number of result to return.", * "type": "integer", * "required": false, * "default": 25 * } * @apiParameter { * "name": "start", * "description": "Number of where to start returning results.", * "type": "integer", * "required": false, * "default": 0 * } * @apiParameter { * "name": "search", * "description": "A word or phrase to search for.", * "type": "string", * "required": false, * "default": "" * } * @apiParameter { * "name": "sort", * "description": "Field to sort results by.", * "type": "string", * "required": false, * "default": "name", * "allowedValues": "name, id" * } * @apiParameter { * "name": "sort_Dir", * "description": "Direction to sort results by.", * "type": "string", * "required": false, * "default": "desc", * "allowedValues": "asc, desc" * } * @return void */ public function listTask() { include_once dirname(dirname(__DIR__)) . DS . 'tables' . DS . 'profile.php'; $filters = array('limit' => Request::getInt('limit', 25), 'start' => Request::getInt('limitstart', 0), 'search' => Request::getVar('search', ''), 'sortby' => Request::getWord('sort', 'name'), 'sort_Dir' => strtoupper(Request::getWord('sortDir', 'DESC')), 'authorized' => false, 'emailConfirmed' => true, 'public' => 1, 'show' => 'members'); if ($filters['sortby'] == 'id') { $filters['sortby'] = 'uidNumber'; } $database = App::get('db'); $c = new \Components\Members\Tables\Profile($database); $response = new stdClass(); $response->members = array(); $response->total = $c->getCount($filters, false); if ($response->total) { $base = rtrim(Request::base(), '/'); foreach ($c->getRecords($filters, false) as $i => $entry) { $obj = new stdClass(); $obj->id = $entry->uidNumber; $obj->name = $entry->name; $obj->organization = $entry->organization; $obj->uri = str_replace('/api', '', $base . '/' . ltrim(Route::url('index.php?option=' . $this->_option . '&id=' . $entry->uidNumber), '/')); $response->members[] = $obj; } } $response->success = true; $this->send($response); }
/** * Calculate stats * * @return object */ public function stats() { $c = new \Components\Members\Tables\Profile($this->database); $stats = new \stdClass(); // Get record count of ALL members $stats->total_members = $c->getCount(array('show' => ''), true); // Get record count of ALL members $stats->total_public_members = $c->getCount(array('show' => '', 'authorized' => false), false); //get newly registered members (past day) $this->database->setQuery("SELECT COUNT(*) FROM `#__xprofiles` WHERE registerDate > '" . Date::of(strtotime('-1 DAY'))->toSql() . "'"); $stats->past_day_members = $this->database->loadResult(); //get newly registered members (past month) $this->database->setQuery("SELECT COUNT(*) FROM `#__xprofiles` WHERE registerDate > '" . Date::of(strtotime('-1 MONTH'))->toSql() . "'"); $stats->past_month_members = $this->database->loadResult(); return $stats; }