andreaskastl / calendarize-address
Extends EXT:calendarize events with location and organizer records based on EXT:tt_address records and provides corresponding location and organizer views.
Package info
github.com/andreaskastl/calendarize_address
Type:typo3-cms-extension
pkg:composer/andreaskastl/calendarize-address
Requires
- php: ^8
- friendsoftypo3/tt-address: ^10
- lochmueller/calendarize: ^15
- typo3/cms-core: ^13.4 || ^14.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
- typo3-ter/calendarize-address: 8.0.0
README
Introduction
- Extends Typo3 Calendar extension
calendarizewith location and organizer records based on popular Typo3 Address extensiontt_address - Includes adapted event detail view for calendarize extension
- Provides new location view with address details and related events. Optionally a Google Maps visualisation of the location is possible.
- Provides new organizer view with address details and related events
Administration
Prerequisites
The following prerequisites must be fulfilled to use calendarize_address extension
calendarizeextension is installed, see https://extensions.typo3.org/extension/calendarize/tt_addressextension is installed, see https://extensions.typo3.org/extension/tt_address/- optionally: get an API key from Google, if Google Maps visualisation should be used, see https://developers.google.com/maps/documentation/javascript/get-api-key
Installation
The extension needs to be installed as any other extension of TYPO3 CMS. Get the extension
- Install extension via composer command: Go to your folder where the root composer.json file is located. Type:
composer req andreaskastl/calendarize-addressto get the latest version that runs on your TYPO3 version. - Get it from the Extension Manager: Press the Retrieve/Update button and search for the extension key
calendarize_addressand import the extension from the repository. - Get it from typo3.org: You can always get current version from https://extensions.typo3.org/extension/calendarize_address/ by downloading either the t3x or zip version. Upload the file afterwards in the Extension Manager.
The extension ships some TypoScript code which needs to be included. There are two ways to include the TypoScript configuration:
Method 1: Classic Way (TypoScript Template)
- Switch to the root page of your site.
- Switch to the Template module and select Info/Modify.
- Press the link Edit the whole template record and switch to the tab Includes.
- Select Calendarize - Address Extension at the field Include static (from extensions).
Method 2: Site Sets (TYPO3 13+)
If you are using TYPO3 13 or later, you can include the extension's configuration via site sets (this extension supports site sets from version 8 onwards). You can do this in two ways:
Option A: Via UI
- Open your site configuration in the backend.
- Navigate to the Site Sets section.
- Select Calendarize - Address Extension from the available sets and activate it.
- Save your site configuration.
Option B: Manual Configuration
- Open your site configuration file (usually in
config/sites/<your-site>/config.yaml). - Add the following to the
importssection:imports: - { resource: "EXT:calendarize_address/Configuration/Sets/CalendarizeAddress/config.yaml" }
- Clear the cache and verify the configuration is applied.
Users Manual
Creating Address Records
All existing address records can be reused in the events. To create new address records:
- Switch to the list view
- Create a new page with type Sysfolder or
- Select an existing page
- Click the “+” icon and select Address.
- Fill out all information you need and save.
Creating Event Records including Locations or Organizers
All existing event records can be extended with locations or organizers based on address records. To create a new event and reference locations or organizers:
- Switch to the list view
- Create a new page with type Sysfolder or
- Select an existing page
- Click the “+” icon and select "Event".
- To add an address record as location to the event, go to the field Location from Addresses and select one ore more address records
- To add an address record as organizer to the event, go to the field Organizer from Addresses and select one ore more address records
- Fill out other information you need and save.
Creating a Plugin Content Element
For location view and organizer view two separate pages with separate plugins are required - in addition to other pages for e.g. list and detail view. Recommended page structure and corresponding plugins / views:
List (use normal Calendarize plugin with Calendar->list view)
-- Detail (use normal Calendarize plugin with Calendar->detail view)
-- Month (use normal Calendarize plugin with Calendar->month view)
-- Day (use normal Calendarize plugin with Calendar->day view)
-- ...
-- Location (use Calendarize Location view plugin (A))
-- Organizer (use Calendarize Organizer view plugin (B))
(A) Location View:
- Switch to the page view
- Create a new page for the location view or
- Select an existing page where you want to insert the location view
- Create a new content element and in the “new content element wizard” scroll down to the Calendarize - Address Views section and select "Calendarize - Location View"
- Switch to the Plugin tab, select "Calendarize location view" in the "Selected Plugin" field, configure the sysfolder where event records are stored and save.
(B) Organizer View:
- Switch to the page view
- Create a new page for the organizer view or
- Select an existing page where you want to insert the organizer view
- Create a new content element and in the “new content element wizard” scroll down to the Calendarize - Address Views section and select "Calendarize - Organizer View"
- Switch to the Plugin tab, configure the sysfolder where event records are stored and save.
Activation and Configuration To finally activate the links from event detail view to location and organizer view, please configure the page ids. The configuration method depends on your TYPO3 version and TypoScript inclusion method:
Method 1: Classic TypoScript (via Template Module)
- Switch to the root page of your site.
- Switch to the Template module and select "Constant Editor".
- Select "Calendarize" in the field "Category".
- Fill in the page id of (A) in the field
locationPid. - Fill in the page id of (B) in the field
organizerPid. - Optionally: add your Google Maps API key to enable maps in location view.
- Save the template and go to the frontend to verify if event detail page, location view and organizer view are working as expected. When you click on a location or organizer entry in the event detail view, the location resp. organizer details are shown.
Method 2: Site Sets (TYPO3 13+, via Site Configuration) If you are using site sets, configure the constants in your site configuration:
- Open your site configuration menu or the file (usually in
config/sites/<your-site>/config.yaml). - Add or update the
constantssection with the following:constants: plugin.tx_calendarize.settings.locationPid: A plugin.tx_calendarize.settings.organizerPid: B plugin.tx_calendarize.settings.googleMaps.key: 'YOUR_GOOGLE_MAPS_API_KEY'
- Replace
AandBwith the actual page ids of (A) and (B) respectively. - Optionally: add your Google Maps API key in the
googleMaps.keyconstant to enable maps in location view. - Clear the cache and go to the frontend to verify if event detail page, location view and organizer view are working as expected. When you click on a location or organizer entry in the event detail view, the location resp. organizer details are shown.
Configuration
Routing
If routing is required for location or organizer records, the following configuration will provide a good start for your configuration. Replace INSERT HERE ID OF PAGE A and INSERT HERE ID OF PAGE B with correct page ids.
CalendarizeLocation: type: Extbase extension: Calendarize plugin: Location limitToPages: - INSERT HERE ID OF PAGE A routes: - routePath: '/{location}' _controller: 'Address::location' - routePath: '/{location}/page/{currentPage}' _controller: 'Address::location' defaultController: 'Address::location' aspects: location: type: PersistedAliasMapper tableName: tt_address routeFieldName: slug currentPage: type: StaticRangeMapper start: '1' end: '31' CalendarizeOrganizer: type: Extbase extension: Calendarize plugin: Organizer limitToPages: - INSERT HERE ID OF PAGE B routes: - routePath: '/{organizer}' _controller: 'Address::organizer' - routePath: '/{organizer}/page/{currentPage}' _controller: 'Address::organizer' defaultController: 'Address::organizer' aspects: organizer: type: PersistedAliasMapper tableName: tt_address routeFieldName: slug currentPage: type: StaticRangeMapper start: '1' end: '31'
Update Instructions
Upgrading to Version 8 (TYPO3 13 and 14)
Version 8 of this extension includes an upgrade wizard to migrate your existing frontend plugins to be compatible with TYPO3 version 13 and 14. The wizard automatically converts old plugin content types to the new format.
To run the upgrade wizard:
- After updating the extension to version 8, go to the Upgrade module in the TYPO3 backend.
- Look for the "Calendarize Address Plugin List Type to CType Update" wizard.
- Run the wizard to automatically migrate all existing plugins.
- The wizard will update all content elements to use the new CType format compatible with TYPO3 13 and 14.
Change Log
Please refer to the release documentation on https://github.com/andreaskastl/calendarize_address/releases