[Seaside] How do I get the base URL? I want to send out an email
with a link
Pat Maddox
patmaddox at me.com
Thu Aug 5 20:01:03 UTC 2010
requestContext request url doesn't return the full URL for me. Here's what I ended up doing:
MyCustomWASession#applicationUrl
| url request |
applicationUrl ifNil: [
request := self requestContext request.
url := request url withoutQuery.
(self application url relativeTo: url) do: [ :each |
url path removeLast ].
applicationUrl := 'http://' , request host , url asString ].
^ applicationUrl.
Then my WAComponent subclass just delegates to 'session applicationUrl'.
I have some objects that aren't WAObject descendants at all, so I made a WAObject subclass called ARPApplicationConfig, which I added applicationUrl as a class method to, and then it uses the singleton pattern to create a new instance and delegate applicationUrl to that instance. So in my other objects that need access to the URL, I can just call 'ARPApplicationConfig applicationUrl'.
Thanks everyone for the input. I'll report back if I run into any problems with it.
Pat
On Aug 4, 2010, at 10:00 PM, Philippe Marschall wrote:
> 2010/8/4 Pat Maddox <patmaddox at me.com>:
>> Okay so the high level goal is to send out an email that contains a link to my application. Think http://myapplication.com/invite/abc123
>>
>> I'm not sure how to go about doing this. I found WAApplication#url which sent me on an interesting journey...because when I did "self halt" inside of a WAComponent subclass and ran "self application" then I get a WARequestContextNotFound error, although apparently that's only when I launch a debugger.
>>
>> So after figuring out that I can't access "self application" from the debugger I finally got "self application url" rendered on my page, and saw that it was only the path. How can I get the full URL? I don't want to hardcode it...I assume I should be able to get the base URL of my application from somewhere but I'm not sure.
>
>
> Try something like this:
>
> | url |
> url := self requestContext request url withoutQuery.
> (self application url relativeTo: url) do: [ :each |
> url path removeLast ].
>
> Cheers
> Philippe
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
More information about the seaside
mailing list