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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | <?php /** * GitPHP Controller Commit * * Controller for displaying a commit * * @author Christopher Han <xiphux@gmail.com> * @copyright Copyright (c) 2010 Christopher Han * @package GitPHP * @subpackage Controller */ /** * Commit controller class * * @package GitPHP * @subpackage Controller */ class GitPHP_Controller_Commit extends GitPHP_ControllerBase { /** * __construct * * Constructor * * @access public * @return controller */ public function __construct() { parent::__construct(); if (!$this->project) { throw new GitPHP_MessageException('Project is required for commit', true); } } /** * GetTemplate * * Gets the template for this controller * * @access protected * @return string template filename */ protected function GetTemplate() { if (isset($this->params['jstip']) && $this->params['jstip']) { return 'committip.tpl'; } return 'commit.tpl'; } /** * GetCacheKey * * Gets the cache key for this controller * * @access protected * @return string cache key */ protected function GetCacheKey() { return $this->params['hash']; } /** * GetName * * Gets the name of this controller's action * * @access public * @return string action name */ public function GetName() { return 'commit'; } /** * ReadQuery * * Read query into parameters * * @access protected */ protected function ReadQuery() { if (isset($_GET['h'])) $this->params['hash'] = $_GET['h']; else $this->params['hash'] = 'HEAD'; if (isset($_GET['o']) && ($_GET['o'] == 'jstip')) { $this->params['jstip'] = true; } } /** * LoadData * * Loads data for this template * * @access protected */ protected function LoadData() { $commit = $this->project->GetCommit($this->params['hash']); $this->tpl->assign('commit', $commit); $this->tpl->assign('tree', $commit->GetTree()); $treediff = $commit->DiffToParent(); $treediff->SetRenames(true); $this->tpl->assign('treediff', $treediff); } } |