More advanced agenda customization

Out of the box, the printable meeting agenda feature provided by RSVPMaker for Toastmasters is perfectly functional, and a number of built-in options exist for making limited customization (TM Administration > Settings > Agenda Formatting).

But if — as with my tabletop RPG-based club, Dungeons & Toast — your club desires greater control over the agenda appearance, you can use the

toastmasters_agendapath

Note: This guest post by Loni Huff is for more technical club webmasters, as in those comfortable with writing custom code. Loni is one of the people who continually pushes me to make the core WordPress for Toastmasters software better and more flexible. She was able to make these customizations partly because she hosts her club website independently, using the open source software version. If your club website is hosted on Toastmost, reach out to me at david@wp4toastmasters.com if you would like to add the kind of custom code she describes.

filter to point to a fully-customizable agenda file. Here is the procedure:

  1. To consolidate all your RSVPMaker customizations in one place, create a new plugin, rsvpmaker-for-toastmasters-addons:
    1. Create a directory in your wp-plugins directory entitled rsvpmaker-for-toastmasters-addons.
    2. Within this new directory, create a file entitled rsvpmaker-for-toastmasters-addons.php. Within this file, add the following:
<?php
/**
 * Plugin Name: RSVP for Toastmasters Addons
 * Plugin URI: Your URL
 * Description: Addons created for RSVP for Toastmasters by David Carr
 * Version: 1.0
 * Author: Your Name
 * Author URI: Your URL
 */
?>
  1. Navigate to the rsvpmaker-for-toastmasters plugin directory and download a copy of agenda-custom.php. Rename this file my_custom_agenda.php and upload it to your newly-created rsvpmaker-for-toastmasters-addons plugin directory.
  2. Open the rsvpmaker-for-toastmasters-addons.php file and add the following to the bottom of the file, before the closing ?> tag:
// BEGIN override the custom agenda file

function my_custom_agenda($agendapath) {
    return WP_PLUGIN_DIR . '/rsvpmaker-for-toastmasters-addons/my-custom-agenda.php';
}

add_filter('toastmasters_agendapath','my_custom_agenda');

// END override the custom agenda file
  1. Open your my-custom-agenda.php file. Add any links to needed JavaScript (ex. jQuery, Bootstrap) just above the line that reads <style> within the <head> of the HTML document.
  2. Add any links to needed style definitions (ex. Bootstrap) just below the line that reads </style>.
  3. Use the custom style definitions you have included to lay out the page as you prefer. Be careful to include the call to the
    tm_agenda_content()
    function:
<?php echo tm_agenda_content(); ?>

Using Bootstrap 4 and some custom styling, the weekly agenda for Dungeons & Toast looks like this:

Customize User Name Display

For privacy reasons, we choose to display the first name and first initial of the last name for our members, rather than defaulting to display name. Luckily, there is a filter you can use to change the way users’ names are displayed on your agenda. To do so, add the following code to your rsvpmaker-for-toastmasters-addons.php file:

// BEGIN override name display

function get_member_name_jr($name, $user_id, $user) {
    $output = $user->first_name . ' ' . substr($user->last_name, 0, 1) . '.';
    if ( !empty( $user->education_awards )) {
        $output .= ", " . $user->education_awards;
    }
    return $output;
}
    
add_filter('get_member_name','get_member_name_jr',10,3);

// END override name display

Switching Agenda Templates for a Club Contest

Setting a standard meeting template is one of the keys to using the WordPress for Toastmasters software productively. In addition, it can be helpful to have different templates for other types of meetings or events — with a club level contest as a prime example.

If you will hold your contest during one of your regular meeting times, here is how you would switch from your standard meeting template to a contest template.

Switch to contest template

That “Switch Template” option on the menu is new, something I realized was needed to make this option either to find. The other way to get to the “Apply Template to Existing Event” option is through the Dashboard -> RSVP Events -> Event Templates.

To make this more useful, you will want to create event templates that reflect how your club runs its contests. See Sample Contest Agendas: International Speech and Table Topics and Sample Contest Agendas: Evaluation and Humorous Speech for examples.

Manually Adding Stoplight Display with a Shortcode

This is an update to How to Display Stoplight Colors on Your Agenda and Other Agenda Styling Options.

If you have the stoplight feature turned on, those colors will automatically be displayed for speech roles, table topics, and evaluations. Almost immediately I ran into a different scenario: manually adding the stoplight display to a contests agenda. This can be done using a WordPress shortcode, which is a placeholder for a software function you insert in the body of a post. The placeholders for roles and agenda notes are also shortcodes, although I’ve given them a more user friendly user interface with the color-coded images and popup editors.

Here is how the stoplight shortcode appears on the editor, editing the event for my home club’s upcoming evaluation contest.

Stoplight shortcode

The result on the agenda:

Stoplight shortcode display on the agenda.

The formula is [stoplight green=”5″ red=”7″] with angle brackets around the code that begins with “stoplight” and green, red, and optionally yellow specified as parameters.

Agenda Setup and Fine Tuning (Video + Tips)

These are updated instructions for setting up your standard meeting agenda and tweaking it as necessary for individual meetings. In addition to trying to explain the software better, I have worked on simplifying the software itself to make the process easier!

If you don’t have time to watch the video, I’ve included some key points below. See also: Sample Contest Agendas: Evaluation and Humorous Speech.

