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.
Installs: 7 473
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 2
Open Issues: 1
Type:typo3-cms-extension
Requires
- php: ^8
- friendsoftypo3/tt-address: ^7 || ^8
- lochmueller/calendarize: ^12 || ^13
- typo3/cms-core: ^11.5 || ^12.4
Replaces
- typo3-ter/calendarize-address: 5.0.0
README
Introduction
- Extends Typo3 Calendar extension
calendarize
with 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
calendarize
extension is installed, see https://extensions.typo3.org/extension/calendarize/tt_address
extension 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-address
to 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_address
and 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.
- 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).
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 plugins 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 plugins section and select "Calendarize - Organizer View"
- Switch to the Plugin tab, configure the sysfolder where event records are stored and save.
Activation and Template Configuration To finally activate the links from event detail view to location and organizer view, please configure the page ids:
- 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.
Configuration
Routing
If routing is required for location or organizer records, the following configuration will provide a good start for your configuration.
CalendarizeLocation:
type: Extbase
extension: Calendarize
plugin: Location
limitToPages:
- 10 <= 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:
- 11 <= 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'
Change Log
Please refer to the release documentation on https://github.com/andreaskastl/calendarize_address/releases