we:listview / $GLOBALS['lv']

Fragen zum Erstellen von Templates für webEdition.
plan4
Member
Beiträge: 56
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

we:listview / $GLOBALS['lv']

Beitragvon plan4 » Di 23. Jun 2020, 17:18

Hallo zusammen,

ich lese, dass ab Version 9.0 $GLOBALS['lv'] nicht mehr verfügbar ist. Ich habe das recht viel verwendet. Gibt es einen anderen Weg, die Zeilen einer Listview abzugreifen oder komme ich da nun nur noch über <we:field .../> dran?

Grüße
Dietmar

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: we:listview / $GLOBALS['lv']

Beitragvon WBTMagnum » Mi 24. Jun 2020, 00:39

Hallo Dietmar,

In den Entwicklerinfos für die 8.0.4 wird auf `we_tag_listview::$current`als Ersatz für `$GLOBALS['lv']` verwiesen.

HTH,
Sascha

plan4
Member
Beiträge: 56
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: we:listview / $GLOBALS['lv']

Beitragvon plan4 » Mi 24. Jun 2020, 07:40

Ah, guter Hinweis. Danke Dir!

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: we:listview / $GLOBALS['lv']

Beitragvon mokraemer » Mi 24. Jun 2020, 10:27

grundsätzlich sollte aber überdacht werden, ob sich das Verhalten nicht direkt über we-Tags abbilden läßt. Mit to="var" etc. sollte es eigentlich möglich sein größtenteils darauf zu verzichten.
Ich denke vielfach sind diese Zugriffe wirklich Altlasten.
webEdition-Kern-Entwickler

ThomasGoebe

Re: we:listview / $GLOBALS['lv']

Beitragvon ThomasGoebe » Mi 24. Jun 2020, 15:13

Hallo Marc,

die we:field Aufrufe waren allerdings in der Vergangenheit deutlich langsamer als der direkte Aufruf via $lv. Hat sich das in Barrhornn verbessert? Bei umfangreichen Listviews z.B. für Schnittstellen oder mit vielen Daten machte das bei einem Projekt mehrere Minuten (ja, wirklich) Unterschied aus.