One of the most important improvements is a new tool for planning the timing of your meetings. As you change your time estimate for each “stage directions” agenda note or each block of roles, the time estimates change automatically. You can also check to delete a role from the agenda if you will not have time for it in the context of a given meeting.

Adjusting the planned timing for a meeting.

Both the Agenda Setup and Agenda Timing tools can be used either to make changes for an individual meeting or to modify your standard meeting template and all the agendas based on that template.

Agenda Setup menu

With a time limit set for speeches, members who try to sign up for a speech project that would exceed that limit will get a warning that they need to ask the meeting organizer about adjusting the agenda or the club may not be able to accommodate them.

A warning that signing up for this project would exceed the total time allowed for speeches.

When you edit an agenda in the WordPress editor’s Visual mode, you will see the different components are now color-coded blue for roles, red for agenda notes, and purple for editable fields.

An agenda setup viewed in the WordPress editor’s Visual mode.

Click on any of these placeholders to get a popup editor window. Here, we’re modifying the speaker role and changing the time allowed for speeches.

Role editor popup.

The purple “editable” fields are agenda notes that instead of or in addition to any static content include the ability for you to add or edit a note on the front end of the website. This option becomes available in the same Edit Signups mode you would use to assign other members to roles.

This is useful for things like a Theme and/or Word of the Day field that changes from week to week. In the example below, it’s used to record the details about a guest speaker (or test speaker) for an evaluation contest.

A field that is editable on the front end of the website (Edit Signups mode)

Your agenda plan will rarely be perfect. Typically, the Toastmaster of the Day and club leaders will have to make last-minute adjustments no matter how carefully you plan. Still, you can maximize your odds of success by planning well.

 

Sample Contest Agendas: Evaluation and Humorous Speech

These are sample agendas you can use for a club contest where you want to give members an opportunity to sign up online. See also: Sample Contest Agendas: International Speech and Table Topics and Switching Agenda Templates for a Club Contest.

Copy the text from either of the examples below. Before pasting it into the editor, make sure the WordPress editor is in “Text” mode rather than “Visual.”

When you toggle back to Visual mode, you will see the placeholder images representing the roles and agenda notes, allowing you to edit them further with the popup editor windows.

The evaluation contest form below, viewed in the WordPress editor’s Visual mode.

The idea here is that each of these contests would be the centerpiece of a separate meeting, and we’re estimating how much time will be required for each phase of the contest. For the evaluation contest, we need to provide for a guest speaker or “test speaker” whom the contestants will evaluate. Since that will be a person from outside of the club, we’re included an editable field where the details about that speaker can be filled in once that person is identified.

Evaluation Contest Form
The Evaluation Contest signups form in Edit Signups mode, with an editable field for entering details about the test speaker.

Evaluation Contest

Copy and paste (with the WordPress editor in text mode):

[agenda_note agenda_display="both" strong="" italic="" size="" style="" alink="" editable="" time_allowed="5"]Sgt. at Arms calls the meeting to the order.  President or Presiding Officer introduces the Contest Master [/agenda_note]

[toastmaster role="Contest Master" count="1" agenda_note="Introduces supporting roles. Leads the meeting." time_allowed="12" padding_time="0" indent="0"]

[toastmaster role="Chief Judge" count="1" agenda_note="" ]

[toastmaster role="Timer" count="1" agenda_note="" ]

[toastmaster role="Vote Counter" count="1" agenda_note="" ]

[toastmaster role="Videographer" count="1" agenda_note="" ]

[agenda_note agenda_display="both" strong="" italic="" size="" style="" alink="" editable="Test Speaker Introduction" time_allowed="8"]For the evaluation contest, we invite a guest or test speaker to give a 5-7 minute speech for the contestants to evaluate.[/agenda_note]

[toastmaster role="Evaluation Contestant" count="8" agenda_note="" time_allowed="20" padding_time="0" indent="0"]

[toastmaster role="Topics Master" count="1" agenda_note="" time_allowed="15" padding_time="0" indent="0"]

[agenda_note agenda_display="both" strong="" italic="" size="" style="" alink="" editable="" time_allowed="10"]Awards ceremony[/agenda_note]

[agenda_note agenda_display="agenda" strong="" italic="" size="" style="" alink="" editable="" time_allowed="15"]We'll do self introductions at the end, as well as any announcements.[/agenda_note]

Humorous Speech Contest

Copy and paste (with the WordPress editor in text mode):

[agenda_note agenda_display="both" strong="" italic="" size="" style="" alink="" editable="" time_allowed="5"]Sgt. at Arms calls the meeting to the order.  President or Presiding Officer introduces the Contest Master [/agenda_note]

[toastmaster role="Contest Master" count="1" agenda_note="Introduces supporting roles. Leads the meeting." time_allowed="12" padding_time="0" indent="0"]

[toastmaster role="Chief Judge" count="1" agenda_note="" ]

[toastmaster role="Timer" count="1" agenda_note="" ]

[toastmaster role="Vote Counter" count="1" agenda_note="" ]

[toastmaster role="Videographer" count="1" agenda_note="" ]

[toastmaster role="Humorous Speech Contestant" count="10" agenda_note="" time_allowed="60" padding_time="0" indent="0"]

[agenda_note agenda_display="both" strong="" italic="" size="" style="" alink="" editable="" time_allowed="10"]Awards ceremony[/agenda_note]

[agenda_note agenda_display="agenda" strong="" italic="" size="" style="" alink="" editable="" time_allowed="15"]We'll do self introductions at the end, as well as any announcements.[/agenda_note]