ampersand83
I'm new here

Neuen Absatz im Webclient hinzufügen (globaler Inhalt)

Jump to solution

Hallo zusammen,

ist es für einen globale rechte Spalte (über globale Inhalte gepflegt) möglich im Webclient genau wie auf einer normalen Seite über einen FS-Button eine Schaltfläche zum hinzufügen neuer Absätze anzubieten.

$CMS_IF(#global.preview && isWebEdit)$

                    <span$CMS_VALUE(

                        fsbutton(

                            editorName:"pt_createSection",

                            parameter:{

                                "page":#global.page.id,

                                "body":"content"

                            }

                        )

            )$></span>$CMS_END_IF$   

So habe ich es versucht. Das Markup steht in der Seitenvorlage des globalen Inhalts, aber so wird im Webclient ein Fehler geworfen. Ich denke, wenn es überhaupt geht, müsste ich bestimmt irgendwo den Namen der globalen Seitenvorlage angeben.

Kann mir hierbei jemand helfen? Geht das so überhaupt?

Gruß,

Stefan

0 Kudos
1 Solution

Accepted Solutions
MichaelaReydt
Community Manager

Hallo Stefan,

leider hast Du weder den Code des Buttons noch die Fehlermeldung gepostet. Ich hoffe dennoch, dass mein Szenario dem Deinen entspricht.

Ich habe mir für die Nachstellung des Szenarios die Standard-Seitenvorlage aus dem Mithras-Projekt kopiert, in dieser den "Content right" gelöscht und stattdessen im HTML-Kanal den Inhaltsbereich meiner GCA-Seite "gca_globalcontent" referenziert. Die Vorlage dieser GCA-Seite besitzt bei mir nur einen Inhaltsbereich "rightcontent", für den alle Absatzvorlagen erlaubt sind, und ist ansonsten leer.

Den bereits im HTML vorhandenen Code des FS_Buttons "pt_createSection" habe ich so angepasst, dass er auf die GCA-Seite zugreift.

Insgesamt sieht mein Code in der kopierten Standard-Seitenvorlage nun so aus:

$-- right Column --$

<div class="rightCol"$CMS_VALUE(editorId(element:#global.gca("gca_globalcontent").body("rightcontent")))$>$--

     --$$CMS_VALUE(#global.gca("gca_globalcontent").body("rightcontent"))$$--

     --$$CMS_IF(#global.preview && isWebEdit)$$--

          --$$CMS_SET(_body, #global.gca("gca_globalcontent").body("rightcontent").name)$$--

          --$<span$CMS_VALUE(

               fsbutton(

                    editorName:"pt_createSection",

                    parameter:{

                         "page":#global.gca("gca_globalcontent").uid,

                         "body":_body

                    }

               )

          )$></span>$--

     --$$CMS_END_IF$$--

--$</div>

$-- /right Column --$

Das Formular des Buttons ist:

  <FS_BUTTON

    name="pt_createSection"

    hidden="yes"

    icon="fs:new"

    onClick="class:NewSection"

    style="firstspirit"

    useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Create section"/>

      <LANGINFO lang="DE" label="Absatz anlegen"/>

    </LANGINFOS>

  </FS_BUTTON>

Ein Klick auf den Button im WebClient erzeugt die Fehlermeldung:

[...]
de.espirit.firstspirit.webedit.server.script.LocalizedExecutionException: Die erforderliche Seite (gca_globalcontent) existiert nicht.
  at de.espirit.firstspirit.webedit.server.executables.NewSectionExecutable.execute(NewSectionExecutable.java:64)

[...]

Ich vermute, Du verwendest ebenfalls die Klasse "NewSection", welche durch den Button aufgerufen wird und offensichtlich die Fehlermeldung erzeugt. Sie bezieht sich anscheinend nur auf Seiten in der Inhalte-Verwaltung. Das Anlegen von Absätzen für Seiten in den globalen Inhalten ist mit ihr somit nicht möglich. Es kommt dann zu der genannten Fehlermeldung.

Es sollte daher durch den FS_Button eine eigene Klasse referenziert werden, die das Executable-Interface implementiert. Siehe auch die Beschreibung zu "onClick" im ODFS. Diese Klasse müsste auf die Seite in den Globalen Inhalten zugreifen und den Absatz dort anlegen.

Viele Grüße

Michaela

View solution in original post

0 Kudos
2 Replies
MichaelaReydt
Community Manager

Hallo Stefan,

leider hast Du weder den Code des Buttons noch die Fehlermeldung gepostet. Ich hoffe dennoch, dass mein Szenario dem Deinen entspricht.

Ich habe mir für die Nachstellung des Szenarios die Standard-Seitenvorlage aus dem Mithras-Projekt kopiert, in dieser den "Content right" gelöscht und stattdessen im HTML-Kanal den Inhaltsbereich meiner GCA-Seite "gca_globalcontent" referenziert. Die Vorlage dieser GCA-Seite besitzt bei mir nur einen Inhaltsbereich "rightcontent", für den alle Absatzvorlagen erlaubt sind, und ist ansonsten leer.

Den bereits im HTML vorhandenen Code des FS_Buttons "pt_createSection" habe ich so angepasst, dass er auf die GCA-Seite zugreift.

Insgesamt sieht mein Code in der kopierten Standard-Seitenvorlage nun so aus:

$-- right Column --$

<div class="rightCol"$CMS_VALUE(editorId(element:#global.gca("gca_globalcontent").body("rightcontent")))$>$--

     --$$CMS_VALUE(#global.gca("gca_globalcontent").body("rightcontent"))$$--

     --$$CMS_IF(#global.preview && isWebEdit)$$--

          --$$CMS_SET(_body, #global.gca("gca_globalcontent").body("rightcontent").name)$$--

          --$<span$CMS_VALUE(

               fsbutton(

                    editorName:"pt_createSection",

                    parameter:{

                         "page":#global.gca("gca_globalcontent").uid,

                         "body":_body

                    }

               )

          )$></span>$--

     --$$CMS_END_IF$$--

--$</div>

$-- /right Column --$

Das Formular des Buttons ist:

  <FS_BUTTON

    name="pt_createSection"

    hidden="yes"

    icon="fs:new"

    onClick="class:NewSection"

    style="firstspirit"

    useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Create section"/>

      <LANGINFO lang="DE" label="Absatz anlegen"/>

    </LANGINFOS>

  </FS_BUTTON>

Ein Klick auf den Button im WebClient erzeugt die Fehlermeldung:

[...]
de.espirit.firstspirit.webedit.server.script.LocalizedExecutionException: Die erforderliche Seite (gca_globalcontent) existiert nicht.
  at de.espirit.firstspirit.webedit.server.executables.NewSectionExecutable.execute(NewSectionExecutable.java:64)

[...]

Ich vermute, Du verwendest ebenfalls die Klasse "NewSection", welche durch den Button aufgerufen wird und offensichtlich die Fehlermeldung erzeugt. Sie bezieht sich anscheinend nur auf Seiten in der Inhalte-Verwaltung. Das Anlegen von Absätzen für Seiten in den globalen Inhalten ist mit ihr somit nicht möglich. Es kommt dann zu der genannten Fehlermeldung.

Es sollte daher durch den FS_Button eine eigene Klasse referenziert werden, die das Executable-Interface implementiert. Siehe auch die Beschreibung zu "onClick" im ODFS. Diese Klasse müsste auf die Seite in den Globalen Inhalten zugreifen und den Absatz dort anlegen.

Viele Grüße

Michaela

0 Kudos

Ah ok. Vielen Dank. Dann weiß ich ja jetzt bescheid. Hatte mir so etwas in der Art schon gedacht.

0 Kudos