Geschweifte Klammern im Content - Plugin wird nicht geladen (für Sprachtag-Filter)

  • Joomla Version
    4.3.4
    PHP Version
    PHP 8.1.x
    Hoster
    Strato - Dedicated Linux Server

    Hallo zusammen,

    wir befinden uns gerade in der migrations von Joomla 3 zu Joomla 4.

    Wir verwenden zur Handhabung der vielen Sprachen Flexicontent und Falang. Das funktioniert auch alles Problemlos.

    Leider müssen bei einigen Ausnahmen "Sprachfilter" per Tagging verwendet werden. Dazu hatten wir bei Joomla 3 das "EasyLanguage" Plugin verwendet. Dieses wird aber nicht mehr unterstützt und wir nutzen nun das "n3t language Filter" Plugin. Auf einer fischen joomla 4 Installation auf dem Server funktioniert es auch problemlos, jedoch nicht auf der migrierten Version. Ich habe auch das CK langauge Tag Plugin getestet mit dem selben phänomen (Frische install. = OK, Migration = tags werden angezeigt) !?!?! Ich bin verwirrt :) Kennt da jemand einen Trick, wieso die "Tags" nicht ausgewertet/verarbeitet werden können? (siehe Anhang).

    Ich hatte auch bereits versucht Sprachfilter und Kürzel zu deaktivieren, falang deaktiviert und auch die Reihenfolge des Plugins auf Anfang, mitte und Ende gesetzt.... Wie gesagt funktionieren beide plugins auf ner frischen installation problemlos...

    Es gibt ja sowas wie "Inhalte Vorbereiten" (z.B. für Module) ... Kann es sowas sein bzw. kann man sowas generell irgendwo aktivieren? Oder hat jemand eine Idee.

    Vielen Dank im voraus

  • Das n3t language filter plugin ist natürlich aktiviert.

    Habe auch mal den editor Deaktiviert und nochmals doppelt kontrolliert ob da der code gut aussieht - Klammern wurden also an den richtigen stellen gesetzt - getestet in Artikeln, Titeln, Selection lists (flexicontent fields) und Modulen: Erfolglos.

    Mir wären auch keine weiteren Plugins bekannt, die geschweifte Klammern nutzen.

    Einzig hatte ich gedacht, dass flexicontent das irgendwie unterbinden könnte.... Jedoch funktioniert es ja auch mit flexicontent auf einer neuen installation von Joomla... Eine einstellung die auf das unterbinden hinweist konnte ich aber auf anhieb nicht finden.

    Eine Fehleranalyse habe ich nicht wirklich durchgeführt, da ich nicht wüsste wie ich herausfinden kann woran es scheitert...

  • Eine Fehleranalyse habe ich nicht wirklich durchgeführt, da ich nicht wüsste wie ich herausfinden kann woran es scheitert...

    Vermutlich liefert der CallStack ind diesem Fall keinen Hinweis auf die Ursache Aber versuchen würde ich es trotzdem!

    Re:Later
    10. Oktober 2018 um 17:04

    Und was sagt die Analyse mittels F12 im Browser?

  • Kurz gesagt: Für mich sieht es so aus, als würde das plugin einfach nicht geladen werden!?


    Langversion: Das gibt mir leider keine Rückschlüsse. Habe den Debug auf Maximum gestellt - bei den debug messages finden sich dann nur fehler vom flexicontent content-template, welches noch nicht angepasst ist. Der Fehler besteht aber auch weiterhin, wenn ich ein standard content-template verwende.

    Auch nutzen wir das Helix framework. Fehler besteht auch weiterhin, wenn ich auf Cassiopeia stelle.

    Bei den Debug-Queries finde ich keine hinweise auf das n3t plugin. Ich sehe dort sowohl andere plugins, als auch diverse Flexicontent und Falang einträge. Den einzigen hinweis auf language filter ist der unten aufgeführte - ich glaube aber, dass dieser der native Joomla Multilanguage Filter ist...


    SELECT `enabled`
    FROM `*_extensions`
    WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'languagefilter'
    156μs872B/libraries/src/Language/Multilanguage.php:82

    Kann man prüfen, ob das n3t plugin geladen wird?

  • Das n3t Plugin sollte ja als Datei auf dem Server existieren - dort findet sich jedoch keine datei zu dem Plugin... Oder irre ich mich?

    Die letzte Version ist wohl die 4.0.0. Die Datei n3tlangfilter.php sollte natürlich vorhanden sein, ebenso die englischen Sprachdateien.

    Wäre das nicht der Fall, solltest du aber eine entsprechende Fehlermeldung bekommen.

    Vielleicht steht in der Doku noch was, was weiterhilft: https://n3t-language-filter.readthedocs.io/en/latest/

  • Das ist schon merkwürdig.

    Auf einer fischen joomla 4 Installation auf dem Server funktioniert es auch problemlos, jedoch nicht auf der migrierten Version. I


    Liegt die migrierte Version auf dem gleichen Webspace mit gleichen Servereinstellungen? Könnten Einträge in der .htaccess hier Einfluss nehmen?

  • Laut dem nachfolgenden Auszug des PHP-Code im Plugin:

    Code
        public function onContentPrepare($context, &$article, &$params, $page = 0)
        {
            if (strpos( $article->text, '{lang' ) === false)
                return true;

    werden nur die Texte mit Kleinschreibung von

    {lang

    durchsucht und wohl auch nur die später im Plugin entsprechend geändert, in #1 hat er nur Großschreibung !

    Daher mein #13

    Lasst ihn jetzt aber wohl zuerst einmal nachschauen und Antworten.

  • Hallo,

    nach dem Wochenende in neuer Frische:

    Vielleicht kleine Info, da ich ja weiß dass viele Neulinge Probleme haben - aber ich nutze Joomla schon paar jährchen und kenne die meisten Handgriffe..... so einen Bug hatte ich leider noch nie. Natürlich bin ich kein Entwickler aber an den simplen dingen scheitert es bei mir meist nicht ;)

    ---------

    Danke für die Ansätze.

    firstlady - schön zu hören, dass diese Kuriosität nicht nur bei uns auftritt.... jedoch hatte ich das Plug-In auch deinstalliert (auch jetzt gerade noch einmal neu installiert, dann plugin aufgerufen und im plugin-menü aktiviert (nachgeahmt)) und sowohl extension an sich und das Plug-In separat aktiviert und deaktiviert. Hat bei uns leider nicht geklappt...

    Elwood: Wie anfangs beschrieben habe ich den Code korrekt eingegeben und doppelt geprüft. Was aber wichtiger ist: Die texte existieren ja bereits in vorhandenen positionen und hatten bis dato ja problemlos funktioniert... habe auch unter dem Standard Cassiopeia getestet und auch mit verschiedenen Editoren und an verschiedenen Positionen (Compontent; Module)

    JoomlaWunder: Server ist quasi gleich ;)

    Also um es zu erklären - wir wechseln aktuell innerhalb von Strato auf einen neuen Server. Dazu hat uns eine Firma die Aktuelle Website auf den Server migriert. Diese befindet sich in der Version 3 und funktioniert auch einwandfrei. Innerhalb dieses neuen Servers haben wir 2 weitere Umgebungen eingestellt. Zum einen die Duplizierte Migrationsversion über die wir diskutieren - da hatte ja vor dem Update auf J4 auch das plugin easy language problemlos funktioniert; und einen leeren Ordner wo ich Joomla 4 clean installiert habe. Alle haben die gleichen Einstellungen aber beeinflussen sich nicht gegenseitig.

    Mit diesem Hinweis der htaccess hatte ich mal SEF-Url's deaktivert und mal die htaccess deaktiviert. Ohne Erfolg.

    Sieger66: Einen Link zur Problemseite kann ich ggf. ab nächster Woche bereitstellen

    Screenshot war natürlich etwas unglücklich mit der Großschreibung - das ist jedoch im CSS definiert als uppercase. Texte sind korrekt. Dazu habe ich auch nochmal 2 Screenshots angehängt., was auch verschiedene Positionen zeigt (Modul (anhang: dropdown) und Inhalt) und auch im Artikel ein Test mit Tag: "de" und einmal die doppeltag variante mit Sprache und Region "de-DE" - (anhang:article) - funktionierte natürlich auch nicht...

    Voraussetzungen sind auch erfüllt: Sprachfilter und Sprachkürzel sind aktiv. Zugriffslevel stimmen für alle Spracherweiterungen....

    Sprachselektor nutzen wir den von Falang - hatte aber eben auch mal Testweise den Nativen Joomla Sprachselektor eingefügt da es in den Voraussetzungen indirekt gefordert wird... Dachte vielleicht hilft es ja beim initialisieren oder sowas....

    NUN, DA IST MIR WAS AUFGEFALLEN! :

    ----------

    Im Nativen Sprachselektor werden mir keine installierten Sprachen angezeigt. Das liegt wohl daran, dass es aufgrund der Nutzung von Falang nicht für jede Sprache ein Menü mit Basiseintrag/Startseite für jede Sprache gibt.

    Also mal eben 3 Menüs mit Startseite für die einzelnen Sprachen erstellt (siehe Screenshot "sprachmenues").

    ABER das behebt leider auch nicht die Fehler mit den Tags.... Das war mir aber auch irgendwie klar, denn das sollte ja nicht den Inhalt/ das Plugin vom verarbeiten der Sprachtags abhalten...


    Bin also nach wie vor Ratlos.


    NICHTSDESTOTROTZ: Weiß einer, wie man checken kann ob das plugin überhaupt korrekt im frontend geladen wird??? Kann man das irgendwo/irgendwie sehen?

    DANKE DANKE DANKE für eure mühen bisher!

  • Hallo! Das war ein Super Tipp.

    Nun kann ich zumindest eingrenzen wo das Plugin geladen wird und funktioniert.

    Also: Es wird anscheinend nicht bei den FlexiContent Kategorieansichten geladen (was den größten Teil unserer Seite ausmacht) komischerweise wird es nun aber in den Modulpositionen korrekt geladen..... z.B. im Top Bereich, wo es vorher beim kurzen Test irgendwie nicht ging!?

    Das scheint also irgendwie mit Flexicontent zusammen zu hängen. Die Filter-Felder kann man je nach Feldeinstellung leider nicht immer mit Platzhaltern und Sprach-overrides übersetzen. Daher muss ich wohl dort Abstriche machen.

    Warum es jedoch bei den Flexicontent Kategorieansichten (trotz verschiedener Content-Templates) nicht geladen wird muss ich noch herausfinden - das wird aber sowieso generell nicht benötigt, denn wir nutzen ja falang für die Inhalte.

    Bei der vollen Beitragsansicht (wenn man auf das weiterlesen klickt) funktioniert das Plugin aber so wie es soll (screenshot inside-article).

    Auf der Startseite wird es im Content geladen, da der Menüpunkt Nativ auf Joomla Kategorieansicht steht (screenshot startpage). Dort habe ich mal einen CK-Slider mit Sprachtags eingefügt. Im Titel des Moduls und im Beschreibungstitel bei dem Bild funktioniert es nicht, aber in der description vom Bild schon (screenshot ck-slider). Auch sehr komisch.

    Für uns sind Hauptsächlich Sprachtags für die Module und die Flexicontent-Felder wichtig.

    Flexicontent ist leider für unsere Handhabung auch essenziell. Ich denke ich muss dann wohl bei denen mal nachfragen, ob man in den Feldern Plugins laden kann bzw. ob man dort die funktion "Inhalte vorbereiten" irgendwie mit einbauen kann, oder kennt da auch jemand einen Trick? --- Also irgendwie, so einen codeschnipsel den ich irgendwo bei den Flexicontent feldern platzieren kann, damit das Plugin greift? :D Ich hoffe man versteht, was ich meine :D