diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2014-05-14 08:12:12 +0200 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2014-05-14 08:12:12 +0200 |
| commit | a1b772ed96d84480ece5c35eb4c95b692fb63ecc (patch) | |
| tree | d96a785cd75a731cae95d36bec43eb9ed52ed1fb /src | |
| parent | 991497ceb381d1ab6bc79db8bfad4405c8bbd008 (diff) | |
| download | phorkie-a1b772ed96d84480ece5c35eb4c95b692fb63ecc.tar.gz phorkie-a1b772ed96d84480ece5c35eb4c95b692fb63ecc.zip | |
show newest repositories in list at first
Diffstat (limited to 'src')
| -rw-r--r-- | src/phorkie/Repositories.php | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/phorkie/Repositories.php b/src/phorkie/Repositories.php index a75f2c2..729ff23 100644 --- a/src/phorkie/Repositories.php +++ b/src/phorkie/Repositories.php @@ -40,7 +40,7 @@ class Repositories /** * Get a list of repository objects * - * @param integer $page Page number, beginning with 0 + * @param integer $page Page number, beginning with 0, or "last" * @param integer $perPage Number of repositories per page * * @return array Array of Repositories first, number of repositories second @@ -50,15 +50,25 @@ class Repositories chdir($this->gitDir); $dirs = glob('*.git', GLOB_ONLYDIR); sort($dirs, SORT_NUMERIC); + if ($page === 'last') { + //always show the last 10 + $page = intval(count($dirs) / $perPage); + $start = count($dirs) - $perPage; + if ($start < 0) { + $start = 0; + } + $some = array_slice($dirs, $start, $perPage); + } else { + $some = array_slice($dirs, $page * $perPage, $perPage); + } - $some = array_slice($dirs, $page * $perPage, $perPage); $repos = array(); foreach ($some as $oneDir) { $r = new Repository(); $r->loadById(substr($oneDir, 0, -4)); $repos[] = $r; } - return array($repos, count($dirs)); + return array($repos, count($dirs), $page); } } |
