Multi Objekt Suche

Fragen zum Erstellen von Templates für webEdition.
Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Multi Objekt Suche

Beitragvon christobal » Mi 4. Sep 2019, 10:40

Grüß Euch webEditioneers!

Steh wieder an! Und zwar hab ich eine Team-Klasse mit einem Multi Objekt Feld "Rechtsgebiete".
Den Team-Mitgliedern (Rechtsanwälte) werden Rechtsgebiete zugeordnet.
Jetzt will ich nach Team-Mitgliedern mit einem bestimmten Rechtsgebiet suchen.

Im Such-Formular generier ich mir aus den Rechtsgebiete-Objekten eine select und das Ganze schaut dann so aus:

Code: Alles auswählen

<we:form name="suchformular" type="object" id="self" class="form-horizontal">

<we:listview name="rechtsgebiete_listview" type="object" classid="16" order="Rechtstitel" desc="false">
<select name="rechtsgebieteselect" id="rechtsgebieteselect">
<option value="%">Auswahl</option>
<we:repeat><option value="<we:field type="text" name="Rechtstitel" />"><we:field type="text" name="Rechtstitel" /></option></we:repeat>
</select>
</we:listview>

<input type="submit" name="Submit" value="suchen" />

</we:form>
Condition:

Code: Alles auswählen

<we:setVar from="request" to="global" namefrom="rechtsgebieteselect" nameto="rechtsgebieteselect" />

<we:condition name="condition">
<we:conditionAdd field="Rechtstitel" var="rechtsgebieteselect" compare="like"/>
</we:condition> 
Auflistung:

Code: Alles auswählen

<we:listview type="object" name="team_listview" order="Nachname" classid="3" condition="\$condition" >
<we:repeat><we:field name="Nachname" /></we:repeat>
</we:listview>
Geht das gar nicht?
Oder hab ich einen Denkfehler?

Wäre um jegliche Hilfe sehr dankbar!
Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

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

Re: Multi Objekt Suche

Beitragvon mokraemer » Mi 4. Sep 2019, 11:59

also du brauchst in deinem Select auf jeden Fall mal die ID des Objektes als Wert. Der Name hilft dir nicht weiter.
<we:condition> kann noch nicht mit Multi-Objekten umgehen - da fehlt vermutlich ein FR.
Die Like-Abfrage liefert auf keinen Fall das richtige Ergebnis, du muß eine FIND_IN_SET(wert,feld) als Condition setzen - darauf achten, das wert unbedingt ein int ist:

Code: Alles auswählen

<we:setVar from="request" to="global" namefrom="rechtsgebieteselect" nameto="rechtsgebieteselect" varType="int"/>
Für alle String-Felder unbedingt prepareSQL="true" setzen, sonst baust du hier eine tolle SQL-Injection!
webEdition-Kern-Entwickler

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon christobal » Mo 9. Sep 2019, 15:35

Danke Mokramer für Deinen Hinweis!! Ganz schaff ichs aber noch nicht!

Das Formular mit der select schaut jetzt so aus:

Code: Alles auswählen

<we:form name="suchformular" type="object" id="self" class="form-horizontal">
<we:listview name="rechtsgebiete_listview" type="object" classid="16" order="Rechtstitel" desc="false">
<select name="rechtsgebieteselect" id="rechtsgebieteselect">
<option value="%">Auswahl</option>
<we:repeat><option value="<we:field type="text" name="we_id" />"><we:field type="text" name="Rechtstitel" /></option></we:repeat>
</select>
</we:listview>
<input type="submit" name="Submit" value="suchen" />
</we:form>
Die Variable schaut jetzt so aus:

Code: Alles auswählen

<we:setVar from="request" to="global" namefrom="rechtsgebieteselect" nameto="rechtsgebieteselect" varType="int" prepareSQL="true" />
aber wie ich jetzt die Condition baue, ist mir ein Rätsel!
Kannst Du mir da bitte unter die Arme greifen?!

Code: Alles auswählen

<we:condition name="condition">
<we:conditionAdd field="Rechtstitel" var="rechtsgebieteselect" compare="like"/>
</we:condition> 
Großes Danke aus dem Süden, Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

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

Re: Multi Objekt Suche

Beitragvon mokraemer » Do 12. Sep 2019, 11:56

Sorry, hatte keine Zeit zu antworten. Also, ich hoffe die Anzahl Objekte in der Klasse 16 ist kurz, denn bei der Suche muß die DB alle Felder durchgehen. Da es aktuell noch keine Funktion in <we:condition> für diese Suche gibt, muß man es leider von Hand machen (FR?):

Code: Alles auswählen

<we:setVar from="request" to="global" namefrom="rechtsgebieteselect" nameto="rechtsgebieteselect" varType="int" prepareSQL="true" />
<?php
if($GLOBALS['rechtsgebieteselect']){
	$GLOBALS['condition']='FIND_IN_SET('.((int)$GLOBALS['rechtsgebieteselect']).',multiobject_Rechtstitel)';
}else{
	//keine Suche, wenn keine Auswahl
	$GLOBALS['condition']='FALSE';
}
Ich hab es jetzt nicht ausprobiert, könnte sein das man den Zusatz "multiobject_" weglassen kann/muß.
webEdition-Kern-Entwickler

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon christobal » Mo 16. Sep 2019, 12:37

