AddOn
D2U Immobilien Addon - Immobilien verwalten und per OpenImmo Schnittstelle exportieren oder importieren
Beschreibung
Immobilienverwaltung mit OpenImmo Import- und Exportfunktion zu Immobilienportalen.Features:
- Immobilienverwaltung
- OpenImmo Exportschnittstelle
- OpenImmo Importschnittstelle
- Darstellung von 360° Fotos
- Schaufensterwerbung Plugin
- Beispielmodule mit Druckfunktion für Exposé
test.design-to-use.de/de/addontests/d2u-immobilien/
Umsetzung
www.design-to-use.de zum Profil
Steinsack 10 79541 Lörrach www.design-to-use.deVersionen
1.5.1
- Wartung: Interne CI-Dateien im Verzeichnis
.github(GitHub Actions, Dependabot) werden nicht mehr mit dem Installer-Paket ausgeliefert.
1.5.0
- Neu: Immobilien können jetzt Videos enthalten. Im Backend-Formular einer Immobilie steht unter den Bildern ein Medienpool-Feld für Videodateien zur Verfügung (MP4/WebM/OGG, neue Spalte
video_files, FeldProperty::$video_files). Die Hauptausgabe-Module 70-4 (BS5) und 70-1 (BS4) zeigen vorhandene Videos in einem eigenen Tab "Videos" als responsive 16:9-Einbettungen über den HTML5-<video>-Player an. Die Videos werden im OpenImmo-Export alsFILM-Anhänge (inkl. FTP-Upload) exportiert und beim OpenImmo-Import entsprechend wieder eingelesen. Neuer Sprachschlüsseld2u_immo_property_video_files(Backend) sowie Frontend-Wildcardd2u_immo_tab_videos(de/en). - Anpassung an d2u_helper: Leaflet (jetzt
assets/leaflet/) und PhotoSphereViewer/Three.js (jetztassets/photosphereviewer/) wurden im d2u_helper-Addon in eigene Asset-Ordner verschoben. Die Hauptausgabe-Module 70-1 und 70-4 laden diese Assets über die neuen Pfade. Benötigt d2u_helper mit verschobenen Assets.
1.4.7
- Bugfix: Beim Update von 1.4.0/1.4.1 brach die Installation mit "Undefined constant ...::NAME" in
install.phpab. Die alten Cronjob-Klassen (ohne die erst in 1.4.2 eingeführteNAME-Konstante) sind zum Update-Zeitpunkt bereits geladen. Die Cronjob-Migration verwendet jetzt feste Namen statt der Klassenkonstante. - Bugfix: Der Online/Offline-Schalter in den Backend-Listen (Immobilien, Schaufenster, Export-Provider) funktioniert wieder. Beim Erzeugen des CSRF-geschützten Status-Links wurde der Platzhalter für die Datensatz-ID URL-kodiert und dadurch nicht mehr durch die echte ID ersetzt.
- Wartung: Die verschachtelten Backend-Seiten (Schaufenster, Import, Export) verzichten jetzt auf separate Inhaltsdateien mit
require; der Inhalt steht direkt in den jeweiligenpages/parent.child.php-Dateien. Damit kann ein versehentliches Löschen einer Zieldatei die Seiten nicht mehr unbenutzbar machen. - Security/Bugfix: Die
save()-Methoden inlib/Property.php,lib/Contact.php,lib/Category.php,lib/Advertisement.php,lib/export/Provider.phpundlib/export/ExportedProperty.phpverwenden jetzt durchgaengig gebundene Parameter statt SQL-String-Konkatenation. Damit werden sowohl SQL-Injection-Risiken als auch Speicher-Fehler (rex_sql_exceptionbei Texten mit einfachen Anfuehrungszeichen, z. B. Firmennamen wie 'Adler-Brauerei' im Teaser) behoben. Numerische Felder werden zusaetzlich strikt nachint/floatgecastet.
1.4.6
- Backend: Abbrechen-Buttons in Immobilien-, Kategorien-, Kontakt-, Schaufenster- und Exportformularen fuehren jetzt wieder zur Liste.
- Backend: CSRF-Schutz für den Immobilien-Export (OpenImmo-Provider, Online/Offline-Schalter pro Immobilie und Provider, manueller Exportstart) sowie für die Schaufenster-Anzeige der einzelnen Immobilien ergänzt.
- Backend: CSRF-Schutz für Modul-Installation, -Update und -Deinstallation auf der Setup-Seite ergänzt.
- Security Modul 70-4 (Hauptausgabe BS5): Karte-Tab härtet die Ausgabe gegen XSS. Objektname, Straße/Hausnummer/PLZ/Ort werden mit
rex_escape()ausgegeben; der Google-Maps-API-Key wird perrawurlencode+json_encodein das Script-Tag eingefügt; Latitude/Longitude in JS-Kontexten strikt als float gecastet; Adresse, Marker-Icon-URLs und Geolocation-positionColor werden viajson_encodein JS-Strings übergeben (positionColor zusätzlich überBackendHelper::sanitizeHexColor()validiert); Google-MapsMapTypeIdwird über Bracket-Notation mitjson_encodegesetzt. - Security: Die
media-is-in-use-Extension-Points inboot.phpverwenden jetzt gebundene Parameter statt SQL-String-Konkatenation mitaddslashes(). - Security: Die
save()-Methoden inlib/Property.php,lib/Category.phpundlib/Advertisement.phpverwenden jetzt gebundene Parameter statt SQL-String-Konkatenation mitaddslashes(). - Security: Modul-Ausgaben (
modules/70/1-6/output.php) härten Objekt-Namen und Titel-Felder zusätzlich gegen XSS viarex_escape()in HTML- und Attributausgaben. - Security: Module 70-1 und 70-2 escapen
href-URLs aus$property->getUrl()bzw. der Kontaktformular-Konfiguration jetzt mitrex_escape(). - Security: Die Kontakt-Infoboxen in
modules/70/2/output.phpundmodules/70/5/output.phphärten Ansprechpartner-Daten (Vor-/Nachname, Telefon) sowie Bild-Dateiname und Alt-Text mitrex_escape()/rawurlencode(); Modul 70-5 escapt zusätzlich die Kontaktformular-URL. Die OpenImmo-Export-Fehlerausgabe inlib/export/Provider.phpgibt Provider-Name und Fehlertext jetzt überrex_escape()aus. - Security: Auch die übrigen Modul-Ausgaben werden gehärtet: In
modules/70/1/output.phpundmodules/70/4/output.phpwerden Objekt-Ort sowie Ansprechpartner- und Adressfelder (Vor-/Nachname, Telefon, E-Mail, Straße, Hausnummer, PLZ, Ort) mitrex_escape()ausgegeben; inmodules/70/3/output.phpundmodules/70/6/output.phpder Objekt-Ort. Rich-Text-Felder bleiben bewusst unverändert. - Bugfix: OpenImmo-Import (
lib/import/ImportOpenImmo.php): Derverkaufstatus-Block stand außerhalb deszustand_angaben-Blocks und griff auf eine möglicherweise undefinierte Variable$zustand_angabenzu. Der Block wird jetzt korrekt innerhalb vonzustand_angabenausgewertet.
1.4.5
Anpassungen an die EU-Gebäuderichtlinie Energy Performance of Buildings Directive (EPBD), die bis spätestens Ende Mai 2026 in nationales Recht umgesetzt werden muss:
- Energieeffizienzklassen im Addon von der alten A+-bis-H-Skala auf A bis G umgestellt, damit Frontend-Ausgabe und OpenImmo-Export keine veralteten Klassen mehr verwenden.
- Energiepass um die Felder Ausstellungsdatum, Gebäudeart, Stromwert und Wärmewert erweitert und im OpenImmo-Import sowie -Export angebunden.
- Energieeffizienzklasse kann jetzt im Backend manuell vorgegeben werden. Frontend und OpenImmo-Export verwenden diesen Wert vorrangig und fallen sonst auf die automatische Berechnung aus dem Kennwert zurück.
1.4.4
- Backend: CSRF-Schutz fuer Exportprovider, aktive Immobilien und Schaufenster-Anzeigen bei Speichern-, Lösch-, Status- und Prioritätsaktionen ergänzt.
- Module 70-1 und 70-4: YForm E-Mail-Validierung in Anfrage- und Empfehlungsformularen robuster gemacht, damit bei parallelen Formularinstanzen keine PHP 8.4 Deprecated-Warnung durch null-Werte mehr entsteht.
- OpenImmo-Export: Im Energiepass wird die Energieeffizienzklasse jetzt zusaetzlich als wertklasse ausgegeben.
- Geolocation-1.x-Supprt entfernt. Falls noch nicht geschehen bitte auf Version 2 aktualisieren.
1.4.3
- Bugfix: Prioritäten werden bei Kategorien, Immobilien und Schaufenster-Anzeigen nach dem Speichern wieder stabil neu durchnummeriert, auch wenn in der Datenbank bereits doppelte Werte vorhanden sind.
- Die Priorität von Kategorien, aktiven und archivierten Immobilien sowie Schaufenster-Anzeigen kann in den Backend-Listen jetzt direkt per Hoch-/Runter-Buttons geändert werden.
1.4.2
- Update reinstalliert Cronjobs, um den Namespace im Cronjob zu aktualisieren.
- Module 70-1 und 70-4 zeigen die Energieeffizienzklasse in der Übersichtsliste jetzt als farbige Box links unten direkt auf dem Immobilienbild an.
1.4.1
- Modul 70-4 "D2U Immo Addon - Hauptausgabe (BS5)" gibt im Bereich Energieausweis jetzt auch die Heizungsart aus.
- Bugfix: beim Export wurden PDF Dokumente nicht in die ZIP Datei aufgenommen.
1.4.0
Wichtige Hinweise
-
Die Klassen stehen jetzt im Namespace
TobiasKrais\D2UImmozur Verfügung. Der bisherige NamespaceD2U_Immo
und die alten globalen Klassennamen sind nur noch als deprecated Übergangsschicht vorhanden und werden mit Version 2.0.0 entfernt. -
Folgende Klassen wurden umbenannt und stehen künftig unter diesen neuen Namen zur Verfügung:
D2U_Immo\AExportwird zuTobiasKrais\D2UImmo\AExport.D2U_Immo\AFTPExportwird zuTobiasKrais\D2UImmo\AFTPExport.D2U_Immo\Advertisementwird zuTobiasKrais\D2UImmo\Advertisement.D2U_Immo\Categorywird zuTobiasKrais\D2UImmo\Category.D2U_Immo\Contactwird zuTobiasKrais\D2UImmo\Contact.D2U_Immo\ExportedPropertywird zuTobiasKrais\D2UImmo\ExportedProperty.D2U_Immo\FrontendHelperwird zuTobiasKrais\D2UImmo\FrontendHelper.D2U_Immo\ImportCronjobwird zuTobiasKrais\D2UImmo\ImportCronjob.D2U_Immo\ImportOpenImmowird zuTobiasKrais\D2UImmo\ImportOpenImmo.D2U_Immo\OpenImmowird zuTobiasKrais\D2UImmo\OpenImmo.D2U_Immo\Propertywird zuTobiasKrais\D2UImmo\Property.D2U_Immo\Providerwird zuTobiasKrais\D2UImmo\Provider.d2u_immo_export_cronjobwird zuTobiasKrais\D2UImmo\ExportCronjob.d2u_immo_frontend_helperwird zuTobiasKrais\D2UImmo\FrontendHelper.d2u_immo_lang_helperwird zuTobiasKrais\D2UImmo\LangHelper.D2UImmoModuleswird zuTobiasKrais\D2UImmo\Module.export_lang_helperwird zuTobiasKrais\D2UImmo\LangHelper.
-
Vorbereitung auf Redaxo 6: Plugins in Hauptverzeichnis verschoben.
-
Neue Einstellung für eine Widerrufsbelehrung ergänzt und vor dem Exposé-Druck in den Modulen 70-1 und 70-4 als Hinweisdialog verlinkt.
-
Immobilienausgabe ergänzt um die berechnete Energieeffizienzklasse in Listen- und Detailansicht der Module 70-1 und 70-4.
-
Neue Module 70-4 bis 70-6 als Bootstrap-5-Varianten der bestehenden Beispielmodule hinzugefügt.
-
BS5-Module 70-4 bis 70-6 von template-spezifischem Immo-CSS entkoppelt und feste Farben in den BS5-Ausgaben stärker auf Bootstrap- bzw. d2u_helper-Variablen umgestellt.
-
Module 70-1 bis 70-3 als "(BS4, deprecated)" markiert. Die BS4-Varianten werden in Version 2.0 entfernt.
-
Benötigt d2u_helper >= 2.1.0.
-
Bugfix Import: Reserviert wurde nicht korrekt importiert.
-
Bugfix: Module wurden beim Update nicht korrekt aktualisiert.
-
Bugfix Export: SSH Upload als Fallback wenn FTP Upload fehlschlägt.
-
Bugfix: Grundstücke und Parkplätze konnten nicht gespeichert werden.
1.3.1
- Modul 70-1 "D2U Immo Addon - Hauptausgabe": Fehler bei der Ausgabe der Courtage behoben.
- Import Plugin: Bugfix bei deutscher Datumseingabe des Energiepasses und Endenergiebedarfs, denkmalgeschützten Immobilien, der Ausstattung und dem Verkaufstatus. Außerdem 2 PHP Warnungen entfernt.
- Spaltenüberschriften in Übersichtslisten sortierbar gemacht.
- Buttons zum Sortieren der Prioritäten in der Übersichtsliste der Immobilien hinzugefügt.
- Anpasssungen an kommende Version von D2U Helper 2.x.
1.3.0
- Import Plugin hinzugefügt: es ist nun möglich OpenImmo ZIP Dateien zu importieren.
- Export Plugin: Linkedin Export entfernt, da die Linkedin API V1 schon länger nicht mehr Unterstützt wurde.
- Neue Felder Denkmalgeschützt, Jahrgang des Energieausweises und Kaufpreis auf Anfrage hinzugefügt.
- Hinweistext zur Bestimmung der Längen- und Breitengrade eines Objekts verbessert, wenn Google Maps API Key nicht im D2U Helper Addon eingetragen ist.
- Nutzt das neue Bilderliste Feld mit Vorschaufunktion der Bilder.
- README hinzugefügt.
- Bugfix: Wohnungstyp für Etagenwohnungen war inkorrekt in der Datenbank gespeichert.
- Bugfix: Mehrsprachige Seiten enthielten einen Fehler bei der Anzeige der Übersetzungsaktion.
- Bugfix: aktive Checkboxen in den Einstellungen wurden nicht als aktiviert angezeigt.
- Modul 70-1 "D2U Immo Addon - Hauptausgabe": Fehler im Spamschutz / CSRF Schutz behoben.
- Modul 70-1 "D2U Immo Addon - Hauptausgabe": Nun kompatibel mit Geolocation Addon Version 1 und auch 2.
1.2.0
- Feld für 360° Bilder hinzugefügt. Der Export von 360° Bildern kann in den Einstellungen jedes Portals manuell aktiviert werden.
- Feld "Property::rent_plus_vat" war seit Version 1.1.1 deprecated und ist nun entfernt.
- Twitter Support endgültig entfernt.
- Ca. 1400 rexstan Level 9 Anpassungen.
- Modul 70-1 "D2U Immo Addon - Hauptausgabe" CSS Scope auf Modul eingegrenzt und 360° Bilder hinzugefügt.
- Modul 70-2 "D2U Immo Addon - Infobox Ansprechpartner" rexstan Anpassungen.
- Modul 70-3 "D2U Immo Addon - Ausgabe Kategorie" rexstan Anpassungen.
1.1.7
- PHP-CS-Fixer Code Verbesserungen.
- .github Verzeichnis aus Installer Action ausgeschlossen.
- Erste rexstan Anpassungen
- Modul 70-1 "D2U Immo Addon - Hauptausgabe" kann jetzt auch Geolocation Karten verwenden. Außerdem Formular mit Formularnamen versehen um bessere YForm Spamprotection Kompatibilität bei mehreren Formularen auf einer Seite herzustellen.
- Modul 70-3 "D2U Immo Addon - Ausgabe Kategorie" Bugfix. Überflüssiger Code hatte in Verbindung mit dem URL Addon 2 zu Fehler geführt.
1.1.6
- Anpassungen an Publish Github Release to Redaxo.
- Methode d2u_immo_frontend_helper::getMetaTags() entfernt, da das URL Addon eine bessere Funktion anbietet. Ebenso die Methoden getMetaAlternateHreflangTags(), getMetaDescriptionTag(), getCanonicalTag und getTitleTag() der aller Klassen, die diese Methoden angeboten hatten.
- Konvertiert die Wohnfläche vor dem Speichern in eine Zahl.
- HTML Entities (codiertes ä, ö, ü, ...) werden entfernt, da nicht alle Immobilienportale diese decodieren können.
- Unterstützt nur noch URL Addon >= 2.0.
- Bugfix: Beim Löschen von Artikeln und Medien die vom Addon verlinkt werden wurde der Name der verlinkenden Quelle in der Warnmeldung nicht immer korrekt angegeben.
- Modul 70-1 "D2U Immo Addon - Hauptausgabe" gibt die Adresse beim Drucken nicht mehr aus wenn die Adresse nicht veröffentlicht werden soll.
- Modul 70-1 "D2U Immo Addon - Hauptausgabe" kann auch OpenStreetMap Karte statt Google Maps verwenden.
1.1.5
- Kontakte können geklont werden.
- Benötigt Redaxo >= 5.10, da die neue Klasse rex_version verwendet wird.
- Fehler behoben, wenn bei einer Immobilie in der Übersichtsliste auf offline geklickt wurde.
- Modul 70-1 "D2U Immo Addon - Hauptausgabe" leitet Offlineobjekte auf die Fehlerseite weiter und wurde an YForm 3.4 angepasst.
- Modul 70-2 "D2U Immo Addon - Infobox Ansprechpartner" hat bei Klick auf E-Mail nicht mehr das Angebotstab angezeigt.
- Modul 70-2 "D2U Immo Addon - Infobox Ansprechpartner" hat kann jetzt auf Fallbackkontakt verzichten.
- Fehler entfernt wenn in den Einstellungen kein Artikel gesetzt ist.
- Notice beim Speichern der Einstellungen entfernt.
- Schreibfehler Einbauküche behoben.
- Export Plugin: Facebook Export (Schnittstelle war veraltet) und ImmoScout24 XML (Schnittstelle eingestellt) endgültig entfernt.
- Backend: Beim online stellen eines Objekts in der Objektliste gab es beim Aufruf im Frontend einen Fatal Error, da der URL Cache nicht neu generiert wurde.
1.1.4
- Backend: Einstellungen und Setup Tabs rechts eingeordnet um sie vom Inhalt besser zu unterscheiden.
- Anpassungen an neueste Version des URL Addons Version 2.
- Bugfix: das Löschen eines Bildes im Medienpool wurde unter Umständen mit der Begründung verhindert, dass das Bild in Benutzung sei, obwohl das nicht der Fall war.
- Modul 70-1: Exposé beinhaltet jetzt Telefonnummer und E-Mail des Kontakts. Falls ein PDF Dokument im Medienpool keine Bezeichnung hat, wird nun der Name der Datei ausgegeben.
- Kontaktformular funktioniert nun auch wenn über Office 365 versendet wird.
- Bugfix: wenn Schaufenster Plugin nicht installiert war, kam es beim Speichern einer Immobilie zu einem fatal error.
1.1.3
- Bugfix: Fatal error beim Speichern verursacht durch die URL Addon Version 2 Anpassungen behoben.
- Bugfix: bei Installation des Export Plugins wurde ein Datenbankfeld vergessen anzulegen.
1.1.2
- Modul 70-1 prüft bei aktiviertem YCom ob Downloadrechte für Dateien bestehen.
- Bild in sitemap.xml aufgenommen.
- Anpassungen an URL Addon 2.x.
1.1.1
- Kaufpreis kann jetzt auch zzgl. MwSt. angegeben werden (ACHTUNG: Feld "Property::rent_plus_vat" wird in "Property::price_plus_vat" umbenannt. "Property::rent_plus_vat" ist nun deprecated).
- Listen im Backend werden jetzt nicht mehr in Seiten unterteilt.
- YRewrite Multidomain support.
- Aus OpenImmo Export 'alter alter_attr="NEUBAU/ALTBAU"' entfernt, da bei Nutzern die Aussage (ALTBAU = vor 1945, NEUBAU = nach 1945) zu Irritationen führte.
- Energieausweis wird bei "Zustand des Objektes" "Projektiert" nicht mehr erzwungen.
- Konvertierung der Datenbanktabellen zu utf8mb4.
1.1.0
- Anpassungen an YForm 3.
1.0.9
- Für Objektart Grundstück und Parken werden nicht benötigte Felder im Backend ausgeblendet.
- Sprachdetails werden ausgeblendet, wenn Speicherung der Sprache nicht vorgesehen ist.
- Bugfix: Prioritäten wurden beim Löschen nicht reorganisiert.
- Bugfix OpenImmo Export: Kaltmiete wurde nicht übermittelt.
- Kaution wurde in einen Zahlenwert geändert um mit dem OpenImmo Export kompatibel zu sein. ACHTUNG: Texteingaben in dem Feld Kaution gehen verloren! Eventuell vor dem Update die Werte manuell anpassen.
1.0.8
- Unterstützung von OpenImmo Objektart Parken (für Garagen, Stellplätze, ...).
- Bei der Eingabe einer Adresse gibt es jetzt die Möglichkeit eine Adresse direkt zu geocodieren wenn im D2U Helper Addon ein Google Maps API Key mit Zugriff auf die Geocoding API hinterlegt ist. (Geocodierte Adressen werden auf der Karte schneller geladen und belasten das Budget des Google Kontos weniger.)
1.0.7
- Bugfix: Deaktiviertes Addon zu deinstallieren führte zu fatal error.
- In den Einstellungen gibt es jetzt eine Option, eigene Übersetzungen in SProg dauerhaft zu erhalten.
- Bugfix: CronJob wird - wenn installiert - nicht immer richtig aktiviert.
- Flächenangaben können jetzt auch mit einem Komma gemacht werden.
- Nicht zutreffende Felder in Eingabemaske der Immobilien werden jetzt ausgeblendet statt ausgegraut.
- Unterstützung von Openimmo Objektart Lager, Halle, Produktion.
- Feld "Miete zzgl. MwSt." für gewerbliche Mietobjekte hinzugefügt.
- Modul 70-1 zeigt die Mieterselbstauskunft jetzt nicht mehr bei Nutzungsart Gewerbe an.
1.0.6
- Bugfix: Updatefehler behoben.
- Bugfix: Kategorie des Objekts wurde nicht korrekt ausgelesen.
- Methode zum Erstellen von Meta Tags d2u_immo_frontend_helper::getAlternateURLs() hinzugefügt.
- Methode zum Erstellen von Meta Tags d2u_immo_frontend_helper::getMetaTags() hinzugefügt.
1.0.5
- Formulare um zeitverzögerten Spamschutz (10 Sekunden) ergänzt.
- Formular um Einwilligung zur telefonischen Kontaktaufnahme ergänzt.
- Bugfix: Fatal Error beim Löschen eines Kontaktes behoben.
- Bugfix: Übersetzung Datenschutzerklärung Formular aus Gästebuch Addon übernommen.
- Bugfix: Style Kompatibilität zu D2U Gästebuch Tabs hergestellt.
1.0.4
- Feld Datenschutzerklärung akzeptiert im Frontend Formular hinzugefügt.
- Fehler beim Speichern von einfachen Anführungszeichen behoben.
- YRewrite Multidomain Anpassungen.
- Export Plugin: Portale können offline geschaltet werden.
- Export Plugin: Bei Installation des Autoexportes künftig Ausführung im Frontend und Backend.
- Export Plugin: Code hatte seit Einführung des namespace nicht mehr funktioniert.
- Downloads, die durch ycom/auth_media geschützt sind werden nicht mehr angezeigt.
- Anpassungen Druckausgabe an Bootstrap 4.0.0.
1.0.3
ACHTUNG: Namespace hinzugefügt! Eigene Module müssen angepasst werden!
- Übersetzungshile aus D2U Helper 1.3.0 integriert.
- Update auf URL Addon 1.0.1.
- Bugfix Finanzierungsrechner bei Summen über 1.000.000,-.
- Bugfix wenn Standardsprache die zweite Sprache ist.
- Bugfix wenn Standardsprache gelöscht wird.
- Editierrechte für Übersetzer eingeschränkt.
1.0.2
Anpassungen an bootstrap 4beta
1.0.0
Initiale Version
1.0.1
Bugfix Version, besonders was den Export angeht