[BUGFIX] Several typos in Page Browsing ViewHelper 39/28539/2
authorBenjamin Rau <rau@codearts.at>
Sun, 26 Jan 2014 13:00:26 +0000 (14:00 +0100)
committerMarkus Klein <klein.t3@mfc-linz.at>
Wed, 19 Mar 2014 17:33:02 +0000 (18:33 +0100)
Fixing several typos and slips of the pen in the
PageBrowsing ViewHelper.

Without fixing all of them the page browsing ViewHelper
is not functional properly, that´s why i want to submit
them at once and also supply the fix for it.

That are these errors:
* Undefined but used class property prefixId
* Overwriting instead of appending content to already defined variable
* Not using UpperCamelCase for extensionName in Localization Utilty
* Accidentally using wrong variables
* Defining variable in for-loop which could be defined outside also
* Using undefined variable freeIndexUid

Resolves: #55340
Releases: 6.2, 6.1
Change-Id: I708a7af4876eba0e69fa666694315e0babcf6800
Reviewed-on: https://review.typo3.org/28539
Reviewed-by: Markus Klein
Tested-by: Markus Klein
typo3/sysext/indexed_search/Classes/ViewHelpers/PageBrowsingViewHelper.php

index bd9ae2f..c2265c0 100644 (file)
@@ -38,16 +38,21 @@ namespace TYPO3\CMS\IndexedSearch\ViewHelpers;
 class PageBrowsingViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
 
        /**
-        * main render function
+        * @var string
+        */
+       protected $prefixId = 'tx_indexedsearch';
+
+       /**
+        * Main render function
         *
         * @param integer $maximumNumberOfResultPages
         * @param integer $numberOfResults
         * @param integer $resultsPerPage
         * @param integer $currentPage
-        * @return the content
+        * @param string|NULL $freeIndexUid
+        * @return string The content
         */
-       public function render($maximumNumberOfResultPages, $numberOfResults, $resultsPerPage, $currentPage = 1) {
-               $maximumNumberOfResultPages = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($maximumNumberOfResultPages, 1, 100, 10);
+       public function render($maximumNumberOfResultPages, $numberOfResults, $resultsPerPage, $currentPage = 1, $freeIndexUid = NULL) {
                $pageCount = ceil($numberOfResults / $resultsPerPage);
                $content = '';
                // only show the result browser if more than one page is needed
@@ -56,33 +61,33 @@ class PageBrowsingViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractVi
                        // prev page
                        // show on all pages after the 1st one
                        if ($currentPage > 0) {
-                               $label = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('displayResults.previous', 'indexed_search');
-                               $content .= '<li>' . $this->makecurrentPageSelector_link($label, ($currentPage - 1), $freeIndexUid) . '</li>';
+                               $label = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('displayResults.previous', 'IndexedSearch');
+                               $content .= '<li>' . $this->makecurrentPageSelector_link($label, $currentPage - 1, $freeIndexUid) . '</li>';
                        }
-                       for ($a = 0; $a < $pageCount; $a++) {
-                               $min = max(0, $currentPage + 1 - ceil($maximumNumberOfResultPages / 2));
-                               $max = $min + $maximumNumberOfResultPages;
-                               if ($max > $pageCount) {
-                                       $min = $min - ($max - $pageCount);
-                               }
-                               if ($a >= $min && $a < $max) {
-                                       $label = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('displayResults.page', 'indexed_search');
-                                       $label = trim($label . ' ' . ($a + 1));
-                                       $label = $this->makecurrentPageSelector_link($label, $a, $freeIndexUid);
-                                       if ($a == $currentPage) {
-                                               $content .= '<li class="tx-indexedsearch-browselist-currentPage"><strong>' . $label . '</strong></li>';
-                                       } else {
-                                               $content .= '<li>' . $label . '</li>';
-                                       }
+                       $maximumNumberOfResultPages = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($maximumNumberOfResultPages, 1, 200000000, 10);
+                       $min = max(0, $currentPage + 1 - ceil($maximumNumberOfResultPages / 2));
+                       $max = $min + $maximumNumberOfResultPages;
+                       if ($max > $pageCount) {
+                               $min -= $max - $pageCount;
+                       }
+                       for ($a = $min; $a < $pageCount && $a < $max; $a++) {
+                               $label = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('displayResults.page', 'IndexedSearch');
+                               $label = trim($label . ' ' . ($a + 1));
+                               $label = $this->makecurrentPageSelector_link($label, $a, $freeIndexUid);
+                               if ($a === $currentPage) {
+                                       $content .= '<li class="tx-indexedsearch-browselist-currentPage"><strong>' . $label . '</strong></li>';
+                               } else {
+                                       $content .= '<li>' . $label . '</li>';
                                }
                        }
                        // next link
                        if ($currentPage + 1 < $pageCount) {
-                               $label = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('displayResults.next', 'indexed_search');
-                               $content = '<li>' . $this->makecurrentPageSelector_link($label, ($currentPage + 1), $freeIndexUid) . '</li>';
+                               $label = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('displayResults.next', 'IndexedSearch');
+                               $content .= '<li>' . $this->makecurrentPageSelector_link($label, ($currentPage + 1), $freeIndexUid) . '</li>';
                        }
                        $content = '<ul class="tx-indexedsearch-browsebox">' . $content . '</ul>';
                }
+
                return $content;
        }
 
@@ -97,7 +102,11 @@ class PageBrowsingViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractVi
         * @todo Define visibility
         */
        public function makecurrentPageSelector_link($str, $p, $freeIndexUid) {
-               $onclick = 'document.getElementById(\'' . $this->prefixId . '_currentPage\').value=\'' . $p . '\';' . 'document.getElementById(\'' . $this->prefixId . '_freeIndexUid\').value=\'' . rawurlencode($freeIndexUid) . '\';' . 'document.getElementById(\'' . $this->prefixId . '\').submit();return false;';
+               $onclick = 'document.getElementById(\'' . $this->prefixId . '_pointer\').value=\'' . $p . '\';';
+               if ($freeIndexUid !== NULL) {
+                       $onclick .= 'document.getElementById(\'' . $this->prefixId . '_freeIndexUid\').value=\'' . rawurlencode($freeIndexUid) . '\';';
+               }
+               $onclick .= 'document.getElementById(\'' . $this->prefixId . '\').submit();return false;';
                return '<a href="#" onclick="' . htmlspecialchars($onclick) . '">' . $str . '</a>';
        }