MultiObjekt umgekehrt

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:

MultiObjekt umgekehrt

Beitragvon christobal » Do 8. Sep 2022, 10:21

Grüß Euch aus Tirol!
Ich nutze webEdition 9.1.2

Ich hab eine Klasse Produkte mit einem MultiObjekt auf die Klasse Team. Bei der Objektdetailseite des Produktes werden die Verantwortlichen aufgelistet. Klicke ich auf einen der Verantwortlichen, komme ich auf die Detailseite der Klasse Team.

Code: Alles auswählen

<we:listview type="multiobject" name="Verantwortlich" classid="3">
<we:repeat>
<we:field name="Nachname" />
</we:repeat>
</we:listview>
Kann ich nun auf der Team-Detailseite die Produkte auflisten, für die das Teammitglied verantwortlich ist?

Bitte um Hilfe!
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
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: MultiObjekt umgekehrt

Beitragvon blickfang » Do 8. Sep 2022, 10:28

Hi,
ja das kannst du, dafür musst du eine Condition auf deine Listview anwenden. Schau dir mal <we:condtiion> an
Gruß
Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

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

Re: MultiObjekt umgekehrt

Beitragvon christobal » Fr 9. Sep 2022, 09:53

Grüß Dich Timo,

Ich bin auf der Objekt-Detailseite des Ansprechpartners und ermittle einmal die Objekt ID

Code: Alles auswählen

<we:var type="property" doc="self" name="ID" />
aber was tue ich dann?

Code: Alles auswählen

<we:condition name="produktecondi">
<we:conditionAdd field="Type" var="type" compare="="/>
</we:condition>

<we:listview type="object" classid="20" comment="PRODUKTE">
<we:repeat>
<we:field name="Titel" />
</we:repeat>
</we:listview>
Bitte um weitere Hilfe!
Wer nichts weiß, muss alles glauben....
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
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: MultiObjekt umgekehrt

Beitragvon blickfang » Fr 9. Sep 2022, 10:32

Hi,

ich mache das eigentlich immer über eine php Variable, weil ich mit den we:condtion Tags irgendwie kein Freund werde...

Code: Alles auswählen

<we:field name="we_id" to="global" nameto="teamObjectId" />
<?php $condition = 'object_3=' . $GLOBALS['teamObjectId'];  // die "3" ist die id der Klasse mit den Personen, die beim Produkt zugeordnet sind ?>

<we:listview name="produkListe" type="object" classid="20" condition="$condition">
<we:field name="produktName" /> ...
<we:listview>
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

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

Re: MultiObjekt umgekehrt

Beitragvon christobal » Fr 9. Sep 2022, 19:25

Hallo Timo, danke fürs helfen!
Er listet leider einfach alle Produkte auf.

Code: Alles auswählen

<we:field name="we_id" to="global" nameto="teamObjectId" />
<?php $condition = 'object_3=' . $GLOBALS['teamObjectId']; ?>
<we:listview type="object" classid="20" condition="\$condition" comment="PRODUKTE">
<p><we:repeat><we:field name="we_id" /><br /></we:repeat></p>
</we:listview>
Muss in Deinem Script nicht der Name des Multiobjects vorkommen?
screeno.jpg
screeno.jpg (83.33 KiB) 1843 mal betrachtet
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
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: MultiObjekt umgekehrt

Beitragvon blickfang » Mo 12. Sep 2022, 21:18

Hi Christof,
das klingt mir danach, als ist deine Variable teamObjectId leer?
Hast du die mal ausgegeben?

Code: Alles auswählen

