Initial commit - Typo3 11.5.41

This commit is contained in:
Matteo Gallo
2026-07-03 17:53:31 +02:00
commit 5ca4743197
6811 changed files with 568848 additions and 0 deletions

View File

@@ -0,0 +1,308 @@
==============
Administration
==============
.. _extension-configuration:
Extension Configuration
=======================
Some global settings of the extension may be configured in `Settings -> Extension Configuration -> ods_osm`.
Screenshot
----------
.. figure:: /Images/ExtensionConfiguration.png
:class: with-shadow
:alt: Screenshot with first part of the ods_osm settings in the extension configuration
Screenshot of the ods_osm Extension Configuration
Reference
---------
+----------------------------+------------------------------------------------+-------------+
| Option | Description | Default |
+============================+================================================+=============+
| Autocomplete longitude | You can enable to search the coordinates on | 1: If no |
| and latitude | geonames.org when saving an fe_users or | coordinates |
| | tt_address element. | are set |
+----------------------------+------------------------------------------------+-------------+
| Use service to find | Use this service to get the coordinates of an | 2: |
| coordinates | address. If you select “Only cache” you have to| Nominatim |
| | fill the cache table manually. If you select a | |
| | provider here, be aware that the fields “zip”, | |
| | “city” and “country” of every address record | |
| | you save is sent to the provider. | |
+----------------------------+------------------------------------------------+-------------+
| Geo service contact email | Enter a contact email address for the service | |
| | provider here. If not specified, email address | |
| | of server admin is used. | |
+----------------------------+------------------------------------------------+-------------+
| Geo service user name | The GeoNames service requires a username | |
+----------------------------+------------------------------------------------+-------------+
| Default country | Two letter countrycode used in search if no | DE |
| | country is specified. | |
+----------------------------+------------------------------------------------+-------------+
| Enable address search cache| The result of the geo service is stored in | 1 |
| | tx_odsosm_geocache if activated. | |
+----------------------------+------------------------------------------------+-------------+
| Use local javascripts and | Activate this if you don't like to use the | 1 |
| images | javascript files from CDNs but the local ones | |
| | from this extension. | |
+----------------------------+------------------------------------------------+-------------+
| Default longitude | | 10.41 |
+----------------------------+------------------------------------------------+-------------+
| Default latitude | | 51.27 |
+----------------------------+------------------------------------------------+-------------+
| Default zoom | | 8 |
+----------------------------+------------------------------------------------+-------------+
.. _typoscript-configuration:
TypoScript Configuration
========================
It is mandatory to include the ods_osm TypoScript template "Template OpenStreetMap".
This template sets some default values for the ods_osm plugin. The defaults may be configured
with the TypoScript Constant Editor.
With these TypoScript defaults, the editor does not need to make a detailed configuration of the
ods_osm plugin. Selecting the wanted marker is suffician.
The dimenions of the map, the right JavaScript library and zoom level are set by the defaults.
But editors may set and overwrite the defaults in the plugin settings.
Reference
---------
.. |mpi| replace:: marker_popup_initial
.. |sls| replace:: show_layerswitcher
.. |uconm| replace:: use_coords_only_nomarker
.. |ol| replace:: openlayers
+-----------------+-----------+-------------------------------------+---------+
| Property | Data type | Description | Default |
+=================+===========+=====================================+=========+
| cluster | boolean | Cluster marker at lower map zoom. | 0 |
+-----------------+-----------+-------------------------------------+---------+
| cluster_radius | integer | Cluster marker in given radius. | 80 |
+-----------------+-----------+-------------------------------------+---------+
| external_control| boolean || Allow control with GET or POST | 0 |
| | || lon: Map center longitude | |
| | || lat: Map center latitudezoom: Map | |
| | | zoom level | |
| | || layers: Comma separated list of | |
| | | tx_odsosm_layer uid's | |
| | || records: Comma separated list of | |
| | | markers | |
| | || Don't forget to set no_cache=1 | |
+-----------------+-----------+-------------------------------------+---------+
| height | integer | Height of the map div block. This | 80vh |
| | | depends on your webdesign. The | |
| | | default value is 80vh which means | |
| | | 80% from current view port. | |
| | | | |
| | | You can set other values like | |
| | | "80%", 480, 480px | |
+-----------------+-----------+-------------------------------------+---------+
| icon | IMAGE or | Default marker image | Library |
| | TEXT | | default |
| | object | | |
+-----------------+-----------+-------------------------------------+---------+
| JSlibrary | string | JavaScript library: none / jquery | none |
+-----------------+-----------+-------------------------------------+---------+
| layer | integer || Comma separated list of | 1 |
| | list | tx_odsosm_layer uid's. | |
| | || 1: Mapnik | |
| | || 2: SLUB Renderer | |
| | || 3: CycleMap | |
| | || 13: ÖPNV Deutschland | |
| | || 14: Hike & Bike Map | |
| | || 15: Hillshading (NASA SRTM3 v2) | |
| | || 17: Hiking routes | |
| | || 18: Mapnik BW | |
| | || 19: MapSurfer.Net Road | |
| | || 20: MapSurfer.Net Topographic | |
| | || 21: MapSurfer.Net Hybrid | |
| | || 25: TransportMap | |
| | || 28: Cycling routes | |
| | || 29: Stamen Toner | |
| | || 30: Stamen Watercolor | |
| | || 31: Public Transport Lines | |
| | || 32: Stamen Terrain Labels | |
| | || 33: Railway Infrastructure | |
+-----------------+-----------+-------------------------------------+---------+
| library | string | Library: leaflet / openlayers / | |ol| |
| | | openlayers3 / static | |
+-----------------+-----------+-------------------------------------+---------+
| marker | array with| Tablenames and a comma separated | see m_ |
| | table name| list of record ids. | |
| | and | | |
| | integer | | |
| | list | | |
+-----------------+-----------+-------------------------------------+---------+
| |mpi| | integer | Open popup of this marker | |
+-----------------+-----------+-------------------------------------+---------+
| no_marker | boolean || If no marker is set: | 1 |
| | || 0: Hide map | |
| | || 1: Show map | |
+-----------------+-----------+-------------------------------------+---------+
| popup | TS object | There are two additional fields: | see p_ |
| | | “group_title” and | |
| | | “group_description” filled with | |
| | | group information. | |
+-----------------+-----------+-------------------------------------+---------+
| position | boolean | Get current user postion from | 0 |
| | | browser to center the map. | |
+-----------------+-----------+-------------------------------------+---------+
| |sls| | boolean | | 0 |
+-----------------+-----------+-------------------------------------+---------+
| show_popups | boolean || 0:No | 0 |
| | || 1:Click | |
| | || 2:Hover | |
+-----------------+-----------+-------------------------------------+---------+
| show_scalebar | boolean | Show a scale line on the map. | 0 |
+-----------------+-----------+-------------------------------------+---------+
| |uconm| | boolean | Use the default coordinates only if | 0 |
| | | no marker exists. | |
+-----------------+-----------+-------------------------------------+---------+
| width | integer | Height of the map div block. This | 80vw |
| | | depends on your webdesign. The | |
| | | default value is 80vw which means | |
| | | 80% from current view port. | |
| | | | |
| | | You can set other values like | |
| | | "100%", 640, 640px | |
+-----------------+-----------+-------------------------------------+---------+
Examples
--------
::
plugin.tx_odsosm_pi1 {
width = 800
height = 600
mouse_position = 1
}
.. _m:
Markers
```````
.. code-block:: typoscript
plugin.tx_odsosm_pi1 {
marker {
pages =
fe_users =
fe_groups =
tx_odsosm_track =
}
}
.. _p:
Popups
``````
.. code-block:: typoscript
plugin.tx_odsosm_pi1 {
popup {
fe_users = COA
fe_users {
9 = FILES
9 {
references {
table = fe_users
fieldName = image
}
renderObj = IMAGE
renderObj {
file {
import.data = file:current:uid
treatIdAsReference = 1
width = 150c
height = 150c
}
altText.data = file:current:alternative
titleText.data = file:current:title
stdWrap.typolink.parameter.data = file:current:link
}
}
10 = TEXT
10 {
field = name
wrap = <h2>|</h2>
override = {field:first_name} {field:middle_name} {field:last_name}
override.insertData = 1
override.if.isFalse.field = name
}
20 = TEXT
20.field = description
20.htmlSpecialChars = 1
}
tt_address = COA
tt_address {
9 = FILES
9 {
references {
table = tt_address
fieldName = image
}
renderObj = IMAGE
renderObj {
file {
import.data = file:current:uid
treatIdAsReference = 1
width = 150c
height = 150c
}
altText.data = file:current:alternative
titleText.data = file:current:title
stdWrap.typolink.parameter.data = file:current:link
}
}
10 = TEXT
10.field = name
10.wrap = <h2>|</h2>
20 = TEXT
20.field = description
20.htmlSpecialChars = 0
}
}
}
Icon Property
`````````````
.. code-block:: typoscript
plugin.tx_odsosm_pi1 {
icon {
# IMAGE example
fe_users = IMAGE
fe_users {
file = fileadmin/icon.png
file.width = 60px
}
# HTML example
fe_users = TEXT
fe_users {
value = <span>X</span>
size_x=20
size_y=30
offset_x=10
offset_y=15
}
}
}

