Ext rlmp eventdb - Events database
From TYPO3Wiki
Contents |
EXT: Event Database
Extension Key: rlmp_eventdb Copyright 2003-2005, rl@robertlemke.de, <rl@robertlemke.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.com
Table of Contents
EXT: Event Database 1
- Introduction 1
- What does it do? 1
- Key features 1
- Live example 2
- Sponsorship and donations 2
- Installation 2
- Basic setup and configuration 2
- Overview 2
- Preparations 3
- Create categories and locations 3
- Create events 3
- TemplaVoila: Map the template 3
- Classic templating 3
- Insert and configure the frontend plugin 3
- Advanced settings 3
- Additional roles: agents and administrators 3
- Customize notification and confirmation emails 3
- Customize event data 3
- Customize registration screens 3
- Configure payment methods 3
- Reference 3
- Development 7
- User's manual 7
- Introduction 7
- Creating categories 7
- Creating locations 7
- Creating events 7
- Managing registrations 7
- Managing payments 7
- Appendix A: Upgrading from version 0.x.x 7
- Introduction 7
- Modify data structure 7
- Installation 7
- Appendix B: Payment 8
- Introduction 8
- Changelog 8
Introduction
What does it do?
This extension contains a frontend plugin for displaying re-ocurring events on your website. It was written for Tourismus-Service Scharbeutz, the touristic department of some small city at the Baltic Sea. Version 1.0.0 was a complete rewrite of the extension which adds much flexibilty and new features like registration and payment management for events. The event database extension supports two different templating methods, the classic and the TemplaVoila approach. It works with TYPO3 3.7.0 > and TemplaVoila 0.3.0 > and was cleanly coded according to the TYPO3 Coding Guidelines.
Important notice:
If you want to upgrade from an earlier version (below 1.0.0), please read the chapter Upgrading from version 0.x.x which contains important information.
Key features
These are the key features of rlmp_eventdb version 1.0.0:
- Intelligent support for TemplaVoila templating, detailed and highly customizable single views of events with sub menu items. Fallback mode for classic templating.
- Support for bookable events with configurable multi-step registration wizard
- Support for different payment methods and payment handling (based on paymentlib, requires PHP5)
- Flexform-based event records with many new properties, among them:
event id, categories, location, description, pages / content elements containing more information, frequency and dates, registration enabled, term of registration, minimum / maximum participants, wait-list, freely configurable bookable features, payment methods, layout settings, email addresses for notifications, frontend user handling plus 5 customizable fields. - Frontend plugin with search-, list- and single view, each configurable by the plugin options dialog or TypoScript.
- Single view with additional sub views, including registration and participant list
- Backend module with overview of events and registration / payment management
- Currently fully supporting German and English.
Live example
For a live working example, visit www.scharbeutz.de (section: Events, or german: Veranstaltungen). Note that usually there are more events in the german version than for the english speaking visitors.
Sponsorship and donations
Although a big part of the development has been paid by the Tourismus Service Scharbeutz, I invested almost double the time again in order to make this extension general and solid enough so others can also use it for their projects. If this extension helped you making a great website and you liked my work, please consider a donation to sponsor a part of the development already done. More information about sponsorship and the further development of this extension can be found at http://robertlemke.de/en/resources/extensions.html
Installation
The Event Database requires some other extensions to be installed. Just download and install the following extensions in the given order from the TYPO3 extension repository:
| Extension Key | Extension Name | Required Version | Purpose |
| tx_address | Addresses | any | tx_address is a vCard compatible replacement for tt_address and is used for saving address data |
| tx_frondendformslib | Frontend Forms Code Library | any | The Frontend Forms Code Library is used for rendering the forms for registratration for events |
| tx_overlib | OverLib | any | OverLib is a DHTML code library for displaying nice tool tips |
| tx_rlmpdateselectlib | Date Selector Code Library | any | Provides a DHTML date selector |
Important notice:
If you want to upgrade from an earlier version (below 1.0.0), please read the chapter Upgrading from version 0.x.x which contains important information.
These extensions are neccessary for a basic installation. If you want to use the payment features for registration handling, please have a look at the appendix Payment.
Basic setup and configuration
Overview
This section describes a basic setup of the event database. Generally you have to decide if you want to use TemplaVoila or the classic templating approach before setting up this extension, both methods are supported but TemplaVoila offers more flexibility and is easier to use. If TemplaVoila is installed, it will be used automatically.
Preparations
Create categories and locations
Create events
TemplaVoila: Map the template
Classic templating
Insert and configure the frontend plugin
Advanced settings
Additional roles: agents and administrators
Customize notification and confirmation emails
Customize event data
Customize registration screens
Configure payment methods
Reference
'plugin.tx_rlmpeventdb properties: TS configuratio'n
| Property: | Data type: | Description: | Default: |
| General Settings: | |||
| viewMode | string / stdWrap | Code to define what view should be rendered. You may override this setting by choosing a different value directly in the Insert Plugin content element.
Possible values:
| eventlist |
| showCategories | |||
| pidList | list of integer | Comma separated list of page UIDs which contain event records and should be taken into account when rendering the list- or search-view.
Example: plugin.tx_rlmpeventdb.pidList = 32,37 | |
| recursive | boolean | ||
| defaultPaymentMethods | string / stdWrap | Comma separated list of payment method keys which sets the by default available payment methods for all events. Selection of payment methods in the event record overrides this setting.
Note: This property only has an effect if the extension paymentlib and at least one payment method is installed. Example: plugin.tx_rlmpeventdb.defaultPaymentMethods = paymentlib_ipayment_cc_visa2,paymentlib_ipayment_cc_mastercard | |
| Registration:: | |||
| addressPid | integer | Page ID, typically of a sysfolder, of a page containing existing and newly created address records.
Example: plugin.tx_rlmpeventdb.registration.addressPid = 26 | |
| FEuserPid | integer | Page ID, typically of a sysfolder, of a page containing existing and newly created frontend user records.
Example: plugin.tx_rlmpeventdb.registration.FEuserPid = 28 | |
| confirmationPopupHeaderInclude | cObj | A content object which renders some content to be inserted as a header in the popup window containing the confirmation of a registration.
Example: plugin.tx_rlmpeventdb.registration { confirmationPopupHeaderInclude = FILE confirmationPopupHeaderInclude.file = myHeader.html } | |
| agentUserGroupId | integer | ID of the agents frontend user group. All frontend users being member of this group will be considered as agents.
Example: plugin.tx_rlmpeventdb.registration.agentUserGroupId = 2 | |
| requiresLogin | integer | This option controls access to registration for events in general. Depending on the value, a login is required in order to register for an event:
0 = does not require a login 1 = requires any logged in FE user 2 = requires logged in agent Example: plugin.tx_rlmpeventdb.registration.requiresLogin = 2 | 0 |
| registration.confirmationMail | |||
| sender | string | Sender email address for confirmation emails.
Example:
plugin.tx_rlmpeventdb.registration.confirmationMail { | |
| subject | stdWrap | The subject line for confirmation emails.
Example:
plugin.tx_rlmpeventdb.registration.confirmationMail { | |
| template | cObj | Template for the message body. Can be overriden by the event record.
Example: plugin.tx_rlmpeventdb.registration.confirmationMail { template = FILE template.file = EXT:rlmp_eventdb/res/confirmation-mail.txt } | see example |
| registration.notificationMail | |||
| sender | string | Sender email address for notification emails.
Example:
plugin.tx_rlmpeventdb.registration.notificationMail { | |
| subject | stdWrap | The subject line for notification emails.
Example:
plugin.tx_rlmpeventdb.registration.notificationMail { | |
| template | cObj | Template for the message body. Can be overriden by the event record.
Example: plugin.tx_rlmpeventdb.registration.notificationMail { template = FILE template.file = EXT:rlmp_eventdb/res/notification-mail.txt } | see example |
| recipient | stdWrap | Recipient(s) for notification emails. You can override this setting via the event record.
Example:
plugin.tx_rlmpeventdb.registration.notificationMail { | |
| registration.steps | |||
| features.infoText | stdWrap | This text will be displayed before the first field of the features form. The special stdWrap property current contains the content of the infotext field from the event record.The following example also reflects the default setting.
Example: plugin.tx_rlmpeventdb.registration.steps { features {
infoText.current = 1
infoText.wrap = |
} | see example
|
| address.infoText | stdWrap | This text will be displayed before the first field of the address / personal data form. The special stdWrap property current contains the content of the infotext field from the event record.
The following example also reflects the default setting. Example: plugin.tx_rlmpeventdb.registration.steps { address {
infoText =
infoText.wrap = |
} | see example
|
| address.fieldList | stdWrap | With this option you may define the fields which are shown in the registration step “Address”. All field names must exist in the table tx_address_addresses and have a proper TCA configuration (which is the case by default).
By prepending a field name with an asterisk (*) you can define that entering data for this field is required, regardless of the original TCA configuration. By using standard TypoScript techniques you even can control the requirement of certain fields depending on user logins! Example: plugin.tx_rlmpeventdb_pi1.registration.steps { address {
fieldList = *first_name, *last_name, home_street, home_zip, home_city, home_country, tel_home1_voice, email
}
} | see example |
| paymentmethod.infoText | stdWrap | This text will be displayed before the payment details form. The special stdWrap property current contains the a default localized info text.
The following example also reflects the default setting. Example: plugin.tx_rlmpeventdb.registration.steps { paymentmethod {
infoText.current = 1
infoText.wrap = |
} | see example
|
| remarks.infoText | stdWrap | This text will be displayed before the first remarks form. The special stdWrap property current contains the content of the infotext field from the event record.
The following example also reflects the default setting. Example: plugin.tx_rlmpeventdb.registration.steps { remarks {
infoText =
infoText.wrap = |
} | see example
|
| overview.infoText | stdWrap | This text will be displayed before the overview screen. The special stdWrap property current contains a message asking the user to check the details of the booked features before finally submitting the registration form.
The following example also reflects the default setting. Example: plugin.tx_rlmpeventdb.registration.steps { overview {
infoText.current = 1
infoText.wrap = |
} | see example
|
| participantsList | |||
| adminUserGroupId | integer | UID of the user group for administrators of the list of participants | |
| requiresLogin | integer | 0 = does not require a login
1 = requires any logged in FE user 2 = requires logged in list admin | 2 |
| listView: | |||
| results_at_a_time | 10 | ||
| maxPages | 10 | ||
| displayIcons | |||
| showTodayMessage | boolean | 1 | |
| listView.displayConditions: | |||
| registrationEnabled | boolean | Only show those events for which the registration was enabled. | 0 |
| registrationPossible | boolean | Only show those events for which the registration was enabled and is (still) possible. This option checks
| 0 |
| singleView | |||
| menu | cObj | USER | |
| name | cObj | USER | |
| frequency | cObj | USER | |
| features | cObj | USER | |
| termofreservation | cObj | USER | |
| numberofparticipants | cObj | USER | |
| user1 | cObj | USER | |
| user2 | cObj | USER | |
| user3 | cObj | USER | |
| user4 | cObj | USER | |
| user5 | cObj | USER |
[tsref:plugin.tx_rlmpeventdb]
Development
This section contains documentation for the development of the event extension itfself, but it might also be interesting for others.
User's manual
Introduction
Creating categories
Creating locations
Creating events
Managing registrations
Managing payments
Appendix A: Upgrading from version 0.x.x
Introduction
READ THIS SECTION '''BEFORE''' INSTALLING THE NEW VERSION!
As mentioned, version 1.0.0 was a major overhaul of the event database extension which includes many new features and some changes in the data structure as well as the TypoScript. This section gives you a step-by-step guideline how you can upgrade to version 1.x.x and keeping your existing data from earlier versions.
Modify data structure
Before upgrading or installing the new version of the rlmp_eventdb extension, the table / field structure has to be modified a bit. Just go to phpMyAdmin or your favourite SQL client and execute this SQL query:
ALTER TABLE `tx_rlmpeventdb_events` CHANGE `location` `locationid` INT(11) UNSIGNED DEFAULT '0' NOT NULL;
ALTER TABLE `tx_rlmpeventdb_events` CHANGE `shortdescription` `name` tinytext NOT NULL;
ALTER TABLE `tx_rlmpeventdb_events` CHANGE `description` `teasertext` text NOT NULL;
Installation
Now you are ready to install (i.e. upgrade) the rlmp_eventdb extension with the Extension Manager. A bunch of new fields and tables will be created, just confirm this creation as it won't overwrite any of your existing data. After successful installation you should enter the install tool, go to the “Database Analyzer” section, choose “compare” and drop the fields which are not used anymore: [FIXME: Screenshot install tool]
After installing the new version you have
Next steps:
- Edit all frontend plugins (because now uses flexforms)
Appendix B: Payment
Introduction
The event database offers an integration of the extension paymentlib. By using these features you will be able to offer different payment methods for the registration of your events. You may choose for each event separately which payment methods are available and if payment is required at all. To enable payment functionality you have to install the Payment Code Library (paymentlib) and at least one payment implementation which supports a specific payment provider. Please refer to the paymentlib manual how to install and configure the different extensions.
Changelog
Version 0.x.x to 1.0.0
- Basically a complete rewrite! Now supports all modern features like FlexForms, database abstraction etc.
- !!! Fields events.remarks, events.description and events.picture will not be displayed anymore and won't be supported in the future. Instead we now use content elements and pages.
- !!! The tt_content fields for configuring categories and display mode for the frontend plugin are replaced by flexforms. That means you will have to edit each “Insert Plugin” content element where you use the event database and update configuration (which you want to do anyways).
- Because too many labels changed, I deleted the Finnish and Swedish translation so we get a clean start.
