Überschreibung falscher Sprachversion

2 Beiträge anzeigen - 1 bis 2 (von insgesamt 2)
  • Autor
    Beiträge
  • #19304
    Paul Vetter
    Teilnehmer

    Guten Tag,

    beim Import von Immobilien aus Propstack werden die Sprachversionen Deutsch/Englisch separat und nicht zwingend immer beide nacheinander exportiert. Die openimmo_obid ist übereinstimmend.
    Es ist zu Problemen mit Überschreibung der falschen existierenden Sprachversion im WP gekommen. Teilweise ist die Verknüpfung von WPML auch so zerstört worden, dass eine der Sprachversionen wie gelöscht nicht mehr aufgetaucht ist.

    Wir haben nun folgende Lösung gefunden, die leider im aktuellen Zustand wohl nicht ohne Änderung einer Plugin-Datei auskommt.

    Grundsätzlich:


    add_filter( ‚immonex_oi2wp_compat_flags‘, function($flags) {
    $flags[„detect_multiple_properties_with_same_obid“] = true; // damit in der DB-Abfrage nicht LIMIT 1 ergänzt wird
    return $flags;
    });

    In Datei immonex-openimmo2wp/includes/class-openimmo2wp.php, Zeile 1992 (zwischen if ( 0 === $count ) {} und if ( ! $quiet ) {}):


    if ($this->enable_multilang && $this->wpml_available) {
    $new_properties = array();
    $current_lang = apply_filters( ‚wpml_current_language‘, NULL );
    foreach($properties as $property) {
    $prop_lang = apply_filters( ‚wpml_post_language_details‘, NULL, $property->ID )[‚language_code‘] ;
    if ($current_lang === $prop_lang) {
    $new_properties[] = $property;
    if (!$quiet) $this->log->add( wp_sprintf( ‚get_property_by_openimmo_obid: wpml_current_language %s matches language %s of property with WP id %d. keeping.‘, $current_lang, $prop_lang, $property->ID ), ‚debug‘ );
    } else {
    if (!$quiet) $this->log->add( wp_sprintf( ‚get_property_by_openimmo_obid: wpml_current_language %s does not match language %s of property with WP id %d. ignoring.‘, $current_lang, $prop_lang, $property->ID ), ‚debug‘ );
    }
    }
    $properties = $new_properties;
    $count = count ( $properties );
    }

    Wir fragen uns nun, ob es eine bessere Lösung gibt, oder ob diese hier im Plugin eingebaut werden könnte.

    Darüber hinaus ist uns aufgefallen, dass bei der Löschung die Sprache nicht abgeprüft wird, sondern bewusst alle Sprachversionen der Immobilie gelöscht werden.
    Wäre es hier denkbar, eine Option hinzuzufügen, dass die Sprache beachtet wird?
    In Propstack kann man das Löschen (ausschließlich) separat je Sprachversion anfordern, daher ist es nicht so intuitiv, dass im WordPress jetzt immer alle Sprachversionen gelöscht werden.

    Versionen:

    immonex OpenImmo2WP 4.9.34
    immonex OpenImmo2WP Multilang 1.8.2
    WPML 4.5.8
    WordPress 6.0.2
    PHP 7.4.30

    Viele Grüße

    #19310
    Carsten Scheuer
    Verwalter

    Hallo,

    das grundlegende Problem liegt in diesem Fall auf der Exportseite und muss auch hier gelöst werden: Im OpenImmo-Standard (< 2.0) sind keine "Sprachversionen" von Objekten im eigentlichen Sinn vorgesehen. Pro Objekt kann zwar (optional) dessen Sprache definiert werden, eine standardisierte Verknüpfungsmöglichkeit mit den anderen Versionen des gleichen Objekts in alternativen Sprachen fehlt aber.

    Ergo: Bei „Sprachversionen“ handelt es sich immer um separate Datensätze, die somit jeweils auch zwingend eine eindeutige OpenImmo-Objekt-ID (OBID) aufweisen müssen. Ist das nicht der Fall, kommt es beim Import mit OpenImmo2WP in Kombination mit WPML zwangsläufig zu den genannten Dateninkonsistenzen.

    Die korrekte Form der Verarbeitung sieht in der Praxis so aus, dass Immobilienangebote pro Sprache mit einer eindeutigen OBID, aber jeweils mit einer identischen Objektnummer (z. B. immobilie → verwaltung_techn → objektnr_extern bzw. objektnr_intern) übertragen und beim Import entsprechend verknüpft werden. (So können die Sprachvarianten ohne Probleme auch in einer beliebigen Reihenfolge bzw. in unterschiedlichen Dateien übertragen oder gelöscht werden.)

    Alle gängigen Maklersoftware-Lösungen unterstützen den mehrsprachigen OpenImmo-Export mit eindeutigen OBIDs pro Sprachvariante „out of the box“. Ich kann spontan nicht nachvollziehen, warum das bei Propstack nicht so sein sollte. (Eventuell ist hierfür auch eine Option vorhanden, die für die OpenImmo-Exportschnittstelle explizit aktiviert werden muss.)

    Eine Anpassung des Plugin-Codes in der genannten Form ist also keine wirkliche Lösung. Hier kann aber sicherlich der Propstack-Support weiterhelfen!

    Sollte das wider Erwarten nicht der Fall sein – und wirklich nur dann, könnte eine Lösung auf der Importseite so aussehen, dass die OBIDs vor der Verarbeitung mit einer einfachen Filterfunktion um den jeweiligen Sprachcode erweitert werden.

2 Beiträge anzeigen - 1 bis 2 (von insgesamt 2)
  • Du musst angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.