2 namespace TYPO3\CMS\IndexedSearch\ViewHelpers;
48 public function render($maximumNumberOfResultPages, $numberOfResults, $resultsPerPage, $currentPage = 0, $freeIndexUid = null)
50 return static::renderStatic(
52 'maximumNumberOfResultPages' => $maximumNumberOfResultPages,
53 'numberOfResults' => $numberOfResults,
54 'resultsPerPage' => $resultsPerPage,
55 'currentPage' => $currentPage,
56 'freeIndexUid' => $freeIndexUid,
59 $this->renderingContext
72 $maximumNumberOfResultPages = $arguments[
'maximumNumberOfResultPages'];
73 $numberOfResults = $arguments[
'numberOfResults'];
74 $resultsPerPage = $arguments[
'resultsPerPage'];
75 $currentPage = $arguments[
'currentPage'];
76 $freeIndexUid = $arguments[
'freeIndexUid'];
78 if ($resultsPerPage <= 0) {
81 $pageCount = (int)ceil($numberOfResults / $resultsPerPage);
83 if ($pageCount === 1) {
93 if ($currentPage > 0) {
95 $content .=
'<li>' . self::makecurrentPageSelector_link($label, $currentPage - 1, $freeIndexUid) .
'</li>';
100 $minPage = $currentPage - (int)floor($maximumNumberOfResultPages / 2);
101 $maxPage = $minPage + $maximumNumberOfResultPages - 1;
104 $maxPage -= $minPage;
106 }
elseif ($maxPage >= $pageCount) {
107 $minPage -= $maxPage - $pageCount + 1;
108 $maxPage = $pageCount - 1;
111 for ($a = $minPage; $a <= $maxPage; $a++) {
112 $label = trim($pageLabel .
' ' . ($a + 1));
113 $label = self::makecurrentPageSelector_link($label, $a, $freeIndexUid);
114 if ($a === $currentPage) {
115 $content .=
'<li class="tx-indexedsearch-browselist-currentPage"><strong>' . $label .
'</strong></li>';
117 $content .=
'<li>' . $label .
'</li>';
121 if ($currentPage < $pageCount - 1) {
123 $content .=
'<li>' . self::makecurrentPageSelector_link($label, ($currentPage + 1), $freeIndexUid) .
'</li>';
125 return '<ul class="tx-indexedsearch-browsebox">' . $content .
'</ul>';
140 if ($freeIndexUid !== null) {
144 return '<a href="#" onclick="' . htmlspecialchars($onclick) .
'">' . $str .
'</a>';