Skript 1
//!BeanShell
import de.espirit.firstspirit.access.UserService;
import de.espirit.firstspirit.access.project.Project;
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.Store.Type;
import de.espirit.firstspirit.access.store.pagestore.Page;
import de.espirit.firstspirit.access.store.pagestore.PageFolder;
import de.espirit.firstspirit.access.store.pagestore.PageStoreRoot;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
userService = context.getUserService();
templateStore = userService.getTemplateStore();
Map contextMap = new HashMap();
contextMap.put("context", context);
if(context.getProperty("pages") == null){
ArrayList pageList = new ArrayList();
Map pageMap = new HashMap();
currentPageStore = userService.getStore(Type.PAGESTORE, false);
currentPage = currentPageStore.getUid().toString();
if(!currentPage.isEmpty()){
pageList.add(currentPage);
pageMap.put("0", pageList);
context.setProperty("pages", pageMap);
templateStore.getScripts().getScriptByName("get_page_names").getExecutable(context.getProject().getTemplateSets().get(0)).execute(contextMap);
}
else{
return("Error: No entry point found.");
}
}
else{
templateStore.getScripts().getScriptByName("get_page_names").getExecutable(context.getProject().getTemplateSets().get(0)).execute(contextMap);
}
Skript 2
//!Beanshell
import de.espirit.firstspirit.access.UserService;
import de.espirit.firstspirit.access.project.Project;
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.Store.Type;
import de.espirit.firstspirit.access.store.pagestore.Page;
import de.espirit.firstspirit.access.store.pagestore.PageFolder;
import de.espirit.firstspirit.access.store.pagestore.PageStoreRoot;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
HashMap pageMap = context.getProperty("pages");
if(pageMap != null){
userService = context.getUserService();
currentPageStore = userService.getStore(Type.PAGESTORE, false);
pageList = currentPageStore.getChildren().toList();
String[] pageNames;
/*for(int i=get0; i<currentPageStore.getChildCount(); i++)
{
pageNames[i] = pageList.get(i).getName();
}*/
return("skript2");
}
else{
return("Error: pageMap was empty. No pages submitted by previous script.");
}
Beide Skripte laufen ohne Fehlermeldung. Wenn ich Skript 2 direkt aufrufe erhalte ich auch die erwartete Ausgabe. Wenn ich Skript 2 über Skript 1 aufrufe erhalte ich keine Ausgabe. Script 1 geht bei meinem Aufruf in den 1. und anschließend in den 2. if-Block.
Hat jemand eine Idee was falsch ist?
Wie debuggt ihr? Ich binde mein Skript momentan in eine Seite mit CMS_RENDER ein und schaue an welchen Stellen ich mit return noch eine Ausgabe erhalte.