Einzelnen Beitrag anzeigen
  #2  
Alt 19.03.08, 17:57
Anderl Anderl ist offline
Forum Stammgast
 
Registriert seit: 01.09.06
Ort: Grafenwöhr
Alter: 32
Beiträge: 198

Hallo,

ich bin schon ein Stück weiter gekommen.

Hier wird das Limit für die DB Abfrage gesetzt
PHP-Code:
//Versorgung der Links mit Pointer
          
if(empty($this->piVars['pointer']))
          {
            
$this->piVars['pointer'] = 0;
          }
          
//Aktuelles Limit für Pagebrowser
          
$limit $this->piVars['pointer'].','.$this->internal['results_at_a_time']; 
Hier wird die Anzahl der Einträge bestimmt(ohne Limit für Pagebrowser)
PHP-Code:
//Anzahl der Einträge
        
$this->internal['res_count'] = $GLOBALS['TYPO3_DB']->sql_num_rows($res); 
So sieht die komplette Funktion im Moment aus:
PHP-Code:
function aktuell($conf) {
        
//unser Subpart
        
$subpart=$this->cObj->getSubpart($this->template,'###TEMPLATEAKTUELL###'); 
        
//eine einzelne Reihe
        
$singlerow=$this->cObj->getSubpart($subpart,'###AKTUELL###'); 
        
        
//Timestamp
        
$aktuell=time();
        
        
//Pagewbrowser Settings
        //Anzahl der Datensätze
       
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
        
'*',   #select
        
'tx_akpdfarchiv_document'#from
        
'deleted=0 and pid='.$this->id.' and starttime < '.$aktuell,  #where 
        
$groupBy='',
        
$orderBy='',
        
$limit='');
        
        
//Anzahl der Einträge
        
$this->internal['res_count'] = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
        
        
//Anzahl der Einträge in der Ansicht Aktuell (aus TypoScript auslesen)
        
$aktulimit=$this->conf['limitActualView'];
        
//Anzahl der Einträge pro Seite (aus TypoScript auslesen)
        
$this->internal['results_at_a_time'] = $this->conf['limitPageBrowser'];
        
        
//Wenn Pagebrowser Limit kleiner ist als Aktuell Limit, dann verwende Pagebrowserlimit
        
if($this->internal['results_at_a_time'] < $aktulimit)
        {
          
//Einträge auf einzelne Seiten aufteilen
          
if(empty($this->piVars['pointer']))
          {
            
$this->piVars['pointer'] = 0;
          }
          
//Aktuelles Limit für Pagebrowser
          
$limit $this->piVars['pointer'].','.$this->internal['results_at_a_time'];  
        }
        else
        {
          
$limit=$aktulimit;
        }
        
        
//Datenbank Abfrage
        
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
        
'*',   #select
        
'tx_akpdfarchiv_document'#from
        
'deleted=0 and pid='.$this->id.' and starttime < '.$aktuell,  #where 
        
$groupBy='',
        
$orderBy='starttime desc',
        
$limit);

        
//Wenn Einträge in der Datenbank vorhanden
        
if($res) {
            
$liste='';
           
            while(
$row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))
            {
                
//Datum formatieren
                    
$datum strftime('%e. %B %Y',$row['starttime']);
                
                
//Dateilink erzeugen
                // Verbindung zur Datei
                    
$pdfdatei "uploads/tx_akpdfarchiv/".$row['pdffile'];   
                
//PDF Link erzeugen 
                    
$pdflink=$this->cObj->getTypoLink($row['titel'],$pdfdatei,$urlParameters='',$target='_blank');
                
//Dateigröße Bestimmen
                
$size filesize($pdfdatei);
                
$size=$this->formatsize($size);
                
                
$markerArray['###DATUM###']=$datum;
                
$markerArray['###DATEILINK###']=$pdflink;
                
$markerArray['###FILESIZE###']=$size;
                
$liste .= $this->cObj->substituteMarkerArrayCached($singlerow,$markerArray);
                
            }
            
$subpartArray['###AKTUELL###']=$liste;
        } else {
            return 
$this->pi_getLL('nodata');
        }
 
                
//Wenn Anzahl der Dokumente Größer ist, als Einträge Pro seite im Pagebrowser, dann zeigen den Pagebrowser an
                
if(($this->internal['res_count'] > $this->internal['results_at_a_time']) && ($this->internal['results_at_a_time'] < $aktulimit))
                {
                  return 
$this->cObj->substituteMarkerArrayCached($subpart,$markerArray,$subpartArray,array()).$this->pi_list_browseresults();
                }
                else
                {
                  
//Anzeige ohne PageBrowser
                  
return $this->cObj->substituteMarkerArrayCached($subpart,$markerArray,$subpartArray,array());
                }     
 
    } 
Jetzt kann ich zwar zwischen den einzelnen Seiten hin- und herklicken, habe dafür aber ein anderes Problem:

Der Letzte Eintrag der vorherigen Seite wird als erster Eintrag auf der darauffolgenden Seite angezeigt. Auf der letzten Seite fehlt dafür aber der letzte Eintrag??

MFG Anderl
Mit Zitat antworten