Translations
Info
All page names need to be in English.
en da  de  fr  it  ja  km  nl  ru  zh

Ext rlmp eventdb - Events database

From TYPO3Wiki
Jump to: navigation, search

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/openpub/


The content of this document is related to TYPO3

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


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” - Renders a list view of events
“eventsearch” - Renders a listview with a search form on top
“single” - Renders the single view of an event


Example: plugin.tx_rlmpeventdb.viewMode = eventlist

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 {
sender = noreply@typo3.org
}

subject stdWrap The subject line for confirmation emails.

Example: plugin.tx_rlmpeventdb.registration.confirmationMail {
subject = Your registration
subject.lang.de = Ihre Anmeldung
}

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 {
sender = noreply@typo3.org
}

subject stdWrap The subject line for notification emails.

Example: plugin.tx_rlmpeventdb.registration.notificationMail {
subject = New registration!
subject.lang.de = Neue Anmeldung!
}

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 {
recipient = admin1@typo3.xy, admin2@typo3.xy
}

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
  • if registration is yet / still open
  • if registration is possible for the currently logged in or anonymous frontend user [FIXME: NOT IMPLEMENTED YET!]
  • if the maximum number of participants is not reached yet or a waiting list exists


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.