Autor Thema: URL-Formel in Frame-Content-Definition abhängig von PATH_TRANSLATED?  (Gelesen 10702 mal)

Offline jww

  • Aktives Mitglied
  • ***
  • Beiträge: 183
  • Geschlecht: Männlich
Hallo und sorry, dass mal wieder eine Frage zum veralteten Notes 7 kommt ... vielleicht ist die aber sogar für neue Versionen ebenso interessant und gültig?

Aufgabe:
Ich möchte gerne die Inhalte eines Framesets je nach Aufruf unterschiedlich befüllen, dabei aber immer dasselbe Frameset benutzen.

Bisher habe ich das mit mehreren Framesets gemacht und <aufruf-name> in der Formel für die URL im jeweilgen Frame-Content je Frame angepasst:

Code
__IndexName := "<aufruf-name>_TOP";
"/" + @WebDbName + "/$index/" + __IndexName + "?OpenDocument"


Ich würde nun gerne nur noch ein Frameset haben, und die o.g. Formel "dynamisieren", also auf Basis von PATH_TRANSLATED berechnen lassen, etwa so:


Code
__PREFIX := @Subset( @Explode( PATH_TRANSLATED; "/");-1);
__IndexName := __PREFIX + "_TOP";
"/" + @WebDbName + "/$index/" + __IndexName + "?OpenDocument"


Frage:
Wie komme ich in einer Frame-Formel an die PATH_TRANSLATED - Info?
Notes ist klasse - und ab und an zum auf den Mond schiessen.

Offline jww

  • Aktives Mitglied
  • ***
  • Beiträge: 183
  • Geschlecht: Männlich
Ich antworte mir mal selbst .. nach einigem suchen habe ich folgende Lösung, vielleicht hilft sie mal jemand:

1.) Man muss dem Frameset bzw. Domino beim Aufruf einen (weiteren) Parameter "mitgeben", das kann dadurch geschehen, dass man dem Aufruf ein

"&<content-index>"

hintenanstellt (nach "?OpenFrameset"). Ich mache das durch ein Site-Rule Dokument, indem ich z.B. von der URL "H2" (für Homepage 2) auf /<db>/<frame_set_name>?OpenFramenset&<index> um-mappe.

2.) In der Frame-Definition nutzt man @UrlQueryString aus, um den <index> Parameter zu extrahieren und dann "irgendwie" in den gewünschten Inhalt substituiert.

Ich habe das so gelöst, dass ich für fünf Frames einfach willkürlich die Frame-Namen "top", "body", "menu_top", "menu_bot" und "menu_mid" vergeben habe. Der Code sieht dann, z.b. für den Hauptframe (den "body") so aus:

Code
__Frame_IndexName := "_body";
__FrameSet := "__FS02_";
__Query := @Subset( @Trim( @Replace( @UrlQueryString ; "OpenFrameset"; "" ) ); 1);
"/" + @WebDbName + "/$index/" + __FrameSet + __Query + __Frame_IndexName + "?OpenDocument"

Für den mittleren Menü-Frame so:
Code
__Frame_IndexName := "_menu_mid";
__FrameSet := "__FS02_";
__Query := @Subset( @Trim( @Replace( @UrlQueryString ; "OpenFrameset"; "" ) ); 1);
"/" + @WebDbName + "/$index/" + __FrameSet + __Query + __Frame_IndexName + "?OpenDocument"

aus und so fort. Man muss quasi nur je Frame die Formel anpassen, alles andere geht aus dem Aufruf hervor.

Anmerkung:
Das @Replace auf "OpenFrameset" habe ich gemacht, um in jedem Falle an erster Stelle den Parameter für die Inhalte anzutreffen, denn man kann ja (theoretisch) auch die DB mit Framesetnamen aufrufen, ohne ?OpenFrameset anzugeben.
Notes ist klasse - und ab und an zum auf den Mond schiessen.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz