DEPRECATION WARNING

This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.

EXT: Registrations for calendar events

Created:2010-02-18T17:33:18
Changed by:thomas
Changed:2013-05-03T08:46:39
Classification:register4cal
Keywords:forAdmins
Author:Thomas Ernst
Email:typo3@thernst.de
Info 4:
Language:en

img-1 img-2 EXT: Registrations for calendar events - register4cal

EXT: Registrations for calendar events

Extension Key: register4cal

Language: en

Keywords: forAdmins

Copyright 2000-2010, Thomas Ernst, <typo3@thernst.de>

This document is published under the Open Content License

available from http://www.opencontent.org/opl.shtml

The content of this document is related to TYPO3

- a GNU/GPL CMS/Framework available from www.typo3.org

Introduction

What does it do?

General overview

The very popular TYPO3 extension “Calendar Base” (“cal”) provides a nice calendar, showing all types of events in several possible calendar displays. The extension “register4cal” adds a registration functionality to the calender events. Users can register and unregister for events. A maximum number of attendees can be set for events and a waitlist can be used if this number has been reached.

Userdefined fields for registrations

Several sets of userdefined fields can be defined and displayed in the registration form. This provides a very flexible way to obtain additional data from the attendees. Possible field types include text fields, multiline text areas as well as selection boxes. Fields are fully configurable from the TYPO3 backend and can be arranged in fieldsets. Every event can either use no fields, a configured default fieldset or an individual fieldset. Changing fields or fieldsets will not affect already stored registrations.

Registration in single event view and event list view

This extension supports the registration from the single event view as well as from the event list view. While the single event view shows the registration form below the event display, the event list view has a box attached to each event, including a checkbox to allow the user to register or unregister for the event.

Email confirmation and notification

Every change in a registration can cause a confirmation being sent to the user which registered for the event. Also, a notification can be send to the organizer(s) of the event if a registration has been changed.

Registration display

Besides from showing registration records in the backend, this extension provides a frontend-plugin which can display registrations in two ways:

  • An event view, where frontend-users can see the events, they have registered for.
  • An participant view, where event organizers can see the users which have registered for their events
Foreign user registration

Event organizers can be enabled to register/unregister foreign users for their events. This enables the organizers to manage all attendees for their events via this extension, even if the registration has been communicated via other ways than the website.

Frontend editing

This extensions fully supports the frontend editing features of the cal extension. It provides modified cal default templates, showing how to include the additional event fields into an additional tab of the cal frontend editing view.

Supporting extensions

The following extensions can be used together with this extension:

  • rlmp_dateselectlib: Provides a date selection for the register4cal fields when using calendar event frontend editing.
  • onetimeaccount: Enables users to create a temporary frontend user account to register for events.

Screenshots

img-3 Illustration 1: Activate registration in backend

img-4 Illustration 2: Settings for a userdefined field

img-5 Illustration 3: Single event view with registration form

img-6 Illustration 4: List of events for which the current frontend user has registered

img-7 Illustration 5: Event list view with registration box attached to event

img-8 Illustration 6: List of registrations shown to the organizer of an event

Installation

Prerequisites

Before you install this extension, be sure that the following prerequisites are fulfilled:

  • You are using at least PHP version 5.1.0 on your server
  • You have installed the Calendar Base extension “cal”, it is configured properly and working.

Installing the extension

Download the extension from the TYPO3 extension repository and install it through the typical TYPO3 extension installation process using the Extension Manager.

During the installation you will be asked to perform several database changes.

Add static templates

You should now add the required static templates to one of your template records. The following list shows, which templates are provided and when they should be used:

Basic settings (register4cal)

Static Template

Basic settings (register4cal)

Usage

General settings for this extension. Should be used, if you are using the current template files from this extension (e.g. for a new installation)

FE-Editing (register4cal)

Static Template

FE-Editing (register4cal)

Usage

Settings for frontend-editing. Include this static template, if you are using the frontend editing feature of the Calendar Base extension. The register4cal fields need to be included in the templates, too!

Compatibility to old templates (register4cal)

Static Template

Compatibility to old templates (register4cal)

Usage

General settings for this extension, fitting to the old template files used in previous versions of this extension. Use instead of “Basic settings” if you have modified template files from register4cal versions up to 0.6.2. This template should not be used for fresh installations as it might me removed in the future.

Adapt TypoScript settings to your needs

When using the “Basic settings” static template, there is only one setting which needs to be adapted. Add

plugin.tx_register4cal_pi1.singleEventPid = [pid]

to your TypoScript template and replace [pid] with the page id, that contains the Calendar Base plugin for single event display.

Users manual

Activate the registration for an event

To activate the registration for an event, simply display the event in the TYPO3 Backend and go to the “Registration” tab.

img-10 Illustration 8: Activate registration for an event

Registration sepecific fields After checking the field “Activate registration” TYPO3 asks you to save and refresh the display. Confirm this. The display will be refreshed and show more registration related fields:

img-11 Illustration 9: Registration related fields for an event

Activate registration

Field

Activate registration

Usage

Activate or deactivate the registration for this event. For recurring events, registration is activated for all occurrences of the event. If registration is not activated, all other fields are hidden.

Field set

Field

Field set

Usage

Choose the set of user-defined fields to be shown for the registration for this event.

  • “Don't use any user fields” will show no user-defined fields
  • “Use default field set” will use the field set marked as default. If multiple field sets have the “default” option set, the first one found will be used
  • If you select a defined field set, this field set will be used
Registration start

Field

Registration start

Usage

Date since when registering for this event should be possible. If you leave this field empty, users can register immediately for the event.

Registration end

Field

Registration end

Usage

Date till when registering for this event should be possible. If you leave this field empty, users can register until the start date of the event.

Maximum number of attendees

Field

Maximum number of attendees

Usage

Maximum number of attendees, which should be able to register for this event. If you leave this field empty, registering is possible for an unlimited number of attendees.

