robin_kump
I'm new here

Regeln: Zugriff auf Parent-Object

Hallo,

ist es möglich mit den Regeln in einer Absatzvorlage zu bestimmen, ob die Vorlage innerhalb eines Inhaltsbereich oder der Eingabekomponente FS_LIST aufgerufen worden ist?

Hintergrund: Ich bin derzeit dabei die letzten Eingabekomponenten CMS_INPUT_CONTENTAREALIST zu migrieren. Da es bei FS_LIST jedoch keine Möglichkeit mehr gibt die hinzugefügten Absätze direkt zu benennen, muss eine zusätzlich Textfeld her. Jetzt ist es aber so, dass verschiedene Absatzvorlagen sowohl innerhalb von FS_LIST, als auch im normalen Inhaltsbereich verwendet werden. Wenn ich einfach ein zusätzliches Pflichttextfeld einfüge, müssten alle Absätze im Inhaltsbereich nachbearbeitet werden.

Ich würde gerne prüfen, ob der Absatz innerhalb FS_LIST eingebunden wurde und nur dann das zusätzliche Pflichttextfeld einblenden.

Ich habe es folgendermaßen probiert, da in der Doku steht man soll den Interfacenamen ind Kleinbuchstaben verwenden:

  <ON_EVENT>

    <WITH>

      <EQUAL>

        <PROPERTY source="#global" name="ELEMENTTYPE"/>

        <TEXT>formdatalist</TEXT>

      </EQUAL>

    </WITH>

    <DO>

      <PROPERTY source="#form.displayName" name="VISIBLE"/>

    </DO>

  </ON_EVENT>

Funktioniert aber leider nicht.

Hat jemand eine Idee?

Beste Grüße

Robin

6 Replies
pavone
I'm new here

Hallo Robin,

obwohl es im Beispiel in der Dokumentation anders gezeigt wird, musst du #form im DO-Bereich entfernen, damit das Textfeld ausgeblendet wird. Also schlicht:

<PROPERTY source="displayName" name="VISIBLE"/>

Leider wird dir das nicht wirklich weiterhelfen, da ELEMENTTYPE dir nie formdatalist liefern wird, sondern immer den Typ des Knotens, auf dem das Formular ausgeführt wird. Also z.B. section, page etc.

Eine andere Methode, um dein Problem zu lösen, ist mir leider nicht bekannt.

Brauchst du denn tatsächlich einen frei wählbaren Namen für die Absätze in der Liste? Oder reicht es vielleicht aus, wenn du mittels LABELS und den Werten der Komponenten in den Absätzen, dir eine Beschriftung zusammenbaust?

Viele Grüße

Tim

0 Kudos

Hallo Tim,

danke für die Info. Das ist unschön.

Im Prinzip wird kein frei wählbarer Name benötigt. Bei den meisten FS_LISTs komme ich auch mit den LABELS aus. An einigen Stellen werden jedoch Absatzvorlagen verwendet, die keine nutzbaren Pflichkomponenten haben, z.B. ein Absatz mit einer Überschrift (CMS_INPUT_TEXT), einem Textabsatz (CMS_INPUT_DOM) und weiteren Eingabekomponenten. Wenn die Überschrift nicht gefüllt ist (was durchaus valide sein kann), wird in der FS_LIST Übersicht der vollständige Rest des Absatzes angezeigt. Zusätzlich ergibt sich die Schwierigkeit, dass es manchmal keine über alle Absazvorlagen einheitlich vorhandenen Eingabekomponente gibt (historisch gewachsen und bishe auch nicht zwangsweise nötig).

Beste Grüße

Robin

0 Kudos
marius_haechler
Elite Observer

Ein erster Ansatz wäre in der Idee hier:

https://community.e-spirit.com/ideas/1368

Eventuell wäre dann folgende Prüfung möglich:

#parent == #top

Wenn das wahr wäre, dann wäre der Absatz direkt in einem Body eingebunden und nicht mittels FS_LIST.

0 Kudos

Hallo Robin,

benötigst Du noch weitere Hilfe oder haben Dir die Antworten von Tim und Marius bereits geholfen?

In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere

Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung

gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Michaela

0 Kudos

Hallo Michaela,

sorry für das späte Feedback, habe deinen Post übersehen.

Das eigentliche Problem ist nach wie vor nicht gelöst. Ich verwende jetzt keine spzielle Eingabekomponente für den Anzeigename. Dann wird in FS_LIST eine Übersicht aller Inhalte angezeigt. Nicht schön und auch nicht sinvoll, aber die Migration musste abgeschlossen werden, damit 5.0.425 eingespielt werden konnte (wir haben eine 0-Fehler Toleranz bei der Generierung). Müssen die Autoren an dieser Stelle eben mit einer "kaputten" Ansicht leben...

Viele Grüße

Robin

0 Kudos

Hallo,

die gewünschte Funktion wurde mit FS 5.2.608 zur Verfügung gestellt.

"Eingabekomponenten  können  in  verschiedenen  Kontexten  verwendet  werden,  in  Absätzen,  in Listen-Komponenten wie FS_CATALOG oder auch in Datensätzen oder Seiten. Mithilfe des Attributs CONTAINERTYPE kann ab der aktuellen FirstSpirit-Version ermittelt werden, um welchen Objekttyp es sich handelt. In Abhängigkeit vom umgebenden Objekttyp kann die Eingabekomponente dann beispielsweise gezielt ein- oder ausgeblendet (oder auch eine Bearbeitung unterbunden) werden."

Siehe https://community.e-spirit.com/community/customer/blog/2016/12/21/release-firstspirit-52r6-build-608...