[!!!][BUGFIX] Make indexed search plugin PHP7 compatible 16/47416/2
authorTymoteusz Motylewski <t.motylewski@gmail.com>
Mon, 21 Mar 2016 20:51:58 +0000 (21:51 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Wed, 30 Mar 2016 08:50:04 +0000 (10:50 +0200)
Rename SearchFormController::pi_list_browseresults as it had different
signature than defined in parent AbstractPlugin and there is no
non breaking way to make it PHP7 compatible.

Resolves: #72931
Releases: 7.6, master
Change-Id: I3dc36386a3866b5ca87d48d2869c21b9a37fbfe3
Reviewed-on: https://review.typo3.org/47416
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/core/Documentation/Changelog/master/Breaking-72931-SearchFormControllerpi_list_browseresultsHasBeenRenamed.rst [new file with mode: 0644]
typo3/sysext/indexed_search/Classes/Controller/SearchFormController.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-72931-SearchFormControllerpi_list_browseresultsHasBeenRenamed.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-72931-SearchFormControllerpi_list_browseresultsHasBeenRenamed.rst
new file mode 100644 (file)
index 0000000..1447562
--- /dev/null
@@ -0,0 +1,30 @@
+=================================================================================
+Breaking: #72931 - SearchFormController::pi_list_browseresults() has been renamed
+=================================================================================
+
+Description
+===========
+
+In order to make Indexed Search pi-based plugin PHP7 compatible, the ``SearchFormController::pi_list_browseresults()`` method has been renamed to ``SearchFormController::renderPagination()``.
+Parameter types, order and count has been preserved. However the methods visibility has been changed to protected.
+
+
+Impact
+======
+
+Call to old method name will result in fatal error "Call to undefined method".
+
+
+Affected Installations
+======================
+
+Any installation of TYPO3 7.6 or TYPO3 8 where SearchFormController is overloaded (XCLASSed) and new class contains call to old method name and
+any code that called the public method from outside the class.
+
+
+Migration
+=========
+
+Rename ``pi_list_browseresults()`` to ``renderPagination()``.
+
+Calling the method from outside the class is no longer possible.
\ No newline at end of file
index 6f7a4bd..ddb79fc 100755 (executable)
@@ -670,8 +670,8 @@ class SearchFormController extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin
                 $this->internal['maxPages'] = MathUtility::forceIntegerInRange($this->conf['search.']['page_links'], 1, 100, 10);
                 $resultSectionsCount = count($this->resultSections);
                 $addString = $resData['count'] && $this->piVars['group'] == 'sections' && $freeIndexUid <= 0 ? ' ' . sprintf($this->pi_getLL(($resultSectionsCount > 1 ? 'inNsections' : 'inNsection')), $resultSectionsCount) : '';
-                $browseBox1 = $this->pi_list_browseresults(1, $addString, $this->printResultSectionLinks(), $freeIndexUid);
-                $browseBox2 = $this->pi_list_browseresults(0, '', '', $freeIndexUid);
+                $browseBox1 = $this->renderPagination(1, $addString, $this->printResultSectionLinks(), $freeIndexUid);
+                $browseBox2 = $this->renderPagination(0, '', '', $freeIndexUid);
                 // Browsing nav, bottom.
                 $content = $browseBox1 . $rowcontent . $browseBox2;
             } else {
@@ -1622,7 +1622,7 @@ class SearchFormController extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin
     }
 
     /**
-     * Returns a results browser
+     * Returns a results browser, former method name: pi_list_browseresults
      *
      * @param bool $showResultCount Show result count
      * @param string $addString String appended to "displaying results..." notice.
@@ -1630,7 +1630,7 @@ class SearchFormController extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin
      * @param string $freeIndexUid List of integers pointing to free indexing configurations to search. -1 represents no filtering, 0 represents TYPO3 pages only, any number above zero is a uid of an indexing configuration!
      * @return string HTML output
      */
-    public function pi_list_browseresults($showResultCount = true, $addString = '', $addPart = '', $freeIndexUid = -1)
+    protected function renderPagination($showResultCount = true, $addString = '', $addPart = '', $freeIndexUid = -1)
     {
         // Initializing variables:
         $pointer = (int)$this->piVars['pointer'];