Felix Ulrich-Oltean wrote:
I have a macro ... I will be using it several times from the same template. I want to be able to pass in values for chosen_thing and the_name, but I can't think how.
You can do this as follows: <!-- macro def --> <div tal:define="chosen_thing request/chosen_thing|here/chosen_thing; the_name request/the_name|here/the_name"> <metal:block define-macro="conf_form"> <input type="radio" tal:attributes="name the_name; checked python:chosen_thing=='a' or nothing;" value="a" /> a <br /> <input type="radio" tal:attributes="name the_name; checked python:chosen_thing=='b' or nothing;" value="b" /> b <br /> </metal:block> <!-- macro use --> <div tal:define="chosen_thing some_value; the_name some_other_value"> <metal:block use-macro="template/macros/conf_form"> </div> If you wanted to look in 'request' and 'here' if the template doesn't supply the value, put the <div> back inside the macro definition, but change the defines to 'the_name | request/the_name | here/the_name'. Cheers, Evan @ 4-am