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: Readable name of your extension

Author:Kasper Skårhøj
Created:2002-11-01T00:32:00
Changed by:Thomas Dudzak
Changed:2012-10-29T23:59:00.730000000
Classification:extensionkey
Description:The keywords help with categorizing and tagging of the manuals. You can combine two or more keywords and add additional keywords yourself. Please use at least one keyword from both lists. If your manual is NOT in english, see next tab "language" ---- forEditors (use this for editors / german "Redakteure") forAdmins (use this for Administrators) forDevelopers (use this for Developers) forBeginners (manuals covering TYPO3 basics) forIntermediates (manuals going into more depth) forAdvanced (covering the most advanced TYPO3 topics) see more: http://wiki.typo3.org/doc_template#tags ----
Keywords:keywords comma-separated
Author:Author Name
Email:your@email.com
Info 4:
Language:en

img-1 img-2 EXT TD Calendar- td_calendar

TD Calendar

Extension Key: td_calendar

Language: en

Keywords: calendar, frontend, extension

Copyright 2012, Thomas Dudzak, <thomas.dudzak@gmx.net>

This document is published under the Open Content License

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

The content of this document is related to TYPO3

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

Table of Contents

TD Calendar 1

`Introduction 3 <#1.1.Introduction|outline>`_

What does it do? 3

Screenshots 3

`Users manual 5 <#1.2.Users%20manual|outline>`_

Installation 5

Quick Start 5

Overview of calendar records 7

`Administration 11 <#1.3.Administration|outline>`_

realUrl-Configuration 11

`Configuration 12 <#1.4.Configuration|outline>`_

References 12

`ToDo 16 <#1.5.ToDo|outline>`_

`Changelog 17 <#1.6.Changelog|outline>`_

Introduction

What does it do?

A Calendar extension with month, week and dayview as well as an upcoming events view in list style. Supports selections by category and recurring events. Also supports exception events to accent parts of the calendar view an/or hide recurring events on special days like holidays. Supports multiple views on the same page and caching. Tooltips are based on jQuery. T3jqery is supported.

This extension is based on the outdated jw_calendar extension of Jens Witt. Because it was removed from TER by the TYPO3-Security Team, the calendar extension was fully rebuild to solve security problems. That's, why I'm proud to say, that it is possible to transfer old jw_calendar entries to this extensions. But because it's an ALPHA- Version, there is not the full line-up of functions of jw_calendar, yet. Some of them will definitely not return, some will be inserted in future versions. Today it's fully deployable for use in frontend view with backend adminstration. Frontend editing will be supported in version ALPHA 0.2.0. Also .ics and rss export such as .ics import is planned in upcoming versions.

Screenshots

Month view of td_calendar: shows the standard template with some test events and exception events

img-3

Single view of td_calendar: shows single view in standard template

img-4

Users manual

After installation the extension should be fully functional in standard mode. Before you can start to create event entries, you have to create at least one category, because category selection is required for events.

Installation

Install the extension with the extension manager. The extension manager creates the new database tables and fields for td_calendar. That's it.

Quick Start

This section will give you a short overview about the basic setup requirements for td_calendar to work. For more detailed informations you can have a look in the sections “Configuration” and “Administration” in this manual.

Include static extension template

You should than integrate the static template to your page template record. td_calendar also works without it, but it brings all the stuff as jQuery support, CSS-Configuartion and standard template.

img-5

Creating requiered pages (best practice):

Normally you want to display a new calendar on a new page. Therefore you have to create in minimal two (better three) new pages: The first one as a sysfolder for your calendar records, the second one for a record overview as month view or week view and the last one for single view. If you want to show single view on same page, please make sure, that you have selected “Do not show error, if no UID is given” and “Single view on same page as other views” is activated in configuration (See also: Configuration/Reference → Single view).

Creating a “TD Calendar” content element:

For a useful integration of td_calendar you have to create in mimimum two content elements of the type “TD Calendar”: One for overview and one for single view. To create a new content element, cahnge to the web-module “Site”, change to the page, where you want to create the overview and click on the “create new content element” link:

