[Seaside] Re: Multiple entry point best practices

Zulq Alam me at zulq.net
Tue Sep 19 00:11:29 UTC 2006


Hi Chad,

You can send #url to a WARequiest to get the path, e.g. 
'/seaside/myapp/photos/243'. After which you can use String>>findTokens.

MYRenderLoopMain>>start:aRequest
   | urlParts |
   urlParts := aRequest url findTokens: '/'.
   ^urlParts size = 4 ifTrue:
       [urlParts at: 3 = 'photos'
         ifTrue: [self answer: aRequest withPhoto: (urlParts at: 4)].
       urlParts at: 3 = 'places'
         ifTrue: [self answer: aRequest withPlace: (urlParts at: 4)].
     ifFalse: [super start: aRequest].

Not exactly elegant and possibly not what you should do, just showing 
you how to get the 'photos' bit.

Thanks,
Zulq.

Chad Nantais wrote:
> I'm building an application that will have different entry points.  It
> will be structured like this:
> 
> main (MYMainComponent)
> -users (MYUserComponent)
> -photos (MYPhotoComponent)
> -places (MYPlaceComponent)
> 
> This will allow users to bookmark, say, a photo with a url like
> '/seaside/myapp/photos/243'.
> 
> I need all four to share the same application header, footer, and
> session so that it's one continuous application.
> 
> I seem to have two options:
> 1. Create subdirectory entry points for each
> 2. Override WARenderLoopMain>>start: and create rules to dispatch
> requests to the right component.
> 
> What's the smartest way to do this?
> 
> In the case of #2, I don't know how to extract the component subdir
> from the url (eg: 'photos' in /seaside/myapp/photos/243).  I only know
> how to get field values (eg: id=243).
> 
> Thanks in advance for any tips.
> 
> Chad



More information about the Seaside mailing list