Zum Hauptinhalt gehen

Kontextmenü Skript im ContentCreator

Kommentare

2 Kommentare

  • Zendesk API User
    Author: pdresel - 8/19/2024 10:13

    Ich habe es jetzt geschafft das Skript im ContentCreator über das Kontextmenü zu starten.

    Es war denkbar einfach. Ich musste als Geltungsbereich "ContentCreator" statt "Kontextmenü" auswählen. Aber das Skript funktioniert nicht. Im SiteArchitekt ist das kein Problem.

     

    Das Skript hat folgenden Code

    //!Beanshell import de.espirit.firstspirit.access.store.pagestore.Section; import de.espirit.firstspirit.forms.FormData; if(context.getElement() instanceof Section) { Section section = context.getElement(); FormData formData = context.showForm(); String newName = formData.get(null, "sc_name").get(); section.setName(newName); }

     Mit dem Formular

    <CMS_MODULE> <CMS_INPUT_TEXT name="sc_name" allowEmpty="no" hFill="yes" singleLine="no"> <LANGINFOS> <LANGINFO lang="*" label="New name"/> <LANGINFO lang="DE" label="Neuer Name"/> </LANGINFOS> </CMS_INPUT_TEXT> </CMS_MODULE>

     

    Wenn ich das im SiteArchitect ausführe (Im grünen Bereich Rechtsklick auf die Section und dann "Skript ausführen") funktioniert es problemlos.

    Das selbe Im ContentCreator (Im "Seite" Tab des linken Menüs Rechtsklick auf die Section und dann "Skript ausführen") funktioniert nicht. Es kommt zwar das Formular, aber er übernimmt den neuen Namen nicht. Es kommt aber auch kein Fehler.

    Woran kann das liegen?

    0
  • Zendesk API User
    Author: mbergmann - 8/20/2024 23:30

    Hi,

    kann es sein, dass du es im SA ausgeführt hast, während die Seite bereits (manuell) in den Bearbeitungsmodus gesetzt war?

    Hintergrund der Frage: Ich vermisse den üblichen „Rahmen“ aus setlock(true)/save()/setLock(false).

    Das kann so im SA eigentlich nur funktionieren (bzw. insbesondere ein Refresh „überleben“), wenn ein save() passiert, für das wiederum ein setLock(true) erforderlich ist. Im SA erfolgt das auch beim Starten bzw. Beenden des Bearbeitungsmodus.

    Im CC gibt es das separate „Starten des Bearbeitungsmodus“ so „getrennt“ nicht, dort wird das Lock (=Starten des Bearbeitungsmodus) immer automatisch beim Öffnen von Formularen gesetzt und bei „Speichern“ erfolgt dann das save() und setLock(false).

    Heißt: Im SA hat es dann sozusagen eher „zufällig“ funktioniert.

    Dass kein Fehler fliegt liegt daran, dass Dinge wie setName(…) erstmal nur Operationen auf „lokalen Objekten“ sind, die sind eh erstmal „temporär“. Der „entscheidende Punkt“ ist dann erst das Speichern. Da das im Code fehlt, wird diese „temporäre Änderung“ schlicht verworfen.

    Im SA hat - wenn meine Vermutung zutrifft - das manuelle Starten und spätere Beenden des Bearbeitungsmodus die im Skript „fehlenden“ Teile „beigesteuert“.

    Viele Grüße 

    Michael

    0

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.