Introduction 

What does it do? 

schooldirectory is an extension for TYPO3 CMS. It is useful to manage and display schools for a city.

Features 

  • Create school records
  • Assign schools to addresses. Which school is responsible for which address?
  • Differ school records by their type

Users Manual 

Target group: Editors

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

School Record 

  1. Select a Storage Page
  2. Create a new record of type School
  3. Give it a title.
  4. Enter a description which will be shown on configured detail page
  5. By default you can insert up to 5 images to schoole record.

Installation 

Composer 

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

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

If you work with DDEV please execute this command:

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

ExtensionManager 

On non composer based TYPO3 installations you can install schooldirectory 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 schooldirectory

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

Next step 

Configure schooldirectory.

Extension Settings 

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

Tab: Basic 

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.

Configuration 

View 

view.templateRootPaths 

Default: Value from Constants EXT:schooldirectory/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:schooldirectory/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:schooldirectory/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_schooldirectory.settings.pidOfMaps2Plugin = 21,45,3234

Settings 

settings.pidOfMaps2Plugin 

Default: 0

Example: plugin.tx_schooldirectory.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_schooldirectory.settings.pidOfDetailPage = 84

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

setting.pidOfSearchPage 

Default: 0

Example: plugin.tx_schooldirectory.settings.pidOfSearchPage = 86

Define the page UID where you have inserted the search plugin of schooldirectory.

settings.list.image.* 

Here you can define the width and height of images in list view.

Example:

settings {
  list {
    width = 50c
    height = 50c
    minWidth = 50
    maxWidth = 50
    minHeight = 50
    maxHeight = 50
  }
}
Copied!

settings.show.image.* 

Here you can define the width and height of images in show view.

Example:

Example:

settings {
  show {
    width = 240c
    height = 180c
  }
}
Copied!

settings.glossary.mergeNumbers 

Default: 1

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

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

settings.pageBrowser.itemsPerPage 

Default: 15

Example: plugin.tx_schooldirectory.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:
  SchooldirectoryPlugin:
    type: Extbase
    extension: Schooldirectory
    plugin: List
    limitToPages: [27]
    routes:
      -
        routePath: '/{letter}'
        _controller: 'School::list'
      -
        routePath: '/schulen/s/info/{school_title}'
        _controller: 'School::show'
        _arguments:
          school_title: school
    requirements:
      letter: '^(0-9|[a-z])?$'
      school_title: '^[a-zA-Z0-9\-_]+$'
    defaultController: 'School::list'
    aspects:
      school_title:
        type: PersistedAliasMapper
        tableName: tx_schooldirectory_domain_model_school
        routeFieldName: path_segment
      letter:
        type: StaticValueMapper
        map:
          0-9: 0-9
          'a': 'a'
          'b': 'b'
          'c': 'c'
          'd': 'd'
          'e': 'e'
          'f': 'f'
          'g': 'g'
          'h': 'h'
          'i': 'i'
          'j': 'j'
          'k': 'k'
          'l': 'l'
          'm': 'm'
          'n': 'n'
          'o': 'o'
          'p': 'p'
          'q': 'q'
          'r': 'r'
          's': 's'
          't': 't'
          'u': 'u'
          'v': 'v'
          'w': 'w'
          'x': 'x'
          'y': 'y'
          'z': 'z'
          '': ''
Copied!

Upgrade 

If you update EXT:schooldirectory to a newer version, please read this section carefully!

Update to Version 8.0.0 

This release brings full TYPO3 v13 compatibility and modernizes the extension structure. Deprecated APIs are removed, and a migration wizard eases the update from older plugin types.

Features 

  • TYPO3 v13 LTS support
  • Introduced SiteSets configuration for improved deployment consistency
  • Moved all extension icons to Resources/Public/Icons/

Changes 

  • Replaced all deprecated TYPO3 core API calls with updated alternatives
  • Converted list_type plugin registration to a custom CType
  • Restructured internal logic to align with TYPO3 13 best practices