img-6

The “New content element” wizard opens. There you will find the icon called “TD Calendar”. Select it and choose the position (column) of the new content element:

img-7

Select the Tab “Plugin” in the new form that will shown up. That should look like that by default:

img-8

You should select an item from the "What to display" field. If you don't do this, there's a double backfall: one to typoscript, the second hardcoded. Hardcoded standard is month view, also the default TS-Setup. To select an item, click on its name in the right list. (For the first test choose “Month” and leave the other settings at their defaults)

The “Site(s) with calendar records” is the page/sysfolder, where the extension looks for calendar records. It is not required to set this value in this field, you can also define it with TypoScript for the whole page. (Also see: section “Configuration/Reference” in this manual -> pidList).

“Site of Single view” is your single view page, you have created. Select this page or leave it free, if you have set the single pid by TS. Save & Close the form for the calendar content-element, change to the you site, where you ant to create your single view and repeat the whole thing, but instead of “Month”, you have to select the “Singleview” item from the "What to display" field. That's it. The calendar is now configured for your testing.

Creating the first calendar database records

To test the functionality of the extension you'll also need at least two calendar records, one category and one event. First change to the Web-module “List”, change to your Sysfolder for calendar records and click on the "create new record" link.

img-9

In the wizard you should see the following record types for td_calendar: Event, Category, location, Organizer, Exception event and Exception event category.

img-10

First select “Category”. The new form wizard opens up and you have to fill in title as minimal. Save & close and click “create new record” again. Now you have to choose record type “Event”. The new wizard looks like that:

img-11

Choose the category, the datetime of begin and a title as minimal and click save & close. The calendar record should now visible in the frontend. If this is not the case, check, if the “hidden” field is activated or repeat the steps above.

Overview of calendar records

Of course td_calendar does not ends up with events and categories. There is really much more to do. There are several other record types for you. A complete list with a description of record fields you will find below.

Category

Calendar categories are requiered for events. You have to set minimal one to show up events in the frontend. Every event has exact one category to be choosen.

Title

Record field

Title

Description

Category title (requiered)

Color

Record field

Color

Description

Category color each event will be marked with

Comment

Record field

Comment

Description

Category comment, only shown for editors

Access

Record field

Access

Description

Not supported yet

Event

The event record is the main record type of the calendar extension. You can create “normal” events and even recurring events like daily, weekly, monthly and yearly events. For recurring Events you can set an interval, a Endtime (“until”)or a number of repeats.

Attention: Of Course, the field “End” is the endtime PER CASE. If it is an recurring event, “End” means the end of each case of recurrence, not of the entry at all. To stop recurrence, you should use the field “Event repeats until”. While the field “Event repeats X times” also works well, you should avoid it or use it only in exceptional case because of future performance of the script. If you have thousands of records with a begin date but not a stop, it will always be choosen from database and checked, if it is still actual. Not that funny.

Attention: If you have a recurring event and you set recurrence by “Event repeats X times” and also select exception events, the recurrence will also be counted, if a event is hidden by an exception event on one day. This is necessary because it's not possible to logical define, what happens with unusual events.

Category

Record field

Category

Description

Category of event (requiered)

Event type

Record field

Event type

Description

Type of current event (see below)

Begin

Record field

Begin

Description

Begin of event (requiered)

End

Record field

End

Description

End of event, in recurring events it is the end datetime of EACH event (can be left blank)

All day event

Record field

All day event

Description

If the event is an all day event, you can select this here instead of setting end value to the end of the day (overwrites begin and end time)

Title

Record field

Title

Description

Event Title (requiered)

Teaser

Record field

Teaser

Description

Teaser for event description. If empty, teaser is generated from description

Description

Record field

Description

Description

Event description. You can use the RTE

Location

Record field

Location

Description

Event location, if no location is selected from list

Location from list

Record field

Location from list

Description

