mmarm
Crownpeak employee

Linkvorlagen getComment() deprecated --> Warning bei Generierung

Hallo liebe Community,

nach Update auf 4.2 liefert die Generierung jetzt einei Fülle an Warnings, da bei den Linkobjekten getComment() deprecated ist. Da dann die Logfiles nicht mehr so brauchbar sind wäre es schön dies umgehen zu können. Die anderen Felder der "alten" Linkkonfiguration scheinen ja nicht davon beroffen zu sein.

Eine Möglichkeit wäre die Migration auf die neuen Linkvorlagen. Die sind aber laut Doku ja noch nicht offiziell freigegeben (u.a. wegen der Verwendung von FS_REERENCE), also sind wir davon auch nicht so begeistert.

Gibt es für dieses Problem evtl. bereits eine Lösung oder hat sonst jemand eine Idee?

Vielen Dank und viele Grüße

Matthias Marm

4 Replies
hoebbel
Crownpeak employee

Hallo Matthias,

Sauberste Lösung des Problems:

Ersetze die bisherige Abfrage

$CMS_IF(!#link.comment.isEmpty)$

durch diese Abfrage hier:

$CMS_IF(#link.isSet("comment") && !#link.comment.isEmpty)$

Erklärung: Da in dem Objekt die entsprechende Methode überschrieben wurde, wird Sie nicht aufgerufen, wenn das Objekt vorhanden ist. Es muss also "nur" verhindert werden, dass versucht wird die als deprecated markierte Methode aufzurufen, wenn das entsprechende Objekt nicht vorhanden ist.

Viele Grüsse aus Dortmund,

  Holger

0 Kudos
mmarm
Crownpeak employee

Hallo Holger,

danke für die prompte Antwort!

Viele Grüße

Matthias

0 Kudos

Hallo Holger,

leider bekomme ich bei folgendem Konstrukt immer noch die besagte Fehlermeldung:

$CMS_IF(#link.isSet("comment") && !#link.comment.isEmpty)$

    $CMS_SET(set_comment)$<div>$CMS_IF(#global.preview)$$CMS_VALUE(#link.comment)$$CMS_ELSE$$CMS_VALUE(#link.comment.replaceAll("\"","\\\\\""))$$CMS_END_IF$</div>$CMS_END_SET$

$CMS_END_IF$

Fehlermeldung:

15.12.2011 17:11:19.396 WARN  ($CMS_VALUE(#link.comment)$ at 2, 54): deprecated usage of de.espirit.firstspirit.access.link.Link#getComment

    ...

    inside of: $CMS_VALUE(#link.comment)$ - at 2, 54

Verwende ich die von dir genannte if-Abfrage hingegen innerhalb des CMS_SET-Blocks, funktioniert es:

$CMS_SET(set_comment)$$CMS_IF(#link.isSet("comment") && !#link.comment.isEmpty)$<div>$CMS_IF(#global.preview)$$CMS_VALUE(#link.comment)$$CMS_ELSE$$CMS_VALUE(#link.comment.replaceAll("\"","\\\\\""))$$CMS_END_IF$</div>$CMS_END_IF$$CMS_END_SET$

Nur der Vollständigkeit halber. Eventuell sollte diese Fehlermeldung noch überarbeitet werden, sodass sie bei oben genanntem Fall auch nicht mehr ausgegeben wird.

LG

René

0 Kudos
klein
Crownpeak employee

statt

$CMS_VALUE(#link.comment)$

müsste eigentlich einfaches

$CMS_VALUE(comment)$

schon genügen