Hi, folks. I'm in the process of adding a function to the DataQuery recipe that will generate select (drop-down menu) inputs based on a previously configured database query, and I could use some advice about the markup to avoid conflicts with other recipes.
Here's an example of how this feature will be used: Suppose you have defined a query to display and edit event registrations that are stored in a database. Each record (page) in the registration table (group) has an event ID number and a person ID number, which correspond to records in other tables. In order to display the registrations in a human-readable form, you have defined the query to pull the event's name and the person's name from two other tables which are joined to the registration table. You want to provide a form whereby an administrator can add a person to an event by selecting the event's name and the person's name from a pair of drop-down menus. It's already possible to do this with DataQuery using pagelists, but pagelists are so slow that if you have two or three drop-downs on a page, the page may time out and so cannot be used at all. Plus, since DataQuery can't predict which field of the joined table you will want to use for labels, you have to manually create each drop-down's pagelist template, which is tedious and time consuming. So I'm working to provide a faster, easier way to do it. In UpdateForm, I used (:update select etc etc:) for this same functionality, because all of UpdateForm's tags were variations on (:update:). But DataQuery doesn't use (:update:) tags (or any other custom markup), it uses regular (:input:) tags, and (:input select:) is already in use. ZAP used to provide a (:select:) tag, but no longer does so, so I'm tempted to nab that markup unless someone objects. Here's what I'm looking at: (:select name=eventid label=eventname:) or just (:select eventid eventname:) would pull the eventnames from the joined table and generate: (:input default eventid "{*$:eventid}":) (:input select eventid "1" "Kung Fu Fighting":) (:input select eventid "2" "Fish Slapping Dance":) ... (:input select eventid "42" "Brockian Ultra-Cricket":) If no label is provided, for example (:select personname:) then the labels would be taken from the same field where they are stored: (:input default personname "{*$:personname}":) (:input select personname "John Smith":) (:input select personname "Mickey Smith":) ... (:input select personname "Sarah Jane Smith":) So, my question: Is (:select:) too general a tag name for this specific function? If so, what would you suggest instead? Thanks in advance for the feedback. --Ben S. _______________________________________________ pmwiki-devel mailing list pmwiki-devel@pmichaud.com http://www.pmichaud.com/mailman/listinfo/pmwiki-devel