Introduction 

What does it do? 

With clubdirectory you can manage, list and show all clubs of your town. Further we have added a form for your FE users to register their new club or edit them.

Users Manual 

Target group: Editors

  1. Select a page where you want to insert clubdirectory
  2. Insert a new content element of type: Insert Plugin
  3. On tab Plugin select Clubs from selectbox.
  4. Confirm reload to load special input fields for our extension (FlexForm).
  5. Save

Plugin Options 

Show Glossary 

You can decide to show A-Z links above or not.

Show entries of category 

Sometimes it makes sense to reduce list of club entries to a given category.

Club Record 

  1. Select a Storage Page
  2. Create a new record of type Club
  3. Give it a title. We will use the first letter of title to sort it into our glossary navigation (if activated).
  4. Enter a description which will be shown on configured detail page
  5. By default you can insert up to 5 images to club record.
  6. At tab Categories you can relate club entry to a category. That way you can show only club records of a defined category in plugin, if you want.

Installation 

Composer 

If your TYPO3 installation works in composer mode, please execute following command:

composer req jweiland/clubdirectory
vendor/bin/typo3 extension:setup --extension=clubdirectory
Copied!

If you work with DDEV please execute this command:

ddev composer req jweiland/clubdirectory
ddev exec vendor/bin/typo3 extension:setup --extension=clubdirectory
Copied!

ExtensionManager 

On non composer based TYPO3 installations you can install clubdirectory still over the ExtensionManager:

  1. Login

    Login to backend of your TYPO3 installation as an administrator or system maintainer.

  2. Open ExtensionManager

    Click on Extensions from the left menu to open the ExtensionManager.

  3. Update Extensions

    Choose Get Extensions from the upper selectbox and click on the Update now button at the upper right.

  4. Install clubdirectory

    Use the search field to find clubdirectory. Choose the clubdirectory line from the search result and click on the cloud icon to install clubdirectory.

Next step 

Configure clubdirectory.

Extension Settings 

Some general settings for clubdirectory can be configured in Admin Tools -> Settings.

Tab: Basic 

userGroup 

Default: 0

If you will allow for frontend users to create and edit their own club records you have to assign them a frontend usergroup and add this group UID to this property.

poiCollectionPid 

Default: 0

Only valid, if you have installed EXT:maps2, too.

While creating location records we catch the address and automatically create a maps2 record for you. Define a storage PID where we should store these records.

rootCategory 

Default: 0

If you have many sys_category records with huge trees in your TYPO3 project, it may make sense to reduce the category trees in our Plugins to a parent category UID (root UID).

emailFromAddress 

Default: empty (use value from INSTALL_TOOL)

With clubdirectory you can give your website visitors the possibility to create new events. These created records will be hidden by default. Add an email address of the sender, if a new record was created over the frontend.

emailFromName 

Default: empty (use value from INSTALL_TOOL)

With clubdirectory you can give your website visitors the possibility to create new events. These created records will be hidden by default. Add a name of the sender, if a new record was created over the frontend.

emailToAddress 

Default: empty

With clubdirectory you can give your website visitors the possibility to create new events. These created records will be hidden by default. Add an email address of the receiver, if a new record was created over the frontend.

emailToName 

Default: empty

With clubdirectory you can give your website visitors the possibility to create new events. These created records will be hidden by default. Add a name of the receiver, if a new record was created over the frontend.

Configuration 

View 

view.templateRootPaths 

Default: Value from Constants EXT:clubdirectory/Resources/Private/Templates/

You can override our Templates with your own SitePackage extension. We prefer to change this value in TS Constants.

view.partialRootPaths 

Default: Value from Constants EXT:clubdirectory/Resources/Private/Partials/

You can override our Partials with your own SitePackage extension. We prefer to change this value in TS Constants.

view.layoutsRootPaths 

Default: Value from Constants EXT:clubdirectory/Resources/Layouts/Templates/

You can override our Layouts with your own SitePackage extension. We prefer to change this value in TS Constants.

Persistence 

persistence.storagePid 

Set this value to a Storage Folder (PID) where you have stored the records.

Example: plugin.tx_clubdirectory.settings.pidOfMaps2Plugin = 21,45,3234

Settings 

settings.pidOfMaps2Plugin 

Default: 0

Example: plugin.tx_clubdirectory.settings.pidOfMaps2Plugin = 12

Define the page UID where the EXT:maps2 plugin is located to show an address on a map.

setting.pidOfDetailPage 

Default: 0

Example: plugin.tx_clubdirectory.settings.pidOfDetailPage = 84

Often it is useful to move the detail view onto a separate page for design/layout reasons.

settings.glossary.mergeNumbers 

Default: 1

Example: plugin.tx_clubdirectory.settings.glossary.mergeNumbers = 0

Merge record titles starting with numbers to 0-9 in glossary.

settings.pageBrowser.itemsPerPage 

Default: 15

Example: plugin.tx_clubdirectory.settings.pageBrowser.itemsPerPage = 20

