if i can override request.extension and have it propagate, that's
totally fine. if, for example, i could do this:

def formControllerFromComponent:
    # *** new line ***
    request.extension = 'html'

    doSomething()
    doSomethingElse()
    redirect(URL(..., extension=''))

and have that stick as i bounce from function to function, that's
absolutely what i need. i don't need it to be handled by a central
handler so long as i know what the process is. it's simply a matter of
knowing how to affect the necessary change.

i already changed my code to work on a redirect so i'd get around the
extension piece, but if this will work in concept, i'll go back to
using it in the future.

thanks,

matt

On Dec 30, 9:30 am, Jonathan Lundell <jlund...@pobox.com> wrote:
> On Dec 29, 2010, at 3:25 PM, mattynoce wrote:
>
>
>
>
>
> > hi all. i have a component i'm plugging into the middle of a page, but
> > i want that component to act seamlessly with the rest of the page. i
> > do NOT want the component to do what components usually do and act
> > independently. i need to include variable files, and components are
> > the only way i can find to do that.
>
> > so when i submit forms from the component, they automatically
> > append .load to redirects. i do not want this. so i found i can do:
> > redirect(URL(..., extension=''))
>
> > however, when i execute other commands like this:
> > def formControllerFromComponent:
> >    doSomething()
> >    doSomethingElse()
> >    redirect(URL(..., extension=''))
>
> > doSomething() will create any links it makes with a .load extension. i
> > don't want to have to go around and append extension='' to every URL
> > command in my controller. is there a way we can stop propagation of
> > the .load suffix? based on a variable in the load initialization?
> > something like:
> > {{=LOAD(c='default', f='func', args=[arg1, arg2], ajax=False,
> > ajax_trap=False, loadPropagate=False)}}
>
> This is a slightly tricky "feature". The propagation of the .load extension 
> (or any extension) depends on how URL() is called. I think it's a problem in 
> the way _gURL was implemented, and it makes URL even more hard to understand 
> than it already was.
>
> The issue is that URL defaults to request.extension (among other things) if 
> request is passed to URL. And request is implicitly passed to URL if you call 
> URL(func) or URL(ctlr, func) -- but *not* if you call URL(app, ctlr, func). 
> And of course you can override extension with extension=something (as long as 
> 'something' isn't None).
>
> We don't ordinarily care about this propagation, because 'html', the default, 
> is almost always what we want.
>
> URL is already so tricky in the way it works that I'd be really wary of 
> changing it; it'd almost certainly break something for someone. I haven't 
> used LOAD, and I'm a little hazy on how it works, but perhaps we could change 
> some central load handler to set request.extension=None, or something like 
> that. I think that'd be reasonable, since a new load request would set the 
> extension explicitly.

Reply via email to