Cache support for snapshots
[gitphp.git] / include / display.git_shortlog.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
/*
 *  display.git_shortlog.php
 *  gitphp: A PHP git repository browser
 *  Component: Display - short log
 *
 *  Copyright (C) 2008 Christopher Han <xiphux@gmail.com>
 */
 
 require_once('util.date_str.php');
 require_once('gitutil.git_read_head.php');
 require_once('gitutil.git_read_revlist.php');
 require_once('gitutil.git_read_commit.php');
 require_once('gitutil.read_info_ref.php');
 
function git_shortlog($projectroot,$project,$hash,$page)
{
        global $tpl;
 
        $cachekey = sha1($project) . "|" . $hash . "|" . $page;
 
        if (!$tpl->is_cached('shortlog.tpl', $cachekey)) {
                $head = git_read_head($projectroot . $project);
                if (!isset($hash))
                        $hash = $head;
                if (!isset($page))
                        $page = 0;
                $refs = read_info_ref($projectroot . $project);
                $tpl->assign("hash",$hash);
                $tpl->assign("head",$head);
 
                if ($page)
                        $tpl->assign("page",$page);
 
                $revlist = git_read_revlist($projectroot . $project, $hash, 101, ($page * 100));
 
                $revlistcount = count($revlist);
                $tpl->assign("revlistcount",$revlistcount);
 
                $commitlines = array();
                $commitcount = min(100,count($revlist));
                for ($i = 0; $i < $commitcount; $i++) {
                        $commit = $revlist[$i];
                        if (strlen(trim($commit)) > 0) {
                                $commitline = array();
                                if (isset($refs[$commit]))
                                        $commitline["commitref"] = $refs[$commit];
                                $co = git_read_commit($projectroot . $project, $commit);
                                $ad = date_str($co['author_epoch']);
                                $commitline["commit"] = $commit;
                                $commitline["agestringage"] = $co['age_string_age'];
                                $commitline["agestringdate"] = $co['age_string_date'];
                                $commitline["authorname"] = $co['author_name'];
                                $commitline["title_short"] = $co['title_short'];
                                if (strlen($co['title_short']) < strlen($co['title']))
                                        $commitline["title"] = $co['title'];
                                $commitlines[] = $commitline;
                        }
                }
                $tpl->assign("commitlines",$commitlines);
        }
        $tpl->display('shortlog.tpl', $cachekey);
}
 
?>
 
comments