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: abcourses¶
Author: | Kasper Skårhøj |
---|---|
Created: | 2002-11-01T00:32:00 |
Changed by: | Stefan Precht |
Changed: | 2009-12-02T22:21:07 |
Author: | Stefan Precht |
Email: | sprecht@gmx.de |
Info 3: | |
Info 4: |
EXT: abcourses¶
Extension Key: abcourses
Copyright 2005-2008, Stefan Precht, <sprecht@gmx.de> and Andreas Behrens, <behrens@b-networks.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: abcourses 1
Introduction 1
What does it do? 1
About the developing 2
Screen shots 2
Key-Features 4
Available content records 4
Category 4
Course 4
Course type 5
Teaching aids 5
Trainer 5
Event 5
Location 6
Category 6
Hotel 6
Arrangements 6
Available views 6
Categories overview 6
Mini search-box 7
Search result list 7
Detail view 8
Subscribe view 8
Last minute short 9
Last minute detailed 9
Category overview and a listing of current events 9
Overview of selected events 10
Detail search 10
Overview of selected categories 10
Installation 10
You should start with this 10
The TS configuration 12
plugin.tx_abcourses_pi1 12
TS for “Category overview” 15
TS for “Courses in category” 15
TS for “Quicksearch” 15
TS for “Resultlist” 15
TS for view-type “Detail” 16
TS for view-type “Subscribe” 16
TS for view-type “Category overview with next courses” 18
TS for view-type “Selected events” 18
Template structure of the different view-types 18
Template marker for records / general 18
Generally available markers 18
All category fields 21
All course fields 21
All event fields 22
All trainer fields 23
All location fields 23
All page fields 23
All hotel fields 23
All arrangement fields 23
All teaching aid fields 24
All conditions fields 25
Special content 25
The manual location selector 25
The subscription hook 25
The displayDetail Hook 25
The fillAllLabels Hook 25
How to change the subscription form 25
What you should know about the email template 26
Known problems 28
To-Do list 28
Changelog 28
Introduction¶
What does it do?¶
abcourses is an extension for offering your seminars, courses, or appointments in various ways. This extension aims to be compatible with the most requirements. So if you are looking for an extension to offer many courses and appointments, this extension is made for you. But if you need a solution which can be used right after installation (like plug'n play) than this is the wrong one. Abcourse is really flexible and it takes you some time to get in to it.
About the development¶
SYMPLASSON http://www.symplasson.de/ started the development of this extension in close collaboration with @b-networks http://www.ab-networks.de/ in 2005 to create a solution for offering different courses with several thousand appointments a year.
Since then, the development was continued along our customers requirements or our own ideas.
This extension is still under further development (if requested ;-) ) and is supported by Andreas Behrens (@b-networks; behrens@b-networks.de , Lüneburg, Germany) as well as by Stefan Precht ( sprecht@gmx.de , Hamburg, Germany)
Many people supported this extension within the last years. Independent from if it were just ideas, debugging or anything else. Here we want to say “thanks” for supporting the development to:
- IBS Schreiber Gmbh ( http://www.ibs-hamburg.com )
- Tallence GmbH ( http://www.tallence.com )
- Kanton Basel-Landschaft ( http://
:underline:`www.baselland.ch
<http://www.baselland.ch/>`_ ) - as well as to all the others ...
Screen shots¶
You will find some more screen shots associated to the different views later in this documentation. These few screens are just for a small overview.
Important notice:
The information as displayed on this sample screens are only for demonstrating the possible look and feel of this extension. Description and content of courses are test-data, just like shown prices or other informations!
Abbildung 1: Sample view of course details
Abbildung 2: Another detail view. Highlighted area on the right is rendered by the Last-Minute short overview
Abbildung 3: Sample of a start screen. The input field is rendered with the search-view, the colored boxes are rendered with the category overview. Other parts are normal text content elements.
Key-Features¶
By combining the different views on an page, you have various possibilities to advertise your offered courses. In the list below you will find some of the features not necessarily to derive from the available views.
content types for categories, courses, course types, events, trainers, skill level, teaching aids, accommodations, arrangements for accommodation and locations
- 10 different view-type's available
- each view is completely template based and it is up to you on which standard you want to implement them (HTML ||XHTML)
- the search plug-in can be combined with the result page of the indexed_search (both catch the param. “sword”)
- calculated prices can be shown with or without VAT, based on configurable input type and VAT value (the opposite value is then computed)
- subscribing to events generates template based confirmation e-mails to a defined recipient and, if activated, to the subscriber
- there is a hook implemented during subscribing process with references to the pi1 of abcourses an the used proxy class. So it is possible to interface an external application
- you can switch on a contingent management for limiting the number of subscriptions to a certain number (for each event)
- internally usage of a proxy class
- to configure abcourses you can make some settings about a flex form but the most important values are configurable with TS too
- you can use the flex form configuration to assign each abcourses PlugIn on the same page with different template files
- configurable output format of shown dates and time
- there is a special feature to look up the changed URL of the detail- view. Just in case your page works with realurl and you moved the page where your detail-view PlugIn is on. (useful for SEO efforts)
- you can enter a date value (start / stop) for each event, if you want to limit the registration to a specific date range
- there is a documentation available in the BE for the most important input values
- server side input validation of the subscribing form as configured via TS
Available content records¶
In this chapter I want to introduce the available records coming with the installation of abcourses and their possible attributes.
Category¶
Courses are associated with categories. For a category you can enter a title, a description and you can upload an image for representing the category.
Course¶
For a course you can enter the following:
- number
- title
- subtitle
- associate a category (category 1 : n courses)
- associate a type (type 1 : n courses)
- associate teaching aids (teaching aids n : m courses)
- teaser
- description
- associate pages with e.g. further informations
- upload files as an associated download for a course (max. 5)
- associate trainers (n : m)
- skill level (represented with a small icon)
- educational points (just for information)
- days (just for information of the course duration)
- contingent (just as information about the max. amount of participants)
- conditions (text input)
- conditions (reference to other course records)
- price (with or without VAT must be configured in TS)
Course type¶
A course type represents the skill level in another way than the value “skill level” (attr. of course records). You can only enter a title of a course type.
Teaching aids¶
You can only enter a title for this records. Teaching aids are associated to course records for information purposes.
Trainer¶
The data for trainer records are saved in tt_address records. This is the reason for the fact, that tt_address is required for the use of abcourses.
Please consider that only a few fields are used in the template for a trainer. These are:
- name
- title
- company
- image
- trainer number
- trainer position
The last two attributes come with abcourses and extends the tt_address table.
Event¶
Events are the records a user can subscribe to and are associated to one course record.
Available fields are:
- event number
- start-date for registration
- end-date for registration
- start-date and time of the first day
- end-date and time of the last day
- associated course (course 1 : n event)
- associated trainers
- subscribed participants ( this field is not in use currently. See also the To-Do section...)
- associated location (1:n)
- discount flag (if the price for this single event should differ to the base price as entered in the course record)
- discount value (enter a positive double value for raise, and a negative value for reduce the base price)
- last-minute flag (if activated and supported by the corresponding templates, a special css class can be associated to this event for highlighting this record in listings. Records marked as “last minute” are shown in last-minute views automatically)
- contingent amount (if contingent management is activated, this value limits the possible amount of subscriptions)
- subscriptions (this value is increased with each subscription and will be compared with “contingent amount” if contingent management is activated)
- associated arrangements (to offer additional accommodations)
Location¶
A location can be assigned to an event for informational purposes.
These attributes can be entered for location records:
- title
- street
- zip
- city
- phone
- fax
- contact person
- informations (as reference to a page record with e.g. additional informations)
Hotel¶
If you want to offer additional accommodations you have to enter some hotels and arrangements.
For a hotel you can enter:
- name
- subtitle
- link
- image (e.g. a logo)
- rating (0 start, 1 star ...)
Arrangements¶
To offer additional accommodations with an event you need to enter arrangements to assign them later with the events.
For this you can enter:
- backendname (as title in BE view)
- frontendname (as title in FE output)
- associated hotel (hotel 1 : n arrangements)
- price (if this is with or without VAT depends on the global tax configuration)
Please consider that there is not really an interface for subscribing an accommodation. It is only included in the confirmation email.
Available views¶
Here we described the available views as offered with this extension.
Categories overview¶
This view represents two views in one. At least one PlugIn with this view-type is required for abcourses.
On one hand this view-type can list all available categories, and on the other hand it can list all courses for one specific category. It depends on an URL parameter which view-type will be rendered. With a flag available in the FlexForm of the PlugIn, you can force the view- type to ignore the URL parameter and list the categories all the time. For example this is necessary if you have one page with two PlugIns of this view type and you want to show the courses of the category on the left and an overview of other available categories on the right.
The following two screens represents the “courses in this category” view.
Abbildung 4: Courses in one category 2
Abbildung 5: An example for two PlugIns with view-type category overview on one page
Both views based internally completely on the abcourses object layer. It is up to you and depends on the used template which information will be displayed. Read more about this later in the template section...
Mini search-box¶
This view renders only an input field for a textual search. You have to configure the page id of the result page to make it work... See one sample of this search-box at Abbildung 4
Search result list¶
Come on, just guess what it does :-) Not to derive from the name: The search result list will get the parameters from indexed_search input fields for look ups as well. So you can combine both plug ins on the same page...
Detail view¶
The detail view can show all informations associated with a course. It depends on the template what will be displayed. Please consider that this view is not completely based on the abcourses object layer! Why? Because the extension grew with the time and there was no object layer in the first version. So this is a relict from previous version. But although it contains the full scope of operation. Refactoring of this function is already on our to do list... Maybe the template structure for this view can change then.
Events will be only shown if it is possible to subscribe. As an exception you can configure the count of days events may be expired. These expired events will be shown but there is no subscribe link rendered for them.
See screen shots of this view at Abbildung1 and Abbildung3 .
Subscribe view¶
The user reaches the subscribe view automatically (because the default subscribe view is configured via TS), if he clicks on an event for which a subscription is possible. Depending on the template the subscribe view shows all informations about the course, the event and all records which you can assign via the BE.
Depending on TS configuration and one more template snippet you can create a form for subscribing an event (including server side input validation). And if available, the user could request an accommodation as well!
After successful registration the user is redirected to a “thank you” side (a page record from you cms) and an email will be send to the admin as configured in TS (and optionally to the user). During the registration a hook is called which you can use for whatever you want it to do...
You can even use this PlugIn for direct subscriptions. Just add it via TYPO3 BE and select an event in the BE! Please don't do this for the default subscription view as configured in TS.
Abbildung 6: Front-End subscribe form
Abbildung 7: BE FlexForm PlugIn configuration
Read more about setup, hook and template later in this documentation.
Last minute short¶
Deprecated. Use the selectedEvents view.
This view was used for short listings of last minute events. Since you can use the “selectedEvents” view for this (since version 1.3.X) it is not recommended to use this short view. Also an argument for this is, that the selectedEvents view use the abcourses object layer. See the selectedEvents section of this document for further informations.
Last minute detailed¶
Deprecated. Use the selectedEvents view.
This view was used for short listings of last minute events. Since you can use the “selectedEvents” view for this (since version 1.3.X) it is not recommended to use this short view. Also an argument for this is, that the selectedEvents view use the abcourses object layer. See the selectedEvents section of this document for further informations.
Category overview and a listing of current events¶
This view-type is a special variant of the category listing and is able not only to list categories but also show an configurable number of courses, which the closest events are assigned to.
This is very useful for search engine optimization (for internal linking), because the page has (computed) different content which does not rotate with each page view or something like this but with each time one event is no longer the “closest” event within a category.
Abbildung 8: Sample screen shot for this view type.
Overview of selected events¶
This view is for displaying events without the selection of a special class and renders only special events. You can select this events manually or you can configure this view-type to display events which are marked as “last-minute”. For the last-minute layout you can set an amount of events you want to display as well.
The last-minute feature is implemented since version 1.3.X and displaces the both last-minute view-types. This is because it depends only on the assigned template file if you make this view type as an short or a detailed overview of last-minute events.
If there is more than one event selected (or computed) for one course, they get merged with this course during the rendering process.
Abbildung 9: Example layout for this view-type with additional course and trainer informations.
Detail search¶
I'm sorry, but this is not functional at the moment.
Overview of selected categories¶
This view is for displaying categories. But other than the normal categories overview, this view type only renders categories which you have manually selected in the BE FlexForm. Within the FlexForm use the Tab “Special View Settings” and than the selection “Categories to be shown within the special view Selected-Categories”.
There are some TS settings for this view to change the output. See more about this in the TS section of this documentation.
Installation¶
There are a few steps required to get the extension working with the min. features... This basic settings should be done in 15Min. But it can become very time expensive depending on the variants of configuration possibilities you want to use. As example: Using different templates for the same view-type on different pages and so on...
You should start with this¶
Make a back-up of your environment (to play safe)
Create some Sys-Folder records where your content for this extension is stored later. Depending on the number of records you want to deal with, it could be recommended to create a folder for each category (to store your events in)
I recommend a folder structure like this:
Seminars
- Categories and Course-Types
- Courses
- Events
- Hotels and Arrangements
- Trainers, Locations and Teachin-Aid's
Create some page records for your front-end PlugIns.Depending on the TS configuration and some implemented link features you need at least pages for:
- a categories overview
- The result view of search queries (as not in menu)
- the course details (as not in menu)
- the subscribe view (as not in menu)
- a “thank you” page where subscribers are redirected after a successful subscription
Add the corresponding PlugIn view types for the pages as mentioned above on each page
Overwrite the extensions default TS as described later in this documentation.
And: Do not forget to define a storage page within the backend. The storage page is used as pid for tracked subscriptions!
IMPORTANT! Have a look that the locale settings are correct. There are two fields for this within the plugins TypoScript: locale and offset. See more about this in the TS configuration table of this documentation and within the TS Default template as well.
That's it... Was easy, wasn't it? :-)
If you need help with your configuration: Since Version 1.3.3 there is a third Tab in the Plugins BE FlexForm called “config info”. Check the box on this tab and reload the page where you have problems... And configuration check will be rendered then! Sometimes this is very usefull and can save you a lot of time...
The TS configuration¶
Guess how funny it is to write this down... :-( But O.K., I am sure it would be no(!) fun for you without this... :-)
plugin.tx_abcourses_pi1¶
This is the basic PlugIn configuration.
CMD¶
Property
CMD
Data Type
Number
Description
With this value you can define the view-type for a PlugIn. Normally this is set via FlexForm, but if you want to insert one abcourses PlugIn via TS, you need to set this...
1:CATOVERVIEW2:QUICKSEARCH
3:RESULTLIST
4:DETAIL
5:SUBSCRIBE
6:LMSHORT (deprecated)
7:LMDETAIL (deprecated)
8:CATOVERVIEWWITHCOURSE
9:SPECIALEVENTOVERVIEW
Default
pidList¶
Property
pidList
Data Type
String
Description
Comma separated list with page id's. List of page id's where the abcourses records should be available. Normally this is set via FlexForm, but if you want to insert one abcourses PlugIn via TS, you need to set this...
Default
recursive¶
Property
recursive
Data Type
number
Description
How deep could the pages be nested where to look up abcourses records.
Default
2
template¶
Property
template
Data Type
string
Description
Filepath to your template file, starting at the root.
Default
typo3conf/ext/abcourses/pi1/abcourses_template.tmpl
uploaddir¶
Property
uploaddir
Data Type
string
Description
Don't change this...
Default
uploads/tx_abcourses/
skillimagepath¶
Property
skillimagepath
Data Type
string
Description
Where to look up the skill images. It is up to you to change them.
Default
typo3conf/ext/abcourses/
ratingimagepath¶
Property
ratingimagepath
Data Type
string
Description
Where to look up the hotel-rating images. It is up to you to change them.
Default
typo3conf/ext/abcourses/images/
parseFunc¶
Property
parseFunc
Data Type
parseFunc
Description
Take a look at the TSRef for further information
Default
tt_content.text.20.parseFunc
pidResults¶
Property
pidResults
Data Type
page_id
Description
The id of the page which contains the default abcourses plugin with view-type 3 “Resultlist”.
Default
pidCourseDetails¶
Property
pidCourseDetails
Data Type
page_id
Description
The id of the page which contains the default abcourses plugin with view-type 4 “Detail”.
Default
pidOverview¶
Property
pidOverview
Data Type
page_id
Description
The id of the page which contains the default abcourses plugin with view-type 1 “Catoverview”.
Default
pidLMOverview¶
Property
pidLMOverview
Data Type
page_id
Description
This is used to render some links. Since the LM-Overview is deprecated this should be set to a page id which contains a corresponding PlugIn of view type 9.
Default
pidSubscribe¶
Property
pidSubscribe
Data Type
page_id
Description
The id of the page which contains the default abcourses plugin with view-type 5 “Subscribe”.
Default
pidSubscribeSuccess¶
Property
pidSubscribeSuccess
Data Type
page_id
Description
This is the id of the page the subscribers are redirected to after an successful subscription. It is up to you what this page contains. I consider something like a “thanks for your subscription” to be in order.
Default
pidDetailSearch¶
Property
pidDetailSearch
Data Type
page_id
Description
This is actually not in use.
Default
ddmmyy¶
Property
ddmmyy
Data Type
string
Description
Format of the date output as used by PHP's strftime function. See http://de.php.net/manual/de/function.strftime.php for reference.
Default
%d.%m.%Y
hhmmss¶
Property
hhmmss
Data Type
string
Description
Format of the date output as used by PHP's strftime function. See http://de.php.net/manual/de/function.strftime.php for reference. This is used for time output format.
Default
%H:%M
locale¶
Property
locale
Data Type
string
Description
Set this to your locale.
Default
de_DE
offset¶
Property
offset
Data Type
integer
Description
Is there a difference between the time as entered within the BE and the time as shown in the FE? So use this to adjust them. Read more about this later in this documentation.
Default
-60
priceWithTax¶
Property
priceWithTax
Data Type
boolean
Description
Set this to 1 if your entered prices are already with VAT. Set this to 0 if they are without VAT.
Default
0
taxValue¶
Property
taxValue
Data Type
number
Description
Tax value
Default
19
currency¶
Property
currency
Data Type
String
Description
Abbrev. of the used currency
Default
EUR
lastminuteclass¶
Property
lastminuteclass
Data Type
string
Description
Additional css class name as used in event listings for last minute events. (usage depends on the template)
Default
lastminute
searchcoursefields¶
Property
searchcoursefields
Data Type
string
Description
Where the text query should look up.
Default
tx_abcourses_course.uid-title-teaser
sortingfieldcoursesincat¶
Property
sortingfieldcoursesincat
Data Type
String
Description
Name of the DB attribute of a course for sorting the course list in category overviews.
Default
name
usecontingent¶
Property
usecontingent
Data Type
boolean
Description
Set this to 1 if you want to activate the contingent management. Consider that it is only possible to subscribe for an event then, if the event has a contingent of at least 1 left.
Default
0
dlimage¶
Property
dlimage
Data Type
String
Description
Filepath to the default download icon.
Default
/typo3conf/ext/abcourses/images/dl_icon.gif
dlimage_pdf¶
Property
dlimage_pdf
Data Type
String
Description
Filepath to the download icon of pdf files.
Default
/typo3conf/ext/abcourses/images/pdf_icon.gif
dlimage_tif¶
Property
dlimage_tif
Data Type
string
Description
Default
=< dlimage
dlimage_zip¶
Property
dlimage_zip
Data Type
string
Description
Default
=< dlimage
redirectDetailPage¶
Property
redirectDetailPage
Data Type
number
Description
See inline TS comments for this please.
Default
N.A.
redirectDetailPageId¶
Property
redirectDetailPageId
Data Type
number
Description
Default
N.A.
redirectToDomain¶
Property
redirectToDomain
Data Type
number
Description
Default
N.A.
addOnLabels¶
Property
addOnLabels
Data Type
string
Description
Comma separated. If you add a value to this list and (lowercase) to the locallang.xml then it is available as a marker in every view. The marker is uppercase.
Default
addonlbl-membershipnr
trackSubscriptionsAsRecords¶
Property
trackSubscriptionsAsRecords
Data Type
int
Description
Set this to 0 to disable the subscription tracking. Set this to 1 and every subscription will be tracked as tt_address record.
Default
1 (On!)
addressRecordUniqueField¶
Property
addressRecordUniqueField
Data Type
string
Description
This value is for looking up similar subscribers. It must be an available name of your formfieldsas well as a valid name for a tt_address attribute field
Default
beUserId¶
Property
beUserId
Data Type
int
Description
BE Userid to create the tt_address records. This is just for association. Your TYPO will not change its user context!
Default
0
TS for “Category overview”¶
plugin.tx_abcourses_pi1.catoverview
parseFunc¶
Property
parseFunc
Data Type
ParseFunc / function
Description
Further informations in the TSRef
Default
< plugin.tx_abcourses_pi1.parseFunc
catImage¶
Property
catImage
Data Type
IMAGE / cObj
Description
Preconfiguration for rendered images.
Default
wrap = |
cols¶
Property
cols
Data Type
Number
Description
The template of this view is splitted in colums and rows. This value indicates how many cols will be rendered for each row.
Default
2
All category fields¶
Property
All category fields
Data Type
...
Description
Additionally you can configure all TS values as available for categories here. You will find more about this in the documentation of the template markers for categories.
Default
TS for “Courses in category”¶
plugin.tx_abcourses_pi1.coursesincat
parseFunc¶
Property
parseFunc
Data Type
ParseFunc / function
Description
Further informations in the TSRef
Default
< plugin.tx_abcourses_pi1.parseFunc
initevents¶
Property
initevents
Data Type
boolean
Description
Set this to 1, if you want to display events in this view too. If you do not set this flag, the events are not available for the course instances and so they will not be rendered!Keep in mind that this query may be expensive...
Default
0
category¶
Property
category
Data Type
All category fields
Description
Additionally you can configure all TS values as available for categories here. You will find more about this in the documentation of the template markers for categories.
Default
category.course¶
Property
category.course
Data Type
All course fields
Description
Additionally you can configure all TS values as available for courses here. You will find more about this in the documentation of the template markers for courses.
Default
category.course.event¶
Property
category.course.event
Data Type
All events fields
Description
See template section for this...
Default
TS for “Quicksearch”¶
Actually there is no configuration required for this view.
TS for “Resultlist”¶
plugin.tx_abcourses_pi1.resultlist
parseFunc¶
Property
parseFunc
Data Type
ParseFunc / function
Description
Further informations in the TSRef
Default
< plugin.tx_abcourses_pi1.parseFunc
course¶
Property
course
Data Type
All course fields
Description
See template section for this...
Default
TS for view-type “Detail”¶
In because of this view-type is currently not completely based on the object-model, some of the TS properties are not nested as like for other view-type's.
Template structure and TS configuration for this view will change during the implementation of the object model for this view-type!
plugin.tx_abcourses_pi1.coursedetail
parseFunc¶
Property
parseFunc
Data Type
ParseFunc / function
Description
Further informations in the TSRef
Default
< plugin.tx_abcourses_pi1.parseFunc
showeventsago¶
Property
showeventsago
Data Type
number
Description
If you would like to display expired events too, set this to an appropriate number of days an event may have expired.
Default
0
eventcols¶
Property
eventcols
Data Type
number
Description
The template for displaying the events of a course is split up in rows and columns so this value will define how many cols a row should contain.
Default
1
conditionalCourse¶
Property
conditionalCourse
Data Type
To start a sub part
Description
Below this, you can note all available Course fields. This will be used to display the referenced conditional courses
Default
Just 3 small examples
All course fields¶
Property
All course fields
Data Type
Description
See template section for this...
Default
All category fields¶
Property
All category fields
Data Type
Description
Default
All trainer fields¶
Property
All trainer fields
Data Type
Description
Default
All event fields¶
Property
All event fields
Data Type
Description
Default
All location fields¶
Property
All location fields
Data Type
Description
Default
All page fields¶
Property
All page fields
Data Type
Description
Default
All conditions fields¶
Property
All conditions fields
Data Type
Description
Default
Please consider, that the rendered “Similar courses” uses the “All course fields” too, because they are just course records and depends, technically, on the same rendering function.
TS for view-type “Subscribe”¶
This view-type is responsible for rendering generally informations for the corresponding event on the one hand, and for generating the accommodation- and subscribe-form on the other hand.
For the generally event informations¶
plugin.tx_abcourses_pi1.eventsubscribe
parseFunc¶
Property
parseFunc
Data Type
ParseFunc / function
Description
Further informations in the TSRef
Default
< plugin.tx_abcourses_pi1.parseFunc
All course fields¶
Property
All course fields
Data Type
Description
See template section for this...
Default
All event fields¶
Property
All event fields
Data Type
Description
Default
All trainer fields¶
Property
All trainer fields
Data Type
Description
Default
All location fields¶
Property
All location fields
Data Type
Description
Default
All category fields¶
Property
All category fields
Data Type
Description
Default
noContingentWrap¶
Property
noContingentWrap
Data Type
stdWrap
Description
If no contingent is left for an event, and short information is rendered and wrapped with this...
Default
All participant fields¶
Property
All participant fields
Data Type
Description
See template section for this
Default
For the accommodation- and subscribe-form¶
plugin.tx_abcourses_pi1.subscribe
sendTo¶
Property
sendTo
Data Type
string
Description
Recipient E-Mail address for the administrative subscription info E-Mail.
Default
mailFrom¶
Property
mailFrom
Data Type
string
Description
The From-Address of the info E-Mail.
Default
mailFromName¶
Property
mailFromName
Data Type
string
Description
The From-Name of the info E-Mail.
Default
Seminar Database
usedLabels¶
Property
usedLabels
Data Type
string
Description
Comma separated list of all(!) used form fields.
Default
anrede,vorname,nachname,email,telefon,fax,firma,adresse,eventid,arrang ement,invoiceaddress
required¶
Property
required
Data Type
string
Description
This string list below causes the corresponding form fields to be required
Default
vorname,nachname,email
mailLabels¶
Property
mailLabels
Data Type
string
Description
Use this list to determine which form fields will be included in the confirmation email.
Default
anrede,vorname,nachname,email,telefon,fax,firma,adresse,arrangement,in voiceaddress
sendEmailsAfterSubscription¶
Property
sendEmailsAfterSubscription
Data Type
boolean
Description
Setting this flag to 0 causes no confirmation e-mail is sent at all.
Default
1
sendConfirmation¶
Property
sendConfirmation
Data Type
boolean
Description
Set this flag to 1 if you want your subscriber to get a confirmation mail too.
Otherwise only the Admin will receive a confirmation.
This does not take an effect if the flag sendEmailsAfterSubscription is set to 0.
The form field “email” is used for the E-Mail address of the subscriber.
Default
0
tt_address_mapping¶
Property
tt_address_mapping
Data Type
string
Description
Here you can map your form fields with the corresponding tt_address entities.
Default
first_name:vorname,last_name:nachname,email:email,gender:gender
manlocselname¶
Property
manlocselname
Data Type
string
Description
See more about this in the “Special content” section.
This value is rendered as name attribute for the location select box.
Default
wunschstandort
manlocselparams¶
Property
manlocselparams
Data Type
string
Description
Additionally parameters for the select box.
Default
class="mf-input"
manlocselvalues¶
Property
manlocselvalues
Data Type
string
Description
The available options for the select box. If you prefix this list with a single “,”, the first value is rendered as an empty option.
Default
,Hamburg,Hannover,Kassel,Berlin,Potsdam/Kleinmachnow,Stuttgart,Leipzig ,Frankfurt,München,Regensburg,Nürnberg,Paderborn,Dortmund,Siegen,Wien
accommodationPeriod¶
Property
accommodationPeriod
Data Type
integer
Description
Possible period for accommodation, depending on the start and enddate of the corresponding event.
Default
2
hotel¶
Property
hotel
Data Type
All hotel fields...
Description
Take a look at the template marker section for this
Default
arrangement¶
Property
arrangement
Data Type
All arrangement fields...
Description
Default
TS for view-type “Category overview with next courses”¶
For this type of category overview you can display the next events and their courses too. This view type is really useful for SEO efforts because this list change every time an event is not the closest event for a category any more. So you can create a nice view with different internally links.
plugin.tx_abcourses_pi1.catoverviewwithnextevents
All category fields...¶
Property
All category fields...
Data Type
Description
Default
nextevents¶
Property
nextevents
Data Type
Integer
Description
Number of closest events in an category which should be rendered.
Default
3
course¶
Property
course
Data Type
All course fields...
Description
Default
course.event¶
Property
course.event
Data Type
All event fields...
Description
Default
TS for view-type “Selected events”¶
This view can represent a list of manually selected events and their corresponding courses as well as an computed list of events / courses which are marked as “last minute”.
Which variant this view stands for is normally selected via the FlexForm configuration of the PlugIn in the BackEnd. But if you want to insert this with TypoScript you must do this settings via TS too.
plugin.tx_abcourses_pi1.selectedevents
cols¶
Property
cols
Data Type
Integer
Description
The template is divided in rows and columns so this value sets the number of columns rendered for each row.
Default
2
asLastMinuteView¶
Property
asLastMinuteView
Data Type
Boolean
Description
Set this to 1 if you want this view to work as a last minute view.
Default
N.A. (uncomment this line if you want to use it)
maxNEvents¶
Property
maxNEvents
Data Type
Integer
Description
Number of closest last-minute events which should be rendered.
Default
N.A. (uncomment this line if you want to use it)
selectedEvents¶
Property
selectedEvents
Data Type
String
Description
Comma separated list of event id's. You will need this if you want to insert this view-type via TS but not as last minute view.
Default
N.A. (uncomment this line if you want to use it)
showEventsAgo¶
Property
showEventsAgo
Data Type
Integer
Description
This is ONLY available via TS at present. If you want to display expired events to, set this to the number of days an event can be expired.
Default
N.A. (uncomment this line if you want to use it)
course¶
Property
course
Data Type
All fields for courses...
Description
Default
course.event¶
Property
course.event
Data Type
All event fields...
Description
Default
course.trainer¶
Property
course.trainer
Data Type
All trainer fields...
Description
Default
Template structure of the different view-types¶
This extension is shipped with a default template. Please take a look at this default templates to get an overview of the corresponding template structure for the view-type you want to edit...!
Template marker for records / general¶
Generally available markers¶
The template marker as listed below can be used in every template! They are primarily intended to be used as labels.
###DAYSLABEL###¶
Marker
###DAYSLABEL###
Usage
Label for the “day” field in courses
TS Wrapper
TS Description
###LABELWARNING###¶
Marker
###LABELWARNING###
Usage
This has content if some required form fields of the subscribe form are missed.
TS Wrapper
TS Description
###WARNING###¶
Marker
###WARNING###
Usage
This has content if some required form fields of the subscribe form are missed.
TS Wrapper
TS Description
###LABELTRAINER###¶
Marker
###LABELTRAINER###
Usage
Label for trainer records.
TS Wrapper
TS Description
###LABELTITLE###¶
Marker
###LABELTITLE###
Usage
In forms for form of address
TS Wrapper
TS Description
###LABELTITLE.I.0### (.1, .2)¶
Marker
###LABELTITLE.I.0### (.1, .2)
Usage
This marker is comupted depending on the available translations in the locallang file. You can add there more values for this like I.0, I.1, I.2 ...
TS Wrapper
TS Description
###LABELADDITIONAL###¶
Marker
###LABELADDITIONAL###
Usage
TS Wrapper
TS Description
###LABELADDITIONAL.I.0###(.1 ...)¶
Marker
###LABELADDITIONAL.I.0###(.1 ...)
Usage
This marker is comupted depending on the available translations in the locallang file. You can add there more values for this like I.0, I.1, I.2 ...
TS Wrapper
TS Description
###LABELSELPERIODSTART###¶
Marker
###LABELSELPERIODSTART###
Usage
Label of the select box for accommodation start period
TS Wrapper
TS Description
###LABELSELPERIODEND###¶
Marker
###LABELSELPERIODEND###
Usage
Label of the select box for accommodation end period
TS Wrapper
TS Description
###LABELACCOMMODATION###¶
Marker
###LABELACCOMMODATION###
Usage
Label for accommodation records.
TS Wrapper
TS Description
###LABELCOURSEDAYS###¶
Marker
###LABELCOURSEDAYS###
Usage
Label for the days value as entered in a course record.
TS Wrapper
TS Description
###LABELSUBMIT###¶
Marker
###LABELSUBMIT###
Usage
The text on the “send” button of the search form.
TS Wrapper
TS Description
###LABELSUBMITSUBSCRIBE###¶
Marker
###LABELSUBMITSUBSCRIBE###
Usage
The label on the submit button as contained in the subcribe view.
TS Wrapper
TS Description
###LABELSUBSCRIBEHEADER###¶
Marker
###LABELSUBSCRIBEHEADER###
Usage
Informational header of the subscribe view.
TS Wrapper
TS Description
###LABELNAME###¶
Marker
###LABELNAME###
Usage
TS Wrapper
TS Description
###LABELLASTNAME###¶
Marker
###LABELLASTNAME###
Usage
TS Wrapper
TS Description
###LABELCOMPANY###¶
Marker
###LABELCOMPANY###
Usage
TS Wrapper
TS Description
###LABELADDRESS###¶
Marker
###LABELADDRESS###
Usage
TS Wrapper
TS Description
###LABELINVOICEADDRESS###¶
Marker
###LABELINVOICEADDRESS###
Usage
TS Wrapper
TS Description
###LABELEMAIL###¶
Marker
###LABELEMAIL###
Usage
TS Wrapper
TS Description
###LABELPHONE###¶
Marker
###LABELPHONE###
Usage
TS Wrapper
TS Description
###TAXLABEL###¶
Marker
###TAXLABEL###
Usage
As used for price information.
TS Wrapper
TS Description
###LABELARRANGEMENTSDESC###¶
Marker
###LABELARRANGEMENTSDESC###
Usage
Label for the description of arrangements.
TS Wrapper
TS Description
###CUR###¶
Marker
###CUR###
Usage
Currency as entered in TS. For price informations.
TS Wrapper
TS Description
###LABELTEACHINGAIDS###¶
Marker
###LABELTEACHINGAIDS###
Usage
TS Wrapper
TS Description
###LABELSIMILAR###¶
Marker
###LABELSIMILAR###
Usage
Label for listings of similar courses.
TS Wrapper
TS Description
###LABELPAGES###¶
Marker
###LABELPAGES###
Usage
Label for pages with further informations as assigned to a course record.
TS Wrapper
TS Description
###LABELPOINTS###¶
Marker
###LABELPOINTS###
Usage
TS Wrapper
TS Description
###LABELEVENT###¶
Marker
###LABELEVENT###
Usage
TS Wrapper
TS Description
###LABELNOEVENTS###¶
Marker
###LABELNOEVENTS###
Usage
TS Wrapper
TS Description
###LABELEVENTTITLE###¶
Marker
###LABELEVENTTITLE###
Usage
TS Wrapper
TS Description
###LABELCATOVERVIEW###¶
Marker
###LABELCATOVERVIEW###
Usage
TS Wrapper
TS Description
###LABELDATE###¶
Marker
###LABELDATE###
Usage
TS Wrapper
TS Description
###LABELPRICE###¶
Marker
###LABELPRICE###
Usage
TS Wrapper
TS Description
###LABELPARTICIPIANTS###¶
Marker
###LABELPARTICIPIANTS###
Usage
TS Wrapper
TS Description
###LABELREGSTART###¶
Marker
###LABELREGSTART###
Usage
Label for information about the start date of a registration period.
TS Wrapper
TS Description
###LABELREGEND###¶
Marker
###LABELREGEND###
Usage
TS Wrapper
TS Description
###LABELCOURSENUMBER###¶
Marker
###LABELCOURSENUMBER###
Usage
TS Wrapper
TS Description
###EDUPOINTSLABEL###¶
Marker
###EDUPOINTSLABEL###
Usage
TS Wrapper
TS Description
###CONDITIONSLABEL###¶
Marker
###CONDITIONSLABEL###
Usage
A label to introduce the conditions of a course.
TS Wrapper
TS Description
###LABELNORESULTS###¶
Marker
###LABELNORESULTS###
Usage
TS Wrapper
TS Description
###LABELERRORCONTACTUS###¶
Marker
###LABELERRORCONTACTUS###
Usage
TS Wrapper
TS Description
###LINKCATOVERVIEW###¶
Marker
###LINKCATOVERVIEW###
Usage
This will render a link to the default PlugIn (as defined via TS) which contains a category overview.
TS Wrapper
TS Description
###LINKDETAILSEARCH###¶
Marker
###LINKDETAILSEARCH###
Usage
This will render a link to the default PlugIn which contains a detail search. (not in use!)
TS Wrapper
TS Description
###LINKLMOVERVIEWSTART###¶
Marker
###LINKLMOVERVIEWSTART###
Usage
This will return only the <a href=”xxx”> part of a link to the default PlugIn (as defined via TS) with a LastMinute overview.
TS Wrapper
TS Description
###LINKLMOVERVIEWEND###¶
Marker
###LINKLMOVERVIEWEND###
Usage
Will return the </a> for the previous marker.
TS Wrapper
TS Description
###LINKLMOVERVIEW###¶
Marker
###LINKLMOVERVIEW###
Usage
Whole link to the last minute view.
TS Wrapper
TS Description
###LABELLOCNAME###¶
Marker
###LABELLOCNAME###
Usage
Location name
TS Wrapper
TS Description
###LABELLOCSTREET###¶
Marker
###LABELLOCSTREET###
Usage
TS Wrapper
TS Description
###LABELLOCZIP###¶
Marker
###LABELLOCZIP###
Usage
TS Wrapper
TS Description
###LABELLOCCITY###¶
Marker
###LABELLOCCITY###
Usage
TS Wrapper
TS Description
###LABELLOCPHONE###¶
Marker
###LABELLOCPHONE###
Usage
TS Wrapper
TS Description
###LABELLOCFAX###¶
Marker
###LABELLOCFAX###
Usage
TS Wrapper
TS Description
###LABELLOCEMAIL###¶
Marker
###LABELLOCEMAIL###
Usage
TS Wrapper
TS Description
###LABELLOCPERSON###¶
Marker
###LABELLOCPERSON###
Usage
TS Wrapper
TS Description
###REQUIREDHINT###¶
Marker
###REQUIREDHINT###
Usage
To mark something as “required”
TS Wrapper
TS Description
###LBLMSHORTTITLE###¶
Marker
###LBLMSHORTTITLE###
Usage
Label Last Minute short title by example for usage as headline.
TS Wrapper
TS Description
###LBLMOVERVIEWTITLE###¶
Marker
###LBLMOVERVIEWTITLE###
Usage
Label last minute overview by example for usage as headline
TS Wrapper
TS Description
###LABELLOCATIONINFO###¶
Marker
###LABELLOCATIONINFO###
Usage
TS Wrapper
TS Description
###LABELBACKTOCOURSE###¶
Marker
###LABELBACKTOCOURSE###
Usage
TS Wrapper
TS Description
###LABELMAX###¶
Marker
###LABELMAX###
Usage
Max participants label
TS Wrapper
TS Description
###LABELCOURSETYPE###¶
Marker
###LABELCOURSETYPE###
Usage
TS Wrapper
TS Description
###LABELHEADERSEARCHRESULTS###¶
Marker
###LABELHEADERSEARCHRESULTS###
Usage
TS Wrapper
TS Description
There is a hook which you can use to change this markers... See more about this in the “hooks” section of this documentation.
Example for labeladditional¶
<div class="additionaly">
###LABELADDITIONAL###<br />
<select name="Raucherzimmer">
<option select="selected">###LABELADDITIONAL.I.0###</option>
<option>###LABELADDITIONAL.I.1###</option>
<option>###LABELADDITIONAL.I.2###</option>
</select>
</div>
Example for labeltitle¶
<div class="form-label">
<label for="Anrede">###LABELTITLE###</label>
</div>
<select name="Anrede">
<option select="selected">###LABELTITLE.I.0###</option>
<option>###LABELTITLE.I.1###</option>
<option>###LABELTITLE.I.2###</option>
</select>
All category fields¶
"
Marker
Usage
For rendering of later values.
TS Wrapper
parseFunc
TS Description
parseFunc/function
###CATTITLELINK###¶
Marker
###CATTITLELINK###
Usage
Title of the category. Linked to the “courses in category” overview.
TS Wrapper
catTitleLinkWrap
TS Description
stdWrap/function
###CATIMAGE###¶
Marker
###CATIMAGE###
Usage
Icon for a category.
TS Wrapper
catImageWrap
TS Description
IMAGE/cObj
###CATTITLE###¶
Marker
###CATTITLE###
Usage
Same as above, but without the link.
TS Wrapper
catTitleWrap
TS Description
All course fields¶
"
Marker
Usage
For rendering of later values.
TS Wrapper
parseFunc
TS Description
parseFunc/function
###COURSEUID###¶
Marker
###COURSEUID###
Usage
TS Wrapper
TS Description
###NUMBER###¶
Marker
###NUMBER###
Usage
Course number
TS Wrapper
courseNumberWrap
TS Description
stdWrap/function
###TITLE###¶
Marker
###TITLE###
Usage
title
TS Wrapper
courseTitleWrap
TS Description
stdWrap/function
###SUBTITLE###¶
Marker
###SUBTITLE###
Usage
subtitle
TS Wrapper
courseSubtitleWrap
TS Description
stdWrap/function
###DESCRIPTION###¶
Marker
###DESCRIPTION###
Usage
...
TS Wrapper
courseDescriptionWrap
TS Description
< parseFunc
###EDUPOINTS###¶
Marker
###EDUPOINTS###
Usage
...
TS Wrapper
courseEdupointsWrap
TS Description
stdWrap/function
###CONTINGENT###¶
Marker
###CONTINGENT###
Usage
...
TS Wrapper
courseContingentWrap
TS Description
stdWrap/function
###DAYS###¶
Marker
###DAYS###
Usage
...
TS Wrapper
courseDaysWrap
TS Description
stdWrap/function
###DAYSLABEL###¶
Marker
###DAYSLABEL###
Usage
Days label. Singular/Plural depending on days.
TS Wrapper
courseDayslabelWrap
TS Description
stdWrap/function
###CONDITIONSTEXT###¶
Marker
###CONDITIONSTEXT###
Usage
The textual entered course conditions
TS Wrapper
courseConditionWrap
TS Description
stdWrap/function
<--###CONDITIONS### begin-->¶
Marker
<--###CONDITIONS### begin-->
Usage
This starts a template subpart to render referenced conditional courses. Please take a look into the default template to get an example.
TS Wrapper
TS Description
<--###FILES### begin -->¶
Marker
<--###FILES### begin -->
Usage
This starts a template subpart to render referenced files. Find an example within the default template.
TS Wrapper
TS Description
###DETAILLINK###¶
Marker
###DETAILLINK###
Usage
Link to the detail view
TS Wrapper
courseDetaillinkWrap
TS Description
stdWrap/function
###TITLELINK###¶
Marker
###TITLELINK###
Usage
Title of the course as link to the detail view
TS Wrapper
courseTitlelinkWrap
TS Description
stdWrap/function
###NUMBERLINK###¶
Marker
###NUMBERLINK###
Usage
Number of the course as link to the detail view
TS Wrapper
courseNumberlinkWrap
TS Description
stdWrap/function
###BASEPRICE###¶
Marker
###BASEPRICE###
Usage
Base price without VAT
TS Wrapper
basepriceWrap
TS Description
stdWrap/function
###BASEPRICETAX###¶
Marker
###BASEPRICETAX###
Usage
Base price with VAT
TS Wrapper
basepricetaxWrap
TS Description
stdWrap/function
###COURSESKILLLEVELIMAGE###¶
Marker
###COURSESKILLLEVELIMAGE###
Usage
Image, corresponding to the entered skill level.
TS Wrapper
courseSkillImageWrap
TS Description
IMAGE / cObj
###DOWNLOADLINK###¶
Marker
###DOWNLOADLINK###
Usage
Textual downloadlink
TS Wrapper
TS Description
###DOWNLOADLINKIMAGE###¶
Marker
###DOWNLOADLINKIMAGE###
Usage
Image downloadlink
TS Wrapper
TS Description
All event fields¶
<!-- ###LOCATIONS### -->¶
Marker
<!-- ###LOCATIONS### -->
Usage
If this marker is present in the events template and an assigned location is available for this event, the rendering of the location is triggered as well.. See an example below this table.
TS Wrapper
TS Description
###EVENTNUMBER###¶
Marker
###EVENTNUMBER###
Usage
Number of the event.
TS Wrapper
eventNumberWrap
TS Description
stdWrap / function
###CONTINGENT###¶
Marker
###CONTINGENT###
Usage
The available contingent.
TS Wrapper
eventContingentWrap
TS Description
stdWrap/function
###CONTINGENTLEFT###¶
Marker
###CONTINGENTLEFT###
Usage
Remaining contingent
TS Wrapper
eventContingentLeftWrap
If the contingentmanagement is disabled, this marker is rendered with the ts wrapper usecontingentInactiveWrap instead.
TS Description
stdWrap/function
###DAYS###¶
Marker
###DAYS###
Usage
The duration of this event in days.
TS Wrapper
eventDaysWrap
TS Description
stdWrap/function
###DATE###¶
Marker
###DATE###
Usage
This marker contains the start date of this event and, if available, the end date as well. The date is formatted with the php strftime() function.
TS Wrapper
eventDateWrap
TS Description
stdWrap/function
###DATESTART###¶
Marker
###DATESTART###
Usage
Shows only the start date of an event. The date is formatted with the php strftime() function.
TS Wrapper
eventDateStartWrap
TS Description
stdWrap/function
###DATEEND###¶
Marker
###DATEEND###
Usage
Shows only the end date of an event. The date is formatted with the php strftime() function.
TS Wrapper
eventDateEndWrap
TS Description
stdWrap/function
###TIMEDATESTART###¶
Marker
###TIMEDATESTART###
Usage
Shows the start and, if available, the end time related to the first date of an event. The date is formatted with the php strftime() function.
TS Wrapper
eventTimeDateStartWrap
TS Description
stdWrap/function
###TIMEDATEEND###¶
Marker
###TIMEDATEEND###
Usage
Shows the start and, if available, the end time related to the last date of an event. The date is formatted with the php strftime() function.
TS Wrapper
eventTimeDateEndWrap
TS Description
stdWrap/function
###PRICE###¶
Marker
###PRICE###
Usage
The price for this event without VAT.
TS Wrapper
eventPriceWrap
TS Description
stdWrap/function
###PRICETAX###¶
Marker
###PRICETAX###
Usage
The price with VAT included.
TS Wrapper
eventPriceTaxWrap
TS Description
stdWrap/function
###REGSTART###¶
Marker
###REGSTART###
Usage
Shows the date the subscribe links are effective from.
TS Wrapper
eventRegStartWrap
TS Description
stdWrap/function
###REGEND###¶
Marker
###REGEND###
Usage
Shows the date the subscribe links losing their validity.
TS Wrapper
eventRegEndWrap
TS Description
stdWrap/function
###SUBSCRIBELINK###¶
Marker
###SUBSCRIBELINK###
Usage
One link to reach the subscribe view for this event. The link text comes from the locallang file.
TS Wrapper
eventSubscribeWrap
TS Description
stdWrap/function
###DATESUBSCRIBELINK###¶
Marker
###DATESUBSCRIBELINK###
Usage
Link to the subscribe view. Link text is the date of the event.
TS Wrapper
dateEventSubscribeWrap
TS Description
stdWrap/function
###LASTMINUTE###¶
Marker
###LASTMINUTE###
Usage
If the event is marked as last minute, this marker is filled with the css class as configured in the basic PlugIn TS.
TS Wrapper
TS Description
Example for the usage of the sub template “Locations”:
<!-- ###EVENT### begin --> <div class="event ###LASTMINUTE###">
###DATE### - ###PRICE######CUR### (###PRICETAX######CUR### ###TAXLABEL###)<br />
###SUBSCRIBELINK###
</div>
<!-- ###LOCATIONS### begin -->
<!-- ###LOCATION### begin -->
###LOCCITY###
<!-- ###LOCATION### end -->
<!-- ###LOCATIONS### end -->
<!-- ###EVENT### end -->
All trainer fields¶
###TRAINERTITLE###¶
Marker
###TRAINERTITLE###
Usage
The title as entered in the tt_address record.
TS Wrapper
trainerTitleWrap
TS Description
stdWrap/function
###FULLNAME###¶
Marker
###FULLNAME###
Usage
Full name
TS Wrapper
trainerFullnameWrap
TS Description
stdWrap/function
###TRAINERCOMPANY###¶
Marker
###TRAINERCOMPANY###
Usage
Company
TS Wrapper
trainerCompanyWrap
TS Description
stdWrap/function
###TRAINERIMAGE###¶
Marker
###TRAINERIMAGE###
Usage
Image if uploaded
TS Wrapper
trainerImageWrap
TS Description
COBJ / IMAGE
###TRAINERNUMBER###¶
Marker
###TRAINERNUMBER###
Usage
Trainer number
TS Wrapper
TS Description
###TRAINERPOSITION###¶
Marker
###TRAINERPOSITION###
Usage
Trainer position
TS Wrapper
TS Description
All location fields¶
###LOCNAME###¶
Marker
###LOCNAME###
Usage
Name of the location.
TS Wrapper
locationNameWrap
TS Description
stdWrap/function
###LOCSTREET###¶
Marker
###LOCSTREET###
Usage
Street
TS Wrapper
locationStreetWrap
TS Description
stdWrap/function
###LOCZIP###¶
Marker
###LOCZIP###
Usage
Zipcode
TS Wrapper
locationZipWrap
TS Description
stdWrap/function
###LOCCITY###¶
Marker
###LOCCITY###
Usage
City
TS Wrapper
locationCityWrap
TS Description
stdWrap/function
###LOCPHONE###¶
Marker
###LOCPHONE###
Usage
Phone
TS Wrapper
locationPhoneWrap
TS Description
stdWrap/function
###LOCFAX###¶
Marker
###LOCFAX###
Usage
Facsimile number
TS Wrapper
locationFaxWrap
TS Description
stdWrap/function
###LOCEMAIL###¶
Marker
###LOCEMAIL###
Usage
E-Mail address of a contact person
TS Wrapper
locationEmailWrap
TS Description
stdWrap/function
###LOCPERSON###¶
Marker
###LOCPERSON###
Usage
Name of a contact person
TS Wrapper
locationPersonWrap
TS Description
stdWrap/function
All page fields¶
###PAGETITLE###¶
Marker
###PAGETITLE###
Usage
The title of a page assigned to a course.
TS Wrapper
pageTitleWrap
TS Description
StdWrap / function
###PAGESUBTITLE###¶
Marker
###PAGESUBTITLE###
Usage
The subtitle of a page assigned to a course.
TS Wrapper
pageSubtitleWrap
TS Description
StdWrap / function
###PAGELINK###¶
Marker
###PAGELINK###
Usage
The title of a page assigned to a course. Rendered as link to this page.
TS Wrapper
pageLinkWrap
TS Description
StdWrap / function
All hotel fields¶
<!-- ###ARRANGEMENTS### -->¶
Marker
<!-- ###ARRANGEMENTS### -->
Usage
If this subtemplate is available and if there are initialized arrangements for this hotel, the rendering of the arrangements is triggered as well.
TS Wrapper
TS Description
###NAME###¶
Marker
###NAME###
Usage
The name of this hotel record.
TS Wrapper
TS Description
###SUBTITLE###¶
Marker
###SUBTITLE###
Usage
Subtitle for this hotel.
TS Wrapper
TS Description
###LINK###¶
Marker
###LINK###
Usage
This could be a hyper link to the hotels website or an internal link.
TS Wrapper
TS Description
###IMAGE###¶
Marker
###IMAGE###
Usage
Renders an image if you uploaded on for this hotel.
TS Wrapper
image
TS Description
COBJ / IMAGE
###RATING###¶
Marker
###RATING###
Usage
Renders an rating image corresponding to the rating you have chosen in the back end.
TS Wrapper
ratingImage
TS Description
COBJ / IMAGE
All arrangement fields¶
###FORMFIELD###¶
Marker
###FORMFIELD###
Usage
The uid of this record. See an example how to use this within a hotel template below this table.
TS Wrapper
TS Description
###FRONTENDNAME###¶
Marker
###FRONTENDNAME###
Usage
The name of this arrangement as shown in the frontend.
TS Wrapper
TS Description
###PRICE###¶
Marker
###PRICE###
Usage
The price for this arrangement. Without VAT.
TS Wrapper
priceWrap
TS Description
stdWrap/function
###PRICETAX###¶
Marker
###PRICETAX###
Usage
Price with tax included.
TS Wrapper
priceTaxWrap
TS Description
stdWrap/function
All teaching aid fields¶
For subtemplates of teaching aid records, there is only a fieldmarker ###NAME### without any special wrapping.
All conditions fields¶
In this case conditions are course records which contains recommended previous knowledge. You can integrate them only in the detail view of a course record at the moment. This is because the support for of them is currently not assumed in the object model.
###TITLE###¶
Marker
###TITLE###
Usage
Course title
TS Wrapper
conditionsTitleWrap
TS Description
stdWrap/function
###SUBTITLE###¶
Marker
###SUBTITLE###
Usage
Course subtitle
TS Wrapper
conditionsSubtitleWrap
TS Description
stdWrap/function
###DETAILLINK###¶
Marker
###DETAILLINK###
Usage
Course detail link
TS Wrapper
conditionsLinkWrap
TS Description
stdWrap/function
All participantfields¶
These are the available fields for tracked participants. You can create create participant records manually as well. They will only automatically created if you have activated and configured this feature.
###TITLE###¶
Marker
###TITLE###
Usage
Corresponding record field
TS Wrapper
titleWrap
TS Description
stdWrap/function
###FULLNAME###¶
Marker
###FULLNAME###
Usage
Corresponding record field
TS Wrapper
fullnameWrap
TS Description
stdWrap/function
###COMPANY###¶
Marker
###COMPANY###
Usage
Corresponding record field
TS Wrapper
companyWrap
TS Description
stdWrap/function
###GENDER###¶
Marker
###GENDER###
Usage
Corresponding record field
TS Wrapper
genderWrap
TS Description
stdWrap/function
###FIRST_NAME###¶
Marker
###FIRST_NAME###
Usage
Corresponding record field
TS Wrapper
firstNameWrap
TS Description
stdWrap/function
###MIDDLE_NAME###¶
Marker
###MIDDLE_NAME###
Usage
Corresponding record field
TS Wrapper
middleNameWrap
TS Description
stdWrap/function
###LAST_NAME###¶
Marker
###LAST_NAME###
Usage
Corresponding record field
TS Wrapper
lastNameWrap
TS Description
stdWrap/function
###EMAIL###¶
Marker
###EMAIL###
Usage
Corresponding record field
TS Wrapper
emailWrap
TS Description
stdWrap/function
###PHONE###¶
Marker
###PHONE###
Usage
Corresponding record field
TS Wrapper
phoneWrap
TS Description
stdWrap/function
###MOBILE###¶
Marker
###MOBILE###
Usage
Corresponding record field
TS Wrapper
mobileWrap
TS Description
stdWrap/function
###CITY###¶
Marker
###CITY###
Usage
Corresponding record field
TS Wrapper
cityWrap
TS Description
stdWrap/function
###ZIP###¶
Marker
###ZIP###
Usage
Corresponding record field
TS Wrapper
zipWrap
TS Description
stdWrap/function
Special content¶
The manual location selector¶
Coming soon...
The subscription hook¶
Pre-subscription hook. The variable $hookAbort is passed into the expected method. If you implement this as an reference in your hook handler, you can abort the subscription an the user will get an error message...
if (is_array ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey][$this->prefixId]['subscription'])) {
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey][$this->prefixId]['subscription'] as $classRef) {
$hookObj= &t3lib_div::getUserObj($classRef);
if (method_exists($hookObj, 'startSubscription')) {
$hookObj->startSubscription($MA, $MACourse, $MAEvent, $MATrainer, $MALocation, $hookAbort, $this);
}
}
}
The parameters prefixed with $MA are associative marker arrays for template substitutions. $this is the PHP common reference to the current object. In this case, the pi1 class instance.
The displayDetail Hook¶
This hook is called just before the output of the displayDetail Method renders the detailed View of an course. That is the hook:
if (is_array ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey][$this->prefixId]['displayDetail'])){
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey][$this->prefixId]['displayDetail'] as $classRef){
$hookObj= &t3lib_div::getUserObj($classRef);
if (method_exists($hookObj, 'customDisplayDetail')) {
$hookObj->customDisplayDetail($sRet,$MACourse);
}
}
}
Your method customDisplayDetail MUST receive the parameter as Reference to take an effect!!!
The fillAllLabels Hook¶
This hook is called just before the method fillAllLabels returns. The method fills an array with general markers and is used for substitution before the output of each view type! So you can use this hook to add different labels.
Thats the hook:
if (is_array ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey][$this->prefixId]['fillAllLabels'])) {
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey][$this->prefixId]['fillAllLabels'] as $classRef){
$hookObj= &t3lib_div::getUserObj($classRef);
if (method_exists($hookObj, 'customFillAllLabels')) {
$hookObj->customFillAllLabels($MA);
}
}
}
How to change the subscription form¶
Due to the fact that a submitted subscription form is not stored in any way by this extension currently, you can add as many fields as you want. If you want the submitted data to be stored anywhere, you can use the subscription hook for this. Of course, that means you have to do some coding.
However, add some fields to the subscription form does not require any coding skills.
Here an example. Expecting you have a form-template with input fields for firstname, surname and email, the template would look like this:
<!-- ###SUBSCRIBEFORMTMPL### begin -->
<h2>###LABELSUBSCRIBEHEADER###</h2>
###LABELWARNING###
###WARNING###
<form action="###PATHSUBSCRIBE###" method="POST">
The next 3 lines are the input fields!
###LABELNAME### <input type="text" name="vorname" value="###VORNAME###"/><br />
###LABELLASTNAME### <input type="text" name="nachname" value="###NACHNAME###"/><br />
###LABELEMAIL### <input type="text" name="email" value="###EMAIL###"/> <br />
<input type="hidden" name="subscribe" value="1" />
<input type="hidden" name="eventid" value="###EVENTID###" />
<br />
<input type="submit" value="###LABELSUBMITSUBSCRIBE###" />
</form>
<!-- ###NOSUBSCRIBEFORMTMPL### begin -->
###LABELERRORCONTACTUS###<br>
###LINKCATOVERVIEW###<br>
###LINKDETAILSEARCH###
<!-- ###NOSUBSCRIBEFORMTMPL### end -->
<!-- ###SUBSCRIBEFORMTMPL### end -->
And now, we want to add an required input field where the subscriber should enter the name of the company he is working for. We call the input field “company”.
For a new Input field we can:
- create a new localized template marker for the label of the field as shown on the rendered subscribing form
- create a new localization for the rendered mails
- define the new field as “required” input
- suppress or show the field in the generated mail
Especially the last point is usefull if you integrate some hidden form fields which may be required within your subscription hook.
At first, you add one line in the template of you form:
<input type="text" name="company"/><br />
But now you have only an input field. You want to have a localized label as well. So you add a marker for the label:
###ADDONLBL-COMPANY### <input type="text" name="company"/><br />
Now, add “addonlbl-company” to the comma separated list of the plugins TS configuration. This is explained above in the section “TS Configuration”. And of course, add one line to the pi1's locallang.xml file. Use the key “addonlbl-company” for the index attribute of the new line in the XML file. Do not forget: f you update abcourses later, make a backup of you locallang.xml to play save!
We want the new form field to be stikky. That means, that the input of the field is not deleted if the subscriber returns to the subscribing form in case of a failed form validation. So, add the “value” attribute to the new form field and insert a marker. The marker must be the uppercase “name” attribute of the form field, but with 3 # prefixed and post-positioned.
###ADDONLBL-COMPANY### <input type="text" name="company" value=”###COMPANY###”/><br />
The first step is done now. You have a new line in your form, made it stikky, added a label and localized it. Great ;-)
But what is about the “required” setting as mentioned above? And where to find the visibility settings? Go back to the TS Configuration and you will find some description for the template marker: usedLabels, required, mailLabels.
For our example setup it should look like this:
# ALL fields of the form must be listed here!!!
usedLabels = vorname, nachname, email, subscribe, eventid, company
# Here you list all fields that you wants to be reuired!!!
required = email, company
# And last but not least: list all labels that you wants to appear within the sent mails.
mailLabels = vorname, nachname, email, company
One more hint! The name of the field “email” is automatically validated as an email address and will be used as the sendTo recipient for the customers confirmation email.
Thats it! I hope this quick overview was usefull for you.
What you should know about the email template¶
Within the email template you will find a marker ###FORMDATA###.
This marker will be replaced by the _POST variables of the subscription form. For each key>value pair their will be one new line rendered.
Please note that you have to define the values, which you want to be included in this listing, within the TS setup variable “mailLabels”.
By example: The _POST variable “company” will be rendered like this:
Company : XYZ AG
But where comes the “Company” from? Abcourses tries to look up every POST key in the locallang.xml. If you added there a line with “company” as index, you can localize the form field labels for the mail template.
If abcourses do not found a localization, it uses the key of the field as label with an upper cased first letter.
Please consider that you should not choose key names which already exists in the locallang.xml!
Known problems¶
- If you do not use static url's and your mini search box uses “GET” as method, the values may be not submitted correctly. This is not due to abcourses but rather a generally booby trap with forms, when they have already an get parameter in their relative action path.
- Some querys are incompatible with the dbal extension because dbal fails while translating some join querys.
- If you encounter a difference between the start/end time you have entered for an event in the back end and the rendered value in the front end, take notice of the setting “offset” as described within the TS section of this documentation. This is necessary due to the fact, that the timestamp for field of TCA type “time” are not really a UTC+/-0 values as the fields of the type “date”.
- Please report all bugs you may encounter!!!
To-Do list¶
- Refactoring of the course-details view-type using completely the integrated object model. During this the template structure for this view as well as the TS structure will change. But do not panic, I will write down further informations about the changes then!
- Refactoring of the subscribe view-type using completely the integrated object model. During this the template structure for this view as well as the TS structure will change. But do not panic, I will write down further informations about the changes then!
Do you have any special requirements? Do you need hooks on different places or need any special feature what could be nice for others too? Just write an E-Mail and vote for it.
Currently on the “wishlist”:
- A generated form for requests to an event or course.
- Language overlays for the available content types.
- Different date formats for start- and end-date of an event.
- Assignment between courses and categories n:m
- ...
Currently just an idea:
- Automated front-end user and group creation for offering course specific informations to the subscribers (Downloads, FAQ's, Podcasts, Forum like features for asking the trainer and so on...)
- ...
Changelog¶
Please take a look at the corresponding ChangeLog file in the extensions folder for this.
EXT: abcourses - 27