Migrations 

  • Added a backend Upgrade Wizard to automatically migrate list_type

plugins to the new CType configuration

Deprecation/Removal 

  • Removed all usage of deprecated API calls no longer available in TYPO3 13

Upgrade Notes 

  • Ensure the Upgrade Wizard is executed after installation
  • Review and test any custom Fluid templates or TypoScript overrides using

the old list_type

Update to Version 7.0.0 

  • Initial compatibility update for TYPO3 v12 LTS.
  • Full support for TYPO3 v12 core
  • Cleaned up legacy code to align with TYPO3 12 API

Update to Version 6.0.0 

We have added TYPO3 11 compatibility.

We have moved Schooldirectory.js from TypoScript to f:asset VH. Please update your own partials to load that file with f:asset.

Update to Version 5.0.0 

We have removed TYPO3 9 compatibility.

As ViewHelper widgets are deprecated since TYPO3 10, we have completely reworked the Ajax Search Widget. Further we are using the the Paginator API. So please update following Fluid Templates:

  • Partials/School/List.html
  • Partials/School/Search.html
  • Templates/District/Search.html
  • Templates/School/List.html
  • Templates/School/Search.html

We have completely rewritten the JavaScript. If you have a modified version, please update to your needs.

Update to Version 4.0.3 

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

Update to Version 4.0.0 

We have remove TYPO3 8 compatibility. We have added TYPO3 10 compatibility. Please execute the schooldirectory UpgradeWizards in Installtool.

Known Problems 

It may happen that AJAX requests will not work in development mode, because of appended "Parse time" by TYPO3.

ChangeLog 

Version 8.0.6 

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

Version 8.0.5 

  • [BUGFIX] Issue with SiteSet template paths fixed

Version 8.0.4 

  • [BUGFIX] TCA Migrations for tables done

Version 8.0.3 

  • [BUGFIX] Issue with missing annotation in SchoolDistrict Model

Version 8.0.2 

  • [BUGFIX] Fixed error due to request not passed to Glossary Service

Version 8.0.1 

  • [BUGFIX] SiteSet identifier renamed by removing default

Version 8.0.0 

  • Add TYPO3 13 compatibility
  • Replaced all older API with new.
  • Removed older version compatibility
  • Added Version 13 Compatibility
  • Site configuration (site sets) integration for cleaner setup
  • Removed deprecated functions
  • Removed obsolete functions
  • Cleaned up TCA and backend form setups
  • Code formatting and PSR-12 cleanup
  • Custom CType plugins replacing deprecated list_type

Version 7.0.0 

  • Add TYPO3 12 compatibility
  • Removed older version compatibility

Version 6.0.0 

  • Add TYPO3 11 compatibility

Version 5.1.6 

  • Use correct controller for district

Version 5.1.5 

  • Remove vendor name from district plugin

Version 5.1.4 

  • Remove vendor name from plugin definition
  • Remove definition for AjaxController
  • Use FQCN for controller definition

Version 5.1.3 

  • Don't show selectbox if there are no options

Version 5.1.2 

  • Repair autofill of select fields after starting a search request

Version 5.1.1 

  • Add settings for glossary

Version 5.1.0 

  • Use inject methods in controller
  • Set glossary2 dependency to 5.0.0

Version 5.0.0 

  • Removed TYPO3 9 compatibility

Version 4.0.3 

  • Move SlugHelper from constructor argument into getSlugHelper()

Version 4.0.1 

  • Add documentation
  • Add cool new SVG Icons for table and extension
  • Add Services.yaml for TYPO3 10 compatibility

Version 4.0.0 

  • Remove TYPO3 8 compatibility
  • Add TYPO3 10 compatibility
  • Remove title from SVG icons
  • Replace Google+ with Instagram
  • Restructure TCA
  • Add path_segment
  • Remove @lazy from 1to1 relations

Sitemap