Zum Hauptinhalt gehen

PageTemplate per Api anlegen?

Kommentare

1 Kommentar

  • Zendesk API User
    Author: mbergmann - 1/16/2014 15:32

    Hallo,

    ja, das geht, hier z.B. mit einem Menüscript.

    import de.espirit.firstspirit.access.BaseContext;

    import de.espirit.firstspirit.access.store.ElementDeletedException;

    import de.espirit.firstspirit.access.store.LockException;

    import de.espirit.firstspirit.access.store.Store;

    import de.espirit.firstspirit.access.store.templatestore.PageTemplate;

    import de.espirit.firstspirit.access.store.templatestore.PageTemplates;

    import de.espirit.firstspirit.access.store.templatestore.TemplateStoreRoot;

    import de.espirit.firstspirit.agency.StoreAgent;

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

    final TemplateStoreRoot templateStoreRoot= (TemplateStoreRoot) storeAgent.getStore(Store.Type.TEMPLATESTORE);

    final String source="<html><head></head><body>$CMS_VALUE(#global.page.body(\"content\"))$</body></html>";

    final PageTemplates pageTemplates=templateStoreRoot.getPageTemplates();

    PageTemplate pageTemplate=null;

    try {

              pageTemplate=pageTemplates.createTemplate("my_template_uid", true);

              pageTemplate.setLock(true);

              //alle nötigen Modifikationen, z.B.

              pageTemplate.createTemplateBody("content");

              pageTemplate.setChannelSource(pageTemplate.getProject().getTemplateSets().get(0),source);

              //...

              pageTemplate.save();

    } catch (LockException e) {

              //... error handling

    } catch (ElementDeletedException e) {

              //... error handling

    } finally {

              if(pageTemplate!=null && pageTemplate.isLocked()){

                        try {

                                  pageTemplate.setLock(false);

                        } catch (LockException e) {

                                  //... error handling

                        } catch (ElementDeletedException e) {

                                  //... error handling

                        }

              }

    }

    Man muss hier aber natürlich auch noch das Formular definieren (.setGomSource) usw.

    Weitere Informationen zur Manipulation des Seitentemplates (wenn es erstmal mit createTemplate(...) angelegt ist) liefert die API. Für andere Templates geht es natürlich analog. Den Code für den Ausgabekanal kann man sich natürlich anders besorgen (z.B. aus einer Datei).

    Viele Grüße

    Michael

    0

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