Ankündigung

Einklappen
Keine Ankündigung bisher.

"Basis-Spracheinträge updaten" erzeugt Einträge für bereits vorhandene Basis-Sprache

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • "Basis-Spracheinträge updaten" erzeugt Einträge für bereits vorhandene Basis-Sprache

    Hallihallo,

    wir haben eine mehrsprachige Seite und mehren Katalog mit bis zu drei Sprachen.
    Wenn das "Basis-Spracheinträge updaten" in der Maintenance ausgeführt wird o. der Cronjob dazu durchläuft, dann tut es uns je Katalog für alle Sprachen neue Basis-Spracheinträge in die "tl_pct_customcatalog_language"-Tabelle anlegen, obwohl es bereits alle notwendigen Basis-Spracheinträge gibt.

    Grobes Beispiel:
    Drei Sprache, Basissprache (DE), English (EN) und Russisch (RU).
    Eine Katalog-Tabelle "cc_table" mit einem Eintrag (bzw. einmal pro Sprache):
    ID 43 in Basissprache DE
    ID 89 in EN
    ID 223 in RU

    Grobes CSV (ohne Feld tstamp) der "tl_pct_customcatalog_language" dazu:
    Code:
    id,pid,source,lang
    43,43,cc_table,
    89,43,cc_table,en
    223,43,cc_table,ru
    Wenn das "Basis-Spracheinträge updaten" durchläuft sieht die Tabelle dann so aus:
    Code:
    id,pid,source,lang
    43,43,cc_table,
    89,43,cc_table,en
    223,43,cc_table,ru
    89,89,cc_table,
    223,223,cc_table,
    Das führt nun dazu das trotz Filterung nach aktiver Sprache im Frontend-Modul dann der Katalog-Eintrag bei der Basis-Sprache dreimal ausgeben wird, einmal je Sprache.
    Aktive Sprache Filterung bei den anderen Sprachen klappt aber weiterhin.

    Eine Idee was da schief läuft?

    Versionen:
    Contao: 4.4.49 und 4.9.3
    CustomCatalog: 4.2.0 und zum ersten in einer 4.1.0 Installation fest gestellt

    Danke im voraus und
    mit freundlichen Grüßen
    Stefan Reichelt

  • #2
    Hi Stefan,
    "Basis-Spracheinträge updaten" legt keine CC-Einträge an. Es kann daher zu keiner Mehrfachdarstellung von identischen Einträgen kommen. Die Tabelle bleibt ID gefiltert und damit eineindeutig.
    Die Darstellung der tl_pct_customcatalog_language sieht korrekt aus. Duplikate in der tl_pct_customcatalog_language sehe ich hier keine, sondern dass die fehlenden Basis-Eintrag Einträge korrekt ergänzt wurden.

    Folgende Einträge sind Basis-Einträge:
    43,43,cc_table, (existierte bereits, kein Duplikat angelegt)
    89,89,cc_table, (wurde ergänzt)
    223,223,cc_table, (wurde ergänzt)
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Hmm, ich versteh leider nicht wirklich wie die Beispiel-IDs 89 und 223 als Basis-Spracheinträge gelten können wenn diese nur Duplikate (in den anderen Sprachen) des eigentlichen Basis-Spracheintrags 43, sind?

      Und ja, an den CC-Einträgen ändert sich nicht. Aber wie gesagt, wenn die IDs aller CC-Einträge in der tl_pct_customcatalog_language auch als Basis-Sprache odrt drin sind kommt es im Frontend dann zur mehrfachen Darstellung. Nicht der einzelnen Einträge sondern alle Duplikate in den anderen Sprachen werden Frontend der Basis-Sprache auch mit dargestellt, trotz Filterung nach aktiver Sprache.

      Sobald ich die tl_pct_customcatalog_language mit den neu erstellten, doppelten Basis-Spracheinträge wieder bereinige passts wieder. Das macht der Cronjob mit dessen Logging zum Glück leicht genug...

      Kommentar


      • #4
        Laut der Tabelle hast du insgesamt 5 Einträge in dem CC.

        3 sind Basis-Einträge
        von denen Eintrag 43 zwei Sprachkinder hat.

        Ist das korrekt?
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Es sind drei CC-Einträge im Beispiel:
          ID 43 in der Basissprache
          ID 89 als Duplikat von 43 in EN
          ID 223 als Duplikat von 43 in RU

          Kommentar


          • #6
            Ah ok. Verstehe. CC denkt es müsste für EN und RU noch Basis-Einträge anlegen, obwohl 43 dieser bereits ist. Ich notiere es und prüfe es gegen.
            Zuletzt geändert von Tim; 07.07.2020, 10:03.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Zitat von Tim Beitrag anzeigen
              Ah ok. Verstehe. CC denkt es müsste für EN und RU noch Basis-Einträge anlegen, obwohl 43 dieser bereits ist. Ich notiere es und prüfe es gegen.
              Ich werde im Fix eine Logik vorsehen, die die fälschlichen Einträge löscht. Dann entsteht keine Verwirrung.
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                Also ich hab die falschen Einträge bereits gelöscht, das Logging vom updateBaseEntries hat das recht einfach gemacht. Und dann in der config.php es für Cron und Maintenance auskommentiert.
                Von unserer Seite aus muss das also nicht extra eingebaut werden.

                Kommentar


                • #9
                  Hallo Tim,

                  ich habe in einer kürzlich aktualisierten Version das gleiche Muster.
                  Bisher wurden z.B. für Deutschland und Oesterreich die Basiseinträge in Deutsch korrekt ausgegeben. Individuelle Spracheinträge gab es nur für de-CH, fr und cz.

                  Nach dem letzten Update auf die aktuelle Version werden für de-DE und de-AT nun alle Produkte mehrfach angezeigt.

                  Kommentar


                  • #10
                    Version 4.2.2 behebt das Problem. Die Systemwartung hat einen ergänzenden Job dafür auch bekommen.

                    Individuelle Spracheinträge gab es nur für de-CH, fr und cz.
                    Sind sie wirklich individuell oder sind sie Geschwister ohne Basis. -> kann man von CH auf FR auf CZ wechseln im Bearbeiten? -> dann sind es Geschwister. Damit wird quasi der erst angelegte z.B. CH zur Basis der anderen und alle sind nicht autark.

                    Hast du in den Systemeinstellungen den Sprachen-Fallback aktiv?
                    Zuletzt geändert von Tim; 04.08.2020, 09:13.
                    http://www.premium-contao-themes.com

                    Kommentar


                    • #11
                      Ich habe jetzt alle möglichen Konstellationen getestet. (die unten aufgezeigte Konstellation kann ich nur noch durch manuelles Eintragen in der Datenbank produzieren)

                      Kurz zur Verdeutlichung wie das System arbeitet.

                      Listen-Ansicht:
                      + "Neues Element" legt entweder Basis-Eintrag an (wenn keine Sprache gewählt) oder Sprach-Standalone eintrag (tl_pct_customcatalog_language.pid=0)

                      Bearbeiten-Modus:
                      + Basis-Eintrag - wechsel zu Sprache - legt referenzierten Spracheintrag an
                      + Sprach-Standalone-Eintrag, erlaubt nur Basis-Eintrag anzulegen. Dieser ist dann entsprechend die Basis für weitere Spracheinträge.
                      ++ Ausgehend von Standalone Spracheinträgen darf kein Spracheintrag angelegt werden. (der Sprachenwechsler bietet ausschließlich den Wechsel zu Basis an)

                      ---
                      Ich erweitere die autom. Logik zum Entfernen früherer vermeintlich falscher Basis-Eintrag-Referenzen um die Prüfung nach Standalone-Spracheinträgen. Ich kann es zwar nicht reproduzieren aber vielleicht wurden solche falschen Einträge angelegt:

                      Beispiel:
                      Englischer Standalone ID = 10
                      id=10, pid=0, lang=en

                      ... Nach falscher Logik (Version 4.1.0 bis 4.2.1) entstand vielleicht eine Basis-Eintrag-Referenz ala...
                      id=10, pid=10, lang=en

                      (Basis Einträge sind immer id=pid, aber lang leer)

                      Damit kann das System im FE denken Eintrag id=10 ist Basis-Eintrag.
                      Zuletzt geändert von Tim; 05.08.2020, 06:50.
                      http://www.premium-contao-themes.com

                      Kommentar


                      • #12
                        Ich habe es nun auch nochmals getestet. Es verhält sich offenbar so, dass ein Hauptprodukt (inkl. der Geschwister) vom Redakteur dupliziert wurde. Das Duplikat war allerdings auf unveröffentlicht gesetzt, und dennoch angezeigt. Ich habe das Duplikat gelöscht und nun werden wieder nur die jeweiligen Spracheinträge angezeigt.

                        Kommentar

                        Lädt...
                        X