Reduce result of records to this value for a page

Administrator manual 

This chapter describes how to manage the extension from a superuser point of view.

Routes 

With TYPO3 9 you have the possibility to configure RouteEnhancers

Example Configuration 

routeEnhancers:
  ClubdirectoryGlossary2Plugin:
    type: Extbase
    extension: Clubdirectory
    plugin: clubdirectory
    routes:
      -
        routePath: '/first-club-page'
        _controller: 'Club::list'
      -
        routePath: '/club-page-{page}'
        _controller: 'Club::list'
        _arguments:
          page: '@widget_0/currentPage'
      -
        routePath: '/club-by-letter/{letter}'
        _controller: 'Club::search'
        _arguments:
          letter: 'search/letter'
      -
        routePath: '/show/{club_title}'
        _controller: 'Club::show'
        _arguments:
          club_title: club
    requirements:
      letter: '^(0-9|[a-z])$'
      club_title: '^[a-zA-Z0-9]+\-[0-9]+$'
    defaultController: 'Club::list'
    aspects:
      club_title:
        type: PersistedAliasMapper
        tableName: tx_clubdirectory_domain_model_club
        routeFieldName: path_segment
Copied!

Upgrade 

If you upgrade clubdirectory to a newer version, please read this section carefully!

Update to Version 8.0.0 

This version supports TYPO3 version 13 LTS only. Lower version support removed. Restructured ExtConf file and added SiteSet for the extension. Used Dependency Injection wherever possible. Migrate clubdirectory plugins to CTypes and added new migration wizard.

Update to Version 7.0.0 

This version supports TYPO3 version 12 LTS only. Lower version support removed. All Test Cases which were based on Nimut Testing framework has been replaced with TYPO3 Testing Framework. The backend module for CSV export has been fixed for new backend module API service. All the deprecations are fixed in this version so there are no logs thrown in extension scanner.

Update to Version 6.0.0 

clubdirectory allows maps2 in version 10.0.0. This version does not work with fluid widgets anymore. That's why you also have to switch to the new maps2 partial implementation for editPoi in your overwritten clubdirectory templates. If you still use 9.3.1 of maps2 no template modifications are needed.

If you have extended the controllers of clubdirectory please check, if your implementation is still working, as we have drastically re-factored the controllers.

Update to Version 5.1.0 

TYPO3 log fills up with warnings about removed GET/POST params in PageBrowser. To solve this issue we have switched to new Paginate API of TYPO3. Please update following fluid files:

Templates/Club/List.html Partials/Club/List.html

And update the lines about PageBrowser. Use our files as an example

Update to Version 5.0.7 

We have changed some method arguments, please flush cache in InstallTool

Update to Version 3.0.0 

We have changed Fluid-Templates a lot. We have removed a lot of CSS classes and changed them to be compatible with Bootstrap. Further we have moved all Templates of Field directory into FormFields Template directly in to f:section. Please check your templates, if you have overwritten them.

We have remove form.objectContext VH with no replacement. Please have a look into our new templates and adopt your templates accordingly.

In case of TYPO3 9 you should execute the Slug Updater Wizard of clubdirectory in Installtool, to fill path_segments for better slugs.

As we have modified a lot of PHP classes you should clear all caches.

Known Problems 

Glossary 

Currently it is not possible to separate glossary entry 0-9 into single values.

Maps2 9.3.* 

If you're still using maps2 9.3 you have to override the templates and replace the new maps2 partial solution with the old maps:widget.editPoi solution

ChangeLog 

Version 8.1.1 

  • [TASK] Improve robustness of hidden object resolution and event

Version 8.1.0 

  • [TASK] Simplify access restiction in Backend Module configuration

Version 8.0.6 

  • [BUGFIX] Issue with frontend file upload in create and upload module fixed

Version 8.0.5 

  • [BUGFIX] Remove deprecated usage of SoftRef parser: images

Version 8.0.4 

  • [BUGFIX] Fixed Property Mapper with CheckFal validation issues

Version 8.0.3 

  • Retrieve FE user from request instead from TSFE
  • Set return value for create and update actions

Version 8.0.2 

  • Repair search and filtering
  • Repair CSV download in BE detail view
  • Repair link to show detail action
  • Repair backend module
  • Remove userfunc from ext_localconf.php
  • Remove deprecated and removed CSH lang files
  • Upgrade sys_language_uid, hidden, starttime and endtime of TCA
  • Use type page for pages in site setting definitions

Version 8.0.1 

  • Fixed SiteSets name
  • Fixed Plugin Preview

Version 8.0.0 

  • TYPO3 Version compatibility for 13 LTS
  • Removed Version compatibility for 12 LTS and below
  • Updated Test Suite
  • Migrate clubdirectory plugins to CTypes
  • Restructured ExtConf file
  • SiteSets added and removed TypoScript configuration
  • Migrated tests to "podman"
  • Upgrade tests against MariaDB 10.4 to 10.5

