/** * Loads data for this template */ protected function LoadData() { $head = $this->GetProject()->GetHeadCommit(); $data = null; if ($this->params['graphtype'] == 'commitactivity') { $data = array(); $commits = explode("\n", $this->exe->Execute($this->GetProject()->GetPath(), 'rev-list', array('--format=format:"%H %ct"', $head->GetHash()))); foreach ($commits as $commit) { if (preg_match('/^([0-9a-fA-F]{40}) ([0-9]+)$/', $commit, $regs)) { $data[] = array('CommitEpoch' => (int) $regs[2]); } } } else { if ($this->params['graphtype'] == 'languagedist') { $data = array(); include_once GITPHP_GESHIDIR . "geshi.php"; $geshi = new GeSHi("", 'php'); $files = explode("\n", $this->exe->Execute($this->GetProject()->GetPath(), 'ls-tree', array('-r', '--name-only', $head->GetTree()->GetHash()))); foreach ($files as $file) { $filename = GitPHP_Util::BaseName($file); $lang = GitPHP_Util::GeshiFilenameToLanguage($filename); if (empty($lang)) { $lang = $geshi->get_language_name_from_extension(substr(strrchr($filename, '.'), 1)); if (empty($lang)) { $lang = 'Other'; } } if (!empty($lang) && $lang !== 'Other') { $fulllang = $geshi->get_language_fullname($lang); if (!empty($fulllang)) { $lang = $fulllang; } } if (isset($data[$lang])) { $data[$lang]++; } else { $data[$lang] = 1; } } } } $this->tpl->assign('data', json_encode($data)); }