[BUGFIX] List module - Fix pointer issue in pagebrowser
authorSusanne Moog <typo3@susannemoog.de>
Sun, 10 Apr 2011 11:58:10 +0000 (13:58 +0200)
committerSusanne Moog <typo3@susannemoog.de>
Sun, 10 Apr 2011 12:00:49 +0000 (14:00 +0200)
When you have more than 50 records in the list module, you can use
the page browser to display the next set of records.
When using this on the pages table, the pointer to page 2,3,.. is
added to the link of each page record. Selecting such a link causes
the result listing of that page to also start from that specific result
page. If there are not enough records, none will be shown.

Resolves: #20908
Change-Id: Ia112391533c40d4f2e56d41a6f893432480c8af1
Reviewed-on: http://review.typo3.org/1133
Reviewed-by: Susanne Moog
Tested-by: Susanne Moog
typo3/class.db_list.inc
typo3/class.db_list_extra.inc

index 5691bf1..58544f5 100644 (file)
@@ -315,7 +315,7 @@ class recordList extends t3lib_recordList {
                        // Setting form-elements, if applicable:
                $formElements=array('','');
                if ($formFields)        {
-                       $formElements=array('<form action="'.htmlspecialchars($this->listURL('', -1, 'pointer')).'" method="post">','</form>');
+                       $formElements = array('<form action="' . htmlspecialchars($this->listURL('', -1, 'firstElementNumber')) . '" method="post">', '</form>');
                }
 
                        // Make level selector:
@@ -590,9 +590,9 @@ class recordList extends t3lib_recordList {
         */
        function linkWrapTable($table,$code)    {
                if ($this->table!=$table)       {
-                       return '<a href="'.htmlspecialchars($this->listURL('',$table)).'">'.$code.'</a>';
+                       return '<a href="' . htmlspecialchars($this->listURL('', $table, 'firstElementNumber')) . '">' . $code . '</a>';
                } else {
-                       return '<a href="'.htmlspecialchars($this->listURL('','','sortField,sortRev,table')).'">'.$code.'</a>';
+                       return '<a href="' . htmlspecialchars($this->listURL('', '', 'sortField,sortRev,table,firstElementNumber')) . '">' . $code . '</a>';
                }
        }
 
@@ -655,7 +655,7 @@ class recordList extends t3lib_recordList {
                        default:
                                        // Output the label now:
                                if ($table=='pages')    {
-                                       $code = '<a href="'.htmlspecialchars($this->listURL($uid,'')).'" onclick="setHighlight('.$uid.')">'.$code.'</a>';
+                                       $code = '<a href="' . htmlspecialchars($this->listURL($uid, '', 'firstElementNumber')) . '" onclick="setHighlight(' . $uid . ')">' . $code . '</a>';
                                } else {
                                        $code = $this->linkUrlMail($code,$origCode);
                                }
@@ -696,7 +696,7 @@ class recordList extends t3lib_recordList {
         *
         * @param       string          Alternative id value. Enter blank string for the current id ($this->id)
         * @param       string          Tablename to display. Enter "-1" for the current table.
-        * @param       string          Commalist of fields NOT to include ("sortField" or "sortRev")
+        * @param       string          Commalist of fields NOT to include ("sortField", "sortRev" or "firstElementNumber")
         * @return      string          URL
         */
        function listURL($altId='',$table=-1,$exclList='')      {
@@ -726,7 +726,7 @@ class recordList extends t3lib_recordList {
                if ($this->showLimit) {
                        $urlParameters['showLimit'] = $this->showLimit;
                }
-               if ((!$exclList || !t3lib_div::inList($exclList, 'pointer')) && $this->firstElementNumber) {
+               if ((!$exclList || !t3lib_div::inList($exclList, 'firstElementNumber')) && $this->firstElementNumber) {
                        $urlParameters['pointer'] = $this->firstElementNumber;
                }
                if ((!$exclList || !t3lib_div::inList($exclList, 'sortField')) && $this->sortField) {
index 4daf7e0..97d1c36 100644 (file)
@@ -230,7 +230,7 @@ class localRecordList extends recordList {
                                                                '</a>';
 
                                        // Up one level
-                               $buttons['level_up'] = '<a href="' . htmlspecialchars($this->listURL($this->pageRow['pid'])) . '" onclick="setHighlight(' . $this->pageRow['pid'] . ')" title="' . $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.upOneLevel', TRUE) . '">' .
+                               $buttons['level_up'] = '<a href="' . htmlspecialchars($this->listURL($this->pageRow['pid'], '-1', 'firstElementNumber')) . '" onclick="setHighlight(' . $this->pageRow['pid'] . ')" title="' . $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.upOneLevel', TRUE) . '">' .
                                                                t3lib_iconWorks::getSpriteIcon('actions-view-go-up') .
                                                        '</a>';
 
@@ -1710,7 +1710,7 @@ class localRecordList extends recordList {
                if ($field=='_PATH_')   $field=pid;
 
                        //       Create the sort link:
-               $sortUrl = $this->listURL('',-1,'sortField,sortRev,table').'&table='.$table.'&sortField='.$field.'&sortRev='.($this->sortRev || ($this->sortField!=$field)?0:1);
+               $sortUrl = $this->listURL('', -1, 'sortField,sortRev,table,firstElementNumber') . '&table=' . $table . '&sortField=' . $field . '&sortRev=' . ($this->sortRev || ($this->sortField != $field) ? 0 : 1);
                $sortArrow = ($this->sortField==$field?'<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/red'.($this->sortRev?'up':'down').'.gif','width="7" height="4"').' alt="" />':'');
 
                        // Return linked field: