Extending RSVPMaker – WordPress for Toastmasters

One of my recent side projects has been updating a series of customizations I made to RSVPMaker for use by my Toastmasters club. Toastmasters International is a nonprofit organization that teaches public speaking and leadership skills, and I’m a past club officer and current Area Governor (working with several local clubs).

If you’re reading this in mid-October 2014, consider signing into my tutorial webinar.

#Toastmasters webinar: New Web Tools For High-Performance Clubs, Weds 10/15/2014 at 7 pm ET Register: http://www.anymeeting.com/PIID=EB50D785894831

This may or may not develop into code I release as a plugin — for now, I’m trying my hand at the software as a service business model over at wp4toastmasters.com.

Possibly some aspects of this work could find their way back into RSVPMaker if you see additional uses for certain features. Instead of collecting RSVPs, the thing we want to accomplish with Toastmasters meetings is to sign people up for specific roles. Since this is a membership organization, people log in and identify themselves rather than typing in their names etc. Recently, I’ve been exploring ways of turning the data gathered through using the system into reports to help club officers guide their members through the educational program. You can see a bit of how it works in the video below.

Posted in Announcement, Tutorial | Leave a comment

New and Improved Event Templates

I’ve been enhancing RSVPMaker event templates with features that are useful for my own projects and hopefully yours.

Creating and updating events based on a template

Creating and updating events based on a template

In the example here, I create a template for an event that happens every Sunday. RSVPMaker prompts me to create a series of events based on the projected schedule, which I can do selectively or by checking all. I check all and create a whole batch.

I still have the freedom to customize events individually, so I add details about a guest speaker to one particular event.

Now, when I update the template to change the boilerplate details, I have the option of updating all the existing events. I check all, but then omit the event I previously customized — preferring to go back and update that one individually.

This basic functionality has been in the last couple of versions of RSVPMaker, but the latest release does a little better job of integrating the editing of the template with the prompt to add or update individual event listings.

Posted in Announcement | Leave a comment

Embedding a single RSVPMaker event in a page or post

I’ve added an option for embedding a single event in a page or post, using the rsvpmaker_upcoming shortcode and the new attribute “one” — containing either the slug, the ID # for the event or the word “next” for the next event on your calendar. This works in RSVPMaker 3.0.5 and higher.

Here are a couple of examples:

Shortcode:
[rsvpmaker_upcoming one="cub-scout-camping-trip"]
Output:

Friday December 12th, 2014
Saturday December 13th, 2014
Sunday December 14th, 2014

This would be a typical event setup for my son’s cub scout pack, a 3-day event with RSVPs requested and families encouraged to pay online via PayPal.

You can step through the RSVP process to see how the prompt to pay online appears after the user enters basic information. If you click the link to pay, you will be redirected to the Cub Scout Pack 179’s PayPal checkout page (the integration is live, so don’t complete a payment unless you really do want to make a donation).

RSVP Now!

Posted by David F. Carr on August 13, 2014

Shortcode:
[rsvpmaker_upcoming one="next"]
Output:

Sunday November 2nd, 2014 7:00 PM

Testing the RSVP count checkbox.

RSVP Now!

Posted by David F. Carr on October 12, 2014

I have two scenarios in mind for this:

  • Your club holds monthly or weekly meetings and you want to display just the next one upcoming on the front page of your website.
  • You have a big event that might be a couple of months away, but you want people to start signing up for it now — even though on the calendar, it might be way down the list. So you use this technique to highlight it on the front page of your site or in a post that will appear at the top of your blog.

If RSVPs are turned on for the event, and the event is still in the future, the RSVP Now! button will be displayed. If someone views an old blog post that includes the embedded event for which the date has gone past, the button will not be displayed.

Posted in Announcement | 9 Comments

Shortcodes for Use in the Form Template

This is an update on the shortcodes available for customizing your RSVP form. These are not normally used in the body of the post as they are below but in the form template you can establish on a global basis in the settings screen and customize on a per event basis.

Option to customize the RSVP form for a specific post.

Option to customize the RSVP form for a specific post.

The default form is laid out in a table, but you’re welcome to use another formatting scheme that fits with the theme for your site.

I’ve gotten some requests to support additional common HTML codes, so checkboxes and radio buttons have been added.

Sample Custom Fields

For example if I want to add the following input fields …

Nickname for badge:

I will volunteer to help with setup and cleanup.

Food choice:

Drink choice:
beer
wine
soda

… I would specify them in the editor like this (bold added for emphasis).

Nickname for badge: [rsvpfield textfield="nickname"]

[rsvpfield checkbox="volunteer" value="yes"] I will volunteer to help with setup and cleanup.

Food choice: [rsvpfield selectfield="food" options="steak,chicken,vegetarian" selected="chicken"]

Drink choice:
[rsvpfield radio="drink" options="beer,wine,soda" checked="wine"]

Here are the controls and how they work.

Text Field

Shortcode:

[rsvpfield textfield="text-test" size="60"]

HTML:
<input type="text" name="profile[text-test]" id="text-test"  size="60"  />
Display:

Text Field, Required

Shortcode:

[rsvpfield textfield="text-test" size="60" required="1"]

HTML:
<span class="required"><input type="text" name="profile[text-test]" id="text-test"  size="60"  /></span>
Display:

Select Field

Shortcode:

[rsvpfield selectfield="select-test" options="one,two,three,four"]

HTML:
<select name="profile[select-test]" id="select-test" >
<option value="one" >one</option>
<option value="two" >two</option>
<option value="three" >three</option>
<option value="four" >four</option>
</select>
Display:

Select Field with Default Selection

Shortcode:

[rsvpfield selectfield="select-test" options="one,two,three,four" selected="three"]

HTML:
<select name="profile[select-test]" id="select-test" >
<option value="one" >one</option>
<option value="two" >two</option>
<option value="three"  selected="selected" >three</option>
<option value="four" >four</option>
</select>
Display:

Checkbox, checked by default

Shortcode:

[rsvpfield checkbox="checkboxtest" value="1" checked="1"]

HTML:
<input type="checkbox" name="profile[checkboxtest]" id="checkboxtest" value="1"  checked="checked" />
Display:

Radio buttons, separated by line break (default)

Shortcode:

[rsvpfield radio="radiotest" options="one,two,three,four" checked="two"]

HTML:
<input type="radio" name="profile[radiotest]" id="radiotestone" class="radiotest"  value="one"  /> one
<br /><input type="radio" name="profile[radiotest]" id="radiotesttwo" class="radiotest"  value="two"   checked="checked" /> two
<br /><input type="radio" name="profile[radiotest]" id="radiotestthree" class="radiotest"  value="three"  /> three
<br /><input type="radio" name="profile[radiotest]" id="radiotestfour" class="radiotest"  value="four"  /> four
Display:

one
two
three
four

Radio buttons, separated by a space

Shortcode:

[rsvpfield radio="radiotest2" options="one,two,three,four" checked="two" sep=" "]

HTML:
<input type="radio" name="profile[radiotest2]" id="radiotest2one" class="radiotest2"  value="one"  /> one
 <input type="radio" name="profile[radiotest2]" id="radiotest2two" class="radiotest2"  value="two"   checked="checked" /> two
 <input type="radio" name="profile[radiotest2]" id="radiotest2three" class="radiotest2"  value="three"  /> three
 <input type="radio" name="profile[radiotest2]" id="radiotest2four" class="radiotest2"  value="four"  /> four
Display:

one two three four

Posted in Announcement | 4 Comments

Example of a community website built around RSVPMaker

BlueBroward.org is a community website for South Florida Democrats, and the events template/additional editors functions I added in recent releases was built around the requirement for multiple Democratic club officers and multiple campaign representatives to be able to able to collaborate on managing a series of recurring events or working together on a campaign. Previously, I used some other crude hacks to achieve that effect, but I’ve been working to get the site in synch with the main RSVPMaker codebase as much as possible.

The BlueBroward.org implementation of RSVPMaker is extensively customized, using the same customization technique I make available to all developers. The campaign listings function is not part of RSVPMaker but I have it using the same method of allowing users to designate other users as “additional editors” (even though they are authors rather than editors under the WordPress editing rights scheme). The email notifications are also custom.

I share this not because of anything to do with the politics involved but to show what’s possible with RSVPMaker and particularly the event templates functionality.

Posted in Announcement | 2 Comments

Spanish Translation of RSVPMaker Event Scheduling Plugin for WordPress

RSVPMaker now includes a Spanish translation. This means Spanish speakers should be able to navigate the administrative user interface en Español – if you notice words or phrases that are not translated, or are translated incorrectly, you can report them in the comments section on this page. I know it’s not 100%, but most of the basic functions for setting the date and time of events or setting default options are covered.

This is all thanks to volunteer help from Andrew Kurtis of WebHostingHubThe missing words and phrases that remain in the user interface are the result of me not tagging them properly for translation, and Andrew has agreed to provide updates as I put out future versions.

Spanish translation

Spanish translation

Note that most of the text seen by public visitors to your website is not coded into the software, but written by you, the site operator. In the screen shot above, you can see that the “Confirmation Message” label has been changed, but the text is still “Thank you!” However, you can change the default confirmation message on the RSVPMaker settings screen. The text (and inline CSS) for the RSVP Now! button can also be changed on the settings screen, as can the date format used to display event dates and times.

For more about setting up WordPress in Spanish or another language, see the WordPress.org post on WordPress in Your Language. There are plugins available that make it possible to have WordPress switch between presentation in multiple languages – see Multilingual WordPress.

For Developers

If you would like to contribute a translation for RSVPMaker, see the WordPress.org post on Translating WordPress for general guidelines. The rsvpmaker/translations subdirectory includes a file called rsvpmaker.pot, which contains the catalog of words and phrases that have been tagged for translation. You will use this as the starting point for creating language-specific files such as rsvpmaker-es_ES.mo for Spanish. The language codes are explained on the Translating WordPress page.

Make a copy of rsvpmaker.pot and call it rsvpmaker-LANGUAGECODE.po which is the file you use to produce the translation (an output file with the .mo extension).

The easiest way to do this is with a tool called POEdit, shown below with some examples from a Polish translation by Jarosław Żeliński.

PoEdit translation from English to Polish

PoEdit translation from English to Polish

This video tutorial may help you understand the process better. The truth is, I’m not an expert on it, relying on others to do the translation for me. I very much appreciate the support of these volunteers.

Posted in Announcement | Leave a comment

Event Template Enhancements in Version 2.8.5

RSVPMaker 2.8.5 addresses a couple of common scenarios I see on community-oriented web sites, with different clubs or organizations that host events on a recurring schedule. That’s the point of the new Event Template feature, which allows you to schedule events weeks or months in advance, using basic boilerplate details. You can then update them with specific details (names of speakers, special attractions) as individual events get closer.

One thing that comes up after you’ve been doing this awhile is that the basic boilerplate details change. For example, a new regular meeting location is established and you need to update a whole batch of upcoming events at once. These checkboxes let you do that selectively (maybe you’ve added specific details to one or two of the coming events and don’t want to overwrite those).

Note that this works for the headline and body copy, not RSVP parameters.

Update checked events

Update checked events

Also, clubs and organizations may have more than one person who need to add and update events (a president and a secretary, for example). The Additional Editors function is not activated by default, but you can turn it on with a checkbox on the RSVPMaker settings screen. Once activated, this allows you to designate additional editors (really more like co-authors or collaborators) who will be able to edit the group’s Event Template and any events derived from that template.

This overrides default WordPress behavior, allowing people who do not have general editing rights to edit those specific items. This works for other users designated as authors (would not work for contributors or subscribers).

Add Editor/Collaborator

Add Editor/Collaborator

This release also includes a Spanish language translation, thanks to volunteer help from Andrew Kurtis, WebHostingHubI’ve asked him to fill in some gaps in the translation and am also reaching out to the authors of a couple of other translations to update them with better coverage for words and phrases used in the administrative user interface. Meanwhile, this version covers the basic RSVP options on the event editing screen.

