Rückwärtssuche Multi Object - in Datenbank

Hier können Sie Fragen bezüglich des Datenbank-/Objektmoduls stellen.
Benutzeravatar
JuergenEbbing
webEdition Partner
webEdition Partner
Beiträge: 246
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Ramsdorf
Kontaktdaten:

Rückwärtssuche Multi Object - in Datenbank

Beitragvon JuergenEbbing » Do 10. Jul 2014, 11:54

Hallo!

Ich stehe gerade etwas auf dem Schlauch. Folgende Aufgabe habe ich zu lösen.

Es gibt eine Klasse "Downloads" in denen ich entsprechende Datensätze verwalte. Die Downloads werden verschiedenen Produkten zugeordnet (über ein Multi Objekt - Feld). Da einige Downloads mehreren Produkten zugeornet werden können, haben wir uns entschieden es so herum zu lösen und nicht ein Multi Objekt Feld bei den Produkten einzuführen.

Nun möchte ich auf der Detailseite der Produkte alle Downloads anzeigen, die über das Multi Objekt Feld mit dem jeweiligen Produkt verknüpft sind. Ich habe aber im Moment keine Ahnung, wie ich die Condition für dieses Listview generieren soll. Im Datenbankfeld steht ja ein etwas komplexeres Array - würde hier nur die ID des entsprechenen Produktes stehen, dann hätte ich schon eine Idee.

Hat jemand einen Tipp für mich?

Die suche müsste ja so aussehen:
Zeige alle Downloads, die mit meiner ID verknüpft sind.

Würde mich freuen, wenn mich jemand helfen kann vom Schlauch zu steigen ;-)

Schönen Gruß!
------------
da bin ich ja mal gespannt,
ob ich neugierig bin
------------

Benutzeravatar
JuergenEbbing
webEdition Partner
webEdition Partner
Beiträge: 246
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Ramsdorf
Kontaktdaten:

Re: Rückwärtssuche Multi Object - in Datenbank

Beitragvon JuergenEbbing » Do 10. Jul 2014, 13:41

Jetzt habe ich es doch selbst runter geschafft ;-)

Zunächst die ID des Produktes ermitteln und in $ProduktID sichern.
Danach die Suche über die Condition eingrenzen und als $reverseCondition sichern.

Code: Alles auswählen

<we:setVar from="request" namefrom="we_objectID" to="global" nameto="ProduktID" />
<?php
    $reverseCondition = "(Verknuepfung LIKE '%:\"".$ProduktID."\";%')"; 
?>
<we:listview type="object" condition="$reverseCondition" classid="9">
<we:repeat>
			<we:field name="Bezeichnung" type="text"/><br/>
</we:repeat>
</we:listview>
Wobei ich die objectID schon gern aus dem Dokument / Objekt selbst geladen hätte und nicht per request - geht das auch irgendwie?
------------
da bin ich ja mal gespannt,
ob ich neugierig bin
------------

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Rückwärtssuche Multi Object - in Datenbank

Beitragvon blickfang » Mo 14. Jul 2014, 14:12

Hallo Jürgen,

die Objekt Id müsste Dir in der Vorlage eigentich als

Code: Alles auswählen

<?php $lv->f('WE_ID') oder $lv->f('ID'); ?>
zur Verfügung stehen. Wenn Du SEo URLs für Deine Objekte verwendets, hast Du ja eh keine ID mehr in der URL die Du per request abfragen könntest, oder?

Gruß
Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

AndreasWitt

Re: Rückwärtssuche Multi Object - in Datenbank

Beitragvon AndreasWitt » Mo 14. Jul 2014, 14:23

Hallo Jürgen,

das Problem bei deiner Lösung könnte sein, dass bei kleinen IDs wie "123" auch ein Matching bei großen IDs passt, z.B. 123xxx

Eine bessere Lösung wäre

Code: Alles auswählen

<?php $relatedDownloads = "NameMultiobjektFeld REGEXP '[{].*[{].*[[.quotation-mark.]]".$ProduktID."[[.quotation-mark.]].*[}]'"; ?>
<we:listview type="object" condition="$relatedDownloads" classid="9">
<we:repeat>
         <we:field name="Bezeichnung" type="text"/><br/>
</we:repeat>
</we:listview>
Grüße, Andreas

Rala
Member
Beiträge: 69
Registriert: Fr 26. Jan 2007, 09:04
Wohnort: Dormagen
Kontaktdaten:

Re: Rückwärtssuche Multi Object - in Datenbank

Beitragvon Rala » Mo 11. Mai 2015, 17:36

Hallo Andreas,

ich glaube, das geht in die Richtung, die ich auch benötige.
Leider fehlen mir da doch ein paar Kenntnisse.

Gibt es diese Lösung auch komplett?
Denn ich benötige ein Eingabefeld, in das der Redakteur den Suchbegriff einträgt, der dann mit dem Multiobjekt-Feld abgeprüft wird. Wie baut sich das bis zum listview-tag vollständig auf? Denn das erschließt sich mir noch nicht vollständig...

Viele Grüße
Rainer

AndreasWitt

Re: Rückwärtssuche Multi Object - in Datenbank

Beitragvon AndreasWitt » Do 21. Mai 2015, 20:54

Hallo Rainer,

die Lösung oben war schon komplett. Was meinst du denn, dass der Redakteur ein Suchbegriff eingibt und du dann etwas suchen möchtest? Kannst du das bitte einmal etwas genauer schildern?

Grüße, Andreas


Zurück zu „DB-/Objektmodul“

Wer ist online?

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