From: Christian Weiske Date: Wed, 14 May 2014 06:12:12 +0000 (+0200) Subject: show newest repositories in list at first X-Git-Tag: v0.4.0~45 X-Git-Url: https://git.cweiske.de/phorkie.git/commitdiff_plain/a1b772ed96d84480ece5c35eb4c95b692fb63ecc show newest repositories in list at first --- diff --git a/data/config.default.php b/data/config.default.php index 3b5066d..dd32195 100644 --- a/data/config.default.php +++ b/data/config.default.php @@ -14,6 +14,7 @@ $GLOBALS['phorkie']['cfg'] = array( 'geshi' => 'MediaWiki/geshi/geshi/geshi.php', 'index' => 'new',//"new" or "list" 'perPage' => 10, + 'defaultListPage' => 'last',//a number or "last" 'notificator' => array( /* send out pingback/webmentions when a remote paste is forked */ 'linkback' => true, 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); } } diff --git a/www/list.php b/www/list.php index 88ad31d..7c60ceb 100644 --- a/www/list.php +++ b/www/list.php @@ -7,7 +7,7 @@ $reqWritePermissions = false; require_once 'www-header.php'; $rs = new Repositories(); -$page = 0; +$page = $GLOBALS['phorkie']['cfg']['defaultListPage']; if (isset($_GET['page'])) { if (!is_numeric($_GET['page'])) { throw new Exception_Input('List page is not numeric'); @@ -16,7 +16,7 @@ if (isset($_GET['page'])) { } $perPage = $GLOBALS['phorkie']['cfg']['perPage']; -list($repos, $repoCount) = $rs->getList($page, $perPage); +list($repos, $repoCount, $page) = $rs->getList($page, $perPage); $pager = new Html_Pager( $repoCount, $perPage, $page + 1, 'list/%d'