Spanish translation

Spanish translation

Posted in Announcement | Leave a comment

New Event Templates Function. Also, Plugin Updated For Translation

Version 2.8 adds a better way of managing events that occur on a recurring basis. You can create an event template that includes all the boilerplate title and content details, along with a schedule such as every Friday or third Thursday, and the tool will allow you to project future dates matching that schedule and add events one at a time or in a batch. The template editor also tracks events previously added for that schedule and associates them with the template.

rsvptemplate_list

Listing event templates

This function is adapted from something I use on a community website where multiple users post recurring events for their own organizations. A single organization might also want to work with multiple templates, such as one for a regular weekly meeting and another for a monthly board meeting.

When you click on “New Template,” you get a version of the event editor that lists template options rather than single event options.

Creating a new template

Creating a new template

When you click “Projected Dates” for a template, you get a listing of any upcoming events associated with the template, as well as projected dates occurring for the regular schedule specified in the template. If you set the schedule to “Varies,” you’ll get a projected schedule showing the 1st of each upcoming month.

rsvptemplate_projected

Projecting event dates

From the projected dates view, you can check off multiple dates and add them as a batch. All details from the template, including preferences like whether RSVPs should be collected by default, will be copied to the new events you create this way.

Translation Update

This release also updates the rsvpmaker.pot file in the translations folder, which can be used to produce translations into languages other than English. I significantly expanded the number of words and phrases that will be accessible for translation, after being contacted by a volunteer who wants to do a Spanish version. I’ll see if I can get updates from other translators as well.

Posted in Announcement | Leave a comment

RSVPMaker 2.7.5 released

Version 2.7.5 is available now http://wordpress.org/plugins/rsvpmaker/

This is the first time in several months that I’ve released an update. I’ve been wrapped up with a book project ( Social Collaboration For Dummies, due out in October) but should have time to do another update within the next month, catching up on feature requests and bug fixes.

In addition to being tested with WordPress 3.6, today’s release addresses two issues:

  • Fixes a glitch in the display of the CAPTCHA image (for those who turn on that feature)
  • Makes the display of the Yes/No radio buttons optional. There are circumstances where you want to track No responses as well as Yes responses, but a number of people said they would rather not show it when they only care about the yes answers.
Posted in Release | 17 Comments

RSVPMaker 2.7.4 – More reliable delivery of notification / confirmation emails

If you rely on email notifications when people RSVP and/or want people to get a confirmation and reminder messages, version 2.7.4 should be able to do that more reliably if you provide an email server and account to be used for notifications. You enter these on the Settings screen. After you save the parameters, click the link to send a test email to make sure it works.

You can create an email account for this purpose on your web server, or use a GMail account (limit: 500 recipients per day), or SendGrid account (specialist in high volume notification emails, free for up to 200 emails per day, reasonable prices for higher volumes), or use any other SMTP server you have access to.

All notifications will then come from that account, and having them come from an authenticated account should help you get past spam filters and precautions your web host takes to avoid hosting spammers. The replyto address will be set to the email address supplied by the attendee for notifications. Confirmation messages sent to attendees will have the email address you specified for notifications as the replyto address.

The parameters you need to enter are:

SMTP server type – select GMail, SendGrid, or Other from the drop-down list.

Email account for notifications – example notify@rsvpmaker.com

Email username – notify@rsvpmaker.com (on some servers, it could be “notify” or something different from the address)

Email password – Enter the password. Think through the security implications (maybe you don’t want to have the password for your primary email account stored here)

Server, Prefix (ssl or tls), Port # – Not necessary to enter these for a Gmail or SendGrid account.

I’d have done this sooner if I had realized that the PHPMailer utility was bundled with WordPress, a fact I just stumbled across while looking at the WP Mail SMTP plugin (which allows you to modify your site to use SMTP for routine WordPress notifications such as account signups). Previously, I suggested a customization based on the PHP Pear module, which works well but is not enabled on every web server.

Posted in Announcement, Release | 3 Comments