Event location from list, overwrites “Location”

Organizer

Record field

Organizer

Description

Event organizer, if no organizer is selected from list

Organizer from list

Record field

Organizer from list

Description

Event organizer from list, overwrites “Organizer”

Image

Record field

Image

Description

select one or more images for event

Alt-Text

Record field

Alt-Text

Description

Alt-text of image, on line per image

Image title

Record field

Image title

Description

Image title, on line per image

Start

Record field

Start

Description

Starttime to show event in frontend view

End

Record field

End

Description

Endtime to show event in frontend view

Access

Record field

Access

Description

Not supported yet

Exception Events

Record field

Exception Events

Description

Recurring Event will not be shown on days with selected Exception Events

Exception Events Category

Record field

Exception Events Category

Description

Recurring Event will not be shown on days with Exception Events of selected category

Event repeats X times

Record field

Event repeats X times

Description

Number of intervals all in all the event repeats. Also days are counted the event is not shown because of an selected exception event. But you should better use “Event repeats until:” at all to avoid performance problems in future.

Event repeats until

Record field

Event repeats until

Description

Daytime, the recurring of the event stops. It is prioritized over “Event repats X times”

Events repeats every X days/ weeks/ months/ years

Record field

Events repeats every X days/ weeks/ months/ years

Description

Repeat interval of recurring event. For example: set to 3, a weekly recurring event is repeated every three weeks.

Repeat on these days of week

Record field

Repeat on these days of week

Description

Only for weekly recurring events: You can choose the days of week, a weekly recurring event happens. You can choose “on weekdays”, “on days of weekend” or, by default, “on these days” where you can choose a user defined number of days from monday to sunday. The Event's shown on selected days. Attention: Every day, you've selected, is part of one and the same repeat interval, so selecting 2 days and setting the repeat time on 2 will show two events in both weeks. If you – for example - set the beginning of an event on a wednesday and choose also the monday to be shown, in the first week the monday will not be shown. But if you have set repeat times, the monday will be shown seperatly as last event recurration!

Location

There are two ways to assign an event location to an event. The first is simply to fill the field “location” in an event record. The second is to select a location record, which you previously wrote to database. You can assign various informations to a location record.

Location

Record field

Location

Description

The Location title (requiered)

Description

Record field

Description

Description

Location Description

Advanced contact information

Record field

Advanced contact information

Description

Advanced contact information for the location

Street

Record field

Street

Description

Street of the Location

ZIP

Record field

ZIP

Description

Postal Zip

City

Record field

City

Description

City of Location

Phone

Record field

Phone

Description

Phone number

E-mail

Record field

E-mail

Description

e-mail address

Image

Record field

Image

Description

select one or more images for location

Image caption

Record field

Image caption

Description

Image caption, on line per image

Alt-Text

Record field

Alt-Text

Description

Alt-text of image, on line per image

Image title

Record field

Image title

Description

Image title, on line per image

Link

Record field

Link

Description

Possible link to Homepage, internal or external site

Organizer

Equal to the location record behaviour, you can also store organizer informations in database.

Organizer

Record field

Organizer

Description

The organizer title (requiered)

Description

Record field

Description

Description

organizer Description

Advanced contact information

Record field

Advanced contact information

Description

Advanced contact information for the organizer

Street

Record field

Street

Description

Street of the organizer

ZIP

Record field

ZIP

Description

Postal Zip

City

Record field

City

Description

City of organizer

Phone

Record field

Phone

Description

Phone number

E-mail

Record field

E-mail

Description

e-mail address

Tab “Media”

Record field

Tab “Media”

Description

Image

Record field

Image

Description

select one or more images for organizer

Image caption

Record field

Image caption

Description

Image caption, on line per image

Alt-Text

Record field

Alt-Text

Description

Alt-text of image, on line per image

Image title

Record field

Image title

Description

Image title, on line per image

Link

Record field

Link

Description

Possible link to Homepage, internal or external site

Exception Events

