X-Git-Url: http://git.pk910.de/?p=phpgitweb.git;a=blobdiff_plain;f=htdocs%2Flib%2FCommitLoader.class.php;fp=htdocs%2Flib%2FCommitLoader.class.php;h=64fc898251c623c15db24ac075eae08fd671f693;hp=d6e822c2fa3b0058958b782540bcb9ca4f2f3133;hb=b400fe63ce2c5db919a479101e8b261f479e8d0b;hpb=cdf14cc9d75eb1919d8730c33b2921a0112e5c23 diff --git a/htdocs/lib/CommitLoader.class.php b/htdocs/lib/CommitLoader.class.php index d6e822c..64fc898 100644 --- a/htdocs/lib/CommitLoader.class.php +++ b/htdocs/lib/CommitLoader.class.php @@ -17,17 +17,46 @@ */ class CommitLoader { + public static $commit_id, $commit_base_id; private $project; + public static function parse($log_page = false) { + if(array_key_exists('h', $_GET) && Validation::validate_hash($_GET['h'])) + $commit_id = $_GET['h']; + else + $commit_id = "all"; + + if(array_key_exists('hb', $_GET) && Validation::validate_hash($_GET['hb'])) + $commit_base_id = $_GET['hb']; + else if(!$log_page && $_SESSION['hb']) + $commit_base_id = $_SESSION['hb']; + else + $commit_base_id = $commit_id; + + if($log_page) + $_SESSION['hb'] = $commit_base_id; + + ContentProvider::overall_set('commit_base_id', $commit_base_id); + ContentProvider::overall_set('commit_id', $commit_id); + + self::$commit_id = $commit_id; + self::$commit_base_id = $commit_base_id; + return array('id' => $commit_id, 'base_id' => $commit_base_id); + } + public function __construct($project) { $this->project = $project; } - public function load($id) { - if(!Validation::validate_hash($id)) { + public function load($id = null) { + if(!$id && self::$commit_id) + $id = self::$commit_id; + else if(!Validation::validate_hash($id)) { trigger_error("Invalid hash parameter", E_USER_ERROR); return false; } + if(strtolower($id) == 'all') + $id = null; $commit = GitCommand::get_commit($this->project['path'], $id); return $commit; }