Jesper Steen Steffensen wrote:
Give more info.  Define qry_user_roles and qry_roles as part of your

Why are you using DTML?  Its a *dying art*.  I can hardly look at it
anymore :-)

DTML is depreciated in Zope (I think) and new people should go right to
Page Templates and Python Scripts (Im sure).
Can you code this in a Python Script?


qry_user_roles and qry_roles are two ZSQL methods that both contain data fields called 'role'. They both work fine on my pages apart from the nesting. One qry holds all possible roles in the system - the other one associates roles to users. I need the dtml-if to insert the word "selected" in a html drop-down box, so that the users role will be selected when the drop-down box displays:

This will iterate over the roles and build the drop-down box:

<dtml-in qry_roles>
<option><dtml-var role></option>

This should display the proper value as well:

<dtml-in qry_roles prefix="outer">

     <dtml-in qry_users_roles>
     <dtml-if expr="outer_role==role">

><dtml-var role></option>

I'm 1 month into Zope now, so this is just what I've read from the Zope bible/ web etc. so far ...

Is dtml really dead?!? :-o
 Shame - I like it.. Will read more about page templates then ;-)
Hi Jesper,

I guess Jonathan does have a point.  DTML is NOT DEAD as in NOT BREATHING.  And its true that Zope will continue DTML well into Zope 3.

But its expertise "base" is fading.  I last used it 2 years ago.  Many of us just don't use it anymore. 

Most still use it because of legacy code. 

I don't think Jonathan would recommend it to a newbie? :-)

Python + zpt is a clearer model. 

Here is some code to consider if you want to try the Page Template + python way ...

# --------------------------------
# The python way (untested)
# --------------------------------

outer = context.SQL.qry_user_roles()
inner = context.SQL.qry_roles()
options = ''
for o in outer:
   for i in inner:
      if o.role == i.role:
         options += '\n<option value="' + i.role + '">' + i.role + '</option>'

return '<select>' + options + '</select>'

# --------------------------------
# in ZPT
# --------------------------------

<tal:sel tal:replace="structure python:context.python.pyRolesSelect()">

I will say that learning Page Templates will give you fits for a week or two.  But stick with it.


Zope maillist  -
**   No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to