Skip to main content

#global.node.uid in Vorlage für Weiterleitungs-Seiten

Comments

7 comments

  • Zendesk API User
    Author: marza - 3/21/2016 9:19

    Hallo Alexander,

    vielleicht hilft Dir die folgende Seite weiter. Meines Wissen nach existiert aber #global.node.uid nicht.

    Natürlich gibt es API, um über einen Store per UID oder ID ein Store-Element (also eine z.B. eine PageRef) zu laden: API-Dokumentation.

    Was Du dazu allerdings benötigst ist ein FS-Context wie er in Executables zu Einsatz kommt. Dort kann man via requireSpecialist-Methode einen StoreElementAgent laden. Das kann man ber aus einem Template ohne weiteres nicht machen und muss eine Executable bzw. ein Bean-Shell-Script schreiben.

    Grüße Marian

    0
  • Zendesk API User
    Author: alwolf - 3/21/2016 13:18

    Mit welcher API kann ich im StoreElementAgent anhand der page-id (nicht uid) das Element laden?

    loadStoreElement(String uid, IDProvider.UidType uidType, boolean release)

    Hier benötige ich eine UidType uid -- oder gibt es einen UidType der der "id" entspricht?

    Den Script-Kontext kann ich herstellen, das ist kein Problem.

    0
  • Zendesk API User
    Author: MichaelaReydt - 3/24/2016 14:23

    Hallo Alexander,

    kannst du uns einmal deinen Templatecode schicken, damit wir dein Szenario besser nachvollziehen können?

    Viele Grüße

    Michaela

    0
  • Zendesk API User
    Author: alwolf - 4/4/2016 15:59

    Hallo Michaela!

    Klar hier sind die relevanten Schnipsel:

    linktemplate:

    <supplementary>

              <attributes>

                        <PageRef uid="$CMS_RENDER(script:"refname_for_id", "id":#global.id)$">

                                  <pageType>link</pageType>

                                  <targetUrl>$CMS_VALUE(#global.ref.url)$</targetUrl>

                        </PageRef>

              </attributes>

    </supplementary>

    skript refname_for_id:

    //!BeanShell

    var id = gc.getVariableValue("id");

    context.logInfo("find refname for id" + id);

    StoreAgent storeAgent = ((SpecialistsBroker) context).requireSpecialist(StoreAgent.TYPE);

    /**

      *               Wie bekomme ich vom storeAgent die uid zur object-id ?

      */

    result.setValue("refname");

    Die Frage ist nun, wie ich im Skript (siehe Kommentar-Block) die entsprechend uid anhand der objekt-id bekommen kann.

    0
  • Zendesk API User
    Author: alwolf - 4/13/2016 8:19

    Hallo Marian,

    könntest du das bitte weiter ausführen? Ansonsten muss ich das Ticket am Helpdesk wieder öffnen.

    0
  • Zendesk API User
    Author: alwolf - 4/15/2016 7:46

    Natürlich gibt es API, um über einen Store per UID oder ID ein Store-Element (also eine z.B. eine PageRef) zu laden: API-Dokumentation.

    In welcher Klasse?

    0
  • Zendesk API User
    Author: alwolf - 4/18/2016 17:46

    Um die Frage zu schließen:

    de.espirit.firstspirit.access.store --> getStoreElement(long id): IDProvider

    Hiermit bekomme ich den IDProvider und darüber die uid = refname.

    Damit kann ich dann auch die notwendigen Attribute in den FOS schreiben.

    Vielen Dank für die Unterstützung @Holger Höbbel

    0

Please sign in to leave a comment.