Leider kann ich Barhorrn noch nicht "live" testen, da ich immer noch bei domainFactory bin (MySQL zu alt, die neue Plattform für Server mit MariaDB wird seit Monaten immer wieder verschoben...) :-(

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: we:listview / $GLOBALS['lv']

Beitragvon mokraemer » Mi 24. Jun 2020, 16:19

Die Aufrufe von lv sind sicherlich schneller, wenn dies deutlich ist, sollten wir in Erfahrung bringen bei welchen Typen das der Fall ist und ausloten ob hier unnötiger Aufwand getrieben wird. Objektiv an einem Beispiel gemessen haben wir die Veränderung nicht.

ich wage zu behaupten das DF das Update von Mysql aussitzt bis es keine Updates mehr gibt. Wir haben uns die Entscheidung auch nicht leicht gemacht, DBs werden erhalten lange Support. MariaDB ist bei vielem schon seit Jahren weiter und MySQL hat dann mit 5.7 endlich lange erwartete Sachen, wie 2 Spalten mit Standard-Datumswerten (völlig unverständlich das es dies nicht immer schon gab) oder auch virtuelle Spalten mit denen wir eben die Umstieg auf neue Datenstrukturen in WE transparent machen können, ohne das alle alten WE-Seiten komplett kaputt gehen. Wir sind sicherlich noch nicht mit allem am Ziel (ist man das je?). Aber gerade die Umstellung auf PHP 7 und die Möglichkeiten in MySQL machen es endlich möglich an vielen Stellen sauberer mit den Daten intern zu arbeiten.
webEdition-Kern-Entwickler

ThomasGoebe

Re: we:listview / $GLOBALS['lv']

Beitragvon ThomasGoebe » Mi 24. Jun 2020, 18:01

mokraemer hat geschrieben: Mi 24. Jun 2020, 16:19 Die Aufrufe von lv sind sicherlich schneller, wenn dies deutlich ist, sollten wir in Erfahrung bringen bei welchen Typen das der Fall ist und ausloten ob hier unnötiger Aufwand getrieben wird. Objektiv an einem Beispiel gemessen haben wir die Veränderung nicht.
Ich habe noch ein Projekt, bei dem das relevant sein können. Sobald ich das Projekt auf die neue Version gebracht habe, schaue ich gerne mal nach. Das ist ein übernommenens Projekt, bei des es Klassen mit ca. 100 Feldern gibt. Insgesamt ca. 400 Objekte, die alle mit allen Eigenschaften und Felder ausgelesen und als JSON zurückgegeben werden müssen. Dazu dann noch weitere vier Klassen, die damit als Multiobjekte verknüpft sind und mit Varianten arbeiten. Das dauerte bei den ersten Versuchen mit Hausmitteln sehr lange, dass ich eine eigene Cache Lösung dafür entwickelt habe.
Bei dem anderen Projekt vom dem ich sprach (wir beide hatten in mantis dazu auch Kontakt) lag es einfach an vielen Prüfungen, die we:field noch durchführt, die aber an der Stelle nicht relevant waren.
mokraemer hat geschrieben: Mi 24. Jun 2020, 16:19 ich wage zu behaupten das DF das Update von Mysql aussitzt bis es keine Updates mehr gibt.
Das glaube ich nicht. Im SharedHosting gibt es die neue Plattform bereits (https://www.df.eu/de/webhosting/). Mit MariaDB, Apache / NGinx Kombi, komplett 64 Bit und ein paar alten abgeschnittenen Zöpfen mehr. Nur bei den Servern ( und hier auch speziell Resellerserver) ist noch nicht klar wann es da weiter geht. Und da ist der Migrationspfad auch großes ein Thema. Viele Shopware Kunden bekommen da Probleme, da es keinen wirklichen Zwischenschritt gibt.
Aber je länger das bei dF noch dauert, desto schwerer werden Migrationspfade.
mokraemer hat geschrieben: Mi 24. Jun 2020, 16:19 Wir haben uns die Entscheidung auch nicht leicht gemacht, DBs werden erhalten lange Support. MariaDB ist bei vielem schon seit Jahren weiter und MySQL hat dann mit 5.7 endlich lange erwartete Sachen, wie 2 Spalten mit Standard-Datumswerten (völlig unverständlich das es dies nicht immer schon gab) oder auch virtuelle Spalten mit denen wir eben die Umstieg auf neue Datenstrukturen in WE transparent machen können, ohne das alle alten WE-Seiten komplett kaputt gehen. Wir sind sicherlich noch nicht mit allem am Ziel (ist man das je?). Aber gerade die Umstellung auf PHP 7 und die Möglichkeiten in MySQL machen es endlich möglich an vielen Stellen sauberer mit den Daten intern zu arbeiten.
Ich begrüße die Enscheidung von Euch ausdrücklich! Es war schon länger dran, noch gründlicher aufzuräumen als bisher und die getroffenen Umbauarbeiten halte ich persönlich für nachvollziehbar und einen richtigen Schritt.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: we:listview / $GLOBALS['lv']

Beitragvon mokraemer » Mi 24. Jun 2020, 18:24

vielleicht hilft dir dann auch der neue we:cache Tag.
webEdition-Kern-Entwickler

Benutzeravatar
kay
Senior Member
Beiträge: 356
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: we:listview / $GLOBALS['lv']

Beitragvon kay » Do 25. Jun 2020, 10:51

Moin, hat jemand eine Idee wie ich sowas mit Bordmitteln hinbekommen?

Code: Alles auswählen

		<!-- Terminübersicht-->
		<div class="large-12 columns weiss">
			<we:ifEditmode>
				Terminübersicht aus Kategorie:<we:select type="html" name="catSelect">
				<option value=""></option>
				<option value="Anfaengerkurs">Anfängerkurs</option>
				<option>Fortgeschrittenenkurs</option>
				<option>Laser</option>
				<option>Regatta</option>
				<option>Veranstaltung</option>
				<option>Spleisskurs</option>
				<option>Reisen</option>
				<option>SBF</option>
				<option>Feierabendsegeln</option>
				<option>Arbeitsdienst</option>
				<option>BootshausTalk</option>
				</we:select>
			</we:ifEditmode>
			<?php
			$showCategory = $GLOBALS['we_doc']->getElement('catSelect'); 
			?>
			<we:condition name="catCondition">
				<we:conditionAdd field="Kategorie" value="$showCategory" compare="="/>
			</we:condition>
			<we:listview type="object" classid="2" name="termin" condition="catCondition" order="Start">
				<we:ifNotEmpty match="catSelect">
					<h1 class="headline">Terminübersicht</h1>
					<table>
						<we:repeat>
							<tr>
								<we:field type="date" name="Start" to="global" nameto="startDate" format="Ymd" />
								<we:field type="date" name="Ende" to="global" nameto="endDate" format="Ymd" />
								<td><we:field name="Titel" hyperlink="false"/></td>
								<td>
									<we:field type="date" name="Start" hyperlink="false" format="D" /> <we:field type="date" name="Start" hyperlink="false" format="d" />.<we:ifVar type="global" name="startDate" match="\$endDate" operator="less">
									- <we:field type="date" name="Ende" hyperlink="false" format="d" />.
									</we:ifVar> <we:field type="date" name="Start" hyperlink="false" format="M" />
								</td>
								<td><we:field type="date" name="Start" hyperlink="false" format="H:i" /> - <we:field type="date" name="Ende" hyperlink="false" format="H:i" /> Uhr</td>
							</tr>
						</we:repeat>
					</table>
				</we:ifNotEmpty>
			</we:listview>
			<!-- Ende Terminübersicht-->
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

Benutzeravatar
kay
Senior Member
Beiträge: 356
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: we:listview / $GLOBALS['lv']

Beitragvon kay » Do 25. Jun 2020, 17:47

kay hat geschrieben: Do 25. Jun 2020, 10:51 Moin, hat jemand eine Idee wie ich sowas mit Bordmitteln hinbekommen
Hab selbst die Lösung gefunden:

Code: Alles auswählen


<we:condition name="catCondition">
				<we:conditionAdd field="Kategorie" var="catSelect" compare="="/>
			</we:condition>
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google [Bot] und 11 Gäste