Hallo,
es funktioniert. Das Problem lag daran, dass der Start des Limit nicht richtig gesetzt wurde.
Der Start muss so gesetzt werden:
PHP-Code:
$limitstart = $this->piVars['pointer']*$this->internal['results_at_a_time'];
Für Intressierte nochmals die ganze Funktion:
PHP-Code:
function aktuell($conf) {
//unser Subpart
$subpart=$this->cObj->getSubpart($this->template,'###TEMPLATEAKTUELL###');
//eine einzelne Reihe
$singlerow=$this->cObj->getSubpart($subpart,'###AKTUELL###');
//Timestamp
$timestamp=time();
//Tage in Sekunden umrechnen und dann zurückrechnen 1 Tag = 86400 sec
$tage=$this->conf['daysBeforeStart'];
$aktuell = mktime( 0, 0, 0, date('n'), date('j') + $tage, date('Y') );
//Anzahl der Einträge in der Ansicht Aktuell (aus TypoScript auslesen)
$aktulimit=$this->conf['limitActualView'];
//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=$aktulimit);
//Anzahl der Einträge
$this->internal['res_count'] = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
//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 $start=$start*Anzahl,$Anzahl=$Anzahl
$limitstart = $this->piVars['pointer']*$this->internal['results_at_a_time'];
//Trenner zwischen Start und Anzahl
$limit= $limitstart.',';
//Anzahl der Seiten berechnen und runden
$seitenanz=ceil($aktulimit/$this->internal['results_at_a_time']);
//Pointer um 1 erhöhen, da er bei 0 beginnt
$seitenpointer=$this->piVars['pointer']+1;
//Wenn letzte Seite, dann begrenze Ausgabe
if($seitenpointer == $seitenanz)
{
//Bestimme restanzahl an Einträgen
$limit.=$aktulimit-$limitstart;
}
else
{
$limit.=$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());
}
}
MFG Anderl