- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Detailseite einer Contentprojektion per Skript aufrufen
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
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Thomas,
vielleicht wรคre es eine Mรถglichkeit sich per Skript die Tabellenvorlage zu holen und die Vorschau-Seite temporรคr zu "verbiegen".
TableTemplate template;
PageRef ref = template.getPreviewPageRef();
template.setPreviewPageRef(yourTargetPageRef);// displayElementOperation
template.setPreviewPageRef(ref);
Die Lock- und Save-Methoden fehlen hier bewusst - so wรคre es mรถglich die Zielseite nur im Client des Users zu รคndern und vor allem nur temporรคr.
Das ist natรผrlich eher ein Hack, vielleicht haben die eSpirit Leute ja noch eine bessere Idee.
Schรถne Grรผรe
Julius
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Michael,
ja fรผr unseren Einsatzzweck reicht der ContentCreator . Wir haben dein Script noch ein wenig erweitert und jetzt macht es das, was es soll.
Grรผรe
Thomas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Halllo Julius,
prinzipiell eine interessante Idee, dass so zu machen - darauf bin ich noch gar nicht gekommen. Was mir hier noch fehlt, wรคre es einen bestimmten Datensatz anzuspringen (siehe Lรถsung von Michael), da die Vorschauseiten ja trotzdem immer den letzten erzeugten Datensatz anzeigen.
Die Variante kommt aber definitiv in die Werkzeugkiste, das kann ich bestimmt irgendwann mal brauchen
Grรผรe
Thomas

