From dde6bf56f3d6b9b3e2d9ed43e2983b151732dfb4 Mon Sep 17 00:00:00 2001 From: Chuck Hagenbuch Date: Mon, 1 Nov 2010 16:41:39 -0400 Subject: [PATCH] Pretty URLs for individual commits. --- chora/.htaccess | 2 ++ chora/lib/Chora.php | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/chora/.htaccess b/chora/.htaccess index e13edfda4..7e738d7e7 100644 --- a/chora/.htaccess +++ b/chora/.htaccess @@ -6,4 +6,6 @@ Allow from all RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^browse/(.*)$ browsedir.php?f=$1 [QSA] RewriteRule ^([a-z-\/]+)/-/browse/(.*)$ browsedir.php?f=$2&rt=$1 [QSA] + RewriteRule ^commits/(.*)$ patchsets.php?ps=$1 [QSA] + RewriteRule ^([a-z-\/]+)/-/commits/(.*)$ patchsets.php?ps=$2&rt=$1 [QSA] diff --git a/chora/lib/Chora.php b/chora/lib/Chora.php index 392d54b6b..018ed5555 100644 --- a/chora/lib/Chora.php +++ b/chora/lib/Chora.php @@ -114,7 +114,9 @@ class Chora $script .= '.php'; if ($GLOBALS['conf']['options']['urls'] == 'rewrite') { - if (in_array($script, array('browsefile.php', 'browsedir.php'))) { + switch ($script) { + case 'browsefile.php': + case 'browsedir.php': if (substr($uri, 0, 1) == '/') { $script = "browse$uri"; } else { @@ -122,7 +124,16 @@ class Chora } $script = urlencode(isset($args['rt']) ? $args['rt'] : $GLOBALS['acts']['rt']) . "/-/$script"; unset($arglist['rt']); - } else { + break; + + case 'patchsets.php': + if (!empty($args['ps'])) { + $script = urlencode(isset($args['rt']) ? $args['rt'] : $GLOBALS['acts']['rt']) . '/-/commits/' . $args['ps']; + unset($arglist['ps']); + } + break; + + default: $script .= '/' . $uri; } } elseif (!empty($uri)) { @@ -130,7 +141,6 @@ class Chora } return Horde::url($script)->add($arglist)->setAnchor($anchor); - } /** @@ -466,5 +476,4 @@ class Chora ? $log : preg_replace($GLOBALS['conf']['tickets']['regexp'], $GLOBALS['conf']['tickets']['replacement'], $log); } - } -- 2.11.0