- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
PageTemplate per Api anlegen?
Hallo,
ist es mรถglich per Api ein neues Template (per XML oder so) anzulegen?
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

