Objekt Listview mit mehreren Klassen

Hier können Sie Fragen bezüglich des Datenbank-/Objektmoduls stellen.
Benutzeravatar
Carrear
webEdition Partner
webEdition Partner
Beiträge: 646
Registriert: Do 17. Jan 2013, 03:02
Wohnort: Hannover
Kontaktdaten:

Objekt Listview mit mehreren Klassen

Beitragvon Carrear » Mi 20. Mär 2013, 22:03

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

AndreasWitt

Re: Objekt Listview mit mehreren Klassen

Beitragvon AndreasWitt » Mi 20. Mär 2013, 22:17

... 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

Benutzeravatar
Carrear
webEdition Partner
webEdition Partner
Beiträge: 646
Registriert: Do 17. Jan 2013, 03:02
Wohnort: Hannover
Kontaktdaten:

Re: Objekt Listview mit mehreren Klassen

Beitragvon Carrear » Mi 20. Mär 2013, 22:34

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.

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

Re: Objekt Listview mit mehreren Klassen

Beitragvon mokraemer » Mi 20. Mär 2013, 23:00

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.
webEdition-Kern-Entwickler

AndreasWitt

Re: Objekt Listview mit mehreren Klassen

Beitragvon AndreasWitt » Mi 20. Mär 2013, 23:10

... 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>

Benutzeravatar
Carrear
webEdition Partner
webEdition Partner
Beiträge: 646
Registriert: Do 17. Jan 2013, 03:02
Wohnort: Hannover
Kontaktdaten:

Re: Objekt Listview mit mehreren Klassen

Beitragvon Carrear » Mi 20. Mär 2013, 23:47

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.

AndreasWitt

Re: Objekt Listview mit mehreren Klassen

Beitragvon AndreasWitt » Mi 20. Mär 2013, 23:49

categories = Pfadangabe der Kategorie
categoryids = Angabe der KategorieID

Benutzeravatar
Carrear
webEdition Partner
webEdition Partner
Beiträge: 646
Registriert: Do 17. Jan 2013, 03:02
Wohnort: Hannover
Kontaktdaten:

Re: Objekt Listview mit mehreren Klassen

Beitragvon Carrear » Do 21. Mär 2013, 00:41

kann ich innerhalb von we:object auch irgendwie die kategorie dieses objekts abfragen?

AndreasWitt

Re: Objekt Listview mit mehreren Klassen

Beitragvon AndreasWitt » Do 21. Mär 2013, 00:45

... 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>

kuddelmuddel
Member
Beiträge: 63
Registriert: Fr 27. Jan 2012, 13:14

Re: Objekt Listview mit mehreren Klassen

Beitragvon kuddelmuddel » Mo 3. Jun 2013, 12:23

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!

AndreasWitt

Re: Objekt Listview mit mehreren Klassen

Beitragvon AndreasWitt » Do 18. Jul 2013, 01:08

@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


Zurück zu „DB-/Objektmodul“

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 2 Gäste