Seite 1 von 2

Objekt Listview

Verfasst: Mo 11. Jul 2022, 12:33
von kay
Moin,

hab mal wieder ein Brett vor dem Kopf.

Ich versuche gerade ein Objekt listView mit einer contition zu Filtern.

Ich habe ein Objekt "Termine" in den das Objekt "Dozent" eingefügt ist.

Jetzt möchte ich auf der Dozentenseite nur die Termine des jeweiligen Dozenten anzeigen lassen.

Code: Alles auswählen

<we:condition name="condition">
	<we:conditionAdd field="Name" compare="=" var="Name" />
</we:condition>

<we:listview type="object" desc="false" numorder="true" classid="4" condition="\$condition">
			<we:repeat>…
Hat jemand eine Idee wo der Fehler liegt?

Viele Grüße
Kay

Re: Objekt Listview

Verfasst: Mo 11. Jul 2022, 12:35
von kay
Ach, ohne condition werden, wie erwartet, alle Termine angezeigt.

Re: Objekt Listview

Verfasst: Mo 11. Jul 2022, 13:57
von WBTMagnum
Hallo kay,

Ein paar Fragen bzw. Gedankenanstöße:
  • "Name" ist eine globale Variable? Ändert es etwas, wenn du den type explizit angibst?
  • Die Klassenstruktur ist mir nicht klar. Wie ist Class "4" aufgebaut?
  • Welche Werte stehen in Name?
  • Finden sich im Errorlog Meldungen?

Liebe Grüße,
Sascha

Re: Objekt Listview

Verfasst: Mo 11. Jul 2022, 14:41
von kay
WBTMagnum hat geschrieben: Mo 11. Jul 2022, 13:57 [*] "Name" ist eine globale Variable? Ändert es etwas, wenn du den type explizit angibst?
Ja - Hab ich in NachName geändert - kein Effekt
WBTMagnum hat geschrieben: Mo 11. Jul 2022, 13:57 [*] Die Klassenstruktur ist mir nicht klar. Wie ist Class "4" aufgebaut?
Die Klasse Termin (4)

Hat die Felder
Kursnummer, Datum etc. und verknüpfte Klassen Ort und Dozent
WBTMagnum hat geschrieben: Mo 11. Jul 2022, 13:57 [*] Welche Werte stehen in Name?
z.B. Neumann
WBTMagnum hat geschrieben: Mo 11. Jul 2022, 13:57 [*] Finden sich im Errorlog Meldungen?
Nix

Re: Objekt Listview

Verfasst: Mo 11. Jul 2022, 16:09
von WBTMagnum
Hallo Kay,

Wenn der Dozent über eine verknüpfte Klasse eingebunden ist, dann würde vermuten, dass die Verknüpfung über die ID erfolgt. Dementsprechend wird auch der Namensvergleich nicht funktionieren.

Du kannst dir das ja mal in der Datenbankstruktur anschauen. Dann siehst du, welche Spalten da hinterlegt sind.

Du kannst auch einfach mal probieren, ob ein Vergleich mit der ID eines Dozenten funktioniert.


HTH,
Sascha

Re: Objekt Listview

Verfasst: Mo 11. Jul 2022, 17:35
von kay
WBTMagnum hat geschrieben: Mo 11. Jul 2022, 16:09 Hallo Kay,

Wenn der Dozent über eine verknüpfte Klasse eingebunden ist, dann würde vermuten, dass die Verknüpfung über die ID erfolgt. Dementsprechend wird auch der Namensvergleich nicht funktionieren.

Du kannst dir das ja mal in der Datenbankstruktur anschauen. Dann siehst du, welche Spalten da hinterlegt sind.

Du kannst auch einfach mal probieren, ob ein Vergleich mit der ID eines Dozenten funktioniert.


HTH,
Sascha
Aber mit welchem Feld soll ich die ID vergleichen?

Das sind die Variablen:

