[BUGFIX] Fix duplicate selection in record list 66/44866/4
authorGeorg Ringer <georg.ringer@gmail.com>
Sat, 21 Nov 2015 16:07:09 +0000 (17:07 +0100)
committerWouter Wolters <typo3@wouterwolters.nl>
Sat, 21 Nov 2015 17:22:16 +0000 (18:22 +0100)
Fix the usage of the wrong argument of the method listURL.
Since a cleanup, a strict comparison is done, therefore the argument
must be a string instead of an integer.

Change-Id: I41ea3b16f4c049f06ffd4edbff45f71fbb7b4438
Resolves: #71759
Releases: master
Reviewed-on: https://review.typo3.org/44866
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
typo3/sysext/backend/Classes/RecordList/AbstractRecordList.php
typo3/sysext/filelist/Classes/FileList.php
typo3/sysext/recordlist/Classes/RecordList/AbstractDatabaseRecordList.php
typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php
typo3/sysext/sys_action/Classes/ActionList.php

index 16394e4..1800b67 100644 (file)
@@ -371,9 +371,11 @@ abstract class AbstractRecordList
      * Creates the URL to this script, including all relevant GPvars
      *
      * @param string $altId Alternative id value. Enter blank string for the current id ($this->id)
+     * @param string $table Table name to display. Enter "-1" for the current table.
+     * @param string $exclList Comma separated list of fields NOT to include ("sortField", "sortRev" or "firstElementNumber")
      * @return string URL
      */
-    public function listURL($altId = '')
+    public function listURL($altId = '', $table = '-1', $exclList = '')
     {
         return $this->getThisScript() . 'id=' . ($altId !== '' ? $altId : $this->id);
     }
index 21a27a6..38d32fd 100644 (file)
@@ -644,10 +644,12 @@ class FileList extends AbstractRecordList
      * the URL would be invalid
      *
      * @param string $altId
+     * @param string $table Table name to display. Enter "-1" for the current table.
+     * @param string $exclList Comma separated list of fields NOT to include ("sortField", "sortRev" or "firstElementNumber")
      *
      * @return string URL
      */
-    public function listURL($altId = '')
+    public function listURL($altId = '', $table = '-1', $exclList = '')
     {
         return GeneralUtility::linkThisScript(array(
             'target' => rawurlencode($this->folderObject->getCombinedIdentifier()),
index c4caa0f..9a82d11 100644 (file)
@@ -545,7 +545,7 @@ class AbstractDatabaseRecordList extends AbstractRecordList
         // Setting form-elements, if applicable:
         $formElements = array('', '');
         if ($formFields) {
-            $formElements = array('<form action="' . htmlspecialchars($this->listURL('', -1, 'firstElementNumber,search_field')) . '" method="post">', '</form>');
+            $formElements = array('<form action="' . htmlspecialchars($this->listURL('', '-1', 'firstElementNumber,search_field')) . '" method="post">', '</form>');
         }
         // Make level selector:
         $opt = array();
index 75d1b5d..7fbc4cd 100644 (file)
@@ -1191,7 +1191,7 @@ class DatabaseRecordList extends AbstractDatabaseRecordList
                     if ($this->table && is_array($currentIdList)) {
                         // If the numeric clipboard pads are selected, show duplicate sorting link:
                         if ($this->clipNumPane()) {
-                            $theData[$fCol] .= '<a class="btn btn-default" href="' . htmlspecialchars($this->listURL('', -1) . '&duplicateField=' . $fCol)
+                            $theData[$fCol] .= '<a class="btn btn-default" href="' . htmlspecialchars($this->listURL('', '-1') . '&duplicateField=' . $fCol)
                                 . '" title="' . $lang->getLL('clip_duplicates', true) . '">'
                                 . $this->iconFactory->getIcon('actions-document-duplicates-select', Icon::SIZE_SMALL)->render() . '</a>';
                         }
@@ -1966,7 +1966,7 @@ class DatabaseRecordList extends AbstractDatabaseRecordList
             $field = 'pid';
         }
         //      Create the sort link:
-        $sortUrl = $this->listURL('', -1, 'sortField,sortRev,table,firstElementNumber') . '&table=' . $table
+        $sortUrl = $this->listURL('', '-1', 'sortField,sortRev,table,firstElementNumber') . '&table=' . $table
             . '&sortField=' . $field . '&sortRev=' . ($this->sortRev || $this->sortField != $field ? 0 : 1);
         $sortArrow = $this->sortField === $field
             ? $this->iconFactory->getIcon('status-status-sorting-' . ($this->sortRev ? 'desc' : 'asc'), Icon::SIZE_SMALL)->render()
index 755f1f8..b152705 100644 (file)
@@ -29,7 +29,7 @@ class ActionList extends \TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList
      * @param string $excludeList Comma separated list of fields NOT to include ("sortField" or "sortRev")
      * @return string
      */
-    public function listURL($alternativeId = '', $table = -1, $excludeList = '')
+    public function listURL($alternativeId = '', $table = '-1', $excludeList = '')
     {
         $urlParameters = array();
         if ((string)$alternativeId !== '') {
@@ -37,7 +37,7 @@ class ActionList extends \TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList
         } else {
             $urlParameters['id'] = $this->id;
         }
-        if ($table === -1) {
+        if ($table === '-1') {
             $urlParameters['table'] = $this->table;
         } else {
             $urlParameters['table'] = $table;