Seite 1 von 1

Paginierung mit weEdition8

Verfasst: Mo 19. Feb 2018, 17:54
von e-site
Hallo zusammen,
mit webEdition8 funktioniert unsere alte Paginierung nicht mehr, da einiges in $GLOBALS geändert wurde.

Code: Alles auswählen

<?php
for($n = 0; $n < $GLOBALS['lv']->anz_all; $n+= $GLOBALS['lv']->rows){
	$GLOBALS['mylv_current_start'] = $n;
	$GLOBALS['mylv_current_end'] = ($n + $GLOBALS['lv']->rows - 1 > $GLOBALS['lv']->anz_all) ? $GLOBALS['lv']->anz_all : $n + $GLOBALS['lv']->rows - 1;
	$GLOBALS['mylv_current_link'] = $_SERVER['PHP_SELF'].'?start='.($mylv_current_start);
	// Seite aktiv
	if($start==$n){
?>
<li class="active"><a href="<we:var type="global" name="mylv_current_link"/>" title="<?php echo $_SESSION['counter']; ?>"><?php echo $_SESSION['counter']++; ?><span class="sr-only">(current)</span></a></li>
<?php } else{ ?>
<li><a href="<we:var type="global" name="mylv_current_link"/>" title="<?php echo $_SESSION['counter']; ?>"><?php echo $_SESSION['counter']++; ?></a></li>
<?php
	}
}
?>
Mit we:back und we:next kann ich zwar durch die Seiten navigieren aber ich brauche wieder eine Aufzählung der Seiten, damit ich z.B direkt auf Seite 5 springen kann.

Kann einer helfen? Hat jemand einen Tipp?
Gruß Heiko

Re: Paginierung mit weEdition8

Verfasst: Mo 19. Feb 2018, 18:20
von blickfang
Hallo Heiko,

es gibt neue Methoden die auf dem Listviewobjekt genutzt werden können:

Code: Alles auswählen

$GLOBALS['lv']->getPageNo();
$GLOBALS['lv']->getMaxPages();
$GLOBALS['lv']->getRows();
$GLOBALS['lv']->getMaxItemsPerPage();
Damit müsstest Du weiter kommen, oder? Aber Achtung, erst ab SVN 14848 verfügbar!

Viele Grüße
Timo

Re: Paginierung mit weEdition8

Verfasst: Mo 19. Feb 2018, 19:06
von e-site
Hallo Timo,

vielen Dank. Hat mir weitergeholfen. Kommt da irgendwann noch was natives nach? Wenn es eine fertige Paginierung nur mit webEdition-Tags gäbe, wäre es schon toll. Und wie schaut es da mit den Nightly Versionen aus, kann man da immer bedenkenlos updaten?

Gruß
Heiko

Re: Paginierung mit weEdition8

Verfasst: Mo 19. Feb 2018, 19:16
von blickfang
Hi Heiko,
bedenkenlos würde ich kein Update einspielen, egal in weches System ;-)
Hängt ja auch imme rmit den eigenen Templates zusammen, welche Update eine genauere Prüfung bedürfen. Die Nightly ist ausdrcklich nicht für eine Produktivumgebung empfohlen, mit der Nightly arbeitest Du aber auf dem jeweils aktuellen Stand der zuletzt eingecheckt wurde. Bis zum ofiziellen Release kann es Dir passieren, dass auch nochmal Dinge wieder rausfliegen, die in der nightly schon drin waren....

Paginierung wurde schon mehrfach heiss auch hier im Forum diskutiert .... die bekannten we:tags sollten weiterhin funktionieren. Mit den neuen Methoden liessen sich auch custom-Tags bauen, die dan die eigenen Anforderungen an eine Pagnierung abbilden können. Wir aber hier der finale Stand der Entwicklungsschritte ist kann ich leider spontan auch nicht sagen...
Viele Grüße
Timo

Re: Paginierung mit weEdition8

Verfasst: Fr 20. Jan 2023, 17:00
von e-site
Hallo zusammen,

leider wird das Thema Paginierung mit webEdition 9 wieder aktuell. Der bisher bestehende Code funktioniert hier nicht mehr und ich habe eine Notlösung gefunden:

Code: Alles auswählen

<we:listviewRows to="global" nameto="listviewRows"/>
<we:listviewPageNr to="global" nameto="listviewPageNr"/>
<?php $j = 1;
	for( $i=0; $i < $listviewRows ; $i+= 3 ) {
	$active = ($j == $listviewPageNr ? ' class="active"' : ''); 
	echo "<li$active><a href='".$_SERVER['PHP_SELF']."?we_lv_start_news=$i' title='Seite $j'>$j</a></li>";
	$j++;
} ?> 
Funktioniert soweit, nur habe ich die alte Variable $GLOBALS['lv']->getMaxItemsPerPage() hier direkt mit der 5 ersetzt.
Wenn man aber rows="5" in der Listview ändert, muss man in der Paginierung auch nochmal anpassen.

Kann man irgendwo die getMaxItemsPerPage() der Listview auslesen?

Oder hat einer eine bessere Lösung/anderen Ansatz?

Grüße
Heiko

Re: Paginierung mit weEdition8

Verfasst: Fr 20. Jan 2023, 18:07
von WBTMagnum
Hallo Heiko,

Kannst du nicht einfach die Anzahl der rows über eine Variable setzen und diese dann auch in der Paginierung nutzen?

In etwa so:

Code: Alles auswählen

<we:setVar to="global" nameto="listviewRows" value="5"/>
<we:listview ... rows="\$listviewRows">
  ...
</we:listview>
HTH,
Sascha