View File

@@ -0,0 +1,197 @@
Users manual
============
Frontend Plugin
---------------
Insert the OpenStreetMap as frontend plugin and define at least one marker to show.
The map will center to the average coordinates of the markers.
.. image:: ../Images/FrontendPlugin.png
+----------------------------+------------------------------------------------+
| Plugin option (TS option) | Description |
+============================+================================================+
| Marker to show (marker) | Show these records on the map. |
+----------------------------+------------------------------------------------+
| Cluster markers (cluster) | Group nearby markers. |
+----------------------------+------------------------------------------------+
| Width (width) | Width of the map in pixels. |
+----------------------------+------------------------------------------------+
| Height (height) | Height of the map in pixels. |
+----------------------------+------------------------------------------------+
| Longitude (lon) | Default longitude. |
+----------------------------+------------------------------------------------+
| Latitude (lat) | Default latitude. |
+----------------------------+------------------------------------------------+
| Use this coordinates only | If unset, the map is always centered at the |
| if no marker exists | given coordinates. If set, the map is only |
| (use_coords_only_nomarker) | centered there if no marker exists. |
+----------------------------+------------------------------------------------+
| Zoom (zoom) | Zoom level. |
+----------------------------+------------------------------------------------+
| Library (library) | Choose between openlayers, leaflet or static. |
+----------------------------+------------------------------------------------+
| Base layer (layer) | Show this map. The user can switch between |
| | these base layers if the layerswitcher is |
| | is enabled. |
+----------------------------+------------------------------------------------+
| Show popups (show_popups) | Show a popup window with record information if |
| | the user hover or click a marker. |
+----------------------------+------------------------------------------------+
| Show this marker's popup | Open this marker's popup if the user visit the |
| initially | map. |
| (marker_popup_initial) | |
+----------------------------+------------------------------------------------+
| Mouse position | Show position of current mouse cursor. |
| (mouse_position) | |
+----------------------------+------------------------------------------------+
| Show layerswitcher | Show layerswitcher which allows the user to |
| (show_layerswitcher) | hide markers from the same group. |
+----------------------------+------------------------------------------------+
| Show scalebar | Show pan/zoom element. |
| (show_scalebar) | |
+----------------------------+------------------------------------------------+
| Show current position | Center the map on the current position of the |
| (position) | user (if available) |
+----------------------------+------------------------------------------------+
New elements
------------
Layer
.....
You can define your own layers on root level.
.. image:: ../Images/Layer.png
+----------------------------+------------------------------------------------+
| Element option | Description |
+----------------------------+------------------------------------------------+
| Title | Title of this layer. Shown in layerswitcher. |
+----------------------------+------------------------------------------------+
| Is overlay | Base layer or overlay layer? |
+----------------------------+------------------------------------------------+
| JavaScript || JavaScript part to create this layer. |
| || ###TITLE###: Title of layer. |
| || ###VISIBLE###: Contains “'visible':true” if |
| | is overlay and no layerswitcher activated. |
+----------------------------+------------------------------------------------+
| Static map URL || Download static map from this URL. |
| || ###lat###: Latitude of map center. |
| || ###lon###: Longitude of map center. |
| || ###zoom###: Zoom level. |
| || ###width###: Image width. |
| || ###height###: Image height. |
+----------------------------+------------------------------------------------+
| Tile URL | URL to fetch tiles. |
| | Used by OpenLayers if no JavaScript defined. |
| | Used by leaflet. |
+----------------------------+------------------------------------------------+
| Maximum zoom | Maximum zoom level of this layer. |
+----------------------------+------------------------------------------------+
| Subdomains | Tile URL subdomains (Variable {s}) |
+----------------------------+------------------------------------------------+
| Attribution | Attribution text of this layer. |
+----------------------------+------------------------------------------------+
| Homepage | Homepage URL of this layer. |
+----------------------------+------------------------------------------------+
Marker
......
.. image:: ../Images/Marker.png
+----------------------------+------------------------------------------------+
| Element option | Description |
+----------------------------+------------------------------------------------+
| Title | Title for this track. Only shown in backend. |
+----------------------------+------------------------------------------------+
| Icon | Icon file. |
+----------------------------+------------------------------------------------+
| Size | The size of the icon. Would determined |
| | automatically on save. |
+----------------------------+------------------------------------------------+
| Offset | The offset of the icon. It describes the |
| | arrowhead. Would automatically choose the |
| | middle bottom of the image. |
+----------------------------+------------------------------------------------+
Track
.....
.. image:: ../Images/OdsOsmRecordTrack.png
:width: 820px
+----------------------------+------------------------------------------------+
| Element option | Description |
+----------------------------+------------------------------------------------+
| Title | Title for this track. Shown in layerswitcher. |
+----------------------------+------------------------------------------------+
| Color | Color of the track line in the map. |
+----------------------------+------------------------------------------------+
| Width | Width of the track line. |
+----------------------------+------------------------------------------------+
| File | Select only one gpx file here. |
+----------------------------+------------------------------------------------+
Vector
......
You can add GeoJSON data and/or a GeoJSON file to display on a new layer. The
GeoJSON may contain FeatureCollections. Polygone, Lines and Points are tested
and are supported by the vector draw wizard.
.. image:: ../Images/OdsOsmRecordVectorData.png
:width: 820px
+----------------------------+------------------------------------------------+
| Element option | Description |
+----------------------------+------------------------------------------------+
| Title | Title for this vector. Shown in layerswitcher. |
+----------------------------+------------------------------------------------+
| GeoJSON | Fill GeoJSON data and/or select a GeoJSON file |
| | below. |
| | You can use the vector draw wizard to create |
| | and edit the GeoJSON data in this field. |
+----------------------------+------------------------------------------------+
| Color | Color of the vector line in the map (optional).|
+----------------------------+------------------------------------------------+
| Width | Width of the vector polyline. (optional) |
+----------------------------+------------------------------------------------+
| File | Select only one geojson file here. |
+----------------------------+------------------------------------------------+
Extended elements
-----------------
Website user
............
.. figure:: /Images/FeUserCoordinates.png
:class: with-shadow
:alt: Part of the form of a fe_users record with fields for longitude and latitude.
Fields for longitude and latitude of a fe_users record. Click on the OSM icon to launch the map wizard.
+----------------------------+------------------------------------------------+
| Element option | Description |
+----------------------------+------------------------------------------------+
| Longitude and Latitude | Enter the coordinates of an address here. It |
| | would determined automatically if zip or city |
| | is set and autocompletion is enabled in the |
| | extension manager. |
| | Use the OpenStreetMap icon to search the |
| | coordinates on the map. |
+----------------------------+------------------------------------------------+
Website usergroup
.................
.. image:: ../Images/Icon.png
+----------------------------+------------------------------------------------+
| Element option | Description |
+----------------------------+------------------------------------------------+
| Marker | Optionally specify a marker here. |
+----------------------------+------------------------------------------------+

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

View File

@@ -0,0 +1,14 @@
.. This is 'Includes.txt'. It is included at the very top of each and
every ReST source file in THIS documentation project (= manual).
.. role:: aspect (emphasis)
.. role:: html(code)
.. role:: js(code)
.. role:: php(code)
.. role:: typoscript(code)
.. role:: ts(typoscript)
:class: typoscript
.. default-role:: code
.. highlight:: php

View File

@@ -0,0 +1,42 @@
.. include:: Includes.txt
.. _Start:
============================
EXT: ods_osm (OpenStreetMap)
============================
:Extension key:
ods_osm
:Package name:
bobosch/ods-osm
:Version:
|release|
:Language:
en
:Author:
Robert Heel <typo3@bobosch.de>, Alexander Bigga <alexander@bigga.de>
:License:
GPL 3.0
:Rendered:
|today|
:Description:
Add an interactive OpenStreetMap map to your website.
Can also show other tile based maps with OpenLayers or Leaflet.
.. toctree::
:maxdepth: 2
:glob:
Introduction/Index
Editors/Index
Administrators/Index
Tutorial/Index

View File

@@ -0,0 +1,45 @@
Introduction
============
What does it do?
----------------
- Show an interactive OpenStreetMap map with OpenLayers or Leaflet.
- Store coordinates in fe_users and tt_address tables and show as markers in the map.
- Show record information in popup window.
- Display gps tracks (GPX, KML).
- Display of GeoJSON vector files.
Screenshots
-----------
Frontend plugin
The example shows the output of the frontend plugin with the following settings:
* Leaflet JavaScript
* address of "Max Mustermann" as tt_address record with default marker, clickt on the marker
* GPX track with start and stop marker
.. image:: ../Images/FrontendExample.png
Demo Instance
-------------
At https://osm.bigga.de a demo instance of EXT:ods_osm is available which presents multiple
use cases of this extension.
Donation
--------
This extension was only possible with the help of many other free projects.
You're likely using one of the main map “Mapnik”, “Osmarender” or “Cyclemap” - feel free to
donate to the OpenStreetMap project https://supporting.openstreetmap.org/donate/
If you are using the address search (autocomplete longitude and latitude in address records),
please donate the service you use:
Geonames: https://www.geonames.org/donations.html or buy some credits there.
Nominatim: https://supporting.openstreetmap.org/donate/
And don't forget the main components: https://typo3.org/ and https://openlayers.org/ or https://leaflet.org/

View File

@@ -0,0 +1,18 @@
[general]
project = OSM
release = 4.2
description = Add an interactive OpenStreetMap map to your website.
Can also show other OpenLayers compatible maps.
[html_theme_options]
github_repository = bobosch/ods_osm
github_branch = master
project_home = https://github.com/bobosch/ods_osm
project_contact = mailto:typo3@bobosch.de
project_repository = https://github.com/bobosch/ods_osm
project_issues = https://github.com/bobosch/ods_osm/issues
project_discussions =
# leave this empty
use_opensearch =

View File

@@ -0,0 +1,59 @@
Tutorial
========
Install Extensions via Composer
-------------------------------
The following steps are tested with TYPO3 11.5 LTS.
1. Install ods_osm
``composer require bobosch/ods-osm:^4.2``
2. Install tt_address (optional)
``composer req friendsoftypo3/tt-address``
Configure Extensions
--------------------
1. Include static template "OpenStreetMap" into your root-template
2. (optional) Check settings with the TypoScript constant editor. See :ref:`typoscript-configuration`.
3. (optional) Check the extension configuration. See :ref:`extension-configuration`.
Create Record
-------------
1. Open or create an ``fe_users`` or ``tt_address`` record.
2. Enter zipcode or city and save the record (without closing it).
.. figure:: /Images/CreateNewAddressRecord.png
:class: with-shadow
:alt: Screenshot of form to create new address record with input fields for city, postalcode, longitute and latitude
Example with only ZIP is inserted into tt_address form.
3. Scroll to the “Longitude” section and use the marker icon to open the map wizard.
.. figure:: /Images/EditAddressCoordinateWizard.png
:class: with-shadow
:alt: Screenshot of same tt_address form with coordinate wizard (map view) as modal overlay
Change latitude and longigute with the map wizard.
4. Click on the correct position or move the marker and select "Import marker-coordinates".
5. Save the record again.
Place OSM Plugin
----------------
1. Insert a content element plugin "OpenStreetMap" on your page.
2. Add your address record in "Records to show”.
.. figure:: /Images/RecordsToShow.png
:class: with-shadow
:alt: Screenshot of the OSM plugin settings with selected tt_address record.
Add tt_address record to OSM plugin field "Records to show".