Activate waitlist

Field

Activate waitlist

Usage

If activated, users can enlist to a waitlist, of the maximum number of attendees has been reached. If not activated, no further registrations are possible if the event is fully booked.

Assigning organizers to the event

Besides from the registration specific fields, the organizer setting of the event is important, if the organizer should be able to see registrations for this event in the frontend. On the Organizer tab, there are two possibilities to assign the organizer, if the Organizer Textfield has not been hidden as described in the Installation section. If you assign a Calender Event Organizer record, the fronent users, linked to that record, will be able to see the registrations for this event. Do not use the Organizer Textfield, if you wish to use this functionality.

img-12 Illustration 10: Assigning an organizer to an event

The Calendar Base extension provides the possibility to hide the Event Organizer Textfield. It is recommended that you do this. Please refer to the description in the Installation section on how to do this.

Linking Calender Event Organizers and Frontend Users/Groups

If cal is configured to use the Calendar Base Organizer data model

If cal is configured to use the build in Calendar Base Organizer data model organizers are stored as separate records. In order to allow frontend users to see registrations for events for which they are the organizers, it's additionally important to link Calender Event Organizers and Frontend Users. This can be done in the Calender Event Organizer records of the Calendar Base extension. This extension adds an additional field to the record:

img-13 Illustration 11: Link Calendar Event Organizers and Frontend Users/Groups

In this field you can select Website user and Website usergroup records and assign them to the organizer. If such an Calender Event organizer has been asigned to a Calender Event, these users can see who registered for an event and may use additional administrational functions for the event.

If cal is configured to use Frontend Users as organizer data model

In this case nothing needs to be configured. Register4cal will automatically recognize the setting and show the relevant events if the frontend user is logged on.

User-defined fields

User-defined fields are grouped into field sets. These field sets can be used for registrations.

You can create your own fields by adding “Registration for calender events: Fields” records. User-defined fields need to be stored on the same Page/SysFolder where the events are stored.Alternatively they can be stored in the configured storage folder.

The record for an user-defined field is displayed in the TYPO3 Backend as following:

img-14 Illustration 12: User-defined field

Language

Field

Language

Usage

Language selection. Create a record for language “Default” first. If required, fields can be translated using the normal TYPO3 record translation functionality.

Name

Field

Name

Usage

Name of the field. Field names need to be unique.

Caption

Field

Caption

Usage

Caption of the field. This value is shown in the registration form.

Type

Field

Type

Usage

Type of the field. Depending on the type, different input controls are shown in the registration form. Also, different other options will be shown in TYPO3 Backend. Possible types are:

  • Simple Textfield
  • Multiline Textfield
  • Selectionbox
Options(Selectionbox)

Field

Options(Selectionbox)

Usage

Define the options to be shown in the selection box. Separate multiple options by “|”

Default value(all field types)

Field

Default value(all field types)

Usage

Default value for the field

Width(all field types)

Field

Width(all field types)

Usage

Width of the field

Height(Mutliline Textfield)

Field

Height(Mutliline Textfield)

Usage

Height for multiline textfield

Height(Selectionbox)

Field

Height(Selectionbox)

Usage

Height for selection box. Set to 1 to display a drop down selection, Set to greater than 1 to display a selection list with the given height.

Field contains number of participants(Simple Textfield)

Field

Field contains number of participants(Simple Textfield)

Usage

Indicates, that the field contains the number of participants which should be registered with this registration. If set, the value of this field will be taken as the number of participants for a registration. If no such field is contained in a fieldset for a registration, 1 participant is being counted per registration.

Field sets

User-defined fields are grouped into field sets. These field sets can be used for registrations.

You can create your own field sets by adding “Registration for calendar events: Field sets” records. Field sets need to be stored on the same Page/SysFolder where events and fields are stored. Alternatively they can be stored in the configured storage folder. Field sets can only use fields, which are stored in the same Page/SysFolder.

The record for a field set is displayed in the TYP3 Backend as following:

img-15 Illustration 13: Field set

Name

Field

Name

Usage

Name of the field. Used to select field set in event record.

Fields

Field

Fields

Usage

Select the user-defined fields to use in the fieldset here

Default field set

Field

Default field set

Usage

If set, this field set is being used as default fieldset. “Use default fieldset” is the default setting for the field set selection in the event record. If multiple field sets with this option set exist, this first one found will be used.

Set storage folder for fields and fieldsets

User-defined fields and fieldsets will first of all be be searched in the folder, containing the event records. In case you have your event records only on a single page/sysfolder, there is nothing else to do than store the field and fieldset records on this page/sysfolder, too.

If you are using multiple pages/sysfolders to store your events, you may want global fields and fieldsets for all events. In this case you can define the page id (pid) of a page/sysfolder from which fields and fieldgroups are used, too. This can be configured via the Extension Manager in the extension configuration of this extension.

img-16 Illustration 14: Extension Configuration in Extension Manager

After changing this settings it is required to clear the cache so that the changes become effective. FAQ ^^^

Even though I activated the registration feature, the single event view does not show the registration form.

Check if you are inside the registration period. Check if a frontend user has logged on

The registration form is being displayed well in the single event view, but the event list view does not show the registration possibility.

Read the section on enabling list view registration. Some changes need to be done in the list view templates to activate registration in event list view.

My user-defined field is not being shown in the registration form.

Did you include your user-defined field into a field set? Did you include it in the field set used for the registration for this event?

What happens if I change a field or field set after it has been used for a registration?

Nothing. Existing registrations will not be affected by changes on fields or field sets. For new registrations always the current definition of fields/field sets is being used.

I need an additional field type for my user-defined fields, how can I set it?

Currently it is not possible to define additional field types (except from modifying this extensions coding). If you have a good reason to add another field type, write an email and I'll see what I can do.

Administration

Enabling registration in event list view

To activate the registration feature in the event list view of the Calendar Base Extension, additional markers need to be included in the Calendar Base templates.

Marker for submit button

The marker ###MODULE__tx_register4cal_submit### inserts the submit button for the registration form. It should be added in the list template (default: EXT:cal/template/list/tmpl) in subpart “###LIST_TEMPLATE###”. The marker can be added twice to show the button both button on top and below the event list. Please notice the double underscore in the marker name after “MODULE”.

Example
<!-- ###LIST_TEMPLATE### begin -->

<!-- ###PAGEBROWSER### begin -->
<p class="pagebrowser">
###PAGEOF###  ###PAGES###  ###PREVIOUS### ###NEXT###
</p>
<!-- ###PAGEBROWSER### end -->

<h1>###HEADING###</h1>
###FOUND###
<!-- ###PRE_LIST_TEMPLATE### begin -->
###MODULE__tx_register4cal_submit###
<dl>
<!-- ###PRE_LIST_TEMPLATE### end -->
     <!-- ###LIST### start -->
     <!-- ###LIST### end -->
<!-- ###POST_LIST_TEMPLATE### begin -->
</dl>
###MODULE__tx_register4cal_submit###
<!-- ###POST_LIST_TEMPLATE### end -->

<!-- ###PAGEBROWSER### begin -->
<p class="pagebrowser">
###PAGEOF###  ###PAGES###  ###PREVIOUS### ###NEXT###
</p>
<!-- ###PAGEBROWSER### end -->

###CREATE_EVENT_LINK###
<!-- ###LIST_TEMPLATE### end -->
Marker for registration box

The marker “###MODULE_tx_register4cal_listreg” (notice the doule underscore after “MODULE”) inserts the registration box for each event. It needs to be added to the event template (default: EXT:cal/template/phpicalendar_event.tmpl, since Calendar Base 1.3.0 EXT:/cal/template/event_model.tmpl). There are several subparts for event display to which the marker should be added:

  • ###TEMPLATE_PHPICALENDAR_EVENT_LIST_ODD###
  • ###TEMPLATE_PHPICALENDAR_EVENT_LIST_EVEN###
  • ###TEMPLATE_PHPICALENDAR_EVENT_LIST_ODD_ALLDAY###
  • ###TEMPLATE_PHPICALENDAR_EVENT_LIST_EVEN_ALLDAY###
Example
<!-- ###TEMPLATE_PHPICALENDAR_EVENT_LIST_ODD### start -->
     <dt>
             <!-- ###EVENT_LINK### start-->###IMAGE### ###TITLE###<!-- ###EVENT_LINK### end--><br />
             ###STARTDATE### ###ENDDATE### <span class="V9G">###STARTTIME### ###ENDTIME###</span><br />
             ###MODULE__tx_register4cal_listreg###
             <br /><span class="V9G">###CATEGORY_LINK###</span>
     </dt>
     <dd>###DESCRIPTION###</dd>
<!-- ###TEMPLATE_PHPICALENDAR_EVENT_LIST_ODD### end -->
Example templates for Calendar Base

This extension contains modified templates for Calendar Base for the event list view. From version 1.4.0 on, cal contains a new set of templates, called “Standard”. The previously used templates are still contained and called “Classic”. The extension register4cal contains adapted templates for both the standard and the classic templates. These files can be found in EXT:register4cal/templates/cal_standard and EXT:register4cal/templates/cal_classic.

With some lines of TypoScript, you can use the template files from this folder, where the required markers for registration in event list view have been added already.

Typoscript
plugin.tx_cal_controller.view {
    list.listTemplate = EXT:register4cal/templates/cal_standard/list.tmpl
    event.eventModelTemplate = EXT:register4cal/templates/cal_standard/event_model.tmpl
}

Enabling fields for frontend editing

This extension supports the Calendar Base frontend editing of events. The additional fields related to the registraion feature can be added via markers to the template files of the Calendar Base extension. In addition, some TypoScript settings are required.

Adding static template

All TypoScript settings, related to Calendar Base frontend editing have been put into the static template “FE-Editing (register4cal)”. Ensure you have included this static template to your TypoScript template(s), so that the settings will be taken into account.

IMPORTANT: If you have other additional fields defined for Calendar Base frontend editing, you need to combine these settings manually with the settings of this extension.

Template files to modify

There are two templates which need to be modified. Please ensure that you add all markers to both files, as otherwise the fields wont work for frontend editing.

EXT:/cal/template/create_event.tmpl

File (Default)

EXT:/cal/template/create_event.tmpl

Usage

Event creation and modification template

EXT:/cal/template/confirm_event.tmpl

File (Default)

EXT:/cal/template/confirm_event.tmpl

Usage

Template for confirmation of event changes

Using rlmp_dateselectlib

This extension supports the extension rlmp_dateselectlib for front end editing. With rlmp_dateselectlib a date selector can be added to the “Start/End of registration period” fields. If you want to activate this feature perform the following steps:

  • Ensure the rlmp_dateselectlib extension is installed
  • Set the TypoScript setting plugin.tx_register4cal.edit.useDateSelector to 1
  • Configure the date selector in TypoScript section plugin.tx_register4cal.edit.calConf. The settings in this section are taken from the rlmp_dateselectlib extension, therefore please refer to the manual of rlmp_dateselectlib for further details on these settings

By default, the use of rlmp_dateselectlib is activated in this extension, so that the only task would be to install rlmp_dateselectlib.

Example templates for Calendar Base

This extension contains modified templates for Calendar Base for frontend editing. These files can be found in EXT:register4cal/templates/cal_standard and EXT:register4cal/templates/cal_classic. If you are using a Calendar Base version less than 1.4.0, use cal_classic. For version from 1.4.0 on, use cal_classic if you are using the “Classic” templates from Calendar Base and cal_standard for the “Standard” templates from Calendar Base.

With some lines of TypoScript, you can use the template files from this folder, where the required markers for frontend editing have been added already.

Typoscript
plugin.tx_cal_controller.view {
    create_event.template = EXT:register4cal/templates/cal_standard/create_event.tmpl
    edit_event.template = EXT:register4cal/templates/cal_standard/create_event.tmpl
    confirm_event.template = EXT:register4cal/templates/cal_standard/confirm_event.tmpl
    create_event.tabbedMenu {
     7 = TEXT
     7.dataWrap = <li><a href="" rel="sc7"><b>{LLL:EXT:register4cal/locallang_db.xml:tx_cal_event.tx_register4cal_tablabel}</b></a></li>
    }
    edit_event.tabbedMenu {
     7 = TEXT
     7.dataWrap = <li><a href="" rel="sc7"><b>{LLL:EXT:register4cal/locallang_db.xml:tx_cal_event.tx_register4cal_tablabel}</b></a></li>
    }
}

Telling users that they need to log in

By default no registration forms will be shown if no frontend user has logged in. You may want to change this, so that in this case an information will be shown and links to registration pages will be presented in event single view. It's not possible to use the “need to login” form for the event list view. To enable the “need to login” form, se the following TypoScript parameter:

plugin.tx_register4cal_pi1.needLoginForm.disable = 0

By default the form now shows two buttons:

  • Login using an existing account
  • Create an one-time account

Both buttons need some additional customizing.

Login using an existing account

To login with an existing account, usually the TYPO3 system extension felogin is being used. You need to set the following TypoScript parameters, which reside in the “plugin.tx_register4cal_pi1” section:

.needLoginForm.loginpid

Parameter

.needLoginForm.loginpid

Usage

Page id of page, containing the “Login” plugin from the felogin extension

.needLoginForm.loginreturnparam

Parameter

.needLoginForm.loginreturnparam

Usage

URL parameter name, telling the login plugin to which page the user should be forwarded, once he has logged in successfully. For felogin this is “redirect_url”.

If these parameters have been set properly, the user can click on the “Login using an existing account” button and will be forwarded to the login form. After sucessfully loggin in, he will be sent back the event single view where he can register.

Create an one-time account

This option requires the extension onetimeaccount to be setup and configured as described in it's manual.

In addition the following TypoScript parameters need to be set, which also reside in the “plugin.tx_register4cal_pi1” section:

.needLoginForm.onetimepid

Parameter

.needLoginForm.onetimepid

Usage

Page id of page, containing the “One-time FE account creator” plugin from the onetimeaccount extension

.needLoginForm.onetimereturnparam

Parameter

.needLoginForm.onetimereturnparam

Usage

URL parameter name, telling the plugin to which page the user should be forwarded, once he has created an account successfully. For onetimeaccount this is “redirect_url”.

If these parameters have been set properly, the user can click on the “Create an one-time account” button and will be forwarded to the account creation form. After sucessfully creating his account, he will be sent back to the event single view where he can register.

Display of users which have already registered during/after registration

It may be requested that a list of users which have already registered for an event should be displayed in the registration form. This functionality can be activated via TypoScript Parameters in section „plugin.tx_register4cal_pi1.showOtherRegisteredUsersAtRegistration“:

.enable

Parameter

.enable

Usage

Activates the display of other registered users (1=Active, 0=Inactive).Default: Inactive

.onlyAfterRegistration

Parameter

.onlyAfterRegistration

Usage

Configure if the list should only be displayed when an user has registered or if it will be displayed always. (1=Only after registration, 0=always). Default: Only after registration

.includeOwnRegistration

Parameter

.includeOwnRegistration

Usage

Show the own registration of an user in the list (1=Yes, 0=No). Default: Yes

.includeWaitlist

Parameter

.includeWaitlist

Usage

Show registrations on the waitlist in the list (1=Yes, 0=No). Default: No

.includeCancelled

Parameter

.includeCancelled

Usage

Show cancelled registrations in the list (1=Yes, 0=No). Default: No

As this function may lead to questions related to data privacy, every user can decide whether his data should be visible for other users or not during registration. For this purpose an additional checkbox will be displayed in the registration form if this functionality is activated. Other users get to see the data only, if the user ticked this checkbox. Differing from this the organizer of the event can see all registered users.

To configure the displayed data the section “OTHER_USERS_LIST” is available in the template, which encloses the complete List. Inside this section “OTHER_USER” encloses a single registration from another user. Inside this sections all markers available in the registration form can be used. It only needs to be considered, that all markers in this sections relate to the registration of the other user.

Though the checkbox to confirm that other users may see the registration is being displayed in the listview registration form, the list of other registrations is not supported there.

vCard files with participant or organizer information

From version 0.19.0 on register4cal can create vCard files containing participant or organizer information.

If the vCard functionality for participant information is active, a vCard file with participant information will be attached to the notification email sent to the organizer of an event.

If the vCard functionality for organizer information is active, a vCard file with organizer information will be attachet to the confirmation email sent to the participant.

For the list “Registrations for events of the frontend user”an additional marker “PARTICIPANTVCARDLINK” is available. It allows the download of a vCard filewith participant informationfrom the list.In the list “Registrations of the frontend user” the marker “ORGANIZERVCARDLINK” allows the download of a vCard file with organizer information.

The settings for this functionality are contained in the TypoScript sections “plugin.tx_register4cal_pi1.vcardParticipant” and “plugin.tx_register4cal_pi1.vcardOrganizer”

.enable

Parameter

.enable

Usage

Activation of vCard functionality (1=Active, 0=Inactive).Default: Active

.typeNum

Parameter

.typeNum

Usage

typeNum parameter used for the link to download vCard file.

The setup for the vCard download page is contained in the typoScript configuration of register4cal. As the same typeNum needs to be used there, the value is being read from constant plugin.tx_register4cal_pi1.vcard.typeNum. Therefore, you should not change this value here. Change the value of the constant instead.

typeNum parameters have to be unique in an Typo3 Installation. If the default value from register4cal is being used from another extension, you should change the value in register4cal. To do so, change the value of constant plugin.tx_register4cal_pi1.vcard.typeNum to any nummeric value that is not used by another page/extension.

Default: 159

.filename

Parameter

.filename

Usage

Filename for the generated vCard file

Default: participant.vcf / organizer.vcf

.fieldmapping

Parameter

.fieldmapping

Usage

Assignment of table fields to vCard fields.

Default values and detailed description can be found in the next section

Assignment of table fields to vcard fields

Inside the section “fieldmapping” in the vCard settings you can define, which table fields will be used for which fields in the vCard file. You can use fields from different tables, using for the registration:

Events

Table

Events

Setting to get field value

EVENT_[Feldname]

Event locations

Table

Event locations

Setting to get field value

LOCATION_[Feldname]

Event organizer

Table

Event organizer

Setting to get field value

ORGANIZER_[Feldname]

Frontend user

Table

Frontend user

Setting to get field value

USER_[Feldname]

Userdefined fields

Table

Userdefined fields

Setting to get field value

UDEF_[Feldname]

In a vCard file there are different types of fields:

  • Fields which appear once and have only a single value (e.g. name, date of birth, company, etc.)
  • Fields which appear multiple times and additionally have a type classification (phone, email, url and address)
Fields which appear only once

Simple Fields which appear only once are being assigned directly. The following values will be used as default:

::

a

plugin.tx_register4cal_pi1.vcardParticipant.fieldmapping {
        uid = USER_uid
        fullname = USER_name
        title = USER_title
        firstname = USER_first_name
        lastname = USER_last_name
        additionalnames = USER_middle_name
        nameprefix =
        namesuffix =
        nickname = USER_username
        birthday =
        organization = USER_company
        department =
        subdepartment =
        role =
        revision =
        geolocation =
        mailer =
        timezone =
}

This list is also a final List of the supported simple fields.

Fields for phone, email and URL

Phone numbers, email addresses and URLs can appear multiple times. They all have a value and additionally a type classification.

The sections for phone, email and URL have therefore several subsections. The value of each subsection is the phone number, email or URL. Inside the subsection the available type classifications are listed. Set a type classification to 1 to assign it to the value.

::

a

plugin.tx_register4cal_pi1.vcardParticipant.fieldmapping {
        phonenumbers {
                0 = USER_telephone
                0 {
                       PREF = 0
                        WORK = 0
                        HOME = 1
                        OTHER = 0
                        VOICE = 1
                        FAX = 0
                        MSG = 0
                        CELL = 0
                        CAR = 0
                }
                1 = USER_fax
                1 {
                        PREF = 0
                        WORK = 0
                        HOME = 1
                        OTHER = 0
                        VOICE = 0
                        FAX = 1
                        MSG = 0
                        CELL = 0
                       CAR = 0
                }
        }
        emails {
                0 = USER_email
                0 {
                        INTERNET = 0
                        HOME = 1
                        WORK = 0
                        OTHER = 0
                        PREF = 0
                }
        }
        urls {
                0 = USER_www
                0 {
                        WORK = 0
                        HOME = 1
                        OTHER = 0
                        PREF = 0
                }
        }
}
Fields for addresses

Addresses have the most complex structure. They can appear multiple times and each address has multiple fields and additionally a type classification, too. So addresses have multiple subsections, as well. However, the values of the fields will be assigned inside the subsections. The type classification is being done inside a section “type”,

::

a

plugin.tx_register4cal_pi1.vcardParticipant.fieldmapping {
        addresses {
                0 {
                        postofficeaddress =
                        extendedaddress =
                        street = USER_address
                        city = USER_city
                        zip = USER_zip
                        country = USER_country
                        type {
                                DOM = 0
                                INTL = 0
                                POSTAL = 0
                                PARCEL = 0
                                HOME = 1
                                WORK = 0
                        }
                }
        }
}

Configuration

The whole extension can be configured via TypoScript. All settings can be done in section “plugin.tx_register4cal_pi1”. Besides some general settings, these section contains the following subsections:

  • foreignUserRegistration: Settings related to the registration of foreign users by event organizers.
  • needLoginForm: Settings related to the form which informs about the necessarity to login if no frontend user has logged in.
  • email: Settings related to emails to be send from this extension.
  • vcardParticipant: Settings related to vCard files with participant information
  • vcardOrganizer: Settings related to vCard files with organizer information
  • forms: Settings related to forms displayed from this extension

Reference

General settings
templateFile

Property

templateFile

Data type

string

Description

Filename of the template file to use

Default

EXT:register4cal/templates/register.tmpl

dateformat

Property

dateformat

Data type

string

Description

Date format to use (pear syntax)

Default

%d.%m.%Y

timeformat

Property

timeformat

Data type

string

Description

Time format to use (pear syntax)

Default

%H:%M

disableWaitlist

Property

disableWaitlist

Data type

boolean

Description

Disable waitlist functionality

Default

0

disableUnregister

Property

disableUnregister

Data type

boolean

Description

Disable unregistering from events for users

Default

0

useWaitlistIfNotEnoughPlaces

Property

useWaitlistIfNotEnoughPlaces

Data type

boolean

Description

If an event has a limited number of places and an user tries to register more places than available, you can use this parameter to decide what should happen:

1: Instead of a registration a waitlist entry will be created. The user will be notified of this.

0: The user will receive an error that he can not register this much attendees. This also happens if the parameter is set to 1 and no waitlist is available for the event

Default

1

eventFillMode

Property

eventFillMode

Data type

integer

Description

Mode to fill up the event. Used in case someone has enlisted to the waitlist, because there are not enough places left for his registration (see parameter useWaitlistIfNotEnoughPlaces) and for updating waitlist entries to registrations if someone unregisters from the event.

1: First come first serve principle

Everyone else can also enlist to the waitlist only. Even if he requests to register less attendees, which would be possible as there are enough free places for the event, he can only create a waitlist entry because someone else came first. If any other user unregisters from the event, only the first waitlist entry will be checked and transferred to a normal registration if there are enough free places. Later entries in the waitlist will not be checked, even if they contain less attendees.

2: Maximum fill principle

Any other user can register for the event if there are enough places left, even if there are already entries on the waitlist. If an user unregisters the whole waitlist will be checked and any entry, having less or equal attendees than number of free places, will be transferred to a registration.

Default

1

keepUnregistered

Property

keepUnregistered

Data type

integer

Description

Keep registrations after unregistering. These registrations will be shown as “cancelled” for the event organizer.

Default

1

adminUsers

Property

adminUsers

Data type

integer

Description

id's of frontend users which will be treated as event organizers for every event.

Default

singleEventPid

Property

singleEventPid

Data type

integer

Description

page id of page used to show the event single view.

Default

[tsref:plugin.tx_register4cal_pi1]

Foreign user registrations

Settings related to the registration of foreign users by event organizers can be found in section “plugin.tx_register4cal_pi1.foreignUserRegistration”.

enable

Property

enable

Data type

boolean

Description

Enable or disable the registration of foreign users by event organizers

Default

0

allowOnlyGroups

Property

allowOnlyGroups

Data type

string

Description

List of groups, which need to be assigned to users that should be selectable as participants for foreign user registration. If set, only users having one of these groups assigned, will be shown for foreign user registration.

Default

denyGroups

Property

denyGroups

Data type

string

Description

List of groups whose users must not be selectable for foreign user registration. If set, users having one of these groups assigned, will not be shown for foreign user registration.

Default

[tsref:plugin.tx_register4cal_pi1.foreignUserRegistration]

Hint:

allowOnlyGroups overwrites denyGroups. If allowOnlyGroups is set, denyGroups will not be taken into account.

“need to login” form

Settings related to the form, informing visitors that they need to login can be found in section “plugin.tx_register4cal_pi1.needLoginForm”.

disable

Property

disable

Data type

boolean

Description

Enable or disable the display of the “need to login” form. If the form is disabled and no user has logged in, nothing will be displayed

Default

1

loginpid

Property

loginpid

Data type

integer

Description

page id of the page containing the login form for existing users (usually from system extension felogin)

Default

loginreturnparam

Property

loginreturnparam

Data type

string

Description

Name of parameter used to tell the login form who which page it should return after a successful login

Default

redirect_url

onetimepid

Property

onetimepid

Data type

integer

Description

page id of the page containing the login form for onetime accounts (from extension onetimeaccount)

Default

onetimereturnparam

Property

onetimereturnparam

Data type

string

Description

Name of parameter used to tell the onetime-account login form who which page it should return after a successful login

Default

redirect_url

[tsref:plugin.tx_register4cal_pi1.needLoginForm]

Sending emails

Settings related to emails sent from this extension can be found in section “plugin.tx_register4cal_pi1.emails”.

sendConfirmation

Property

sendConfirmation

Data type

boolean

Description

Enable or disable confirmation emails to be sent to the user registering for an event

Default

0

sendNotification

Property

sendNotification

Data type

boolean

Description

Enable or disable notification emails to be sent to the event organizer

Default

0

senderName

Property

senderName

Data type

string

Description

Plain text name which should be used as sender for the emails

Default

senderAddress

Property

senderAddress

Data type

string

Description

Email address which should be used as sender for the emails

Default

adminAddress

Property

adminAddress

Data type

string

Description

Email address where all registration emails should be send, too (e.g. event supervisor)

Default

[tsref:plugin.tx_register4cal_pi1.emails]

Vcard files with participant or organizer information

Settings related to vCardfiles containing the participant information can be found in section “plugin.tx_register4cal_pi1.vcardParticipant”.

Settings related to vCardfiles containing the organizer information can be found in section “plugin.tx_register4cal_pi1.vcardOrganizer”.

Both sections have the same structure.

enable

Property

enable

Data type

boolean

Description

Enable or disable the attachment of vCardfiles to notification emails

Default

1

filename

Property

filename

Data type

string

Description

Filename for attached vCardfile

Default

Participant.vcf

typeNum

Property

typeNum

Data type

integer

Description

Page typeNum for vCarddownload page.

IMPORTANT: Do not change this value here. Change in constants instead

Default

(Taken from constants)

fieldmapping

Property

fieldmapping

Data type

Description

Assignment of table fields to vCardfields.

See section “Administration” → “ vCardfiles with participant or organizer information” for details

Default

[tsref:plugin.tx_register4cal_pi1.vcardParticipant] / [tsref:plugin.tx_register4cal_pi1.vcardOrganizer]

Configuring output

All views can be configured via TypoScript in the “plugin.tx_register4cal_pi1.forms” section. There is a subsection for every form, allowing the configuration of this form.

single.default{}

Subsection

single.default{}

Form

Default settings, used from all “single.” subsections

single.noregister{}

Subsection

single.noregister{}

Form

Single event view: Notice that the event is fully booked

single.needLogin{}

Subsection

single.needLogin{}

Form

Single event view: Notice that the user needs to register

single.registration.enter{}

Subsection

single.registration.enter{}

Form

Single event view: Registration form for event

single.registration.alreadyDone{}

Subsection

single.registration.alreadyDone{}

Form

Single event view: Notice and data if user has already registered for an event

single.waitlist.enter{}

Subsection

single.waitlist.enter{}

Form

Single event view: Waitlist entry form for event

single.waitlist.alreadyDone{}

Subsection

single.waitlist.alreadyDone{}

Form

Single event view: Notice and data if user has already enlisted on waitlist for an event

list.default{}

Subsection

list.default{}

Form

Default settings, used from all “list.” subsections

list.submit{}

Subsection

list.submit{}

Form

Event list view: Section with submit button

list.registration.enter{}

Subsection

list.registration.enter{}

Form