<?php echo $GLOBALS['teamObjectId'; ?>
der field Tag

Code: Alles auswählen

<we:field name="we_id" to="global" nameto="teamObjectId" />
muss innerhalb deiner Objektanzeige die du sicherlich mit

Code: Alles auswählen

<we:object></we:object>
realisiert hast, stehen.
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

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

Re: MultiObjekt umgekehrt

Beitragvon christobal » Di 13. Sep 2022, 10:29

Guten Morgen Timo!
Danke Dir für deine Hilfe, aber es werden leider immer noch alle Produkte angezeigt

Code: Alles auswählen

<we:object name="teamdetail" classid="3">

<we:field name="we_id" to="global" nameto="teamObjectId" />
<?php echo $GLOBALS['teamObjectId']; ?>

<?php $condition = 'object_3=' . $GLOBALS['teamObjectId']; ?>
<we:listview type="object" classid="20" condition="\$condition" comment="PRODUKTE">
<p><we:repeat><we:field name="we_id" /><br /></we:repeat></p>
</we:listview>

</we:object>
Ich hab mir die MYSQL-Datenbank angeschaut, und da heißt die Tabelle "tblObject_3".
Habs im Code auch geändert, mit gleichem Ergebnis, es werden alle angezeigt.
Bei den Produkten heißt das Feld, wo die Teammitglieder zugeordnet werden "multiobject_Verantwortlich"

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
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: MultiObjekt umgekehrt

Beitragvon blickfang » Di 13. Sep 2022, 10:48

dann nehm mal die für die condition

Code: Alles auswählen

<?php $condition = 'multiobject_Verantwortlich=' . $GLOBALS['teamObjectId']; ?>
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

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

Re: MultiObjekt umgekehrt

Beitragvon christobal » Mi 14. Sep 2022, 15:51

Hallo Timo!

Geht leider nicht!
Ich habs jetzt mal so probiert, da tut sich aber auch nichts.

Nochmals zur Erklärung:
  • Ich hab eine Klasse "Produkte" mit der ID "20"
  • in dieser Klasse ist ein Multiobjekt, names "Verantwortlich"
  • hier kann ich Teammitglieder aus der Klasse "Team" mit der ID "3" auswählen
  • ein Teammitglied hat die ID "223"
Wenn ich auf der Teamdetailseite bin müsste ich ja eine normale Listview wie folgt ausgeben können

Code: Alles auswählen

<we:listview type="multiobject" name="Verantwortlich" classid="20" condition="Verantwortlich='223'">
<we:repeat><we:field name="Titel" /></we:repeat>
</we:listview>
Bitte nochmals um Hilfe
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
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: MultiObjekt umgekehrt

Beitragvon blickfang » Mi 14. Sep 2022, 15:58

Hi,
nein, das geht so vermutlich nicht, weil im multiobjektFeld "verantwortlich" deiner Produktklasse die Verantwortlichen komasepariert drin stehen.

Also 234,286,123,...

Die condition du da dann gesetzt hast, wird also nie zutreffen können, sobald auch mehr als ein Multiobjekt zugewiesen ist.
Dazu müsste es etwa "Verantwortlich LIKE '%223%'" lauten. Je nachdem ob du auch eine id 2231 oder 223x als multiobjekt verknüpft hast, würde er dann aber beie als Treffer finden. Somit wäre "Verantwortlich LIKE '%223,%'" noch besser, vorausgesetzt ind er Datenbank steht dann auch "223," drin, sofern nur ein multiobjekt zugewiesen ist.

Prüf doch mal, was in der Tabelle "Produkte tblObject_20 in der Spalte multiobject_3 steht (oder heißt die Spalte dann multiobject_team, das musste gucken...)
Gruß
Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

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

Re: MultiObjekt umgekehrt

Beitragvon christobal » Do 15. Sep 2022, 11:02

das wars, großes Danke! Hier nochmals der funktionierende Code

Code: Alles auswählen

<we:field name="we_id" to="global" nameto="teamObjectId" />

<we:condition name="condi">
<we:conditionAdd field="Verantwortlich" compare="LIKE" var="%teamObjectId%" />
</we:condition>

<we:listview type="object" classid="20" condition="\$condi">
<we:repeat><we:field name="we_id" /></we:repeat>
</we:listview>
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

ThomasGoebe

Re: MultiObjekt umgekehrt

Beitragvon ThomasGoebe » Do 15. Sep 2022, 12:06

Für Conditions auf Multiobjekte ist FIND_IN_SET gedacht. (siehe auch Entwicklerinformationen zu Version 7: https://www.webedition.org/de/dokumenta ... collapse-9)
Mit der Like Methode findest Du im schlechtesten Fall sogar falsche Ergebnisse.

Beispiel:
Team Objekt 1: hat ID 22
Team Objekt 100: hat ID 122

Suchst Du nun mit Like nach der ID 22 von Team Objekt 1, wirst Du auch Team Objekt 100 mit der ID 122 finden.

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

Re: MultiObjekt umgekehrt

Beitragvon christobal » Do 22. Sep 2022, 15:20

Vielen Dank Thomas,
aber bitte wie bring ich das in die conditionAdd hinein?

Code: Alles auswählen

<we:field name="we_id" to="global" nameto="teamObjectId" />

<we:condition name="condi">
<we:conditionAdd field="Verantwortlich" compare="FIND_IN_SET" var="%teamObjectId%" />
</we:condition>

<we:listview type="object" classid="20" order="Titel" condition="\$condi">
<we:repeat><we:field name="Titel" /></we:repeat>
</we:listview>
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

ThomasGoebe

Re: MultiObjekt umgekehrt

Beitragvon ThomasGoebe » Do 22. Sep 2022, 23:54

christobal hat geschrieben: Do 22. Sep 2022, 15:20 Vielen Dank Thomas,
aber bitte wie bring ich das in die conditionAdd hinein?
Das weiss ich leider nicht. Ich nutze we:condition generell nicht, da ich das immer als zu umständlich empfunden habe.
Eventuell gibt es dafür auch keine we:condition tags, wäre also ein Feature Request für die Bugbase.

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

Re: MultiObjekt umgekehrt

Beitragvon WBTMagnum » Fr 23. Sep 2022, 00:29

Hallo Christoph,

Schau mal hier: viewtopic.php?t=41623#p101897

Da hatten wir das Thema schon mal :D

HTH,
Sascha


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

Wer ist online?

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