![]() |
First Page from URL - Printable Version +- Atozed Forums (https://www.atozed.com/forums) +-- Forum: Atozed Software Products (https://www.atozed.com/forums/forum-1.html) +--- Forum: IntraWeb (https://www.atozed.com/forums/forum-3.html) +---- Forum: English (https://www.atozed.com/forums/forum-16.html) +----- Forum: IntraWeb General Discussion (https://www.atozed.com/forums/forum-4.html) +----- Thread: First Page from URL (/thread-113.html) |
First Page from URL - AllBars - 04-21-2018 Hi I have created a new Intraweb (standalone) app with two forms (blueform and greenform) and have given them URL aliases in the OnConfig handler of the server controller using: void __fastcall TIWServerController::IWServerControllerBaseConfig(TObject *Sender) { TGreenForm::SetURL ("/", "Green.html") ; TBlueForm::SetURL ("/", "Blue.html") ; } The green form is set as the main form If I try to start a session from a browser with the URL: http://127.0.0.1:8888/Blue.html I don't get the blue form, I get the green form. How can I fix this please? Once the session has been started, the URL does work I have Intraweb 14.2.7 Ultimate edition, and am using C++Builder 10.2 update 3 Thanks Ian RE: First Page from URL - DanielFields - 04-21-2018 I believe you would use ContentHandlers for that, or use the ServerController.OnGetMainForm event to detect parameters. ContentHandlers would seem to be the best fit. https://doc.atozed.com/en/iw14/develop/content-handlers/ RE: First Page from URL - DanBarclay - 04-23-2018 (04-21-2018, 07:30 PM)DanielFields Wrote: I believe you would use ContentHandlers for that, or use the ServerController.OnGetMainForm event to detect parameters. In addition to the doc page Daniel referenced, there are samples on Github at: https://github.com/Atozed/IntraWeb There is apparently a C++ example of that in the directory "...trunk\XIV\C++\ContentHandlers", though I didn't try it. The Delphi example is under the Delphi directory. Dan RE: First Page from URL - AllBars - 04-23-2018 Thank you both for pointing me at the ContentHandlers example. Unfortunately, it suffers from exactly the same problem. The example defines three URLs /blueform.html /redform.html and /mydoc.html (which redirects to an external page) it also has am additional main form. Starting the session using the URL http://127.0.0.1:8000/bluform.html in a browser does not give the blueform page, but gives the mainform instead. once the session has started the URL does indeed give the blueform. Is this only a problem with C++ only? RE: First Page from URL - DanBarclay - 04-24-2018 (04-23-2018, 09:33 AM)AllBars Wrote: Thank you both for pointing me at the ContentHandlers example. You are correct, that example does require the main form to be executed in order to start the session. I haven't done this specifically, as you are looking for, so I'm not going to be much more help. But that doesn't keep me from making suggestions. <g> You might look at CustomContenHandler. I've used those before but as a different mission (serving up XML single message service). I'm fairly sure that has some option to serve up a form, and maintain the session. I just haven't had the need to look into it. Another potential option, if you don't mind another "Splash style" form coming up initially is to allow a "Main" form to come up, but have that form launch your target. I've done that by launching in an async timer event off the main form. In my case I intentionally wanted a flash message to appear, but if you can make it look like you want that splash then it works great. But, again, I'm pretty sure there is a way to do exactly what you're looking for... I just don't know the details. I'm pretty sure it will involve a CustomContentHandler. Dan RE: First Page from URL - DanielFields - 04-24-2018 CustomContentHandlers will work. I keep forgetting that there are two options in that area. The other option is to pass the form as a parameter. You could then use the OnGetMainForm event in the server controller. Your URL would be a little different: http://mydomain.com:8888/$/start/?blue.html. The server would see "blue" as WebApplication.RunParams[0]. You would use that in your logic for the event. RE: First Page from URL - AllBars - 04-24-2018 (04-24-2018, 04:42 AM)DanielFields Wrote: CustomContentHandlers will work. I keep forgetting that there are two options in that area. The other option is to pass the form as a parameter. You could then use the OnGetMainForm event in the server controller. That will work ok. thank you for the tip :-) (04-24-2018, 12:16 AM)DanBarclay Wrote:(04-23-2018, 09:33 AM)AllBars Wrote: Thank you both for pointing me at the ContentHandlers example. That might have worked, but Dan Fields solution is cleaner. Thank you for the suggestions. This feels a lot like a bug to me though. The same URL gives different results depending on if the session has already been started or not. Ian |