[ID] => 222
[elements] => Array
(
[Vorname] => Array
(
[type] => input
[access] => access_s
[dat] => Marita
[len] => 1023
)

[NachName] => Array
(
[type] => input
[access] => access_s
[dat] => Neumann
[len] => 1023
)

Re: Objekt Listview

Verfasst: Di 12. Jul 2022, 09:58
von mokraemer
aber dein Feld heißt doch NachName und nicht Name....

Re: Objekt Listview

Verfasst: Di 12. Jul 2022, 11:33
von kay
mokraemer hat geschrieben: Di 12. Jul 2022, 09:58 aber dein Feld heißt doch NachName und nicht Name....
Habe ich nach dem Tip von WBTMagnum zum Testenngeändert. Hilft aber nicht 😕

Re: Objekt Listview

Verfasst: Di 12. Jul 2022, 11:53
von WBTMagnum
Hallo Kay,

Die ID 222 ist vom Dozent, oder? Dann musst du meiner Ansicht nach die ID für das Matching im Termin verwenden. Aber lass dir auch mal die Struktur von einem Termin ausgeben, wo du weißt, dass diese Dozentin zugeordnet ist.

Liebe Grüße,
Sascha

Re: Objekt Listview

Verfasst: Mi 13. Jul 2022, 12:54
von kay
WBTMagnum hat geschrieben: Di 12. Jul 2022, 11:53 Hallo Kay,

Die ID 222 ist vom Dozent, oder? Dann musst du meiner Ansicht nach die ID für das Matching im Termin verwenden. Aber lass dir auch mal die Struktur von einem Termin ausgeben, wo du weißt, dass diese Dozentin zugeordnet ist.

Liebe Grüße,
Sascha
Wie soll der Code denn aussehen? Wie kommen ich mit Boardmittelen an die ID der eingebetteten Klasse(0) "Dozenten" oder muss mann das mit PHP-Code machen?


Und warum geht das nicht einfach über z.B. das Feld "NachName"

Code: Alles auswählen


<we:condition name="condition">
	<we:conditionAdd field="NachName" compare="=" var="NachName" />
</we:condition>

<we:listview type="object" desc="false" numorder="true" classid="4" condition="\$condition">
			<we:repeat>…
			

Re: Objekt Listview

Verfasst: Mi 13. Jul 2022, 13:19
von kay
Oder Nutz man für sowas das Multiobjekt?

Re: Objekt Listview

Verfasst: Do 14. Jul 2022, 11:16
von WBTMagnum
Hallo Kay,

Multiobject brauchst du in deinem Setting dann, wenn ein Termin durch mehrere Dozenten abgehalten wird.

Ich bin den Code jetzt nochmal durchgegangen und habe das in einem unserer Systeme nachgebaut. So sollte es klappen:

Code: Alles auswählen

<we:setVar to="global" nameto="dozent_OF_ID" value="222" comment="nur mal zu Testen der Listview" />

<we:condition name="condition">
  <we:conditionAdd field="object_<DozentClassID>" compare="=" type="global" var="dozent_OF_ID" />
</we:condition>
<we:listview type="object" desc="false" numorder="true" classid="4" condition="\$condition">
      <we:repeat>…
Anmerkungen:
  • <DozentClassID> musst du mit der Class-ID der Dozenten ersetzen (z.B. "5").
  • Um an die Dozenten ID zu kommen, kannst du davor noch eine weitere Listview über die Dozenten machen und mit einer Condition nach dem Feld NachName filtern. Die ID erhältst du dann über <we:field name="OF_ID" to="global" nameto="dozent_OF_ID"/>. Das ganze funktioniert natürlich nur solange das Feld NachName unique ist (wovon ich jetzt mal nicht ausgehen würde). Dh., da braucht es eine andere Herangehensweise um an das Dozenten-Objekt zu gelangen.
Ich hoffe das bringt etwas Licht ins Dunkel und hilft dir weiter.


Liebe Grüße,
Sascha

Re: Objekt Listview

Verfasst: Do 14. Jul 2022, 16:21
von kay
WBTMagnum hat geschrieben: Do 14. Jul 2022, 11:16 Hallo Kay,

Multiobject brauchst du in deinem Setting dann, wenn ein Termin durch mehrere Dozenten abgehalten wird.

Ich bin den Code jetzt nochmal durchgegangen und habe das in einem unserer Systeme nachgebaut. So sollte es klappen:

Code: Alles auswählen

<we:setVar to="global" nameto="dozent_OF_ID" value="222" comment="nur mal zu Testen der Listview" />

<we:condition name="condition">
  <we:conditionAdd field="object_<DozentClassID>" compare="=" type="global" var="dozent_OF_ID" />
</we:condition>
<we:listview type="object" desc="false" numorder="true" classid="4" condition="\$condition">
      <we:repeat>…
Anmerkungen:
  • <DozentClassID> musst du mit der Class-ID der Dozenten ersetzen (z.B. "5").
  • Um an die Dozenten ID zu kommen, kannst du davor noch eine weitere Listview über die Dozenten machen und mit einer Condition nach dem Feld NachName filtern. Die ID erhältst du dann über <we:field name="OF_ID" to="global" nameto="dozent_OF_ID"/>. Das ganze funktioniert natürlich nur solange das Feld NachName unique ist (wovon ich jetzt mal nicht ausgehen würde). Dh., da braucht es eine andere Herangehensweise um an das Dozenten-Objekt zu gelangen.
Ich hoffe das bringt etwas Licht ins Dunkel und hilft dir weiter.


Liebe Grüße,
Sascha
Hi Sascha,

vielen Dank für deine Bemühungen - es Funktionier bei mir leider trotzdem nicht.

Ich habe mal den Code der gesamte Dozentenseite angefügt
Ich hätte nicht gedacht das das so Kompliziert ist :-/

Mit diesem PHP Code zeigt er mir die ID von der Dozentin "222" an. Wie macht man das denn mit Boardmitteln?

Code: Alles auswählen

<?php echo $GLOBALS['we_doc']->ID; ?>
Mir ist aber immer noch nicht klar welches Feld ich mit der ID vergleichen soll?

Code: Alles auswählen

<!-- Dozenten -->
<div class="grid-container">
	<div class="grid-x grid-padding-x">
		<div class="cell medium-10 medium-offset-1">
			<h1 class="headlineGrau">
				<b><we:var type="text" name="Vorname" /></b> <we:var type="text" name="NachName" />
			</h1>
			<div class="grid-x grid-padding-x">
				<div class="cell medium-4">
					<img src="<we:var type="img" name="Foto" />" alt="" >
				</div>
				<div class="cell medium-4">
					<we:var type="text" name="Beschreibung" />
				</div>
				<div class="cell medium-4 ibsListe">
					<we:var type="text" name="Qualifikation" /><br>
			</div>
		</div>
	</div>
</div>

<!-- SeminarListe -->

<?php echo $GLOBALS['we_doc']->ID; ?>

<we:condition name="condition">
  <we:conditionAdd field="ID" compare="=" type="global" var="ID" />
</we:condition>

<!-- Termin Liste -->
<div class="grid-container">
	<div class="grid-x grid-padding-x">
<we:listview type="object" desc="false" numorder="true" classid="4" condition="\$condition">
			<we:repeat>
				<div class="cell medium-1">
					<we:field name="Kategorie"/>
				</div>
				<div class="cell medium-1">
					<we:field type="img" name="Foto" />
				</div>
				<div class="cell medium-9">
					<h3 class="headlineGruen">
						<we:field name="Titel" hyperlink="true"/>
					</h3>
					<we:field name="NachName"/> - ID: <we:field type="text" name="we_id" /> <---------Hier gibt er eine 8 aus
				</div>
				<div class="cell medium-1">
					<we:field name="Kosten"/>
				</div>
			</we:repeat>
		</we:listview>
	</div>
</div>


Re: Objekt Listview

Verfasst: Do 14. Jul 2022, 17:01
von kay
kay hat geschrieben: Do 14. Jul 2022, 16:21
WBTMagnum hat geschrieben: Do 14. Jul 2022, 11:16

Code: Alles auswählen

<we:setVar to="global" nameto="dozent_OF_ID" value="222" comment="nur mal zu Testen der Listview" />

Ich habe Noch mal in der Datenbank das Dozenten Object angesehen und da seht keine 222 sonder nur eine 2 und wenn ich die bei value Eintrage dann geht es :-)

Nur wie die komme ich an die OF-ID aus object_1?

Re: Objekt Listview

Verfasst: Do 14. Jul 2022, 17:42
von kay
Damit geht es:

Code: Alles auswählen

	<!-- SeminarListe -->
	<?php $DozId=$GLOBALS['we_doc']->OF_ID; ?>
	<we:setVar to="global" nameto="dozent_OF_ID" value="$DozId" />
	<we:condition name="condition">
		<we:conditionAdd field="object_1" compare="=" type="global" var="dozent_OF_ID" />
	</we:condition>

	<!-- Termin Liste -->
	<div class="grid-container">
		<div class="grid-x grid-padding-x">
			<we:listview type="object" desc="false" numorder="true" classid="4" condition="\$condition">
				<we:repeat>
				
Gibt es keine Möglichkeit das mit Boardmitteln zu erreichen?