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 |
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
Table of Contents¶
EXT: Registrations for calendar events 1
`Introduction 3 <#__RefHeading__597_932349152>`_
`Installation 7 <#__RefHeading__1581_2124461809>`_
Adapt TypoScript settings to your needs 7
Recommended: Adapt settings for “calendar base” extension 7
`Users manual 8 <#__RefHeading__1593_2124461809>`_
Activate the registration for an event 8
Linking Calender Event Organizers and Frontend Users/Groups 9
Set storage folder for fields and fieldsets 11
`Administration 13 <#__RefHeading__607_932349152>`_
Enabling registration in event list view 13
Enabling fields for frontend editing 14
Telling users that they need to log in 15
Display of users which have already registered during/after registration 16
Vcard files with participant information 17
`Configuration 20 <#__RefHeading__611_932349152>`_
Changing texts with TypoScript 24
`Known problems 26 <#__RefHeading__619_932349152>`_
`To-Do list 27 <#__RefHeading__621_932349152>`_
`ChangeLog 28 <#__RefHeading__623_932349152>`_
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¶
Illustration 1: Activate registration in backend
Illustration 2: Settings for a userdefined field
Illustration 3: Single event view with registration form
Illustration 4: List of events for which the current frontend user has registered
Illustration 5: Event list view with registration box attached to event
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.
Recommended: Adapt settings for “calendar base” extension¶
To find out, which frontend users are organizers for events, this extension expands the organizer records of the Calendar Base extension, so that frontend users can be assigned. But the Calendar Base extension also provide the possibility to assign freely typed in organizers for events. For events, which have a freely typed in organizer, this extension can not determine the matching frontend user. Therefore the organizer textfield should not be used for calender events.
The Calendar Base extension provides the possibility to hide the organizer textfield. For this extension it is recommended to activate this option. If you wish to do so, log on to the TYPO3 Backend and go to “Ext. Manager” → “Loaded extension”. Click on the Frontend Plugin “Calendar Base”. In the “Enable features” section, you will find an option “Hide organizer textfield”. Activate it and click on the “Update” button.
Illustration 7: Calendar Base setting "Hide organizer textfield"
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.
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:
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.
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:
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:
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.
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:
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.
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
onetimeaccountlink¶
Property
onetimeaccountlink
Data type
wrap
Description
Possibility to wrap the link for onetime-account creation
Can be used in
single event registration forms
loginlink¶
Property
loginlink
Data type
wrap
Description
Possibility to wrap the link for normal login
Can be used in
single event 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:
Link to event single view¶
Function
Link to event single view
Marker for data
EVENT_link
Marker for label
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
Link to current page¶
Function
Link to current page
Marker for data
LINK
Marker for label
Link to page with login form¶
Function
Link to page with login form
Marker for data
LOGINLINK
Marker for label
LABEL_login
Link to page with form to create an onetime-account¶
Function
Link to page with form to create an onetime-account
Marker for data
ONETIMEACCOUNTLINK
Marker for label
LABEL_onetimeaccount
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
List “Registrations for events of the frontend user”: Link to vCard¶
Function
List “Registrations for events of the frontend user”: Link to vCard file with participant information
Marker for data
PARTICIPANTVCARDLINK
Marker for label
List “Registrations of the frontend user”: Link to vCard file with¶
Function
List “Registrations of the frontend user”: Link to vCard file with organizer information
Marker for data
ORGANIZERVCARDLINK
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 .
28