Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #1445354

    Hallo liebes Kriesi Team,

    auf einer Seite eine Kundens haben wir das Problem, dass das Element “Slide Show (volle Breite)” nicht richtig via WPML übersetzt wird. Das führt dazu, dass die Seite komplett Schwarz angezeigt wird.

    Wir konnten das Problem darauf zurückführen, dass die Bild ID nicht “übersetzt” wird. Wir haben auch versucht via des “avf_in_shortcode_handler_prepare_content” Filter, die ID umzustellen, hat die Anzeige leider aber nicht beeinflusst.

    Code dazu ist wie folgt:

    function wpml_slider_media_ids (array &$args ) {
    	
    	 $my_current_lang = apply_filters( 'wpml_current_language', NULL );
    	
    	if( 'av_slideshow_full' != $args[4] && $my_current_lang != "en")
    	{
    		return;
    	}
    	// Regex to match av_slide_full shortcodes and capture the id attribute
        $pattern = '/\[av_slide_full[^\]]*id=[\'"](\d+)[\'"][^\]]*\]/';
    
        // Callback function to replace the media ID with its translated equivalent
        $callback = function($matches) {
            $current_media_id = $matches[1];
    
            // Translate the media ID to English
            $translated_media_id = apply_filters('wpml_object_id', $current_media_id, 'attachment', true, 'en');
    
            // If a translated ID is found, replace the original ID
            if ($translated_media_id) {
                return str_replace("id='{$current_media_id}'", "id='{$translated_media_id}'", $matches[0]);
            }
    
            // If no translation is found, return the original shortcode
            return $matches[0];
        };
    
        // Perform the replacement on $args[3]
        $args[3] = preg_replace_callback($pattern, $callback, $args[3]);
    }
    
    add_filter( 'avf_in_shortcode_handler_prepare_content', 'wpml_slider_media_ids', 10, 1 );

    Habt ihr da vielleicht eine Idee wie wir das beheben können?

    Der einzige Workaround scheint zu seien, die Übersetzte Seite im “Erweiterten Layout Architekten” zu öffnen und die Bilder des Slider händisch neu zu zuordnen. Diese Zuordnung verschwindet jedoch, sobald man die original Fassung ändert und die Übersetzung anpasst.

    #1445500

    Hey imc-html,

    Verwendet Ihr die letzte Version von Enfold 5.7.1 ? Wenn nicht, bitte einmal updaten (wenn möglich zuerst auf einer Staging Site testen).

    Die “Initialisierung” der Bilder erfolgt in ..\config-templatebuilder\avia-shortcode-helpers\class-avia-slideshow.php in function set_slides( $ids ) mit

    get_posts() und diese Funktion wird von WPML unterstützt, um die Bilder ID zu übersetzen.

    Voraussetzung dafür ist, dass die Bilder auch mit WPML übersetzt sind. Könnt Ihr das einmal überprüfen?

    Best regards,
    Günter

    #1449041

    Hallo Günter,

    danke für deine Antwort.

    Die IDs werden tatsächlich richtig übersetzt, nur bei der Funktion ” html_advanced_slide()” musste ich die ID nach “extract( $meta );” wieder auf die aus dem id_array zurücksetzen, da sonst das Slide nicht gefunden wurde. Jedoch wird es weiterhin nicht angezeigt.

    Der Output von “html()” scheint nun aber richtig zu sein. Wo wird das ganze weiterbearbeitet?

    #1449072

    Hi,

    In der Function shortcode_handler() des Elementes, dort ist

    
    $output .=		$slideshow->html();
    

    und das wird dann nach oben weitergereicht.

    Ich würde einmal raten, eine clean staging site aufzusetzen, ein paar Bilder und dann testen ohne customizations ob es geht.
    Vielleicht ist irgendwo in der DB ein Problem nach einem WPML update. Wäre vielleicht auch mit WPML abzuklären, ob die dann eine Idee haben.

    Best regards,
    Günter

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.