[pmwiki-users] Suggestions? Anonymous volunteers calendar

Hans design5 at softflow.co.uk
Sat Feb 23 16:22:07 CST 2008


Friday, February 22, 2008, 4:24:04 PM, sti at pooq.com wrote:

> I don't have any suggestions, except to say that my wife has asked for
> the exact same feature for her website. She wants her clients to be able
> to book time with her, and to let everyone know what time she has free
> for appointments, but to only let her see who booked the time and why.

It is possible to something like this with Fox, since one can set
multiple target pages, and use individual templates for each.

To make it into a pretty calendar we could combine a Fox form with
PmCal. PmCal is used to open a day page. This would need to
prepopulated via a template with a number of empty page text
variables, one for each time slot available. Perhaps using the text
ptv listing like

Appt-0900:
Time-1000:
Time-1100:
Time-1200:
etc.

With the standard PTV  definition this need sto start with a letter,
but i think this could be altered.

Then a Fox form is included, via (:include Site.BookingForm:), or the
GroupFooter. This form will show the available time slots in a select
input control, and has other text input controls to enter a name and
other info, which can be posted to a different read-protected target
page, or sent via email on form submission, using an email template
for that purpose. FoxNotify can be used that way and have the
required input inserted into the email body.

To get the available slots we need to look for empty PTVs in the page.
I played with this and wrote a markup expression which will extract
PTVs from a page, and create a select input control from the empty
PTVs (for selecting available slots). It also creates a hidden input
control for each PTV of the page. This is needed for the PTV
updating, so the selection can be matched with  a PTV target.
On submission, after selecting a time slot and entering the name etc.
some value (this could be the name, or could be some other
string) will be saved as new value for the PTV, and appear in the
listing, like

Time-1000:
Time-1100: booked
Time-1200:
etc.

The select control is automatically updated and shows only the
remaining open slots.

I can give you the raw fox form source code, and the markup
expression which constructs the select control from empty PTVs.
I have not done the PmCal integration. Instead i used a second form
to select a date page via a pagelist which outputs as a select input
control. The page selected with that form will be written into a
Date: PTV on the form page, and this is used in the first form to
point to the target page from which the PTV timeslots are read and
updated.

Perhaps this can appear in the cookbook as FoxBookingForm or
FoxAppointmentForm?


  ~Hans




More information about the pmwiki-users mailing list