YAML Konfiguration (Konfigurations- und Anwendungsdateien)
Die folgenden Konfigurationsdateien liegen unter config/ und dessen Unterverzeichnissen:
Warning
In allen .yaml-Dateien dürfen keine Tabulatoren als Einrückungen verwendet werden. Nutzen Sie stattdessen Leerzeichen.
doctrine.yaml
fom_user:
selfregister: false
reset_password: true
max_reset_time: 1
mail_from_address: ~
mail_from_name: ~
fom_user.selfregistration: Um die Selbstregistrierung zu de/aktivieren, passen Sie diesen Parameter an. Sie müssen unter self_registration_groups eine/mehrere Gruppen angeben, so dass selbstregistriere Anwender automatisch (bei der Registrierung) diesen Gruppen zugewiesen werden. Über die Gruppe bekommen Sie dann entsprechend Rechte zugewiesen.
fom_user.reset_password: Über diesen Parameter kann die Möglichkeit de/aktiviert werden, das Passwort neu zu setzen.
doctrine.yaml - Datenbank-Konfiguration
Die Konfiguration der Datenbankverbindung erfolgt in den Dateien .env.local und doctrine.yaml. In der .env.local wird pro Datenbankverbindung eine Variable definiert.
Die Variablen werden in der doctrine.yaml angegeben.
Note
Jede Datenbank, die in der .env.local definiert wird, kann in der doctrine.yaml unter url zu einer Verbindung angegeben werden:
doctrine:
dbal:
default_connection: default # gibt die Datenbankverbindung an, die standardmäßig von Mapbender verwendet werden soll (``default_connection: default``).
connections:
default:
url: '%env(resolve:MAPBENDER_DATABASE_URL)%'# Platzhalter, der auf die definierte Umgebungsvariable in der Datei .env.local verweist. Diese Variable enthält die Datenbankverbindungsinformationen.
Verwendung mehrerer Datenbanken
Es folgt ein Beispiel mit zwei Datenbankverbindungen in der doctrine.yaml:
doctrine:
dbal:
default_connection: default
connections:
# Datenbankverbindung default
default:
url: '%env(resolve:MAPBENDER_DATABASE_URL)%'
# Datenbankverbindung geodata_db
geodata_db:
url: '%env(resolve:GEOBASIS_DATABASE_URL)%'
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '15'
.env bzw. .env.local
In dieser Datei werden zentrale Umgebungsvariablen gesetzt.
Datenbank
Zur Konfiguration der Datenbankverbindung werden die Dateien .env und doctrine.yaml verwendet. In der .env wird die Umgebungsvariable für die Datenbankverbindung definiert. .env wird von .env.local überschrieben. Diese wird in der doctrine.yaml ausgelesen. In der doctrine.yaml können auch mehrere Datenbankverbindungen definiert werden. Zu jeder Datenbankverbindung wird ein Alias vergeben.
Beispiel: Die Datenbankkonfiguration in der .env sieht standardmäßig folgendermaßen aus, sofern die mitinstallierte SQLite-Datenbank verwendet wird:
MAPBENDER_DATABASE_URL="sqlite:///%kernel.project_dir%/var/db/demo.sqlite"
Beispiel: Die Datenbankkonfiguration in der .env.local sieht wie folgt aus, wenn eine Suchdatenbank via PostgreSQL referenziert wird:
SEARCH_DB_DATABASE_URL="postgresql://dbuser:dbpassword@localhost:5432/dbname?serverVersion=18&charset=utf8"
Verwendung mehrerer Datenbanken
Mit Mapbender können Sie auch mehrere Datenbanken verwenden. Dies wird bei der Einbindung von Geodaten empfohlen. Diese sollten getrennt von der Mapbender-Datenbank liegen.
Eine zweite Datenbank benötigen Sie ebenfalls für die Geodatensuche (über den Suchen (Search Router)) und die Datenerfassung (Digitizer).
Die Standard-Datenbankverbindung (default_connection: default) wird von Mapbender verwendet.
Wenn Sie eine weitere Datenbank verwenden möchten, müssen Sie eine zweite Datenbankverbindung mit einem anderen Namen in der .env.local-Datei definieren. In den Elementen Suchen (Search Router) und Digitizer kann nun auf die Datenbankverbindung (connection) mit dem Namen search_db verwiesen werden.
Weitere Information über diese Konfigurationsmöglichkeit gibt es in der Symfony Dokumentation. Mapbender verwendet Doctrine. Doctrine ist eine Sammlung von PHP-Bibliotheken und bietet einen objektrelationalen Mapper und eine Datenbankabstraktionsschicht (Doctrine Projektseite).
Mailer
Die Angabe zum Mailer wird in der .env.local Datei über die Variable MAILER_DSN definiert.
#MAILER_DSN=smtp://user:pass@smtp.example.com:25
MAILER_DSN=null://null
Der Mailer-Einstellugnen selbst werden in der DAtei fom.yaml konfiguriert.
fom_user:
selfregister: false
reset_password: true
max_reset_time: 1
mail_from_address: info@mapbender.org
mail_from_name: Mapbender Team
Hint
Ein Mailer wird für die Funktionen ‘Registrierung’ und ‘Passwort zurücksetzen’ benötigt. Weitere Informationen im Kapitel Benutzer.
parameters.yaml
Hier werden weitere grundlegende Parameter von Mapbender bestimmt.
Spracheinstellung
Mapbender verwendet automatisch die ausgewählte Sprache der Browsereinstellungen. Es ist jedoch möglich, eine bevorzugte Sprache (fallback_locale) zu definieren, die Mapbender bei unvollständigen Übersetzungen anstelle der Browsersprache nutzt.
Die Sprache kann nur für die gesamte Mapbender Installation angepasst werden (nicht für einzelne Anwendungen).
Folgende Sprachcodes sind verfügbar:
en für Englisch (Standard)
de für Deutsch
es für Spanisch
fr für französisch,
it für Italienisch
nl für Niederländisch
pt für Portugiesisch
ro für Rumänisch
ru für Russisch
tr für Türkisch
uk für Ukrainisch
Eine Konfiguration könnte wie folgt aussehen:
fallback_locale: en
locale: de
Mapbender kann auch explizit eine Sprache verwenden. Dazu muss der Parameter mapbender.automatic_locale: false gesetzt werden. Anschließend nutzt Mapbender die unter locale definierte Spracheinstellung.
mapbender.automatic_locale: false
fallback_locale: en
locale: es
Weitere Informationen unter Translation in Mapbender.
Sortierung der Anwendungen
Standardmäßig werden in der Anwendungsliste zuerst die Anwendungen aus der Datenbank angezeigt.
Sie können das Verhalten jedoch über den Parameter mapbender.application.sortorder ändern.
mapbender.application.sortorder: yaml-first
db-first: Datenbank-Anwendungen werden zuerst angezeigt, gefolgt von YAML-Anwendungen. Interne Sortierung nach Titel (Standard).
yaml-first: YAML-Anwendungen werden zuerst angezeigt, gefolgt von Datenbank-Anwendungen. Interne Sortierung nach Titel.
db-only: Nur Datenbank-Anwendungen werden in der Anwendungsliste angezeigt; YAML-Anwendungen sind ausgeblendet. ⚠️ YAML-Anwendungen sind weiterhin über den Aufruf von /application/<slug> erreichbar. Um YAML-Anwendungen vollständig zu entfernen, löschen Sie diese aus dem Verzeichnis config/applications im Dateisystem.
yaml-only: Nur YAML-Anwendungen werden in der Anwendungsliste angezeigt; Datenbank-Anwendungen sind ausgeblendet. ⚠️ Datenbank-Anwendungen sind weiterhin über den Aufruf von /application/<slug> erreichbar. Um Datenbank-Anwendungen vollständig zu entfernen, ändern Sie den Parameterwert vorübergehend zurück und löschen Sie die Anwendungen.
title: Anwendungen werden nach Titel sortiert, unabhängig von ihrer Herkunft.
date: Anwendungen werden nach dem Zeitpunkt der letzten Aktualisierung sortiert, unabhängig von ihrer Herkunft.
SSL Zertifikat
Für Produktivumgebungen ist die Installation eines SSL-Zertifikats wichtig. Anschließend muss die Variable parameters.cookie_secure in Ihrer parameters.yaml auf true gesetzt werden. Dadurch wird sichergestellt, dass das Login-Cookie nur über sichere Verbindungen übertragen wird.
Proxy-Einstellungen
Wenn ein Proxy verwendet wird, muss dieser in der Datei parameters.yaml im Bereich OWSProxy Configuration angegeben werden.
Eine Konfiguration könnte wie folgt aussehen:
# OWSProxy Configuration
ows_proxy3_logging: false # Protokollierung von Anfragen, Standard ist false, true protokolliert in Tabelle owsproxy_log
ows_proxy3_obfuscate_client_ip: true # Verbergen der Client IP, Standard ist true, true verbirgt das letzte Byte der IP-Adresse des Clients
ows_proxy3_host: myproxy # Proxy-Definition für die Verbindung über einen Proxy-Server. Hostname des Proxyservers
ows_proxy3_port: 8080 # Proxy-Definition für die Verbindung über einen Proxy-Server. Port des Proxyservers
ows_proxy3_connecttimeout: 60
ows_proxy3_timeout: 90
ows_proxy3_user: ~ # Benutzername für Proxyserver (bei Bedarf Benutzer für Proxyserver festlegen)
ows_proxy3_password: ~ # Passwort für den Proxy-Server (setzen Sie das Passwort für den Proxy-Server, falls definiert)
ows_proxy3_noproxy: # Liste der Hosts, bei denen die Verbindungen nicht über den Proxyserver erfolgen soll
- 192.168.1.123
Logo und Login-Bild
In der parameters.yaml kann auf das eigene Logo und auf ein alternatives Bild für den Login verwiesen werden. Diese Änderung wirkt sich global auf die gesamte Mapbender-Installation aus.
Mithilfe der Branding-Parameter kann ein eigener Projektname, eine eigene Versionsnummer, ein Logo uund ein alternatives Bild für den Login verwendet werden. Diese Änderung wirkt sich global auf die gesamte Mapbender-Installation aus.
branding.project_name: Geoportal powered by Mapbender
branding.project_version: 1.0
branding.logo: ./bundles/mapbendercore/image/OSGeo_project.png
branding.login_backdrop: ./bundles/mapbendercore/image/login-backdrop.jpg
Projektname
Der Projektname (Standard: Mapbender) kann in der Datei parameters.yaml angepasst werden. Diese Änderung wirkt sich global auf die gesamte Mapbender Installation aus.
branding.project_name: Geoportal
Warning
In der parameters.yaml dürfen keine Tabulatoren als Einrückungen verwendet werden. Nutzen Sie stattdessen Leerzeichen.
Seitenlinks
Es können Seitenlinks (mapbender.sidelinks) hinzugefügt werden. Diese benötigen einen Link und einen Text.
Dazu muss Folgendes in der parameters.yaml ergänzt werden:
mapbender.sitelinks:
- link: https://mapbender.org/impressum # Link URL
text: Impressum & Kontakt # Link Text
- link: https://mapbender.org/datenschutz
text: Datenschutz
- link: https://doc.mapbender.org/
text: Dokumentation
Elemente deaktivieren
Die Deaktivierung von einzelnen Elementen kann über den nachfolgenden Parameter konfiguriert werden:
mapbender.disabled_elements:
- Mapbender\CoreBundle\Element\ResetView
Standard Layer-Reihenfolge
Sie können eine Standard Layer-Reihenfolge definieren, wenn ein WMS in eine Anwendung eingefügt wird.
Mögliche EInstellungen sind: * “standard”: Traditionelles Mapbender Verhalten: das GetCapabilities wird von oben nach unten ausgelesen. Themen, die oben stehen, werden zu nterst gezeichnet (Standard). * “reverse”: AUslesen von unten nach oben für QGIS Server, ArcGIS etc.
wms.default_layer_order: standard
Icons anpassen
Mithilfe des Setzens folgender Parameter wird die spezifische Anpassung von Icons ermöglicht:
mapbender.icons.disable_default(Standardwert: false).Wenn auf true gesetzt, werden die mitgelieferten Icons des Mapbender-Namespace im Button-Bearbeitungsformular deaktiviert. Dazu gehören die Icons About, Area Ruler, Feature Info, Image Export, Layer tree, Legend, Line ruler und Polygon. Diese werden z.B. für die ähnlich bezeichneten Elemente Über-Mapbender-Dialog (About Dialog), Linien-/Flächenmessung (Line/Area Ruler), Information (FeatureInfo), Bildexport (ImageExport), Ebenenbaum (Layertree), Legende (Legend), Digitizer und Skizzen (Sketch) verwendet.
mapbender.icons.disable_default_fa(Standardwert: false).Wenn auf true gesetzt, werden die mitgelieferten Font Awesome-Icons im Button-Bearbeitungsformular deaktiviert. Dies betrifft alle anderen verfügbaren Icons, die nicht im Mapbender-Namespace enthalten sind.
mapbender.icons.custom(Standardwert: ~).Ermöglicht das Hinzufügen weiterer Icons aus FontAwesome (eine Liste frei verfügbarer Icons finden Sie auf der Font Awesome-Homepage.
Der Parameter ist ein Array von Objekten, die drei Schlüssel enthalten:
name: Bezeichnung für dieses Icon, z.B. zur Verwendung in yaml-definierten Anwendungen.
title: Beschreibung des Icons, wie es im Auswahlfeld im Bearbeitungsformular für Schaltflächen angezeigt wird.
class: Vollständiger Klassenname (einschließlich “fa”) des Icons. Kopieren Sie ihn aus dem unteren Teil des Popups, wenn Sie auf das Icon auf der Font Awesome-Homepage klicken.
Mit diesen Konfigurationsoptionen können Sie die Icons in Mapbender an Ihre Anforderungen anpassen. Anbei ein Beispiel:
mapbender.icons.disable_default: true
mapbender.icons.disable_default_fa: true
mapbender.icons.custom:
- name: iconSnowflake
title: Snowflake
class: fa-solid fa-snowflake
- name: iconHeartbeat
title: Heartbeat
class: fa-solid fa-heart-pulse
Regulärer Ausdruck für Suchanfragen
Der Standard-Reguläre-Ausdruck für Eingabefelder in Suche, Datenmanager und Digitizer.
Der Ausdruck kann pro Suchfeld in der Elementkonfiguration (pattern) oder pro Datenmanager-Feld in der Formularfeldkonfiguration (attr.pattern) überschrieben werden.
Der Standardwert ist ‘.*’, was alle Zeichen zulässt;
mapbender.search.default_regex: '.*'
mapbender.data_manager.default_regex: '.*'
Die folgenden Angabe beschränkt die Eingabe auf Buchstaben, Ziffern, Unterstriche, Bindestriche und Leerzeichen.
mapbender.search.default_regex: '^[\p{L}0-9_\-\s]*$'
mapbender.data_manager.default_regex: '^[\p{L}0-9_\-\s]*$'
FeatureInfo Verhalten des iFrames - sandbox Optionen
Variable zum Setzen der Sandbox iFrame Attribute im FeatureInfo-Dialog,
Siehe auch https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/iframe#sandbox for options
mapbender.featureinfo.iframe_sandbox_params: 'allow-scripts allow-popups allow-popups-to-escape-sandbox allow-downloads'
Überschreiben von JavaScript- und CSS/Sass-Ressourcen
Um genannte Ressourcen manuell zu überschreiben, können Sie als Alternative zum Überschreiben im Bundle selbst in Ihrer paramaters.yaml-Datei Folgendes hinzufügen:
mapbender.asset_overrides:
"@MapbenderCoreBundle/Resources/public/sass/element/featureinfo.scss": "@@MyBundle/Resources/public/sass/element/custom_featureinfo.scss"
Note
Beachten Sie, dass das @-Zeichen im Ersetzungsschlüssel durch ein weiteres @@-Zeichen maskiert werden muss.
YAML Anwendungsdateien
Als YAML definierte Anwendungen werden im Verzeichnis applications/ abgelegt. Dort liegen nach jeder Installation bereits Beispielanwendungen als YAML Dateien:
Mapbender Demo (mapbender_user)
Mapbender Demo Basic (mapbender_user_basic)
Falls eine Beispielanwendung nicht im Mapbender sichtbar sein soll, gibt es mehrere Wege diese auszublenden.
Setzen Sie in der parameters.yaml die Variable
mapbender.application.sortorder: db-onlyLöschen Sie die Beispielanwendungen
Bearbeiten Sie die Beispielanwendung mit einem Texteditor und setzen Sie die Variable
publishedauf false.
parameters:
applications:
mapbender_user:
[...]
published: false
Löschen Sie anschließend den Mapbender-Cache und Ihren Browser-Cache. Danach ist die Anwendung für Benutzer nicht mehr sichtbar.
Hint
Der Root-Benutzer sieht immer alle unveröffentlichten Anwendungen.
Auf die gleiche Weise können auch neue YAML-basierte Anwendungen in dieses Verzeichnis abgelegt werden, um sie der Mapbender-Instanz hinzuzufügen.
Mapbender Demo Map
Dies ist die Demo-Anwendung, die für die Verwendung am Desktop und mobil optimiert ist. Sie enthält die meisten der verfügbaren Mapbender-Elemente.
Detaillierte Beschreibungen zu den enthaltenen Elementen finden Sie unter Elemente.
Mapbender Demo Map basic
Die zweite Demo-Anwendung, verfügt über keine Seitenleiste. Die Elemente werden via Buttons angeboten. Die Möglichkeiten des Stylings via CSS werden demonstriert.
Detaillierte Beschreibungen der Elemente finden Sie unter Elemente.
Export/Import von YAML Anwendungsdateien über die Benutzeroberfläche
Export
Sie können eine Anwendung unter Anwendungen → Exportieren als JSON-Datei exportieren.
Nutzen Sie dazu den Exportieren-Button, der sich in der Anwendungsübersicht im Button-Menü einer Anwendung befindet.
Import
Unter Anwendungen → Importieren kann eine Exportdatei in eine Mapbender-Installation importiert werden.
Wählen Sie dazu zunächst den Button + Anwendung anlegen. Anschließend klicken Sie auf den Importieren-Button.
Nutzen Sie danach die abgebildete Maske, um eine Importdatei als Anwendung zu laden.
Export/Import/Klonen von YAML Anwendungsdateien über die Konsole
Bitte gehen Sie zu Anwendungs-Export, Import und Klonen, um entsprechende Konsolenbefehle einzusehen. Nachfolgend finden Sie einige einführende Worte darüber, was mit Anwendungen über die Konsole möglich ist.
Export über die Konsole
Anwendungen können als .json oder .yaml - Datei über die Konsole exportiert werden. Jedoch kann eine YAML-Datei, die über die Konsole exportiert wurde, nicht unter applications/ abgelegt und somit als Anwendung in Mapbender eingefügt werden. Das YAML-Format einer Datei, die über die Konsole exportiert wurde, unterscheidet sich von dem YAML-Format der Dateien unter applications/.
Import über die Konsole
YAML-Dateien, die zuvor über die Benutzeroberfläche oder die Konsole exportiert wurden, können über die Konsole via bin/console importiert werden.
Anwendung über die Konsole klonen
Klont/Kopiert eine existierende Anwendung.