EuroZipTowns
PLZ und Orte für Dolibarr — fünf Länder, Ort erscheint aus der Postleitzahl
Dolibarr 19+ (Modul) · Version 2.0
Dolibarr kann Ortsnamen aus der Postleitzahl vervollständigen — nur ist das Wörterbuch leer. Die Tabelle wird mitgeliefert, gefüllt wird sie nicht, und über Einstellungen → Wörterbücher lässt sie sich nicht einmal bearbeiten. Wer sie füllen will, findet in der Dokumentation eine Anleitung zum Kopieren von SQL-Befehlen in die Datenbank. Das ist mühsam, fehleranfällig und beim nächsten Mandanten wieder von vorne.
Dieses Modul erledigt es beim Aktivieren, für fünf Länder:
| Land | Einträge | Quelle |
|---|---|---|
| Schweiz | 4'451 | Post |
| Deutschland | 14'976 | GeoNames |
| Österreich | 4'391 | GeoNames |
| Italien | 18'415 | GeoNames |
| Frankreich | 37'202 | GeoNames |
Gewählt wird Land für Land auf der Einrichtungsseite. Geladen wird nur, was angekreuzt ist — wer ein Land wieder abwählt, ist dessen Zeilen beim Speichern wieder los. Danach genügt in jedem Adressfeld — bei Geschäftspartnern, Kontakten, Rechnungen, Lieferadressen — die Eingabe der PLZ, und der Ort steht da.
Die Arbeit steckt in den Daten, nicht im Import
Ein Datensatz je Land ist schnell heruntergeladen. Brauchbar ist er damit nicht: GeoNames führt dieselbe Spalte in jedem Land anders, und wer für alle dieselbe Regel anwendet, bekommt in mindestens drei Ländern Unsinn.
- Deutschland — 6'819 Zeilen sind Grossempfänger-Postleitzahlen, deren «Ort» in Wahrheit eine Firma ist: «Commerzbank AG», «Daimler AG, NL Berlin». Erkennbar sind sie an einer numerischen Regionalkennung, wo echte Orte das Kürzel des Bundeslands tragen — verlässlicher, als es dem Namen ansehen zu wollen. Ortsteile werden in ihre Stadt eingefaltet: 15848 ergibt damit 7 Orte statt 55.
- Österreich — dort steht jede Katastralgemeinde als eigener Ort; 9560 allein hat 131 davon. Genommen wird die Gemeinde, und übrig bleiben die 7 wirklichen Orte. Wien ist eigens behandelt, weil der Ort sonst «Gemeindebezirk Innere Stadt» hiesse statt schlicht «Wien».
- Frankreich — die 14'346 CEDEX-Codes fallen weg; sie tippt niemand in ein Adressfeld, und in eine Spalte mit zehn Zeichen passen sie ohnehin nicht. Ebenso die Arrondissement-Dubletten, «Paris 01» neben «Paris». Übrig bleiben 37'202 Zeilen — das deckt sich mit der offiziellen Liste der Post.
- Italien — hier gibt es keine Gemeindespalte, in die sich Frazioni einfalten liessen. Die Ortsnamen bleiben deshalb, wie sie kommen; in Südtirol führt eine Postleitzahl darum weiterhin viele Weiler.
- Schweiz — hier wird GeoNames gar nicht erst genommen, sondern die Liste der Post.
Zum Schluss wird jeder Datensatz gegen die Form der Postleitzahl seines Landes geprüft. Das räumt die letzten Sonderfälle weg — die Ministeriumscodes und die Abholstationen — und stellt sicher, dass nichts eingetragen wird, was in die Spalte gar nicht passt.
Sauber wieder weg
Jede eingetragene Zeile ist gekennzeichnet. Beim Abwählen eines Landes oder beim Deaktivieren des Moduls verschwinden genau diese Zeilen wieder; was auf anderem Weg im Wörterbuch gelandet ist, bleibt unberührt. Das ist der Unterschied zum SQL-Import: der lässt sich nicht rückgängig machen, ohne selbst zu wissen, was man eingefügt hat.
Ein eingeschaltetes Land wird ausserdem im Länderwörterbuch aktiv gesetzt — die Abfrage hinter der Vervollständigung fragt nur aktive Länder ab, und ohne das bliebe die Liste stumm leer. Diese Markierung bleibt stehen, auch wenn das Land wieder abgewählt wird: ein Land abzuschalten, das jemand selbst aktiviert hat, wäre die unangenehmere der beiden Überraschungen.
Umstieg von Swiss Zip & Towns
Dieses Modul ist der Nachfolger und meldet einen Konflikt mit dem alten. Zuerst das alte deaktivieren — dabei verschwinden dessen Zeilen —, dann dieses aktivieren und die Schweiz auswählen. Sie bekommen dieselben Daten zurück, aus derselben Quelle.
Einrichtungsseite
Unter Einstellungen → Module → Europäische PLZ & Orte steht je Land, wie viele Einträge verfügbar und wie viele geladen sind, und ob das Land im Wörterbuch überhaupt gefunden wurde. Von dort lässt sich neu importieren, alles entfernen und die Vervollständigung ein- und ausschalten — ohne das Modul zu deaktivieren.
Eigene Daten
Die Listen liegen als data/ziptowns_<land>.csv im Modul, tabulatorgetrennt: PLZ, Tabulator, Ort. Tabulator und nicht Komma, weil deutsche und österreichische Ortsnamen Kommas enthalten. Zeilen mit # am Anfang werden übersprungen. Wer eine neuere oder eigene Liste einsetzen will, ersetzt die Datei und drückt neu importieren. Mitgeliefert ist auch das Skript, mit dem die Datensätze aus den GeoNames-Dumps entstehen.
Voraussetzungen
- Dolibarr 19 oder neuer. Geprüft mit 23.0.x.
- Kein zusätzliches PHP-Paket, keine externe Abfrage zur Laufzeit — die Listen liegen im Modul.
- Oberfläche auf Deutsch, Französisch, Italienisch und Englisch.
Lizenz
GPL-3.0-or-later, wie es Dolibarr-Module sein müssen. Sie dürfen das Modul in beliebig vielen eigenen Installationen einsetzen, verändern und weitergeben; der Quelltext liegt bei. Bezahlt wird die fertige, geprüfte Paketierung samt aufbereiteten Daten — nicht das Recht daran. Die Herkunft der Daten steht als NOTICE im Paket.
Hilfe und Anleitung zu EuroZipTowns →
- 79'435 offizielle PLZ und Orte aus fünf Ländern
- Land für Land zuschaltbar — geladen wird nur das Gewählte
- PLZ eintippen, Ort erscheint — in allen Adressfeldern
- Je Land eigens bereinigt statt roh importiert
- Beim Abwählen und Deaktivieren restlos wieder entfernt
- Deutsch, Französisch, Italienisch und Englisch