Sorry, i sent the message incomplete:

Hi!

I'm using jQueryMobile to make the "mobile skin", and the way that i do
is this:

if is_mobile and request.extension == "html" :
        #Its mobile             
        response.view = "%s/%s.%s" % (request.controller,
request.function, "mobile")
        if not os.path.exists(os.path.join(request.folder, 'views',
request.controller, request.function+".mobile")):
            response.view = '%s.%s' % ("generic", "mobile") 


The 'request.extension == "html"' condition is because if you
use .load, .json extensions or so, it can crash

With this code, you only have to make ".mobile" extensions of your
views:

for example if you have:

layout.html
generic.html
controller/funct1.hmtl
controller/funct2.html

You only have to make the views:

layout.mobile
generic.mobile
controller/funct1.mobile
controller/funct2.mobile

If you keep your editor's syntax highlighting maybe you can change
".mobile" extension with ".mobile.html" (editing the code that i pasted
at the begginig too, to make this change work)

I hope this solution will be useful



El lun, 27-06-2011 a las 16:28 -0700, Luis Goncalves escribió:
> Hello!
> 
> I need to customize my views so that they look good on a computer
> screen and on a smart phone.
> 
> One way to do so, It think, is to have separate layout definitions and
> then do something like:
> 
> {{if session.platform == 'mobile':}}
> {{extend 'mobile-layout.html}}
> {{else:}}
> {{extend 'desktop-layout.html'}}
> {{pass}}
> 
> This does not seem to be working -  I get lots of syntax errors (can't
> even figure out where they are!)
> 
> Is this approach wrong?   Is it possible to have a conditional
> "extend" ?
> 
> Is there a smarter/better way to make the view rendering platform
> dependent?
> 
> Thanks,
> Luis.


Reply via email to