Event list view: Registration form for event

list.registration.alreadyDone{}

Subsection

list.registration.alreadyDone{}

Form

Event list view: Notice and data if user has already registered for an event

list.waitlist.enter{}

Subsection

list.waitlist.enter{}

Form

Event list view: Waitlist entry form for event

list.waitlist.alreadyDone{}

Subsection

list.waitlist.alreadyDone{}

Form

Event list view: Notice and data if user has already enlisted on waitlist for an event

email.default{}

Subsection

email.default{}

Form

Default settings, used from all “email.” subsections

email.registration.enter.confirmation{}

Subsection

email.registration.enter.confirmation{}

Form

Email: Confirmation after registration

email.registration.enter.notification{}

Subsection

email.registration.enter.notification{}

Form

Email: Notification after registration

email.registration.enter.confirmation_rfu{}

Subsection

email.registration.enter.confirmation_rfu{}

Form

Email: Confirmation after registration by event organizer (register foreign user functionality)

email.registration.enter.notification_rfu{}

Subsection

email.registration.enter.notification_rfu{}

Form

Email: Notification after registration by event organizer (register foreign user functionality)

email.registration.cancel.confirmation{}

Subsection

email.registration.cancel.confirmation{}

Form

Email: Confirmation after canceled registration

email.registration.cancel.notification{}

Subsection

email.registration.cancel.notification{}

Form

Email: Notification after canceled registration

email.registration.cancel.confirmation_rfu{}

Subsection

email.registration.cancel.confirmation_rfu{}

Form

Email: Confirmation after registration canceled by event organizer (register foreign user functionality)

email.registration.cancel.notification_rfu{}

Subsection

email.registration.cancel.notification_rfu{}

Form

Email: Notification after registration canceled by event organizer (register foreign user functionality)

email.waitlist.enter.confirmation{}

Subsection

email.waitlist.enter.confirmation{}

Form

Email: Confirmation after enlisting to waitlist

email.waitlist.enter.notification{}

Subsection

email.waitlist.enter.notification{}

Form

Email: Notification after enlisting to waitlist

email.waitlist.enter.confirmation_rfu{}

Subsection

email.waitlist.enter.confirmation_rfu{}

Form

Email: Confirmation after enlisting to waitlist by event organizer (register foreign user functionality)

email.waitlist.enter.notification_rfu{}

Subsection

email.waitlist.enter.notification_rfu{}

Form

Email: Notification after enlisting to waitlist by event organizer (register foreign user functionality)

email.waitlist.cancel.confirmation{}

Subsection

email.waitlist.cancel.confirmation{}

Form

Email: Confirmation after canceled enlisting to waitlist

email.waitlist.cancel.notification{}

Subsection

email.waitlist.cancel.notification{}

Form

Email: Notification after canceled enlisting to waitlist

email.waitlist.cancel.confirmation_rfu{}

Subsection

email.waitlist.cancel.confirmation_rfu{}

Form

Email: Confirmation after enlisting to waitlist canceled by event organizer (register foreign user functionality)

email.waitlist.cancel.notification_rfu{}

Subsection

email.waitlist.cancel.notification_rfu{}

Form

Email: Notification after enlisting to waitlist canceled by event organizer (register foreign user functionality)

email.waitlist.upgrade.confirmation{}

Subsection

email.waitlist.upgrade.confirmation{}

Form

Email: Confirmation after waitlist entry upgraded to registration

email.waitlist.upgrade.notification{}

Subsection

email.waitlist.upgrade.notification{}

Form

Email: Notification after waitlist entry upgraded to registration

listOutput.events{}

Subsection

listOutput.events{}

Form

List of events for which an frontend user registered

listOutput.attendees{}

Subsection

listOutput.attendees{}

Form

List of participants for the event organizers

listOutput.registerForeignUser{}

Subsection

listOutput.registerForeignUser{}

Form

Registering foreign users for the event organizer

In this sections the following properties are possible:

subtemplate

Property

subtemplate

Data type

string

Description

Name of the subpart of the template file used to render the form

Can be used in

all forms

messagetype_i

Property

messagetype_i

Data type

wrap

Description

Possibility to wrap a single message of type “information”

Can be used in

single event and event list registration forms

messagetype_e

Property

messagetype_e

Data type

wrap

Description

Possibility to wrap a single message of type “error”

Can be used in

single event and event list registration forms

messages

Property

messages

Data type

wrap

Description

Possibility to wrap all messages

Can be used in

single event and event list registration forms

userfield

Property

userfield

Data type

wrap

Description

Possibility to add a wrap to a single user-defined field. You can use “###CAPTION###” to insert the caption if the field

Can be used in

all forms

fields

Property

fields

Data type

wrap

Description

Possibility to wrap all user-defined fields

Can be used in

all forms

eventcheckbox

Property

eventcheckbox

Data type

wrap

Description

Possibility to wrap the event selection checkbox

Can be used in

event list registration forms

submitbutton

Property

submitbutton

Data type

wrap

Description

Possibility to wrap the submit button

Can be used in

single event and event list registration forms

userselection

Property

userselection

Data type

wrap

Description

Possibility to wrap the user selection

Can be used in

register foreign user form

foreignuserregistration

Property

foreignuserregistration

Data type

wrap

Description

Possibility to wrap the single event registration form if used for registering a foreign user

Can be used in

register foreign user form

adminpanel

Property

adminpanel

Data type

wrap

Description

Possibility to wrap the admin-panel functions

Can be used in

list of attendees

subject

Property

subject

Data type

wrap

Description

Subject line for emails

Can be used in

emails

[any other property]

Property

[any other property]

Data type

wrap

Description

Possibility to wrap a marker in the template. Marker names will be converted into lower case and if a matching property exists, if will be used for wrapping.

Can be used in

all forms

Markers for templates

Data from event, location, organizer and user tables

All fields from tables containing event, location, organizer and user data can be used via markers.

Events

Table

