public static function getHistoryViews($where) { global $injector; $tabs = new Horde_Core_Ui_Tabs(null, $injector->getInstance('Horde_Variables')); $tabs->addTab(_("_Logs"), self::url('browsefile', $where), 'browsefile'); if ($GLOBALS['VC']->hasFeature('patchsets')) { $tabs->addTab(_("_Patchsets"), self::url('patchsets', $where), 'patchsets'); } if ($GLOBALS['VC']->hasFeature('branches')) { if (empty($GLOBALS['conf']['paths']['cvsgraph']) || !$GLOBALS['VC'] instanceof Horde_Vcs_Cvs) { $tabs->addTab(_("_Branch Graph"), self::url('history', $where), 'history'); } else { $tabs->addTab(_("_Branch Graph"), self::url('cvsgraph', $where), 'cvsgraph'); } } $tabs->addTab(_("_Statistics"), self::url('stats', $where), 'stats'); return $tabs; }
for ($row = sizeof($trunk) - 1; $row >= 0; $row--) { $grid[$row][0] = $trunk[$row]; _populateGrid($row, 0); } /* Sort the grid array into row order, and determine the maximum * column size that we need to render out in HTML. */ ksort($grid); $maxCol = 0; foreach ($grid as $cols) { krsort($cols); list($val) = each($cols); $maxCol = max($val, $maxCol); } $title = _("Source Branching View for:"); Chora::header($title); echo Chora::getHistoryViews($where)->render('history'); require CHORA_TEMPLATES . '/history/header.inc'; foreach ($grid as $row) { echo '<tr>'; /* Start traversing the grid of rows and columns. */ for ($i = 0; $i <= $maxCol; ++$i) { /* If this column has nothing in it, require a blank cell. */ if (!isset($row[$i])) { $bg = ''; require CHORA_TEMPLATES . '/history/blank.inc'; continue; } /* Otherwise, this cell has content; determine what it is. */ $rev = $row[$i]; // if ($VC->isValidRevision($rev) && ($VC->sizeof($rev) % 2)) { if ($VC->isValidRevision($rev)) {