Multiobjekt in Listview filtern unter WE7

Hier können Sie Fragen bezüglich des Datenbank-/Objektmoduls stellen.
r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Multiobjekt in Listview filtern unter WE7

Beitragvon r_kempf » Do 10. Nov 2016, 15:03

Bislang hatten wir diese Lösung bei der Filterung von Multiobjekten in Listviews:

Code: Alles auswählen

<?php
$key = $GLOBALS['we_doc']->OF_ID;
$bedingung ="Kategorie REGEXP '[{].*[{].*[[.quotation-mark.]]".$key."[[.quotation-mark.]].*[}]'";
?>
<we:listview type="object" classid="6" objectseourls="true" desc="true" condition="\$bedingung" >
Da sich mit der 7er Version die Datenstruktur geändert hat, funktioniert der String mit REGEXP nicht mehr.
Gibt es dafür eine neue Lösung?

AndreasWitt

Re: Multiobjekt in Listview filtern unter WE7

Beitragvon AndreasWitt » Do 10. Nov 2016, 15:21


r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: Multiobjekt in Listview filtern unter WE7

Beitragvon r_kempf » Do 10. Nov 2016, 17:56

Ich hab das mal versucht, um das Multiobjektfeld "Kategorie" zu filtern:

Code: Alles auswählen

<?php $bedingung ="FIND_IN_SET($OF_ID, $Kategorie)"; ?>
<we:listview type="object" classid="6" condition="\$bedingung" >
Leider kein Ergebnis.

Was hab ich übersehen?

AndreasWitt

Re: Multiobjekt in Listview filtern unter WE7

Beitragvon AndreasWitt » Do 10. Nov 2016, 20:29

... du musst natürlich $OF_ID durch eine "richtige" Variable ersetzen, z. B.

Code: Alles auswählen

<?php $bedingung ="FIND_IN_SET($GLOBALS['we_doc']->OF_ID, $Kategorie)"; ?>
<we:listview type="object" classid="6" condition="\$bedingung" >

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: Multiobjekt in Listview filtern unter WE7

Beitragvon r_kempf » Fr 11. Nov 2016, 10:23

Danke, Andreas!

Funktioniert leider nicht - der String bringt folgende Fehlermeldung beim Speichern:

Error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)

AndreasWitt

Re: Multiobjekt in Listview filtern unter WE7

Beitragvon AndreasWitt » Fr 11. Nov 2016, 10:30

... so sollte es gehen:

Code: Alles auswählen

<?php $bedingung ="FIND_IN_SET(" . $GLOBALS['we_doc']->OF_ID .", ". $Kategorie.")"; ?>

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: Multiobjekt in Listview filtern unter WE7

Beitragvon r_kempf » Fr 11. Nov 2016, 12:01

Die Listview zeigt immer noch keine Ergebnisse.
Es geht ja um die Lösung, die wir hier im Forum für die 6er WE-Version schon mal gefunden hatten -> http://forum.webedition.org/viewtopic.p ... ekt#p61607

Ich möchte einen Blog umsetzen und habe zwei Klassen. Klasse „Artikel“ (mit allen Feldern zum Blogartikel) und Klasse „Kategorie“ (beinhaltet lediglich ein Feld „Kategorie“). In der Klasse „Artikel“ kann dann über ein Mutliobjektfeld die Kategorie (aus der Klasse „Kategorie“ zugeordnet werden.

Die gefilterten Artikel nach jeweiliger Kategorie möchte ich dann auf einer Extraseite ausgeben.

Mein Code sieht so aus - die Listview spuckt aber keine Ergebniss aus, obwohl die Multiobjektfelder der Artikel-Objekte referenziert sind.

Code: Alles auswählen

<h1><we:object classid="7"><we:field name="Kategorie" /></we:object></h1>
			<?php $bedingung ="FIND_IN_SET(" . $GLOBALS['we_doc']->OF_ID .", ". $Kategorie.")"; ?>
			<we:listview type="object" name="artikelliste" classid="6" objectseourls="true" order="Datum" desc="true" hidedirindex="true" condition="\$bedingung">
				<we:repeat>
					<p><we:field type="date" name="Datum" format="d.m.Y" /></p>
					<h2><we:field name="Artikelueberschrift" hyperlink="true"/></h2>
					<we:field name="Artikelteaser" alt="we_path" hyperlink="true"/>
					<hr>
				</we:repeat>
				</we:listview>

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

Re: Multiobjekt in Listview filtern unter WE7

Beitragvon mokraemer » So 13. Nov 2016, 02:12

Ich hab das eben nur überflogen, aber $Kategorie klingt hier falsch. Ich meine das müßte nur

Code: Alles auswählen

<?php $bedingung ="FIND_IN_SET(" . $GLOBALS['we_doc']->OF_ID .", Kategorie)"; ?>
heißen, wenn wie ich das gelesen habe, das Feld "Kategorie" heißt.
webEdition-Kern-Entwickler

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: Multiobjekt in Listview filtern unter WE7

Beitragvon r_kempf » Mo 14. Nov 2016, 16:02

Lieber Marc,
vielen Dank - ich hatte in der Zwischenzeit schon eine Lösung mit we:condition gefunden - aber Deine ist besser.
LG Regina


Zurück zu „DB-/Objektmodul“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste