Info
Dieses Erweiterungsplugin ermöglicht die Verarbeitung mehrsprachiger Inhalte mit den folgenden OpenImmo-Import-Lösungen:
Unterstützt werden hierbei zwei der ausgereiftesten Systeme für das Übersetzungsmanagement in WordPress:
- Auswahl der Übersetzungslösung
- Importierte Immobilien in mehreren Sprachen
Im OpenImmo-Standard werden mehrsprachige Inhalte zwar nicht direkt bzw. nur sehr rudimentär unterstützt, mit dem Multilang- und dem zugehörigen Import-Plugin kann diese Einschränkung aber einfach und dennoch flexibel umgangen werden.
Möglich machen das WordPress-konforme „Filter-Hook-Funktionen“, mit denen die Immobiliendaten im Rahmen des Importvorgangs individuell angepasst werden können (bspw. die dynamische Zuweisung einer Sprache auf Basis der aller verfügbaren XML-Daten). In vielen Fällen lassen sich so auch mehrsprachige Übertragungen realisieren, wenn diese im jeweiligen Exportsystem gar nicht vorgesehen sind.
Funktionen
- Import von OpenImmo-basierten Immobiliendaten in verschiedenen Sprachen
- automatische Verknüpfung von Objekt-Übersetzungen
- mehrsprachige Speicherung von Taxonomie-Begriffen
- WPML-Unterstützung
- Polylang-Unterstützung
- nahtlose Integration in den Importprozess der immonex OpenImmo-Plugins
- individuelle Zuweisung von Datensatz-Sprachen per WordPress-konformen Hook-Funktionen möglich
Dokumentation
Systemvoraussetzungen
- PHP ab 5.6
- WordPress ab 4.1
- immonex OpenImmo2WP ab 1.0 oder immonex OpenImmo2wpCasa ab 1.5
- WPML Multilingual CMS ab 3.0 oder Polylang / Polylang Pro ab 1.5
Installation
- WordPress-Backend: Plugins > Installieren > Plugin hochladen *
- Plugin-ZIP-Datei auswählen und Installieren-Button klicken
- Plugin nach erfolgreicher Installation aktivieren und unter Einstellungen > OpenImmo Import > Mehrsprachige Importe die Übersetzungslösung auswählen sowie den Lizenzschlüssel hinterlegen.
- Einstellungen speichern und Lizenz aktivieren. That’s it!
* Alternativ: ZIP-Datei entpacken und ins Verzeichnis „wp-content/plugins“ kopieren, anschließend das Plugin im WordPress-Backend unter Plugins > Installierte Plugins aktivieren.
Konfiguration
Da es sich um ein Erweiterungsplugin handelt, wird die Einstellungsseite des Basisplugins (Einstellungen > OpenImmo Import) um die folgende Registerkarte erweitert:
Tab „Mehrsprachige Importe“
Neben der Eingabe des Lizenzschlüssels ist hier lediglich die Übersetzungslösung auszuwählen, die für die Verwaltung der mehrsprachigen Website-Inhalte zum Einsatz kommt. (Die Auswahl von „keine” deaktiviert die Plugin-Funktion). Die eigentliche Verarbeitung im Rahmen des Importvorgangs erfolgt automatisch:
- Jede Sprachversion eines Immobilienobjekts wird als separater „Beitrag” („Post” im WordPress-Jargon) gespeichert.
- Unterschiedliche Sprachversionen der gleichen Objekte werden anhand ihrer Übersetzungs-IDs (nicht OBIDs!) verknüpft.
- Objektübergreifende Eigenschaften (als „Taxonomien” hinterlegte Angaben wie Standort, Typ, Kategorie, Ausstattung etc.) werden ebenfalls in mehreren Sprachen gespeichert und verknüpft.
Sprache der Objektdaten
Beim Import einer OpenImmo-XML-Datei wird jede Sprachversion eines Objekts als eigenständiger Immobilien-Datensatz behandelt. Die Angabe, um welche Sprache es sich handelt, ist normalerweise im folgenden XML-Element hinterlegt (z. B. de-DE oder en-US):
1 |
anbieter > immobilie > verwaltung_techn > sprache |
Diese Sprachangabe wird beim Import automatisch für die weitere Verarbeitung übernommen. Unterstützt das Exportsystem (Software, mit der die Immobiliendaten verwaltet werden) die Übertragung dieses Elements nicht, kann es per Filter-Hook-Funktion ergänzt werden.
Beispiel: Sprachangabe per Filter-Hook-Funktion ergänzen
Mit dem OpenEstate-ImmoTool, einer kostenfreien Software für Immobilienmakler, können Immobiliendaten mehrsprachig erfasst werden. Das o. g. Sprachelement wird beim OpenImmo-Export mit ImmoTool-Versionen vor 1.0 allerdings nicht übertragen. Alternativ ist es hier aber möglich, die Sprachvarianten der Immobilien separat zu übertragen und hierfür jeweils ein „ID-Präfix” zu vergeben.
In der XML-Export-Datei wirkt sich die Verwendung des ID-Präfix im Abschnitt verwaltung_techn auf die folgenden Elemente aus. Im Beispiel wird bei einem englischsprachigen Export jeweils „EN-” den Inhalten mehrerer Felder vorangestellt:
1 2 3 4 5 6 7 |
<verwaltung_techn> <objektnr_intern>EN-15</objektnr_intern> <objektnr_extern>EN-Estate-123</objektnr_extern> <aktion aktionart="CHANGE"/> <openimmo_obid>EN-15</openimmo_obid> <stand_vom>2014-12-03</stand_vom> </verwaltung_techn> |
Diese Daten können nun dazu verwendet werden, das fehlende Sprachelement per Filter-Hook-Funktion zu ergänzen. Bei Verwendung des Plugins immonex OpenImmo2WP istimmonex_oi2wp_property_xml_before_import der passende Hook (OpenImmo2wpCasa: immonex_oi2wpc_property_xml_before_import), da hiermit die XML-Daten vor der eigentlichen Verarbeitung verändert werden können.
Ermittlung und Zuweisung der jeweiligen Objektsprache werden mittels einer Funktion realisiert, die in die Datei wpcasa-functions.php (bei Einsatz des wpCasa-Functions-Plugins) oder functions.php des Themes eingebunden wird:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
// Filterfunktion registrieren. add_filter( 'immonex_oi2wp_property_xml_before_import', 'mycustomprefix_set_property_language' ); function mycustomprefix_set_property_language( $immobilie ) { // Direkt aussteigen, wenn das Sprachelement bereits vorhanden sein sollte. if ( isset( $immobilie->verwaltung_techn->sprache ) ) return $immobilie; // Verfügbare Sprachen definieren, hier Deutsch, Englisch und Spanisch. $languages = array( 'DE' => 'de-DE', 'EN' => 'en-US', 'ES' => 'es-ES' ); $obid = (string) $immobilie->verwaltung_techn->openimmo_obid; if ( '-' === $obid{2} ) { // OBID enthält Sprachpräfix: extrahieren. $property_language = strtoupper( substr( $obid, 0, 2 ) ); if ( in_array( $property_language, array_keys( $languages ) ) ) { // Präfix entspricht einer verfügbaren Sprache: Sprachelement im XML-Objekt der Immobilie ergänzen. $immobilie->verwaltung_techn->addChild( 'sprache', $languages[$property_language] ); } // Sprach-Präfix aus interner und externer Objektnummer entfernen. if ( isset( $immobilie->verwaltung_techn->objektnr_intern ) ) { $immobilie->verwaltung_techn->objektnr_intern = str_ireplace( $property_language . '-', '', (string) $immobilie->verwaltung_techn->objektnr_intern ); } if ( isset( $immobilie->verwaltung_techn->objektnr_extern ) ) { $immobilie->verwaltung_techn->objektnr_extern = str_ireplace( $property_language . '-', '', (string) $immobilie->verwaltung_techn->objektnr_extern ); } } return $immobilie; } // mycustomprefix_set_language |
Bei anderen Softwarelösungen für die Verwaltung von Immobilienobjekten, die ebenfalls (noch) nicht den Export der OpenImmo-Sprachangabe unterstützen, kann die Ergänzung ebenfalls in dieser oder ähnlicher Form erfolgen. (Für individuelle Umsetzungen mit speziellen Anforderungen unterbreitet das inveris-Team gerne entsprechende Angebote.)
Objekt-ID
Voraussetzung für die korrekte Verknüpfung der mehrsprachigen Objekt-Beiträge ist eine eindeutige Übersetzungs-ID (z. B. Objektnummer) pro Immobilie, die in der Mapping-Tabelle (detaillierte Infos hierzu in der Dokumentation des Import-Plugins) dem benutzerdefinierten Feld (Custom Field) _immonex_translation_id zugewiesen wird.
WICHTIG: Als Übersetzungs-ID kann nicht die OpenImmo-Objekt-ID (OBID) verwendet werden! Diese muss bei allen Sprachversionen eines Objekts eindeutig sein.
In der Standard-Mapping-Datei wird hierfür die externe Objektnummer (OpenImmo-XML-Element: immobilie > verwaltung_techn > objektnr_extern) verwendet.
Wird für den Import eine individuelle Mapping-Tabelle oder eine ältere Version der Standard-Mapping-Datei verwendet, muss diese Zuweisung hier ergänzt werden. Neben der externen Objektnummer kann auch eine andere OpenImmo-Angabe als Übersetzungs-ID hinterlegt werden, die lediglich bei allen Sprachversionen eines Objekts identisch sein muss.
Changelog
1.8.2
- Veröffentlichungsdatum: 2020-07-31
- Kompatibilität mit aktueller WPML-Versionen verbessert.
- Zurücksetzen der Sprachinformationen bei der Aktualisierung vorhandener Objekte ergänzt.
1.8
- Veröffentlichungsdatum: 2020-03-29
- Kompatibilität mit aktuellen WPML- und Polylang-Versionen verbessert.
1.7
- Veröffentlichungsdatum: 2018-11-19
- Kompatibilität mit Polylang-Versionen >= 2.3 verbessert.
- Framework aktualisiert.
1.6
- Veröffentlichungsdatum: 2018-06-13
- Unterstützung für aktuelle Polylang-Versionen verbessert.
- Allgemeine Kompatibilitäts- und Stabilitätsupdates.
1.5.3
- Veröffentlichungsdatum: 2017-06-19
- Unterstützung für Polylang Pro verbessert.
- Kleinere Updates hinsichtlich Kompatibilität mit den aktuellen Versionen von WordPress, WPML und Polylang.
1.5.1
- Veröffentlichungsdatum: 2017-01-01
- Verschiedene Verbesserungen bzgl. Sicherheit und Stabilität.
1.5
- Veröffentlichungsdatum: 2016-06-23
- Kompatibilität mit aktuellen WordPress-, Polylang- und WPML-Versionen verbessert.
- Kleinere Bugs korrigiert.
1.4.6
- Veröffentlichungsdatum: 2016-03-16
- Theme- und WPML/Polylang-Kompatibilität erweitert.
- Automatisierte tägliche Lizenzstatus-Prüfung ergänzt.
- Diverse Detail-Verbesserungen.
1.4
- Veröffentlichungsdatum: 2015-12-14
- Unterstützung für WPML-Versionen >= 3.2 aktualisiert.
- Protokollierung erweitert.
- Kompatibilität mit Nicht-wpCasa-Themes verbessert.
1.3
- Veröffentlichungsdatum: 2015-04-02
- Kompatibilität zu OpenImmo2WP verbessert.
- Diverse kleinere Updates zur Verbesserung von Stabilität und Performance.
1.2.1
- Veröffentlichungsdatum: 2015-01-30
- Verknüpfung von Taxonomiebegriff-Übersetzungen geringfügig angepasst.
1.2
- Veröffentlichungsdatum: 2015-01-25
- Verarbeitung der Taxonomie-Begriffe überarbeitet.
- readme.txt erweitert (deutsche und englische Inhalte).
1.0
- Veröffentlichungsdatum: 2014-12-04
- Erste Veröffentlichung.