Hi Leute,
ich habe 2 Klassen mit einer gewissen Anzahl gleicher (auch gleich benannter) Felder. Im großen un ganzen überwiegen aber die Unterschiede. Deswegen will ich es auch Klassentechnisch getrennt lassen.
Ich brauche die Objekte aber eben in einem Listview. Es gibt ein gemeinsames Kriterium (eine Kategorie), welches alle Objekte für die Ausgabe im Listview erfüllen sollen. Zwei Klassen kommaseperiert eintragen klappt nicht und classid einfach leer lassen klappt leider auch nicht
Eigentlich verstehe ich nicht, warum es nicht geht, und insofern vom Schwierigkeitsgrad der technischen Umsetzung nichts dagegen spricht, würde ich das auch als neue Funktion vorschlagen! Ich meine es sollte ja im Prinzip nichts dagegen sprechen denke ich, oder?
Aber das löst natürlich akut mein Problem nicht.
Also: Wie bekomme ich einen Listview über zwei Klassen?
Ich bin für jeden Tipp dankbar.
Viele Grüße
Objekt Listview mit mehreren Klassen
Re: Objekt Listview mit mehreren Klassen
... as du machen könntest, wäre zunächst mit 2 getrennten listvews pro Klasse alle IDs der Objekte ermitteln und in eine gemeinsame Variable speichern.
Dann kannst du eine Listview type=search machen, die du bereits über die gemeinsame Kategorie einschränkst.Innerhalb der listview type=search schaust du, ob das jeweils gefundene Objekt und dessen ID in deiner variablen enthalten ist. Da du mit einer listview type=search aber nur auf die Felder Title, Description und Keywords zugreifen kannst, musst du dann noch ein <we:object id=""> einsetzen, um auf die anderen Felder zuzugreifen, die du anzeigen möchtest.
Grüße, Andreas
Dann kannst du eine Listview type=search machen, die du bereits über die gemeinsame Kategorie einschränkst.Innerhalb der listview type=search schaust du, ob das jeweils gefundene Objekt und dessen ID in deiner variablen enthalten ist. Da du mit einer listview type=search aber nur auf die Felder Title, Description und Keywords zugreifen kannst, musst du dann noch ein <we:object id=""> einsetzen, um auf die anderen Felder zuzugreifen, die du anzeigen möchtest.
Grüße, Andreas
- Carrear
- webEdition Partner
- Beiträge: 646
- Registriert: Do 17. Jan 2013, 03:02
- Wohnort: Hannover
- Kontaktdaten:
Re: Objekt Listview mit mehreren Klassen
Kannst du das grad mal grob abbilden mit Tags? Also ich nehme an du meinst zwei listviews über die jeweilige Klasse und dann einfach die id in ein array? Und wie lege ich die Keys fest? Ist eigentlich Egal oder? Es könnte also so aussehen:
<listview type="object" classid="1">
<repeat>
<field name="object_id" to="global" nameto="objektid" />
<?php
$objektsammler[$objektid] = $objektid;
?>
</repeat>
</listview>
<listview type="object" classid="2">
<repeat>
<field name="object_id" to="global" nameto="objektid" />
<?php
$objektsammler[$objektid] = $objektid;
?>
</repeat>
</listview>
Dann habe ich die Objekte alle in einem Array. Wie ist der Fieldname für die Objekt ID und wie müsste denn der Search-Listview aussehen? Abfrage ob im Array vorh. könnte man dann ja mit array_search machen.
<listview type="object" classid="1">
<repeat>
<field name="object_id" to="global" nameto="objektid" />
<?php
$objektsammler[$objektid] = $objektid;
?>
</repeat>
</listview>
<listview type="object" classid="2">
<repeat>
<field name="object_id" to="global" nameto="objektid" />
<?php
$objektsammler[$objektid] = $objektid;
?>
</repeat>
</listview>
Dann habe ich die Objekte alle in einem Array. Wie ist der Fieldname für die Objekt ID und wie müsste denn der Search-Listview aussehen? Abfrage ob im Array vorh. könnte man dann ja mit array_search machen.
Re: Objekt Listview mit mehreren Klassen
ich will mal die Frage aus dem ersten post beantworten:
Die Aufgabe ist nicht trivial und würde bei direkter Implementierung zu sehr vielen DB-Abfragen führen. Dieses Vorgehen wäre dann aber nur nötig, wenn eben mehr als 1 Klasse benutzt wird. Wir würden also alle listviews von Objekten verlangsamen, nur um das abzubilden.
Meistens liegt ein Designfehler vor, wenn man sowas braucht - kann natürlich hier auch sein, daß eben die Möglichkeiten des Klassenmoduls nicht ausreichen um das gewünschte wirklich gut abzubilden.
Die Aufgabe ist nicht trivial und würde bei direkter Implementierung zu sehr vielen DB-Abfragen führen. Dieses Vorgehen wäre dann aber nur nötig, wenn eben mehr als 1 Klasse benutzt wird. Wir würden also alle listviews von Objekten verlangsamen, nur um das abzubilden.
Meistens liegt ein Designfehler vor, wenn man sowas braucht - kann natürlich hier auch sein, daß eben die Möglichkeiten des Klassenmoduls nicht ausreichen um das gewünschte wirklich gut abzubilden.
webEdition-Kern-Entwickler
Re: Objekt Listview mit mehreren Klassen
... hier mal der Code in gekürzter Form:
Code: Alles auswählen
<we:setVar to="global" nameto="findAllArticleIDs" value=""/>
<we:listview type="object" name="findAllClass1IDs" categories="/test" classid="1">
<we:ifFound>
<we:repeat>
<we:field type="text" name="WE_ID" to="global" nameto="objID"/>
<?php $GLOBALS['findAllArticleIDs'] .= $GLOBALS['objID'].","; ?>
</we:repeat>
</we:ifFound>
</we:listview>
<we:listview type="object" name="findAllClass2IDs" categories="/test" classid="2">
<we:ifFound>
<we:repeat>
<we:field type="text" name="WE_ID" to="global" nameto="objID"/>
<?php $GLOBALS['findAllArticleIDs'] .= $GLOBALS['objID'].","; ?>
</we:repeat>
</we:ifFound>
</we:listview>
<?php $GLOBALS['allArticleIDArray'] = explode(",",$GLOBALS['findAllArticleIDs']); ?>
<we:listview type="search" name="allObjectsOf2Classes" categories="/Test1">
<we:repeat>
<we:field type="text" name="OID" to="global" nameto="serachObjectID"/>
<?php if(in_array($GLOBALS['serachObjectID'],$GLOBALS['allArticleIDArray'])){ ?>
<we:object id="\$serachObjectID">
… hier jetzt dein Code für die Ausgabe ….
</we:object>
<?php } ?>
</we:repeat>
</we:listview>
- Carrear
- webEdition Partner
- Beiträge: 646
- Registriert: Do 17. Jan 2013, 03:02
- Wohnort: Hannover
- Kontaktdaten:
Re: Objekt Listview mit mehreren Klassen
Was ist eigentlich der Unterschied zwischen categories und categoryids ? Die Dokumentation ist übrigens was die Attribute angeht lückenhaft. Es fehlen mehrere Erklärungen zu Attributen, welche im UI vorhanden sind.
Re: Objekt Listview mit mehreren Klassen
categories = Pfadangabe der Kategorie
categoryids = Angabe der KategorieID
categoryids = Angabe der KategorieID
- Carrear
- webEdition Partner
- Beiträge: 646
- Registriert: Do 17. Jan 2013, 03:02
- Wohnort: Hannover
- Kontaktdaten:
Re: Objekt Listview mit mehreren Klassen
kann ich innerhalb von we:object auch irgendwie die kategorie dieses objekts abfragen?
Re: Objekt Listview mit mehreren Klassen
... wenn <we:category/> nicht funktioniert, dann versuch mal http://www.we-devedge.de/tags/index.php?we_objectID=111 das funktioniert auch bei <we:object>
-
- Member
- Beiträge: 63
- Registriert: Fr 27. Jan 2012, 13:14
Re: Objekt Listview mit mehreren Klassen
Eine Frage hätte ich noch dazu:
Wie kann ich die Gesamtliste aus den 2 Klassen z.B. nach einem Starttermin ordnen?
Ich habe es folgendermaßen versucht:
BEISPIEL:
<we:listview type="search" name="allObjectsOf2Classes" categories="/Test1" order="Starttermin">
Das klappt aber nicht, die Listview wirft mir die Einträge nach der Objekt-ID geordnet aus!
Wie kann ich die Gesamtliste aus den 2 Klassen z.B. nach einem Starttermin ordnen?
Ich habe es folgendermaßen versucht:
BEISPIEL:
<we:listview type="search" name="allObjectsOf2Classes" categories="/Test1" order="Starttermin">
Das klappt aber nicht, die Listview wirft mir die Einträge nach der Objekt-ID geordnet aus!
Re: Objekt Listview mit mehreren Klassen
@kuddelmuddel: das wird leider mit deiner <we:listview type="search"> nicht funktionieren, weil in der Index-Tabelle das Feld "starttermin" nicht enthalten ist. Vielleicht hilft es dir, wenn du nach der ID sortierst, sofern die ID mit den Startterminen korreliert.
Grüße, Andreas
Grüße, Andreas
Wer ist online?
Mitglieder in diesem Forum: Bing [Bot] und 2 Gäste