- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Section mittels Skript ersetzen
Hallo FirstSpirit Community,
mittels ein Groovy Skript mรถchte ich Sections von einer bestimmten Vorlage mit neu angelegten von einer anderen Vorlage in Page Bodys ersetzen:
Template oldTmpl = ...
Template newTmpl = ...
Section oldSection = ... // ermittelt via oldTmpl.getIncomingReferences()
Body body = oldSection.getParent()
Page page = body.getParent()
try {
page.setLock(true, true)
Section newSection = body.createSection("name", newTmpl)
body.removeChild(newSection)
body.replaceChild(oldSection, newSection)
page.save("removed section", true)
page.release(true)
}
finally {
page.setLock(false, true)
}
page.refresh()
Nach dem Ausfรผhren des Skriptes stelle ich aber fest, dass obwohl die alte Section ersetzt ist (sie erscheint nicht mehr unter Page Body), "hรคngt" sie immer noch an der Seite, da wenn ich die Usages der alten Template im FS SiteArchitect via Ctrl+U aufrufe, erscheint die alte Section in der Auflistung, und ein Help Skript bestรคtigt auch, dass sie die Page immer noch als Parent hat:
storeAgent = context.requireSpecialist(StoreAgent.TYPE)
pageStore = storeAgent.getStore(Store.Type.PAGESTORE, false)
long id = ... // ID der alten Section
section = pageStore.getStoreElement(id)
println section.getParent().getParent() // hier kommt die Seite, wo eigentlich diese Section ersetzt wurde
Habe ich was vergessen in meinem Skript? Soll ich explizit fรผr die alte Section die Methode delete() aufrufen?
Vielen Dank im voraus.
Gruร,
Olga.
- Labels:
-
Developers
-
Knowledgebase
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ein expliziter Aufruf von section.delete() hat das Problem gelรถst.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo FS Entwickler,
wie meint ihr, geht es hier um ein FS Bug oder mache ich was in meinem Skript falsch?
Danke.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Olga,
ich kรถnnte mir vorstellen, dass removeChild nur die child-node in der XML Reprรคsentation des Bodys lรถscht.
Hast du es denn mit einem expliziten delete() auf der section schon probiert?
Viele Grรผรe
Felix
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Felix.
Ja, expliziter Aufruf von delete() fรผr Section lรถscht diese.
Aber laut FS Backend (fs-server.jar) in AbstractStoreElement.removeChild(StoreElement) sollte das Child-Element schon aus der Liste von Children entfernt werden. Deswegen ist es mir immer noch nicht klar, ob das ein korrektes FS Verhalten beim replace/removeChild() ist, oder nicht?
Gruร,
Olga
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ein expliziter Aufruf von section.delete() hat das Problem gelรถst.

