Multiobjekt als Auswahlkriterium

Fragen zum Erstellen von Templates für webEdition.
macx

Multiobjekt als Auswahlkriterium

Beitragvon macx » Fr 8. Sep 2006, 15:12

Ich habe ein Objekt "Schule" und ein Objekt "Schulform". Schulform kann sein, "Allgemeinbildenen Schule" oder auch was anderes. Die Schulform kann ich in der Schule als "Multiobjekt" auswählen, kann also einer Schule mehrere Schulformen zuteilen.

Nun möchte ich listview mit conditions realisieren, dass mir alle Schulen ausspruckt, die ein multiobject enthalten mit dem Titel "Allgemeinbildene Schulen". Da ich die Werte des Multiobjects im Listview der Schulen aber nicht ausgeben kann (so mein Einddruck) scheit es auch mit den Conditions.

Wie realisere ich das?

hitide

Ich auch

Beitragvon hitide » Mo 14. Apr 2008, 15:14

Ich habe ein ähnliches Problem. Ich versuche eine Variable, die ich per GET übergebe als Kriterium für eine Listview zu verwenden. So weit kein Problem. Das Problem, was ich habe ist nur, dass das Feld, das ich als Kriterium abfragen will, ein Multiobjekt ist. Also muss ich irgendwie sehen, dass ich Frage, ob eines der Objekte in diesem Multiobjekt-Feld dem Kriterium entspricht.
Was dazu auch praktisch wäre: Kann ich eigentlich von Multiobjekten auch die Werte als Text ausgeben oder muss das immer über die ID laufen?

deemes

Beitragvon deemes » Mo 14. Apr 2008, 16:04

Eine saubere Lösung dafür kenne ich nicht. Bei einem der letzten Projekte habe ich es so gelöst:

Code: Alles auswählen

if($author_search)
   $condition.= " AND Authors REGEXP '[{].*[{].*[[.quotation-mark.]]".$author_search."[[.quotation-mark.]].*[}]'";
Hierbei handelte es sich um Artikel deren Autoren als Multiobjekt angegeben werden konnten. $author_search ist dabei die ID des Autor-Objektes und Authors der Name des Multiobjekt-Feldes. Eigenschaften des Multiobjektes selbst kann man so aber nicht abfragen.

Ausgeben kann man die Inhalte im listview mit einem weiteren listview:

Code: Alles auswählen

<we:listview type="multiobject" classid="1" name="Authors">...</we:listview>
Hoffe das hilft. :-)

sugusmuc
Member
Beiträge: 44
Registriert: Di 6. Jul 2004, 12:54

Beitragvon sugusmuc » Mo 14. Apr 2008, 17:22

Hallo Hitide,

darf ich ganz kurz nachfragen, wie Du die Get-Variable an die Listview übergibst? Wir wollen ein Template für eine Bildergalerie machen, bei der der anzuzeigende Bilderordner mit einer Get-Variablen übergeben werden soll und stellen uns irgendwie an dabei....

Für einen kurzen Tipp schon mal vielen Dank,

sugusmuc

sugusmuc
Member
Beiträge: 44
Registriert: Di 6. Jul 2004, 12:54

Danke, wir haben es schon herausgefunden :-)

Beitragvon sugusmuc » Mo 14. Apr 2008, 18:02

Falls mal jemand anderes auch so etwas suchen sollte, wie ich vorhin (gibts vermutlich schon 100 Mal, ich habs aber auf Anhieb nicht gefunden):

<!-- Innerhalb WebEditions geben wir die Mögchlichkeit, einen Ordner auszuwählen, um sehen zu können, wie es dann mal ausschaut: //-->
<we:ifEditmode>
<tr>
<td ><span class="editmode">Album:</span>
<we:href reload="true" directory="true" file="false" type="int" name="album" output="id"></td>
</tr>
</we:ifEditmode>
<we:ifWebEdition>
<we:setVar to="global" nameto="album" from="top" namefrom="album_we_jkhdsf_intID" />
<!-- Ausserhalb WebEditions wird die Ordner-ID mittels GET übergeben: //-->
<we:else>
<we:setVar to="global" nameto="album" from="request" namefrom="OrdnerID" />
</we:ifWebEdition>
<tr>
<td><we:listview name="ImageGallery" contenttypes="img" searchable="false" rows="3" cols="4" workspaceID="$album" >

So, fehlt nur noch die Abfrage, ob auch eine ID übergeben wurde, sonst wird ein Standard-Ordner angezeigt....

Schönen Abend noch, Sugus

hitide

Bilderserie

Beitragvon hitide » Di 15. Apr 2008, 07:34

Nur noch zur Vollständigkeit. Wir haben hier auch ein Bilderalbum realisiert, das auf einer Übersichtsseite alle Titelbilder anzeigt und per Klick dann auf die Serie verweist. Die Workspace-ID (also der Ordner) wird über GET übertragen.

Hier der Code für die Ausgabe einer Serie:
-----------------------------------------

<?
$dir_id = $_GET['id'];
$_SESSION['dir'] = $_GET['id'];
?>

<we:listview contenttypes="img" rows="20" searchable="false" workspaceID="$dir_id" xml="true" searchable="false" name="ImageGallery" desc="false" order="we_filename" />

<div class="unterseiteContent">

<!-- Miniaturansichten -->

<we:ifFound>

<div>
<we:ifBack>
<we:back class="thumbsJump">zurück</we:back><span class="jumpTrenner">|</span>
</we:ifBack>
<span>Bild <we:listviewStart /> - <we:listviewEnd /> von <we:listviewRows /> |</span>
<we:ifNext>
<we:next class="thumbsJump">weiter</we:next>
</we:ifNext>
</div>

<div>
<we:repeat>
<we:field type="img" thumbnail="Bilderserien Thumbnails" hyperlink="true" id="14391" xml="false" border="0" winprops="width=600,height=600,left=-1,top=-1" />
</we:repeat>

<we:else>Konnte kein Bild finden.
</div>

</we:ifFound>
</div>

</we:listview>

----------------------------------------------------

Gruß,
hitide

hitide

@deemes

Beitragvon hitide » Di 15. Apr 2008, 07:49

Hm,
danke erst mal, aber das befriedigt mich nicht so richtig. Ich werde sehen, dass ich es irgendwie anders hinbekomme.

deemes

Beitragvon deemes » Di 15. Apr 2008, 09:53

Befriedigend ist es auf keinen Fall. Zudem fehleranfällig. Wenn das Format wie die Multiobjekte verlinkt werden sich mal ändert funktioniert das natürlich nicht mehr. Allerdings war es die einzige Möglichkeit die ich finden konnte.

Bei wenigen Objekten könnte man noch alle Objekte durchgehen und die Ausgabe über das verschachtelte listview type="multiobject" filtern. Bei meinem angesprochenen Projekt gibt es derzeit aber ca. 700 Artikel von ca. 200 Autoren. Da macht das keinen Sinn mehr.

Wenn Du eine andere Lösung findest, halte mich bitte auf dem Laufenden. Interessiert mich sehr! :-)


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

Wer ist online?

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