Detailseite einer Contentprojektion per Skript aufrufen
Author: thmd
Publication Date: 8/5/2014 7:35
Hallo,
wir haben bei uns folgendes Problem. Wir erzeugen per Skript neue Datensätze und wollen dannach diesen erzeugten Datensatz auch dem Redakteur anzeigen. Für die Datensätze existieren bei uns verschiedene Detailseiten (PageRefs mit Contentprojektionen), die auch mit unterschiedlichen Filtern ausgestattet sind.
Je nach Auswahl, die der Redakteur im Skript gemacht hat, möchte ich nun auf eine dieser Detailseiten springen und den neuen Datensatz anzeigen. Benutze ich die DisplayElementOperation auf dem Datensatz, springt er aber immer die Seite an, die in der Vorlage als Vorschau Seite definiert ist.
Gibt es eine Möglichkeit, programmatisch auf eine Seitenreferenz einer Detailseite zu navigieren und als Parameter den Datensatz mitzugeben, der angezeigt werden soll? Irgendwie finde ich dazu nichts.
Viele Grüße
Thomas Domschke
-
Author: mbergmann - 8/5/2014 18:01
Hallo Thomas,
Ich gehe mal von WebEdit aus. Soweit ich weiß, gibt es aktuell keinen reine Java-Agent, mit dem man das Ziel so "genau" angeben kann (oder ich übersehe gerade was).
Mir fiel aber etwas ein das funktioniert, wenn ihr das Script per fsbutton() bzw. top.WE_API.Common.execute() aufruft.
Denn hier kann man einen (Javascript!)Handler angeben, der aufgerufen wird wenn das Script fertig abgearbeitet ist.
Wenn das Script (oder dei Executable) vorher selber die Ziel-URL ermittelt und per return zurückgibt, z.B. per
//!Beanshell
...
//some code: create the dataset, calculate the right pageref, get the language from the WebEditUiAgent....
//myFsId is the fs_id of the created entity
...
final String previewUrl = pageref.getPreviewUrl(
language,
pageRef.getProject().getTemplateSets().get(0),
false,
Previewable.PREVIEWMODE_WEBEDIT,
Collections.singletonMap("contentId", myFsId)
);
return previewUrl;
könnte der Aufruf im Ausgabekanal des Templates in etwa so aussehen:
<script type="text/javascript">
function doSomething(){
top.WE_API.Common.execute("script:create_something",
{},
function(result){
document.location.href=result;
}
);
}
</script>
<a href="#" onclick="doSomething();">klick</a>
Viele Grüße
Michael
0
Please sign in to leave a comment.
Comments
1 comment