Events

Marker for data

EVENT_[fieldname]

Marker for label

LABEL_EVENT_[fieldname]

Event Location

Table

Event Location

Marker for data

LOCATION_[fieldname]

Marker for label

LABEL_LOCATION_[fieldname]

Event Organizer

Table

Event Organizer

Marker for data

ORGANIZER_[fieldname]

Marker for label

LABEL_ORGANIZER_[fieldname]

Frontend-User

Table

Frontend-User

Marker for data

USER_[fieldname]

Marker for label

LABEL_USER_[fieldname]

User-defined fields

Table

User-defined fields

Marker for data

UDEF_[fieldname]

Marker for label

LABEL_UDEF_[fieldname]

When using user-defined fields please notice, that they can only be used if they are contained in the fieldgroup assigned to the event.

Additionaly, the following markers can be used:

Start of event (formated)

Function

Start of event (formated)

Marker for data

EVENT_formated_start

Marker for label

LABEL_EVENT_formated_start

End of event (formated)

Function

End of event (formated)

Marker for data

EVENT_formated_end

Marker for label

LABEL_EVENT_formated_end

Name of event organizer (independent if he has been entered manually

Function

Name of event organizer (independent if he has been entered manually or assigned via an organizer record)

Marker for data

EVENT_organizer_name

Marker for label

LABEL_EVENT_organizer_name

Email of event organizer (independent if he has been entered manually

Function

Email of event organizer (independent if he has been entered manually or assigned via an organizer record)

Marker for data

EVENT_organizer_email

Marker for label

LABEL_EVENT_organizer_email

Registration in list view: Checkbox vor selecting events

Function

Registration in list view: Checkbox vor selecting events

Marker for data

EVENT_CHECKBOX

Marker for label

Number of places for an event

Function

Number of places for an event

Marker for data

MAXATTENDEES

Marker for label

LABEL_maxattendees

Number of currently booked places for an event.

Function

Number of currently booked places for an event.

Marker for data

NUMATTENDEES

Marker for label

LABEL_numattendees

Number of waitlist entries for an event

Function

Number of waitlist entries for an event

Marker for data

NUMWAITLIST

Marker for label

LABEL_numwaitlist

Number of free places for an event

Function

Number of free places for an event

Marker for data

NUMFREE

Marker for label

LABEL_numfree

Section with user-defined fields

Function

Section with user-defined fields

Marker for data

FIELDS

Marker for label

Submitbutton

Function

Submitbutton

Marker for data

SUBMITBUTTON

Marker for label

LABEL_submitbutton

Section with messages

Function

Section with messages

Marker for data

MESSAGES

Marker for label

Status of registration

Function

Status of registration

Marker for data

STATUS

Marker for label

LABEL_status

Registration in List view: Label for register/unregister box

Function

Registration in List view: Label for register/unregister box

Marker for data

TITLE

Marker for label

Unregistration on list view: Message for checkbox

Function

Unregistration on list view: Message for checkbox

Marker for data

UNREGISTERME

Marker for label

Admin-Panel for list of registrations for an event

Function

Admin-Panel for list of registrations for an event

Marker for data

ADMINPANEL

Marker for label

LABEL_admin_title

Foreign user registration: Select field for users

Function

Foreign user registration: Select field for users

Marker for data

USERSELECTION

Marker for label

Foreign user registration: Registration form

Function

Foreign user registration: Registration form

Marker for data

FOREIGNUSERREGISTRATION

Marker for label

Any other markers and labels

If for an marker “LABEL_*” no definition can be found, the text for object “label_*” from the language file EXT:register4cal/view/locallang.xml will be used.

If for an marker * no definition could be found, it is checked if a property with the same name (but lowercase) exists in the TypoScript section for the form. If this is the case, this property will be used as wrap for the marker.

Changing texts with TypoScript

If it is required to change texts from the language file EXT:register4cal/view/locallang.xml, you should not simply change this file. Changes would be lost if a new version of this extension is installed.

Instead, TYPO3 offers an easy way to change texts via TypoScript. There are two different types of texts which require different additions in TypoScript to change then.

Texts used from TypoScript

Mosts texts in the forms are directly set in TypoScript using the following form of TypoScript coding:

plugin.tx_register4cal_pi1.[something].dataWrap = {LLL:EXT:register4cal/view/locallang.xml:[text_name]}

To change such texts, just replace the default value from the TypoScript template your new text:

plugin.tx_register4cal_pi1.[something].dataWrap = [new text]

If you are familiar with Typo3 language files, and need to change a lot of texts, you may also create your own language file and use it instead of the default file. Using this method eases the changes for multilanguage sites. Conditions, changing texts for each language differently are not required. Only one value needs to be changed in TypoScript:

plugin.tx_register4cal_pi1.[something].dataWrap = {LLL:path/to/your/locallang.xml:[text_name]}
Texts used from Coding

Other texts, which are used from the coding, can be changed by adding substitution texts in TypoScript setup. To change a text, add the following line to your TypoScript coding:

plugin.tx_register4cal_pi1._LOCAL_LANG.[language].[text_name] = [new text]

Where [language] is the language, in which the text should be changed (e. g. „default“ for english, „de“ for german). [text_name] is the name of the text to be changed and [new text] is the new text.

Known problems

Currently, no major problems are known.

For other issues, requested features and so on, please see the project page at forge.typo3.org . If you encounter problems, please do not hesitate to create a bug message there.

To-Do list

  • A backend module should be included which allows the display/management of registrations
  • A task for the TYPO3 scheduler should enable the deletion of registrations for past events
  • Created HTML coding should include css classes/ids to ease formatting of elements in frontend display
  • Several hooks could be implemented to enable the use of other types of userdefined fields
  • Localize error messages

If you require further features, please do not hesitate to create a feature request on the project page at forge.typo3.org .

ChangeLog

The ChangeLog can be found online in the extension repository via the following link .

img-2 28