Questions & Answers

SOLVED
hjaeger
Elite Observer

FS5 api: vom EditorWrapper zu EditorValue - deprecated warning

Jump to solution

Hallo Community.

Im konkreten Anwendungsfall geht es darum, diverse relevante Tabellenspalten der Entity einer Contentprojektion iterativ auszugeben, um damit meta-tags im Head der Seiten zu befรผllen. Es handelt sich dabei um einen recht generischen Ansatz, um nicht jedes Feld explizit beim Namen nennen zu mรผssen.

Nun zum Problem:

Auf versch. Feldern liefert ein entity.getValue("attrName") nur einen EditorWrapper zurรผck, und nicht das erwรผnschte EditorValue. Wenn mich nicht alles tรคuscht war das unter FS < 5 noch anders.

Jetzt kann ich diesen EditorWrapper mittels .getAccessEditor(de.espirit.firstspirit.access.project.Project,boolean) dazu รผberreden, mir eben doch das EditorValue zu รผberreichen. Diese Methode ist aber deprecated und wirft ein Warning in der Generierung.

Gibt es eine Alternative zu .getAccessEditor?

Von meinem Ansatz, die Daten via Entity zu holen, mรถchte ich ungern abrรผcken, da ich die Routine so generisch im Header-Include der Templates unterbringen kann und mir die Entity der Projektion per MultiPageParams holen kann. Da die Ausgabe der Meta-Tags im Head erfolgen soll wรคre mir mit einer Abhandlung innerhalb der Projektion nicht geholfen.

MfG

Hagen Jรคger

0 Kudos
1 Solution

Accepted Solutions

Der Zugriff per direkter Punktnotation kann hier nicht verwendet werden, da die Feldnamen im Templatekontext nicht ausgeschrieben, sondern nur innerhalb eines Loops รผber .getAttributeNames() zur Verfรผgung stehen.

Solche Untaten mit verschachtelten CMS_VALUEยดs zur Konstruktion eines #row.feldname im Templatekontext ging ja nur mit FS3.

Aber zur Lรถsung des deprecated-Problems:

Die Methode .getAccessEditor gibt es ja dreimal, ich hatte nur die mit der รœbergabe des Project-Objekts versucht. Die Variante mit UserService ist nicht deprecated markiert.

MfG

Ingrid

View solution in original post

0 Kudos
2 Replies
aVogt
Returning Creator

Wo und wie verwendest Du das?

versuche es mal mit

$CMS_VALUE(f_ROW.SPALTENNAME)$

Da bekomme ich z.B. ein DomElement wenn die zugehรถrige Eingabekomponente ein CMS_INPUT_DOM ist.

Falls Du das in einem Script verwendest solltest Du รผber FormData gehen (das wurde mir zumindest immer empfohlen).

GrรผรŸe

Andreas

0 Kudos

Der Zugriff per direkter Punktnotation kann hier nicht verwendet werden, da die Feldnamen im Templatekontext nicht ausgeschrieben, sondern nur innerhalb eines Loops รผber .getAttributeNames() zur Verfรผgung stehen.

Solche Untaten mit verschachtelten CMS_VALUEยดs zur Konstruktion eines #row.feldname im Templatekontext ging ja nur mit FS3.

Aber zur Lรถsung des deprecated-Problems:

Die Methode .getAccessEditor gibt es ja dreimal, ich hatte nur die mit der รœbergabe des Project-Objekts versucht. Die Variante mit UserService ist nicht deprecated markiert.

MfG

Ingrid

0 Kudos

Type a product name