[pmwiki-devel] PmWiki request

Patrick R. Michaud pmichaud at pobox.com
Tue Dec 12 08:50:17 CST 2006

On Tue, Dec 12, 2006 at 09:24:26AM -0500, The Editor wrote:
> On 12/12/06, Patrick R. Michaud <pmichaud at pobox.com> wrote:
> >Seems to me that
> >
> > (:if exists parameter:)(:input hidden action:)(:if:)
> >
> >is only few characters longer but more consistent.  Plus you
> >get complex expressions for free.
> Actually this is not equivalent to what I'm wanting to do at all.
> (This was also Hans misunderstanding I believe).  What I want to do
> rather is perform certain ZAP functions AFTER the form submits based
> on the values entered.  It has nothing to do with markup.  

Is "(:input ifexists ... :)" something you'd expect an author
to enter somewhere?  If yes, then it's "markup", regardless of
when it is processed.

Does "(:input ifexists ...:)" generate a form control of some sort
in the output HTML?  If no, then to avoid author confusion it
probably should begin with something other than "(:input ...".

Personally, I'm thinking this should be called "(:zapcheck ...:)",
because it's asking ZAP to do some sort of form verification
of the form values before proceeding with a POST.  It's definitely
not generating an input control, which is what we want authors
to think when they see "(:input:)".  So perhaps...

    (:input exists newpage:)
    (:zapcheck exists newpage warn="Page already exists":)

Multiple conditions also read more nicely, and make it explicit
as to what we're doing:

    (:input exists newpage:)
    (:zapcheck exists newpage   warn="Page already exists"    :)
    (:zapcheck date 20061225..  warn="Can't post after Dec 25":)
    (:zapcheck ! authid         warn="Must be logged in"      :)

But the fundamental idea remains the same -- since what you're
talking about is not generating an input control, it should be
called something other than "(:input:)".  

(I think this is what Hans is referring to when he says that 
you've "hijacked" PmWiki's (:input:) markup -- he doesn't 
mean that you're changing the way the existing (:input:) markup 
works, he means that you're giving it new functions that are
substantially different from the previous ones.)


More information about the pmwiki-devel mailing list