aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2014-05-14 08:12:12 +0200
committerChristian Weiske <cweiske@cweiske.de>2014-05-14 08:12:12 +0200
commita1b772ed96d84480ece5c35eb4c95b692fb63ecc (patch)
treed96a785cd75a731cae95d36bec43eb9ed52ed1fb
parent991497ceb381d1ab6bc79db8bfad4405c8bbd008 (diff)
downloadphorkie-a1b772ed96d84480ece5c35eb4c95b692fb63ecc.tar.gz
phorkie-a1b772ed96d84480ece5c35eb4c95b692fb63ecc.zip
show newest repositories in list at first
-rw-r--r--data/config.default.php1
-rw-r--r--src/phorkie/Repositories.php16
-rw-r--r--www/list.php4
3 files changed, 16 insertions, 5 deletions
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'