Note - you can read all that wiki code in about maybe 3 minutes or less ;-)
On Oct 12, 6:00 pm, pigmej <[EMAIL PROTECTED]> wrote: > In Poland there is Monday 1 AM and... it's not sunny rotfl ;d > > On 13 Paź, 00:39, pigmej <[EMAIL PROTECTED]> wrote: > > > Thanks for naswers :) > > > In web2py I'm beginner. I generally don't like frameworks ( Django > > etc ). I prefer using routers, werkzeug or paser and jinja2 for > > templates, writing everything from scratch, etc. But for web2py I can > > make exception. Let's see... ;) > > > On 13 Paź, 00:28, yarko <[EMAIL PROTECTED]> wrote: > > > > understood.... > > > > I was arguing that having something like {{exterior_finish(car) }} > > > is not any different than {{ car | pime | paint | bake | add_trim }} > > > that is - where the code sits... > > > > But in the cases you meant, yes - {{my()}} <static stuff> > > > {{is_nicer_all_here()}} > > > > Thanks. > > > > As for multilne code: write "normal" code, encapsulted in {{ }}; > > > for output, leave left side "blank" (dumps on template, so: > > > {{=my_result(on_this)}} > > > For starters, everywhere you would have "unindent" situation in > > > python, in template put {{ pass }}; > > > Actually you only need where it would be ambiguous, but for starters, > > > that's a good rule - after you have code working, try removing the > > > "pass"s you think are not necessary.... won't take long to see where > > > you don't need them. > > > > For HTML helpers, they take all (?) the (optional) parameters that the > > > W3C defines for the HTML equivalents. > > > > For examples, get the appliances (e.g. KPAX, others on the "Repository > > > of free apps" link at web2py.com) > > > > On Oct 12, 5:13 pm, pigmej <[EMAIL PROTECTED]> wrote: > > > > > Now I see that I can make with web2py templates almost everything :). > > > > > Massimo, I really think, You should add this recipes to howto :) > > > > > @yarko: > > > > > sometimes there is no staight way to modify something in controller. > > > > But ok, I modify it, and then i loop them again in template -> so > > > > there are two loops. One more than using filter in template ;) > > > > > How to write multiline python code in filter ?? I cannot find real > > > > example for this momemt... > > > > > but maybe, replacing something in part of list/dictionary etc. > > > > > On 12 Paź, 23:49, yarko <[EMAIL PROTECTED]> wrote: > > > > > > This looks like only a stylistic discussion to me.... > > > > > > Django has this too, and Jinja you say have a "shell like" syntax of > > > > > "pipes" --- that is output of one operation feeds input of another. > > > > > n > > > > > {{ car | prime | paint }} is equivalent to {{ paint(prime(car)) }}, > > > > > or for that matter {{ car.paint().prime() }} > > > > > > Functionally, I don't see anything you can do one way over the > > > > > other..... it's a matter of style, convenience, what your used to, > > > > > what you like reading. > > > > > > I like the "pipeline" syntax, but I learned on UNIX in the mid-70's, > > > > > so it's almost "genetic" for me to just read that. The downside to > > > > > that is that you can get lulled into putting too much processing in > > > > > the template ... precisely because it's so readable. > > > > > > Having a utility function in a module, or a application local function > > > > > in a controller is - as you say - doable. > > > > > > But the more worthwhile thing is thinking about what you want to do, > > > > > and putting it in a good place. And making the template as concise > > > > > as makes sense. > > > > > > re: one loop more on contoller side - not sure I follow you on that. > > > > > Wherever you write the filters, they are running (in these examples) > > > > > on the server, applied similarly, and when they are done, the > > > > > resulting output is rendered into something sent out over the > > > > > network... You could look at how many "calls" you have when snippets > > > > > are in the template vs. explicitly defined utility functions, but I > > > > > think this is more about the patterns of code maintenance (and > > > > > reading) than anything... > > > > > > I think it probably would not be hard to apply a transform to > > > > > templates so that you can pile up calls with the "pipeline" flavor of > > > > > showing transfer of control. But, other than end user reading - and > > > > > what it might encourage about development steps - I don't think it > > > > > materially changes anything. > > > > > > Am I missing something? > > > > > > Kind regards, > > > > > Yarko > > > > > > On Oct 12, 4:30 pm, pigmej <[EMAIL PROTECTED]> wrote > > > > > > > massimo, > > > > > > > filters... ok but what if I need to make more operations with > > > > > > strings > > > > > > etc, python operations, imports, parsing something ? > > > > > > More lines of code. > > > > > > > For example I need to operate on dictionaries ( defining new, > > > > > > parsing > > > > > > etc ) > > > > > > > Theoretically, I can apply filters on controller side... but then > > > > > > there is one ( or more ) loop more. > > > > > > > On 12 Paź, 23:01, mdipierro <[EMAIL PROTECTED]> wrote: > > > > > > > > You can do both: > > > > > > > > 1) Example of passing variables to parent. > > > > > > > Here is layout.html > > > > > > > > > > > > > > > <html><body><h1>{{=title}}</h1><p>{{include}}</p></body></html> > > > > > > > > and here is an example of index.html > > > > > > > > {{title='something'}} > > > > > > > {{extend 'layout.html'}} > > > > > > > Hello World > > > > > > > > Also are variables returned by the action and defined in models > > > > > > > are > > > > > > > also passed to the parent. > > > > > > > > 2) Example of a filter. > > > > > > > You cannot filter HTML (because it does not make sense since you > > > > > > > write > > > > > > > it) but you can filter TEXT (coming from a variable for example) > > > > > > > and > > > > > > > the output of helpers. For example the following filter replaces > > > > > > > newlines with <br />, sanitize everything else and wraps > > > > > > > everything in > > > > > > > a <p>. > > > > > > > > {{def myfilter(s):}} > > > > > > > <p>{{=XML(str(s).replace('\n','<br > > > > > > > />),sanitize=False)}}</p> > > > > > > > {{return}} > > > > > > > > {{=myfilter("""Any<span>html code that > > > > > > > you</span> like.""") > > > > > > > {{=myfilter(H1(SPAN('Hello\nWorld')))}} > > > > > > > > Massimo > > > > > > > > On Oct 12, 3:42 pm, pigmej <[EMAIL PROTECTED]> wrote: > > > > > > > > > thanks for reply. > > > > > > > > > Python is templating engine - thats really good. > > > > > > > > > But I can only include file in one place and there is no way to > > > > > > > > change > > > > > > > > anything in parrent file. That's a minus, and the minor problem > > > > > > > > for > > > > > > > > mine. > > > > > > > > > The same thing with filters/macros. I need to use the same > > > > > > > > macro/ > > > > > > > > filter in many files. I cannot find this "option" in web2py > > > > > > > > templates... > > > > > > > > > On 12 Paź, 22:11, yarko <[EMAIL PROTECTED]> wrote: > > > > > > > > > > Also - if you want to use Genshi Templates (or try to do > > > > > > > > > something > > > > > > > > > similar for Jinja2), see the Genshi4web2py.py file and > > > > > > > > > instructions > > > > > > > > > here: > > > > > > > > > >http://mdp.cti.depaul.edu/AlterEgo/default/show/162 > > > > > > > > > > On Oct 12, 2:59 pm, yarko <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > There have been several discussions on this list on the > > > > > > > > > > topic - for > > > > > > > > > > example, look > > > > > > > > > > throughhttp://groups.google.com/group/web2py/browse_thread/thread/1ef4eea826... > > > > > > > > > > > I think a raesonable summary is: > > > > > > > > > > > - web2py's templating, being very close to just being > > > > > > > > > > Python, is > > > > > > > > > > likely to continue to be default for some time; > > > > > > > > > > - some people have written tools to convert skins for other > > > > > > > > > > templates > > > > > > > > > > to convert to web2py, so if it's available graphic designs > > > > > > > > > > you want, > > > > > > > > > > that's one way to go > > > > > > > > > > - there has been talk about still allowing an interface for > > > > > > > > > > other > > > > > > > > > > engines. > > > > > > > > > > > I think interest (beyond one of discussion) has not been > > > > > > > > > > strong enough > > > > > > > > > > for someone to identify all the core web2py things that > > > > > > > > > > would have to > > > > > > > > > > be moved into a module, and rewritten for another template > > > > > > > > > > engine. > > > > > > > > > > This has spurned talk and work about modules for web2py, > > > > > > > > > > T2 being one > > > > > > > > > > example. It has not yet spurned a design analysis of > > > > > > > > > > where all the > > > > > > > > > > boundaries are, and what it would take to implement that. > > > > > > > > > > > As for documentation, there's Chapter 5 of the web2py > > > > > > > > > > book... but > > > > > > > > > > basically, the template language is python, the helper > > > > > > > > > > functions are > > > > > > > > > > named after HTML, so you can discover them and use them as > > > > > > > > > > you would > > > > > > > > > > expect (<h2>This Heading</h2> ==> H2('This Heading') ) with > > > > > > > > > > all the > > > > > > > > > > named paramteres that w3c defines to h2 (for example) > > > > > > > > > > mirrored in > > > > > > > > > > H2(). There is a genshi translator (search these forums) > > > > > > > > > > and there > > > > > > > > > > is also Massimo's quick demonstraton of a layout builder - > > > > > > > > > > see the > > > > > > > > > > link onhttp://www.web2py.com. The builder has a link on > > > > > > > > > > it to > > > > > > > > > > download the result of your layout experimentation. > > > > > > > > > > > Those are probably good starting places. > > > > > > > > > > > Hope this was helpful. > > > > > > > > > > > Regards, > > > > > > > > > > Yarko > > > > > > > > > > > On Oct 12, 2:27 pm, pigmej <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > Is there any way to change default template engine in > > > > > > > > > > > web2py? > > > > > > > > > > > > I would like to change it to something better with more > > > > > > > > > > > features like > > > > > > > > > > > Jinja2 > > > > > > > > > > > > Or maybe there is a lot of undocumented things in default > > > > > > > > > > > template > > > > > > > > > > > engine ? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---