Filter-Referenz
Für die individuelle, WordPress-konforme Anpassung des Importvorgangs stehen diverse Filter- und Action-Hooks zur Verfügung.
Über die folgenden Filter können eigene Callback-Funktionen eingebunden werden, mit denen Daten vor dem eigentlichen Import verändert werden. Diese Funktionen werden normalerweise in der Datei functions.php des Themes hinterlegt.
Beispiel
function my_callback( $objects) {
// ... eigene Anpassungen
return $objects;
}
add_filter( 'immonex_oi2wp_import_properties_xml_before_import', 'my_callback', 10, 1 );
Alle Objekte
Filter: immonex_oi2wp_import_properties_xml_before_import
Mit diesem Filter können die XML-Daten aller Objekte eines Importarchivs vor dem Import ausgewertet oder modifiziert werden.
Parameter
- SimpleXMLElement[]
$immobilien
Array mit SimpleXML-Objekten aller Immobilien des aktuellen Import-Archivs.
Aktuelles Objekt
Filter: immonex_oi2wp_property_xml_before_import
Mit diesem Filter können die XML-Daten des aktuell zu verarbeitenden Objekts vor dem Import modifiziert werden. Soll die Immobilie nicht importiert werden, ist von der Callback-Funktion false
zurückzuliefern.
Parameter
SimpleXMLElement
$immobilie
SimpleXML-Objekt der aktuellen Immobilie.array
$infos
Array mit Informationen zum aktuell verarbeiteten ZIP-Archiv.- string
$infos['zip_file']
Die aktuell zu verarbeitende ZIP-Datei. - string
$infos['import_folder']
Das Import-Verzeichnis. - string
$infos['subdir_name']
Das zu verwendende Unterverzeichnis. - string
$infos['unzip_dir']
Der Entpack-Pfad.
- string
Einzelne Post-Elemente
Filter: immonex_oi2wp_add_post_data_element
Dieser Filter wird angewendet auf ein einzelnes Element der Daten, die direkt im WordPress-Beitrag (Post) des Immobilienobjekts gespeichert werden (z. B. Titel, Beschreibung, Eintragsdatum etc.).
Parameter
mixed
$value
Elementwert.SimpleXMLElement
$immobilie
SimpleXML-Objekt der aktuellen Immobilie.Mapping
$mapping
Mapping-Daten des aktuellen Elements.
RAW Post-Daten
Filter: immonex_oi2wp_add_property_post_data
Dieser Filter wird angewendet auf das komplette Array der Daten, die direkt im WordPress-Beitrag (Post) des Immobilienobjekts gespeichert werden (z. B. Titel, Beschreibung, Eintragsdatum etc.).
Parameter
- array
$post_raw
Zu speichernde Post-Daten gem. WordPress-Codex. - SimpleXMLElement
$immobilie
SimpleXML-Objekt der aktuellen Immobilie.
Objekteigenschaft
Filter: immonex_oi2wp_add_property_taxonomy_term
Dieser Filter wird bei der Zuweisung einer Objekteigenschaft als Taxonomie-Begriff (z. B. Immobilienart, Nutzungsart etc.) auf den jeweiligen String angewendet.
Parameter
- string
$value
Taxonomie-Begriff (Term). - SimpleXMLElement
$immobilie
SimpleXML-Objekt der aktuellen Immobilie. - Mapping
$mapping
Mapping-Daten des aktuellen Elements. - integer
$post_id
Die Post-ID des Beitrags der Immobilie. - Term[]
$terms
Liste der während der Verarbeitung erstellten vorheriger Terms.- integer
$terms[]['term_id']
Term-ID. - string
$terms[]['taxonomy']
Taxonomie (aus Mappingdest
-Feld).
- integer
Neue Objekteigenschaft
Filter: immonex_oi2wp_insert_taxonomy_term
Dieser Filter wird beim Hinzufügen eines neuen Taxonomie-Begriffs auf das entspr. Array (Begriff, Taxonomiename und zus. Argumente) angewendet. Liefert die Callback-Funktion false
zurück, wird der betreffende Begriff nicht importiert.
Parameter
- array
$term
Assoziatives Array mit Daten des neuen Taxonomie-Begriffs.- string
$term['term_value']
Der übergeordnete Term-Name. - string
$term['taxonomy']
Taxonomie (aus Mappingdest
-Feld). - array
$term['args']
Assoziatives Array mit Daten des neuen Taxonomie-Begriffs.- string
$term['args']['slug']
Slug des übergeordneten Term-Namens.
- string
- Mapping
$term['mapping']
Mapping-Daten des aktuellen Elements.
- string
- SimpleXMLElement
$immobilie
SimpleXML-Objekt der aktuellen Immobilie.
Hinzufügen eines Custom-Fields
Filter: immonex_oi2wp_add_property_custom_field
Dieser Filter wird auf das jeweilige Array beim Hinzufügen eines Custom-Fields (benutzerdefinierte Eigenschaft) zu einem Immobilienobjekt angewendet. Liefert die Callback-Funktion false
zurück, wird das betreffende Custom-Field nicht importiert.
Parameter
- array
$custom_field
Assoziatives Array mit Daten des neuen Custom-Fields.- string
$custom_field['mapping_source']
Quellpfed (aus Mappingsource
-Feld). - string
$custom_field['mapping_destination']
Importziel (aus Mappingdest
-Feld). - string
$custom_field['mapping_parent']
Übergeordneter Titel. - string
$custom_field['meta_key']
Bezeichner (aus Mappingdest
-Feld,parent
-Feld, odertitle
-Feld). - string
$custom_field['meta_value']
Wert nach ausgeführten Filtern. - string
$custom_field['meta_value_before_filter']
Wert ohne ausgeführte Filter. - string|boolean
$custom_field['meta_name']
Name (aus Mappingname
-Feld). - string|boolean
$custom_field['meta_group']
Gruppe (aus Mappinggroup
-Feld). - boolean
$custom_field['unique']
Eindeutiges Feld, wenn nicht verknüpft. - boolean
$custom_field['join_multiple_values']
Mehrere Werte verknüpfen. - string
$custom_field['join_divider']
Trennzeichen beim Zusammensetzen.
- string
- SimpleXMLElement
$immobilie
SimpleXML-Objekt der aktuellen Immobilie. - integer
$post_id
Die Post-ID des Beitrags der Immobilie.
Dateianhänge
Filter: immonex_oi2wp_attachment_before_import
Dieser Filter wird auf das jeweilige SimpleXML-Element vor dem Importieren eines Anhangs (Bilddatei, Dokument, URL etc.) angewendet. Liefert die Callback-Funktion false zurück, wird der betr. Anhang nicht importiert.
Parameter
- SimpleXMLElement
$anhang
SimpleXML-Objekt des zu importierenden Anhangs. - integer
$post_id
Die Post-ID des Beitrags der Immobilie.
Typen der Dateianhänge erweitern
Filter: immonex_oi2wp_misc_file_formats
Mit diesem Filter kann die Liste alternativer Typen von Dateianhängen erweitert werden, die beim Import berücksichtigt werden sollen.
Standardmäßig werden neben den Bilddateien nur PDF-Dateien importiert.
Dateitypen werden in Form des MIME-Subtyps bzw. der gängigen Dateiendung hinzugefügt.
Ein von der Callback-Funktion zurückgeliefertes Array könnte bspw. folgendermaßen aussehen:
function my_callback( $file_formats ) {
return array_merge( $file_formats, array( 'XLS', 'DWG', 'ZIP' ) );
}
add_filter( 'immonex_oi2wp_misc_file_formats', 'my_callback', 10, 1 );
Parameter
- array
$file_formats
Liste erlaubter Dateitypen als MIME-Subtyp bzw. Dateisuffix.
Reihenfolge der Immobilien umkehren
Filter: immonex_oi2wp_reverse_property_post_time_order
Beim Import wird für den Erstellungs-Zeitstempel der Immobilien-Beiträge auf den in der XML-Datei hinterlegten Datumseintrag immobilie->verwaltung_techn->stand_vom
zurückgegriffen.
Da Beiträge gleichen Typs mit identischem Erstellungs-Datum inkl. identischer Uhrzeit problematisch sind, wird pro importiertem Objekt bei gleichem Datum jeweils eine Sekunde addiert.
Das kann bedeuten, dass bei einer Auflistung der Objekte mit Sortierung nach Datum/Zeit abwärts die Objekte in umgekehrter Reihenfolge angezeigt werden: Immobilien, die in der Import-XML-Datei oben sind, sind in der Ausgabeliste unten.
Diese Reihenfolge kann bei Bedarf mit diesem Filter umgekehrt werden.
Parameter
- boolean
$reverse_order
Reihenfolge umkehren? (Standard:false
)
Benutzerdefinierter Mapping-Ordner
Filter: immonex_oi2wp_mapping_folders
Dieser Filter-Hook bietet die Möglichkeit, neben dem Standardverzeichnis für Mapping-Dateien wp-content/uploads/immonex-openimmo-import/mappings
auch benutzerdefinierte Ordner als Mapping-Quellen anzugeben.
Parameter
- array
$mapping_folder
Liste mit absoluten Pfadangaben aller Ordner, in denen Mapping-Dateien (CSV) enthalten sind.
Benutzerbezogene Importordner ändern
Filter: immonex_oi2wp_user_import_base_dir
Das reguläre Basisverzeichnis für benutzerbezogene Importordner ist wp-content/uploads/immonex-openimmo-import/users
.
Mit diesem Filter kann ein beliebiges anderes Verzeichnis festgelegt werden, sofern hier die passenden Dateisystem-Zugriffsrechte gegeben sind.
Absolute Pfadangabe ohne abschließenden Slash.
Der abschließende Ordnername muss immer users
lauten, beispielsweise /var/www/site1/immonex-import/users
.
Parameter
- string
$users_folder
Absoluter Pfad des alternativen Basisverzeichnisses mit/users
als abschließendem Ordnernamen
Importordner ändern
Filter: immonex_oi2wp_import_folders
Damit Dateien in Ordnern außerhalb des globalen Importordners wp-content/uploads/immonex-openimmo-import/
verarbeiten werden, kann mit diesem Filter die Liste der Importverzeichnisse verändert werden.
Parameter
- array
$import_folders
Liste mit absoluten Pfadangaben aller Ordner, in denen nach zu verarbeitenden Import-ZIP-Dateien gesucht wird.
Gesamtes ZIP-Archiv
Filter: immonex_oi2wp_zip_archive_before_import
Aufruf bevor ein Import-ZIP-Archiv verarbeitet wird. Wird von der Filterfunktion false
zurückgeliefert, dann wird die Verarbeitung der Datei übersprungen.
Parameter
- string
$zip_file
Dateiname des zu verarbeitenden ZIP-Archivs inkl. kompletten Dateisystem-Pfad. - array
$infos
Weitere Angaben zum anstehenden Import.- string
$infos['import_folder']
Importverzeichnis. - string
$infos['subdir_name']
Verwendeter Unterordner im Importverzeichnis. - string
$infos['unzip_dir']
Entpackverzeichnis. - string
$infos['archive_file']
Archivdatei. - string
$infos['log_file']
Logdatei.
- string
RAW XML bearbeiten
Filter: immonex_oi2wp_raw_xml_before_import
Mit diesem Filter kann die XML-Datei vor der Verarbeitung modifiziert werden.
Zurückgeliefert werden muss der Dateiname oder der neue Dateiname.
Parameter
- string
$xml_file
XML-Dateiname inkl. Pfad.
Zeitraum für Bereinigung
Filter: immonex_oi2wp_delete_zip_file_if_older_than
Über diesen Hook kann der Zeitraum definiert werden, nach dem fehlerhafte ZIP-Archive automatisch gelöscht werden sollen. Standard: Datei ist älter als drei Stunden.
Parameter
- string
$datetime
strtotime-kompatible Angabe, die immer mit einem Minuszeichen beginnt (z. B.-3 hours
)
Zurücksetzen von Custom Field verhindern
Filter: immonex_oi2wp_reset_post_exclude_meta
Beim Aktualisieren eines Immobilienobjekts werden standardmäßig zunächst alle zugehörigen Custom Fields (Metadaten) bis auf die OpenImmo-OBID gelöscht. Mit diesem Filter-Hook können bei Bedarf weitere Angaben vom Zurücksetzen ausgenommen werden.
function my_callback( $exclude_meta ) {
return array_merge( $exclude_meta, // System Meta-Angaben bleiben erhalten
array(
'_my_custom_field1',
'_my_other_field2',
)
);
}
add_filter( 'immonex_oi2wp_reset_post_exclude_meta', 'my_callback', 10, 1 );
Parameter
- array
$exclude_meta
Liste mit Feldnamen.
URLs virtueller Touren
Filter: immonex_oi2wp_additional_virtual_tour_url_parts
Die URLs virtueller Touren werden standardmäßig anhand der folgenden Teil-Zeichenketten (Dienstanbieter) erkannt: ogulo
, immoviewer
, matterport
, archilogic
, feelestate
, virtualtours.immobilienscout24
.
Diese Liste kann mit dem genannten Filter um eigene Angaben erweitert werden.
Parameter
- array
$fragments
Liste mit Textfragmenten, die typischerweise in den übertragenen URLs der virtuellen Touren enthalten sind. Beispiel Domain:array( '360.mysite.de' )
.
Template virtuelle Touren
Filter: immonex_oi2wp_virtual_tour_embed_code
Für die Einbindung virtueller Touren wird standardmäßig der folgende Embed-Code verwendet, der mit diesem Filter bei Bedarf individuell angepasst werden kann:
<div class="immonex-virtual-tour-iframe-wrap"> <iframe
src="{url}"
width="100%"
height="450"
frameborder="0"
allowfullscreen
mozallowfullscreen
webkitallowfullscreen
></iframe>
</div>
Die enthaltene Variable {url} wird beim Import entsprechend ersetzt. Eigene Variablen können ebenfalls auf diese Weise eingebunden werden – siehe Variablen für virtuelle Touren.
Parameter
- string
$template
Vorlage.
Variablen für virtuelle Touren
Filter: immonex_oi2wp_virtual_tour_embed_code_args
Die Werte für die Variablen, die im Vorlagen-Code für virtuelle Touren beim Import ersetzt werden, können mit diesem Filter modifiziert bzw. erweitert werden.
Parameter
- array
$vars
Assoziatives Array mit Variablennamen und den zugehörigen Werten. Standard:- string
$vars['url']
URL aus der Import-XML-Datei.
- string
Koordinaten Unschärfe
Filter: immonex_oi2wp_enable_geocode_blurring
Werden die Koordinaten eines Objektstandorts ohne Freigabe der Adressveröffentlichung erst beim Import per Geokodierung ermittelt, ist hierbei eine leichte „Unschärfe“ vorgesehen, damit sich bei einer kartenbasierten Darstellung nicht alle Marker dieser Objekte auf der exakt gleichen Position (Ortsmitte) befinden und sich so komplett überlagern.
Mit diesem Filter kann die Unschärfe deaktiviert werden.
Parameter
- boolean
$blur
Unschärfe aktivierentrue
oder deaktivierenfalse
.