Einzelnen Beitrag anzeigen
  #2  
Alt 27.03.08, 19:12
Benutzerbild von robelix
robelix robelix ist offline
Forum Stammgast
 
Registriert seit: 03.12.06
Beiträge: 180

Hab da code rumliegen, der genau sowas macht.

Ist eine aufgebohrte Version von dem aus der pibase - allerdings einer ziemlich Alten - 3.6 oder 3.7 glaub' ich - daher noch die hardcoded Table drin.

PHP-Code:
    function pi_xt_list_browseresults($showResultCount=0,$tableParams='')    {
        
// Initializing variables:
        
$this->pi_alwaysPrev 1;
        
$pointer=$this->piVars['pointer'];

        
$count=$this->internal['res_count'];
        
$results_at_a_time $this->internal['results_at_a_time'];
        
$maxPages $this->internal['maxPages'];

        
$nr_pages ceil($count/$results_at_a_time);

        
$pointer=intval($pointer);

        if (
$nr_pages <= $maxPages) {
            
$startPage 0;
            
$endPage $nr_pages;
        } else {
            if (
$pointer intval($maxPages/2)) {
                
$startPage 0;
                
$endPage $startPage $maxPages;
            } elseif (
$pointer >= $nr_pages-intval($maxPages/2) ) {
                
$endPage $nr_pages;
                
$startPage $endPage $maxPages;
            } else {
                
$startPage $pointer intval($maxPages/2);
                
$endPage $startPage $maxPages;
            }
        }

        
$links=array();

        
# nada if only one page
        
if ($count <= $results_at_a_time) {
            return 
'';
        }

        
// Make browse-table/links:
        # First
        
if ($this->pi_alwaysPrev>=0)    {
            if (
$pointer>0)    {
                
$links[]='
                    <td nowrap="nowrap"><p>'
.$this->pi_linkTP_keepPIvars$this->pi_getLL'pi_list_browseresults_first','<< First',TRUE ), array( 'pointer'=>'0'), $this->typolink_conf["useCacheHash"]).'</p></td>';
            } elseif (
$this->pi_alwaysPrev)    {
                
$links[]='
                    <td nowrap="nowrap"><p>'
.$this->pi_getLL('pi_list_browseresults_first','<< First',TRUE).'</p></td>';
            }
        }
        
# Prev
        
if ($this->pi_alwaysPrev>=0)    {
            if (
$pointer>0)    {
                
$links[]='
                    <td nowrap="nowrap"><p>'
.$this->pi_linkTP_keepPIvars($this->pi_getLL('pi_list_browseresults_prev','< Previous',TRUE),array('pointer'=>$pointer-),$this->typolink_conf["useCacheHash"]).'</p></td>';
            } elseif (
$this->pi_alwaysPrev)    {
                
$links[]='
                    <td nowrap="nowrap"><p>'
.$this->pi_getLL('pi_list_browseresults_prev','< Previous',TRUE).'</p></td>';
            }
        }

        if (
$startPage != 0) {
            
$links[] = '<td>...</td>';
        }

        
# Pages
        
for($a=$startPage$a<$endPage$a++)    {
            if (
$a == $pointer) {
                
$links[]='
                        <td'
.($pointer==$a?$this->pi_classParam('browsebox-SCell':sad:'').' nowrap="nowrap"><p>'.
                    
$this->pi_getLL('pi_list_browseresults_page','Page',TRUE). ' <span class="tx_feuseradmin_currentpage">'.($a+1) . '</span>'.
                    
'</p></td>';
            }
            else {
                
$links[]='
                        <td'
.($pointer==$a?$this->pi_classParam('browsebox-SCell':sad:'').' nowrap="nowrap"><p>'.
                    
$this->pi_linkTP_keepPIvarstrim$this->pi_getLL('pi_list_browseresults_page','Page',TRUE).' '.($a+1)), array('pointer'=>$a), $this->typolink_conf["useCacheHash"]).
                    
'</p></td>';
            }
        }

        if (
$endPage != $nr_pages) {
            
$links[] = '<td>...</td>';
        }

        
# Next
        
if ($pointer<ceil($count/$results_at_a_time)-1)    {
            
$links[]='
                    <td nowrap="nowrap"><p>'
.
                
$this->pi_linkTP_keepPIvars$this->pi_getLL('pi_list_browseresults_next','Next >',TRUE), array('pointer'=>$pointer+1), $this->typolink_conf["useCacheHash"] ).
                
'</p></td>';
        } else {
                
$links[]='
                    <td nowrap="nowrap"><p>'
.$this->pi_getLL('pi_list_browseresults_next','Next >',TRUE).'</p></td>';
        }
        
# Last
        
if ($pointer<ceil($count/$results_at_a_time)-1)    {
            
$links[]='
                    <td nowrap="nowrap"><p>'
.
                
$this->pi_linkTP_keepPIvars$this->pi_getLL'pi_list_browseresults_last','Last >>',TRUE ) ,array( 'pointer'=>ceil$count/$results_at_a_time)-1) , $this->typolink_conf["useCacheHash"]).
                
'</p></td>';
        } else {
                
$links[]='
                    <td nowrap="nowrap"><p>'
.$this->pi_getLL('pi_list_browseresults_last','Last >>',TRUE).'</p></td>';
        }

        
$pR1 $pointer*$results_at_a_time+1;
        
$pR2 $pointer*$results_at_a_time+$results_at_a_time;
        
$sTables '

        <!--
            List browsing box:
        -->
        <div'
.$this->pi_classParam('browsebox').'>'.
            (
$showResultCount '
            <p>'
.
                (
$this->internal['res_count'] ?
                
sprintf(
                    
str_replace('###SPAN_BEGIN###','<span'.$this->pi_classParam('browsebox-strong').'>',$this->pi_getLL('pi_list_browseresults_displays','Displaying results ###SPAN_BEGIN###%s to %s</span> out of ###SPAN_BEGIN###%s</span>')),
                    
$this->internal['res_count'] > $pR1 0,
                    
min(array($this->internal['res_count'],$pR2)),
                    
$this->internal['res_count']
                ) :
                
$this->pi_getLL('pi_list_browseresults_noResults','Sorry, no items were found.')).'</p>':''
            
).
        
'
            <'
.trim('table align="center" '.$tableParams).'>
                <tr>
                    '
.implode('',$links).'
                </tr>
            </table>
        </div>'
;

        return 
$sTables;
    } 
__________________
mysql> SELECT question FROM life, universe, everything WHERE answer=42;
Empty set (2079460347 sec)
Mit Zitat antworten