Hallo Jan,
erstelle einfach ein neues Skript im Projekt (Typ "Menü") mit folgendem Inhalt:
import de.espirit.firstspirit.agency.StoreElementAgent;
import de.espirit.firstspirit.access.store.IDProvider;
import de.espirit.firstspirit.access.store.IDProvider.UidType;
import de.espirit.firstspirit.access.ReferenceEntry;
import de.espirit.firstspirit.access.store.pagestore.Body;
import de.espirit.firstspirit.access.store.pagestore.Page;
// Der Referenzname deines Templates
final String TEMPLATE_UID = "pt_page";
// Der Referenzname des Inhaltbereichs
final String BODY_UID = "content";
StoreElementAgent agent = context.requireSpecialist(StoreElementAgent.TYPE);
IDProvider template = agent.loadStoreElement(TEMPLATE_UID, UidType.TEMPLATESTORE, false);
for (ReferenceEntry ref :template.getIncomingReferences()){
if (ref.isType(ReferenceEntry.PAGE_STORE_REFERENCE)) {
// Hole die Page über den Agent, da man sie sonst aus dem Releasestore erhält.
Page page = (Page) agent.loadStoreElement(ref.getReferencedElement().getUid(), UidType.PAGESTORE, false);
Body body = page.getBodyByName(BODY_UID);
if (body!=null) {
// Seite bearbeiten, Bereich löschen, Speichern, freigeben und Bearbeitung beenden.
page.setLock(true, true);
body.delete();
page.save("Removed body " + BODY_UID);
page.release();
page.setLock(false, true);
}
}
}
Ich habe das gerade auf dem Smartphone runtergetippt - also kann es gut sein, dass hier und da ein Schreibfehler o. ä . ist oder die Packagenames nicht komplett stimmen.
Bei TEMPLATE_UID trägst du die UID der Seitenvorlage ein, bei BODY_UID den Referenznamen des Inhaltbereichs.
In Zeile 27-31 wird die Seite bearbeitet und im Anschluss gespeichert und freigegeben. Bedenke hierbei bitte, dass dein User dann als letzter Bearbeiter drin steht und die Seite zudem einfach so freigegeben wird. An dieser Stelle könntest du ggf. noch eine Prüfung einfügen, ob die Seite aktuell bereits freigegeben ist. Zudem fange ich keine Validierungsfehler ab - ist die Seite also nciht valide, so kann sie auch nicht gespeichert werden und das Skript schlägt fehl. Wenn du noch Hilfe brauchst sage Bescheid.
Viele Grüße
Felix