Ankündigung

Einklappen
Keine Ankündigung bisher.

Zur Merkliste hinzufügen nicht möglich, wenn CC Liste zufällig sortiert ist

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zur Merkliste hinzufügen nicht möglich, wenn CC Liste zufällig sortiert ist

    Kann es sein, das die Merklisten-Funktion mit zufälliger Sortierung nicht klar kommt? In zwei aktuellen CC Versionen haben wir das Verhalten, dass die Seite beim Hinzufügen zwar neu geladen wird, aber die entsprechende notelist Session nicht gefüllt wird. Gerade bei zufällig sortierten Listen kann das ja hilfreich sein, sich einzelne Einträge zu "merken" bevor sie beim nächsten Seitenaufruf verschwinden.

  • #2
    Zitat von EBL Beitrag anzeigen
    Kann es sein, das die Merklisten-Funktion mit zufälliger Sortierung nicht klar kommt? In zwei aktuellen CC Versionen haben wir das Verhalten, dass die Seite beim Hinzufügen zwar neu geladen wird, aber die entsprechende notelist Session nicht gefüllt wird. Gerade bei zufällig sortierten Listen kann das ja hilfreich sein, sich einzelne Einträge zu "merken" bevor sie beim nächsten Seitenaufruf verschwinden.
    Kann ich mir eigentlich nicht vorstellen, weil die Sortierung ja nichts mit den IDs der Einträge zu tun hat. Ich spiel's aber mal durch.

    Wichtig ist, dass die Session-basierten Seiten nicht im Seitencache liegen.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Konntest du das Verhalten reproduzieren?

      Kommentar


      • #4
        Zitat von EBL Beitrag anzeigen
        Konntest du das Verhalten reproduzieren?
        Ich kann es nicht reproduzieren. Das passt alles. Ich hab es hier mit sql Sortierung RAND() getestet.
        https://immo-realty-dev.premium-cont...talog-297.html
        Zuletzt geändert von Tim; 26.11.2025, 08:56.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Kannst du es reproduzieren, wenn die RAND() Sortierung bewirkt, dass der gemerkte Eintrag beim Reload nicht mehr in der Liste ist? Also einfach mit ein paar Einträgen mehr (limit 4, insgesamt möglich 20 bspw.)? Hier ist der gemerkte Eintrag immer noch sichtbar nach Reload durch's Merken. In unserem Fall wäre das nur mit viel Glück so

          Kommentar


          • #6
            Es handelt sich um eine Zufällige Sortierung, die natürlich auch dazu führen kann, dass ein Eintrag nicht mehr sichtbar ist, wenn er nicht im Anzeige-Limit liegt. Das ist kein System.Fehler - sondern zwei getrennte Anwendungsszenarien. Der "Fehler" wird natürlich begünstigt durch die Limitierung des Anzeigebereichs der Liste. -> einfach keine Limitierung und gut

            Mit Limitierung muss es individuell behandelt werden:

            Mit Worten...
            Du willst bei bzw. unmittelbar nach Formular-Aktion keine Zufalls-Sortierung (hier muss sogar die vorherige Sortierung zwischen gespeichert werden), aber bei "normalen" Laden der Seite eine Zufalls-Sortierung.
            Zuletzt geändert von Tim; 28.11.2025, 08:45.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Du willst bei bzw. unmittelbar nach Formular-Aktion keine Zufalls-Sortierung
              Also das wäre natürlich nicht schlecht aber momentan würde eigentlich reichen, wenn der Eintrag einfach dennoch korrekt zur Merkliste hinzugefügt werden würde, auch wenn er in der Liste "weg" wäre. Wir haben ein Quickmenü, das den Status der Merkliste anzeigt. Also Zweck dieses Posts ist eigentlich nur: (Zufalls-)Sortierung sollte keinen Einfluss auf die Merklisten-Funktion haben. Das Problem ist nicht, dass der Eintrag in der Zufallsliste weg ist, sondern dass die Merkliste (Sessionvariable etc.) trotz hinzufügen leer bleibt.

              Kommentar


              • #8
                Das Problem ist nicht, dass der Eintrag in der Zufallsliste weg ist, sondern dass die Merkliste (Sessionvariable etc.) trotz hinzufügen leer bleibt.
                Das hat massiven Effekt: Damit wird das passende Merkliste-Formular (id-basiert) nicht mehr abgearbeitet und damit auch die Funktionen dessen nicht. Im Falle von Sortierungen oder auch Filterungen, die den Scope der Einträge eingrenzen, müssen id-basierte Funktionen manuell - nachträglich abgearbeitet werden.

                Der Merkliste kann das selbstständige Neuladen entzogen werden.
                $GLOBALS['customelements_notelist']['autoReloadPage'] = false;

                Ob das bereits reicht, ist schwer zu sagen.

                Der addItem Hook wäre auch nutzbar, denke ich:
                https://github.com/timgatzky/pct_cus.../Hooks.php#L60

                Oder oben im Liste Template direkt die Notelist Session belegen.
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Zitat von Tim Beitrag anzeigen

                  Das hat massiven Effekt: Damit wird das passende Merkliste-Formular (id-basiert) nicht mehr abgearbeitet und damit auch die Funktionen dessen nicht. Im Falle von Sortierungen oder auch Filterungen, die den Scope der Einträge eingrenzen, müssen id-basierte Funktionen manuell - nachträglich abgearbeitet werden.

                  Der Merkliste kann das selbstständige Neuladen entzogen werden.
                  $GLOBALS['customelements_notelist']['autoReloadPage'] = false;

                  Ob das bereits reicht, ist schwer zu sagen.

                  Der addItem Hook wäre auch nutzbar, denke ich:
                  https://github.com/timgatzky/pct_cus.../Hooks.php#L60

                  Oder oben im Liste Template direkt die Notelist Session belegen.
                  Ich schau mal, ob das oben im Template eingebaut werden kann. Ist recht speziell...
                  http://www.premium-contao-themes.com

                  Kommentar


                  • #10
                    Geht doch recht einfach

                    Einfach die Merkliste manuell befeuern.

                    Oben in Dein Liste Template rein.


                    Code:
                    <?php
                    use Contao\Input;
                    use PCT\CustomElements\Plugins\Notelist\Notelist;
                    $objCC = $this->getCustomCatalog();
                    $strTable = $objCC->getTable();
                    // merkliste abfangen
                    $objNotelist = Notelist::getInstance();
                    if( Input::post('SOURCE') == $strTable )
                    {
                    $itemId = Input::post('ITEM_ID');
                    $amount = 1;
                    $objNotelist->setItem( $strTable, $itemId, $amount );
                    }
                    ?>
                    http://www.premium-contao-themes.com

                    Kommentar


                    • #11
                      Funktioniert, danke!

                      Kommentar

                      Lädt...
                      X