Exception events are special events like holidays, easter, christmas and so on. They will not be shown as “normal” event records but specially highlighted in frontend view. If you assign an exception event to a recurring event record, the recurring event will not be displayed on the corresponding day. Each exception event has to have a exception event category.

Title

Record field

Title

Description

Title (requiered)

Begin

Record field

Begin

Description

Begin of Exception event (requiered)

End

Record field

End

Description

End of exception event (if not set, the event will end on same day)

Category

Record field

Category

Description

Exception events must have a group. (requiered)

For example:

The event “easter holidays” is part of the category “holidays”. Each Event is shown with it's title and – if you selected one – the exception event category color.

Priority

Record field

Priority

Description

If you have more than one exception event on one day you set priority for exception event order.

For Example:

There are events for Easter and easter holidays on the same day. If you think Easter is more important than holidays, you give Easter a higher priority the event is shown first and the day is shown the color of the Easter event

Exception Events Category

An exception event category is requiered for exception events. Categories are grouping exception events. You can also choose a highlight color for the grouped events.

Title

Record field

Title

Description

Title (requiered)

Color

Record field

Color

Description

Highlight color for the exception event category

Us as background color

Record field

Us as background color

Description

If selected, the highlight color is also used as background color for the day cells.

Administration

realUrl-Configuration

td_calendar supports realURL. At the moment there are no known problems. You can find two examples of real-URL-Configurations in this package at EXT:td_calendar/res/examples/realurl.example.txt

Configuration

References

plugin.tx_tdcalendar_pi1 properties: TS configuration. Configuration starts with this line

