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

5.0.0 2024-07-05 21:19 UTC

This package is auto-updated.

Last update: 2024-12-05 22:31:00 UTC


README

Introduction

  • Extends Typo3 Calendar extension calendarize with location and organizer records based on popular Typo3 Address extension tt_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

  1. calendarize extension is installed, see https://extensions.typo3.org/extension/calendarize/
  2. tt_address extension is installed, see https://extensions.typo3.org/extension/tt_address/
  3. 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

  1. 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.
  2. 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.
  3. 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.

  1. Switch to the root page of your site.
  2. Switch to the Template module and select Info/Modify.
  3. Press the link Edit the whole template record and switch to the tab Includes.
  4. 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:

  1. Switch to the list view
    1. Create a new page with type Sysfolder or
    2. Select an existing page
  2. Click the “+” icon and select Address.
  3. 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:

  1. Switch to the list view
    1. Create a new page with type Sysfolder or
    2. Select an existing page
  2. Click the “+” icon and select "Event".
  3. To add an address record as location to the event, go to the field Location from Addresses and select one ore more address records
  4. To add an address record as organizer to the event, go to the field Organizer from Addresses and select one ore more address records
  5. 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:

  1. Switch to the page view
    1. Create a new page for the location view or
    2. Select an existing page where you want to insert the location view
  2. Create a new content element and in the “new content element wizard” scroll down to the plugins section and select "Calendarize - Location View"
  3. 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:

  1. Switch to the page view
    1. Create a new page for the organizer view or
    2. Select an existing page where you want to insert the organizer view
  2. Create a new content element and in the “new content element wizard” scroll down to the plugins section and select "Calendarize - Organizer View"
  3. 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:

  1. Switch to the root page of your site.
  2. Switch to the Template module and select "Constant Editor".
  3. Select "Calendarize" in the field "Category".
  4. Fill in the page id of (A) in the field locationPid.
  5. Fill in the page id of (B) in the field organizerPid.
  6. Optionally: add your Google Maps API key to enable maps in location view.
  7. 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