Danke Dir mokramer! Das funzt super!

Ein kleines Problem hab ich noch: Kannst Du mir bitte noch sagen, wie ich das mit der vorhandenen Condition kombinieren kann?

Code: Alles auswählen

<we:condition name="condition">
<we:conditionAdd field="Nachname" var="nachnameselect" compare="like"/>
<we:conditionAnd />
<we:conditionAdd field="Kanzlei" var="kanzleiselect" compare="like"/>
<we:conditionAnd />
<we:conditionAdd field="Ort" var="ortselect" compare="like"/>
<we:conditionAnd />
<we:conditionAdd field="Nation" var="nationselect" compare="like"/>
<we:conditionAnd />
<?php
if($GLOBALS['rechtsgebieteselect']){
	$GLOBALS['condition']='FIND_IN_SET('.((int)$GLOBALS['rechtsgebieteselect']).',multiobject_Rechtsgebietewahl)';
}else{
	//keine Suche, wenn keine Auswahl
	$GLOBALS['condition']='FALSE';
}
?>
</we:condition> 
Liebe Grüße aus dem sonnigen Tirol!
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon christobal » Mo 23. Sep 2019, 14:55

Darf ich das Thema nochmals anstubsen?!

Könnt Ihr mir bitte noch sagen, wie ich das mit einer vorhandenen webEdition-Condition kombinieren kann?
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon WBTMagnum » Mo 23. Sep 2019, 15:40

Hallo Christoph,

So sollte es eigentlich klappen:

Code: Alles auswählen

<we:condition name="condition">
<we:conditionAdd field="Nachname" var="nachnameselect" compare="like"/>
<we:conditionAnd />
<we:conditionAdd field="Kanzlei" var="kanzleiselect" compare="like"/>
<we:conditionAnd />
<we:conditionAdd field="Ort" var="ortselect" compare="like"/>
<we:conditionAnd />
<we:conditionAdd field="Nation" var="nationselect" compare="like"/>
<?php
if($GLOBALS['rechtsgebieteselect']){
	$GLOBALS['condition'] .= ' AND FIND_IN_SET('.((int)$GLOBALS['rechtsgebieteselect']).',multiobject_Rechtsgebietewahl) ';
}
?>
</we:condition> 

HTH,
Sascha

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon christobal » Mo 23. Sep 2019, 17:17

Klappt perfekt! Wow! Danke Sascha!

Ich hab ja eine Klasse Rechtsanwälte denen per Multi Objekt Rechtsgebiete aus der Klasse Rechtsgebiete zugeordnet werden. Wenn ich auf der Rechtsgebiete-Detailseite bin, kann ich da mit diesem PHP-Code auflisten lassen, welche Rechtsanwälte dieses Leistung erbringen?

Das wäre noch der Hit!
Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon WBTMagnum » Mo 23. Sep 2019, 20:57

Hallo Christoph,

Klar. Anstatt dem "$GLOBALS['rechtsgebieteselect']" einfach die ID des aktuell angezeigten Rechtsgebiets verwenden.


HTH,
Sascha

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon christobal » Di 24. Sep 2019, 14:51

Ah, ooh, daaaanke!!
Klapt supergut

Code: Alles auswählen

<?php $condition ="FIND_IN_SET(" . $GLOBALS['we_doc']->OF_ID .", multiobject_Rechtsgebietewahl)"; ?>
<we:listview type="object" name="team_listview" order="Nachname" classid="3" condition="\$condition" >
<we:repeat>...</we:repeat></we:listview>
Noch einen schönen Tag!!
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon christobal » Fr 4. Okt 2019, 11:04

Hoi aus Tirol,

jetzt hab ich noch eine Frage:

Ich hab auf dieser Website einen Internen Bereich, wo die "Kunden" ihre Daten verwalten können. Klappt soweit alles gut! Nur für die Multi Objekte, die eigtl. sehr praktisch sind, gibt es leider keinen <we:userInput ...>.

Gibt es da evtl. einen Workaround mit PHP?
Evtl. mit Checkboxes?

Ich arbeite mit wE 8.1, bei den Multi Objekten wird auf eine Klasse mit 142 Objekten zugegriffen...

Grüße aus Tirol mit sportl. 7°C
Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon christobal » Mi 9. Okt 2019, 15:09

Darf ich meinen Beitrag anstubsen?
Vielleicht hat wer eine Idee?
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Multi Objekt Suche

Beitragvon WBTMagnum » Mi 9. Okt 2019, 22:31

Hallo Christoph,

Dafür gibt es denke ich keine fertige Lösung. Kannst man über Checkboxen und einen entsprechenden Hook aber sicherlich bauen.

Liebe Grüße,
Sascha


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

Wer ist online?

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