VersionPress\Git\GitLogPaginator::getPrettySteps PHP Method

getPrettySteps() public method

For example if there are 1000 commits, 25 per page and you are on page 10, it returns 0,7,8,9,10,11,12,13,20,29,39. The algorithm is from VisualPaginator component for Nette Framework.
public getPrettySteps ( $currentPage ) : array
$currentPage
return array
    public function getPrettySteps($currentPage)
    {
        $page = $currentPage;
        $pageCount = ceil($this->numberOfCommits / (double) $this->commitsPerPage);
        if ($pageCount < 2) {
            return [];
        }
        $arr = range(max(0, $page - 3), min($pageCount - 1, $page + 3));
        $count = 4;
        $quotient = ($pageCount - 1) / $count;
        for ($i = 0; $i <= $count; $i++) {
            $arr[] = round($quotient * $i);
        }
        sort($arr);
        $steps = array_values(array_unique($arr));
        return $steps;
    }

Usage Example

Beispiel #1
0
    }
    $isEnabled = $isChildOfInitialCommit || $canRollbackToThisCommit || $commit->getHash() === $initialCommitHash;
    $message = $changeInfo->getChangeDescription();
    echo "\n        <tr class=\"post-1 type-post status-publish format-standard hentry category-uncategorized\n                    alternate level-0" . ($isEnabled ? "" : " disabled") . "\">\n            <td title=\"{$commitDate}\">{$commit->getRelativeDate()}</td>\n            <td>{$message}</td>\n            <td style=\"text-align: right\">\n                {$versioningSnippet}\n            </td>\n        </tr>";
    if ($commit->getHash() === $initialCommitHash && $key < count($commits) - 1) {
        echo $disabledCommitsMessage;
    }
    $isFirstCommit = false;
}
?>
    </tbody>
    <tfoot>
    <tr>
        <td colspan="3">
            <?php 
$pageNumbers = $gitLogPaginator->getPrettySteps($page);
$i = 0;
$links = "";
$lastNumber = 0;
foreach ($pageNumbers as $pageNumber) {
    $divider = "";
    if ($i > 0 && $lastNumber != $pageNumber - 1) {
        $divider = "&hellip;";
    } elseif ($i > 0) {
        $divider = "|";
    }
    $links .= " " . $divider . " ";
    $pageUrl = add_query_arg('vp-page', $pageNumber, menu_page_url('versionpress', false));
    if ($pageNumber == $page) {
        $links .= $pageNumber + 1;
    } else {
All Usage Examples Of VersionPress\Git\GitLogPaginator::getPrettySteps