This is a very creative use of ZAP, something I never dreamed of--and I am not sure I still understand the full implications of it. But I should point out there are easier ways to set up ZAP forms that update data, such as simply putting them in a group header or footer. I'm excited about Ben's upcoming DataQuery recipe, and glad ZAP can be a part of it. But wanted to point out here that in most situations, there may be easier ways to accomplish the goal of this recipe. See the ZAP demo site at www.zapsite.org for more information. Good luck Ben! Caveman
Thanks, Caveman! The disadvantage of putting a form in the group header or footer is that then you need conditional statements -- often several of them -- to control when the template is shown, when the form, and when the link to switch from one to the other. The wiki already does all this for you: it automatically hides the header and footer when you're editing, it shows the form only when you're editing, it provides a link to edit the page, and it controls who can edit and who can't. All those conditionals -- required in your method -- are redundant if you put the information in the right places to begin with. The only missing piece is providing for a custom edit form, which is what this recipe does. Once you have it in place, I feel this method is actually simpler, because you don't need any conditional statements.
That being said, the disadvantage of using a custom edit form is that there's no way to edit the page normally! Perhaps I'll find a way to shut it off -- perhaps for a given user or group, or just for those with admin privs.
Thanks for the feedback! Ben Stallings February 03, 2007, at 09:00 AM
Haven't followed this discussion as it's not on my notify list, but now see your reasons for this recipe a bit more clearly. The solution for your question, may be to set up a new action--like action=data or action=dataedit. When triggered this would load a page that simply retrieved a ZAP form. Just an idea... Better still, it would be neat if you could scan the page for PTV's, dynamically generate your data edit form, prepopulate the fields, and bingo, a sitewide action. That would be very cool--and not to hard to do...