Version 7.0.1 

  • TASK: Moved categories filed of club TCA to seperate categories tab

Version 7.0.0 

  • TYPO3 Version compatibility for 12 LTS
  • Backend Module rewrite with new API
  • Test Cases rewrites to TYPO3 Testing Framework
  • Removed compatibility for TYPO3 11 and lower versions
  • All deprecated calls replaced

Version 6.0.1 

  • Replace GeneralUtility::makeInstance where possible
  • BUGFIX: Solve AJAX error while calling UpgradeWizards module

Version 6.0.0 

  • Add TYPO3 11 compatibility
  • Remove TYPO3 9 compatibility
  • Add EventListener for POI title as replacement for SignalSlot in future
  • Replace ObjectManager with GeneralUtility::makeInstance
  • Migrate SignalSlot of maps2 to EventListener
  • Refactor the controllers

Version 5.3.1 

  • Repair export of clubs as CSV.
  • Add district to CSV download

Version 5.3.0 

  • Use our own FrontendUserRepo and model.
  • Move methods to get current user to new FrontendUSerRepo.
  • Remove column "sortTitle"
  • Deprecate getter/setter for sub-categories in search model
  • Update label for filter by
  • Do not show filter box, if a category was preset
  • Repair pageTSConfig for category fields
  • Remove DE translation. THX Crowdin
  • Add district as select field to search template
  • Remove hint how to configure categories in TCA form
  • Repair label of hidden field in TCA
  • Move activity behind title
  • Reduce field height of activity/times to 5 rows

Version 5.2.1 

  • Add TS glossary options for GlossaryService
  • Remove GlossaryService from controller

Version 5.2.0 

  • Set dependency for glossary2 to 5.0.0

Version 5.0.7 

  • Move SlugHelper from constructor argument into getSlugHelper()

Version 5.0.6 

  • Use Extbase Category

Version 5.0.5 

  • Use traverse to disable cHash check in TS condition

Version 5.0.4 

  • Use unique instead of uniqueInSite for slug

Version 5.0.3 

  • Add translation for yes/no
  • Add barrier-free information into address partial

Version 5.0.2 

  • Add CSH for sortTitle in FE
  • Allow storing of hidden records for admins in FE

Version 5.0.1 

  • Use correct namespace for EventDispatcher

Version 5.0.0 

  • Remove TYPO3 9 compatibility

Version 4.0.4 

  • Only add uid to RouteEnhancer, if club was created over frontend

Version 4.0.3 

  • Remove title from SVG Icons

Version 4.0.2 

  • Update requirement of maps2 to 9.3.0
  • Add title attribute to editPoi VH
  • Store path_segment while frontend edit

Version 4.0.1 

  • Replace Google+ column with Instagram

Version 4.0.0 

  • Add validator for club manually
  • Add Services.yaml
  • Add strict_types where possible
  • Use GitHub Actions
  • Better ImageFileConverter
  • Remove icon from sys_category
  • Rename ts files to typoscript
  • remove unused imports
  • Update PHP DocHeaders
  • Update requirement of maps2 to 8.0.0
  • Remove TYPO3 8 compatibility
  • Add TYPO3 10 compatibility
  • Add club getter to get first category

Version 3.0.3 

  • Show error, if address was not found and redirect to previous action

Version 3.0.2 

  • Replace ext icon and all tables icons
  • Use correct address label, if title is of type array
  • [PERFORMANCE] Use group instead of select type for all l10n_parent columns in TCA

Version 3.0.1 

  • Do not change label of address records, if shown as inline in club record

Version 3.0.0 

  • Set default values of relations to 0 in TCA and FlexForm
  • Better ordering of TCA columns
  • CleanUp Translations
  • Add configuration for newContentElementWizard
  • Add CSH
  • Wrap all templates into new HTML namespace declaration
  • Add possibility to delete images from FE
  • Move JS include from Controller into TS Setup
  • Code CleanUps like correct strict type declaration
  • Set return value of getAddresses, getImages and getLogo to array in Club Model
  • Add edit/activate links into create/update mails
  • Complete reworked Fluid-Templating incl. Bootstrap
  • Set default ordering in Search class, so you can see it in FE, too
  • Allow sorting of all records in ClubRepository
  • Generate better label for address and poi-collection records
  • Remove address record, if club was deleted
  • Remove poi-collection, if address was deleted
  • Remove many PropertyMappingConfiguration for tx_maps2_uid
  • Add and Update Documentation
  • Add column path_segment for better slugs incl. UpdateWizard
  • Simplify address record handling. Remove all theses for loops
  • Better implementation with maps2
  • Use club as int in many actions, to prevent calling Validation
  • Redirect to listMyClubs instead of list after editing a club
  • Add club as readOnly to address records for a better overview
  • Set width and height for logo and image in TS setup
  • Remove form.objectContext ViewHelper
  • Remove migration code from TYPO3 6.2

Sitemap