plugin.tx_tdcalendar_pi1 {

General Settings

jQueryRes

Property

jQueryRes

Data type

Resource

Description

The jQuery library. If you want to use your own resource, you can change it for example:

plugin.tx_tdcalendar_pi1 {
  jQueryRes= fileadmin/myjs/jquery.js
}

If you've already included a jQuery resource or don't want to use it, you have to deactivate it:

plugin.tx_tdcalendar_pi1 {
  jQueryRes >
}

Default

EXT:td_calendar/res/js/jquery-1.6.1.min.js

tooltipJSRes

Property

tooltipJSRes

Data type

Resource

Description

The jQuery tooltip script. If you want to change the script, make a copy to your fileadmin and ad dthis TS:

plugin.tx_tdcalendar_pi1 {
  jQueryRes= fileadmin/myjs/td_tooltips.js
}

Default

EXT:td_calendar/res/js/td_tooltips.js

templateFile

Property

templateFile

Data type

Resource

Description

The HTML-Template file. If you want to change the template, make a copy to your fileadmin and add this TS:

plugin.tx_tdcalendar_pi1 {
  templateFile= fileadmin/my_template/td_calendar.tmpl
}

Default

EXT:td_calendar/res/tmpl/td_calendar.tmpl

cssFile

Property

cssFile

Data type

Resource

Description

The CSS-Style resource. If you want to change the style, make a copy to your fileadmin and add this TS:

plugin.tx_tdcalendar_pi1 {
  templateFile= fileadmin/my_style/td_calendar.css
}

Default

EXT:td_calendar/res/tmpl/td_calendar.css

view

Property

view

Data type

String

Description

The view mode of the content element, default set to month. Also possible is week, day, list or single:

Example:

# view mode is day
plugin.tx_tdcalendar_pi1 {
  view= day
}

Default

month

pidList

Property

pidList

Data type

String

Description

The page id (pid), or list of pids of the folder(s), where your records are stored in (also known as “Starting point”). If this value is not set, and the “Starting point” field in the news content-element is also empty, the current page is used.Accepts multiple pids comma separated!

Example:

# clear the value
plugin.tx_tdcalendar_pi1.pidList >
# display calendar records located in page 582 & 584
plugin.tx_tdcalendar_pi1.pidList = 582,584

Default

0

recursive

Property

recursive

Data type

Int / stdWrap

Description

If this is given, the “pidList” is extended by the number of recursive levels.

Example:

plugin.tx_tdcalendar_pi1.recursive = 3

Default

PIDeventDisplay

Property

PIDeventDisplay

Data type

Int

Description

Page id of the page where single calendar records are displayed.

Here you can define a page to be used for display of a news item with the “SINGLE” template-part. This setting can also be done in the constant editor.

Example:

# PIDeventDisplay for a calendar element inserted by TS
plugin.tx_tdcalendar_pi1.singlePid = 590

Default

0

categoryMode

Property

categoryMode

Data type

Int

Description

The category mode:

0 is ignore selection

1 is only show selected

-1 is hide selected

Example:

# show selected categories
plugin.tx_tdcalendar_pi1 {
  categoryMode= 1
}

Default

0

hideExcEvents

Property

hideExcEvents

Data type

Boolean

Description

Hide exception events to be shown in frontend view

Default

0

showEventBegin

Property

showEventBegin

Data type

Boolean

Description

Show begin time of an event in event title

Default

0

hideCategorySelection

Property

hideCategorySelection

Data type

Boolean

Description

Disables category selection in frontend

Default

0

showTooltips

Property

showTooltips

Data type

Boolean

Description

Show tooltips in month, week, day and upcoming list view

Default

1

showTooltipImage

Property

showTooltipImage

Data type

Boolean

Description

Show first related image in tooltips

Default

1

showMultiDayOnlyOnce

Property

showMultiDayOnlyOnce

Data type

Boolean

Description

Events lasting longer than one day will only be shown once in frontend view

Default

0

forceSamePageFunc

Property

forceSamePageFunc

Data type

Boolean

Description

Force the dissemination of all variables to allow multiple content elements on a page.

Default

0

viewTitleWrap

Property

viewTitleWrap

Data type

-> wrap

Description

Wrap of viewtitle marker

Default

|

titleWrap

Property

titleWrap

Data type

-> wrap

Description

Wrap of title marker

Default

|

teaserWrap

Property

teaserWrap

Data type

-> wrap

Description

Wrap of teaser marker

Default

<p class="teaser"> | </p>

descWrap

Property

descWrap

Data type

-> wrap

Description

Wrap of description marker

Default

<p class="desc"> | </p>

itemLinkWrap

Property

itemLinkWrap

Data type

-> wrap

Description

Wrap of itemlink marker

Default

<p class="itemlink"> | </p>

labelWrap

Property

labelWrap

Data type

-> wrap

Description

Wrap of all label markers

Default

<div class="label"> | :</div>

imageWrap

Property

imageWrap

Data type

-> wrap

Description

Wrap of image markers

Default

<div class ="tdcalendar-imagewrap> | </div>

imageMode

Property

imageMode

Data type

string

Description

Mode of image rendering. Possible is esize2max, crop and resize.

Default

resize2max

image

Property

image

Data type

->imgResource

->stdWrap

Description

Configurates the image(s) in news items.

Example:

plugin.tx_tdcalendar_pi1.single.image {
    file.maxW = 120
    file.maxH = 90
    imageLinkWrap = 1
    stdWrap.spaceAfter = 5
}

see: TSref->imgResource

Default

-> see setup.txt

caption_stdWrap

Property

caption_stdWrap

Data type

->stdWrap

Description

stdWrap for display of the image caption(s).

Default

<p class="tdcalendar-imgcaption"> | </p>

hideImageCaption

Property

hideImageCaption

Data type

Boolean

Description

Hide the Image caption. e.g. 1, but in single view 0.

Default

1

croppingLenght

Property

croppingLenght

Data type

String

Description

Cropping value for teaser length

Default

100 |...| true

Month view Settings

plugin.tx_tdcalendar_pi1.monthView properties: TS configuration. Configuration starts with this line

plugin.tx_tdcalendar_pi1.month {

miniCalendar

Property

miniCalendar

Data type

Boolean

Description

Month view as mini calendar. Shows calendar without day events but with linked day numbers

Default

0

PIDdayDisplay

Property

PIDdayDisplay

Data type

Int

Description

PID of day view for mini calendar

Default

0

showWeeksAsRows

Property

showWeeksAsRows

Data type

Boolean

Description

Shows weeks as rows, e.g. is cols

Default

0

onlyDaysofMonth

Property

onlyDaysofMonth

Data type

Boolean

Description

Shows only days of month and hide previous or future events in monthview

Default

0

dayFormat

Property

dayFormat

Data type

String

Description

Day format of single day numbers

Default

%d

maxDaynameLength

Property

maxDaynameLength

Data type

Int

Description

Maximal length of daynames

Default

2

showWeeksDisabled

Property

showWeeksDisabled

Data type

Boolean

Description

Hides the week labels in monthview

Default

0

wrapItemCatLen

Property

wrapItemCatLen

Data type

Int

Description

Crops the category title after X letters

Default

8

Week view Settings

plugin.tx_tdcalendar_pi1.weekView properties: TS configuration. Configuration starts with this line

plugin.tx_tdcalendar_pi1.weekView {

startHour

Property

startHour

Data type

Int

Description

Start hour of view

Default

0

endHour

Property

endHour

Data type

Int

Description

End Hour of view

Default

24

showAsList

Property

showAsList

Data type

Boolean

Description

Shows weekview as list (without hour table)

Default

0

Day view Settings

plugin.tx_tdcalendar_pi1.dayView properties: TS configuration. Configuration starts with this line

plugin.tx_tdcalendar_pi1.dayView {

startHour

Property

startHour

Data type

Int

Description

Start hour of view

Default

0

endHour

Property

endHour

Data type

Int

Description

End Hour of view

Default

24

showAsList

Property

showAsList

Data type

Boolean

Description

Shows dayview as list (without hour table)

Default

0

additionalColumnAtEnd

Property

additionalColumnAtEnd

Data type

Boolean

Description

Adds an additional column at the End of the daytable for better clarity

Default

0

List view Settings

plugin.tx_tdcalendar_pi1.listView properties: TS configuration. Configuration starts with this line

plugin.tx_tdcalendar_pi1.listView {

listEntryCount

Property

listEntryCount

Data type

Int

Description

Limit of Entrys in Listview

Default

5

listStartTime

Property

listStartTime

Data type

Timestamp

Description

Start time of Listview. If Empty, it's current time

Default

PIDallEventsDisplay

Property

PIDallEventsDisplay

Data type

Int

Description

PID of site, where “All Events” - link should link to

Default

Single view Settings

plugin.tx_tdcalendar_pi1.singleView properties: TS configuration. Configuration starts with this line

plugin.tx_tdcalendar_pi1.singleView {

singleViewIsShy

Property

singleViewIsShy

Data type

Boolean

Description

Hides Error Messages, if no entries are found. You need to activate this, if you want to have overview and single view on same page.

Default

0

Because it is an Alpha Version, an initial release, I look forward to your response and your wishes for more TS configuration or other features.

ToDo

  • Frontendediting
  • Export (and import, but later) events as .ics and RSS
  • enable more typoscript configuration
  • code clean up
  • template clean up

Changelog

0.2.6: [BUGFIX] exclude-fields in TCA-Array completed, TYPO3 6.0 compatibility [UPDATE] ###LOCATION### and ###ORGANIZER###-Marker in Tooltips and Upcoming-Event-View.

0.2.5: [UPDATE] Constants are now editable in constants editor, real- url-examples are now part of the package, updated manual, thanks to Holger Hinkerohe

0.2.4: [BUGFIX] days were not linked in mini calendar month view. thanks to mike sch for the bug report.

0.2.3: [BUGFIX] broken dayview after update

0.2.2: [BUGFIX] not existing variables were treated by array functions - not valid and performance killer

0.2.1: [BUGFIX] Updated manual, updated file referenz and php script documentation

0.2.0: First Release as ALPHA.

17