reger
Returning Observer

Eindeutiger Identifier innerhalb eines Projekts

Jump to solution

Hallo,

wir benötigen zum Befüllen unserer Suchmaschine für jeden relevanten Absatz eine eindeutige ID. Normalerweise klappt das auch mit z.B.
ID = section-$CMS_VALUE(#this.id)$
Werden diese Absätze aber innerhalb eines FS_CATALOG verwendet, ist die #his.id leer. Daraufhin habe ich mir mit dem Generierungsdatum in Verbindung mit der template.id beholfen
ID = section-$CMS_VALUE(#this.id,default:#global.now.getTimeInMillis())$-$CMS_VALUE(#this.template.id,default:0)$

Leider können auch Absätze gleicher Art innerhalb des FS_CATALOG direkt hintereinander gesetzt werden. Wenn die Generierung flott ist, habe ich also den gleichen Timestamp und hiermit doppelte Schlüssel. In einem anderen Artikel (Unique IDs bei verschachtelten FS_CATALOG ) kam der Tipp, das Creation Date des Absatzes in einem versteckten Eingabefeld zu speichern und dieses als Timestamp in Millisekunden zu nutzen. Das ist ja ganz nett, aber dann müsste ich in jeder Absatzvorlage noch ein Datumsfeld reinbasteln. 
Für eine Idee wäre ich dankbar ...

Viele Grüße
Gaby Reger

0 Kudos
1 Solution

Accepted Solutions
mark_weigelt
Elite Observer

Hallo Gaby,

in einem Absatz innerhalb von FS_CATALOG kannst du das Systemobjekt #index verwenden:

Online Dokumentation FirstSpirit - #index

Damit werden die Absätze der Liste nummeriert beginnend bei 0. Das könnest du statt der Erzeugung eines Timestamp verwenden.

Und um Abzufragen, ob ein Absatz innerhalb von FS_CATALOG eingesetzt ist, gibt es #fs_catalog: Online Dokumentation FirstSpirit - #fs_catalog.

Falls du nicht eine sehr alte FirstSpirit-Version im Einsatz hast, sollte es so gehen Smiley Happy

Viele Grüße

Mark

View solution in original post

0 Kudos
2 Replies
mark_weigelt
Elite Observer

Hallo Gaby,

in einem Absatz innerhalb von FS_CATALOG kannst du das Systemobjekt #index verwenden:

Online Dokumentation FirstSpirit - #index

Damit werden die Absätze der Liste nummeriert beginnend bei 0. Das könnest du statt der Erzeugung eines Timestamp verwenden.

Und um Abzufragen, ob ein Absatz innerhalb von FS_CATALOG eingesetzt ist, gibt es #fs_catalog: Online Dokumentation FirstSpirit - #fs_catalog.

Falls du nicht eine sehr alte FirstSpirit-Version im Einsatz hast, sollte es so gehen Smiley Happy

Viele Grüße

Mark

0 Kudos

Hallo Mark,

Danke für die rasche Antwort. Das wird höchstwahrscheinlich der richtige Weg sein. Leider setzen wir eine Uralt-Version ein, so dass wir das in der Form erstmal nicht nutzen können. Wir sind aber auf dem Weg in die Cloud und damit auch zu einer neuen Version und dann werde ich deinen Tipp bestimmt einsetzen können.

Viele Grüße
Gaby Reger

0 Kudos