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