The initial goal of the team working on this new calendar extension is to create flexible, robust base for a calendar that other extensions can build on. This base calendar will provide the framework necessary for extensible input and output in the calendar. On the input side, calendar data can come from extensions that use TYPO3's database, from static files such as iCal, or from any other data source that PHP can connect to. On the output side, calendar views will be equally extensible with HTML, iCal, and RSS output all well within the realm of possibility.
The underlying design pattern that provides this extensiblity is the Model-View-Controller (MVC) Pattern. In the MVC pattern, the model provides an object-based representation of our calendar data, but has nothing to do with the display of that data. It is here that the various input sources can hook in and populate our model. At the opposite end is the view, which is responsible for outputting data to the user. This view has no notion of the underlying storage mechanism (database, file system, etc); it only knows how to draw events and has no logic built into it. Sitting in between the two and controlling the traffic between each, is the controller. The controller serves as the main entry point from TYPO3 into the calendar base, and based on paramters passed to its functions, retrieves certain events from the model and passes those events along to the view. The model and the view never interact directly; the controller sits in the middle to direct traffic between the two.
The ultimate goal for the base calendar is a clean archicture that other extensions can plug into to display calendar data. Currently, the extension repository has many different extension for displaying calendar events, online event registration, conferences, etc with a great deal of duplicated functionality and no real way of showing combined data from the extensions. Through the design and development of a base calendar architecture, our goal is to provide future extension developers an easy mechanism to get data on one global calendar.
Latest Development Source Code¶
As common standard for projects on forge, we use "GIT" for source revision control and code sharing.
The GIT repository for the Calendar Base extension and any related extensions is at:
For further instructions on how to use GIT, see Git How To.
Like any other project too we need lots of helping hands to keep on going. One major task we could need your assistance is in helping us to document this project, either through writing a tutorial, providing tipps & tricks or help testing the releases.
This is the right place to start: Tutorials, Tipps/Tricks or help with the Release checklist
And we will keep track of the different Releases
For any documentation changes please specify the corresponding part as much in detail as possible.
If you want to help with the extension manual, please specify the corresponding part as much in detail as possible.
As page numbers can change easily during editing, please refer to the corresponding sections in the manual (e.g., "chapter 5.3, Create Calendar Events,-> The General Tab").
- To alter or remove text, please quote the entire original text first and the new text afterwards (or state: to be removed)
- To add larger parts: Please quote the last two sentences before the position where you want to add text. If you want to add text to numbered elements, please state the surrounding elements and their first words (e.g., "4.1. General Settings Tab: new element between [2. Calendar name] and [3. Allow to subscribe]")
Following these guidelines helps to speed up editing your input.