Contao-Camp 2024
Ergebnis 1 bis 15 von 15

Thema: News Pagination alternative Weiterleitungs-Seite

  1. #1
    Contao-Nutzer
    Registriert seit
    06.04.2013.
    Beiträge
    78

    Standard News Pagination alternative Weiterleitungs-Seite

    Hallo zusammen, ich würde gerne für die Links der News Pagination eine alternative Weiterleitungsseite definieren.

    1. Sofern das überhaupt Funktioniert, müsste ich wahrscheinlich das pagination.html5 Template anpassen? Falls ja, was genau muss ich wie ändern?
    2. Wo kann ich einstellen, dass das modifizierte pagination.html5 Template nur für die betreffende Nachrichten-Liste gilt?

    Vielen Dank

  2. #2
    Contao-Nutzer Avatar von Black Pirate
    Registriert seit
    10.02.2015.
    Beiträge
    224

    Standard

    Du könntest 2 Nachrichten-Archive erstellen.
    - eines mit Weiterleitung Standard
    - eines mit Weiterleitung Alternativ

    News anlegen im entsprechenden Archiv

    Modul auf Seite einbinden - Einstellung: Anzeige beider Archive

  3. #3
    Contao-Nutzer
    Registriert seit
    06.04.2013.
    Beiträge
    78

    Standard

    Vielen Dank für Deine Rückmeldung. Ich glaube der Workaround passt jedoch leider nicht zu meinem Vorhaben.

    Ziel soll es sein, dass wenn man über die Paginierung einer Nachrichtenliste auf die weiteren Seiten klickt, ein anderes Seitenlayout erscheint. Die Nachrichten auf der ersten Seite, lassen sich über Kategorien filtern, daher macht es auch keinen Sinn einfach eine zweite Nachrichtenliste mit anderem Layout anzulegen. Vielleicht habe ich auch einen Denkfehler und denke zu kompliziert?
    Geändert von bjoernson (22.02.2022 um 10:49 Uhr)

  4. #4
    Contao-Nutzer Avatar von Black Pirate
    Registriert seit
    10.02.2015.
    Beiträge
    224

    Standard

    Würde schon gehen.

    Version für unterschiedliches Seitenlayout:

    - News-Seite mit allen Einträgen
    -- Weiterleitung Standard auf News-Reader Unterseite Layout A (Seitenstruktur, Layout auswählen)
    -- Weiterleitung Alternativ auf News-Reader Unterseite Layout B (Seitenstruktur, Layout auswählen)


    Version für unterschiedliche News-Layout

    - News-Seite mit allen Einträgen
    -- Weiterleitung Standard auf News-Reader Unterseite mit Reader-Template A (Modul Reader, Template auswählen)
    -- Weiterleitung Alternativ auf News-Reader Unterseite mit Reader-Template B (Modul Reader, Template auswählen)



    Was meinst du mit "in der Liste auf eine weitere Seite klicken" ? Also nicht den News-Reader?
    Ist dein Vorhaben, das die News-Liste unterschiedliche Layouts haben soll?

  5. #5
    Contao-Nutzer
    Registriert seit
    06.04.2013.
    Beiträge
    78

    Standard

    Genau es geht um die News-Liste, welche unterschiedliche Layouts erhalten soll. Nicht der Reader.

    Bei einer Newsliste mit 100 Beiträgen, sollen z. B. die ersten 10 Beiträge in einer Newsliste mit Layout A angezeigt werden. Zu den weiteren Seiten mit den restlichen Newsbeiträgen gelangt man dann über die Paginierung unterhalb der Newsliste. Wenn über die Paginierung navigiert wird, soll dann die Newsliste im Layout B angezeigt werden. Also zusammengefasst heißt dass, die ersten 10 Einträgen der Newsliste bekommen Layout A, alle restlichen bekommen Layout B.

    Ich hoffe ich habe es jetzt verständlich erklärt . Sonst frage mich gerne noch mal.

  6. #6
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo,
    so ganz muss ich gestehen, verstehe ich deine Anforderung nicht - und ich denke, dass ich hiermit nicht alleine bin.

    Seite A mit einer Newsliste A mit 10 Beiträgen

    alle werden angezeigt
    somit brauchst du keine Pagination
    Um weitere Beiträge anzuzeigen baust du eine Verlinkung unterhalb dieser Newsliste A ein. Und dieser Link schickt dich zu Seite B

    Seite B mit einer Newsliste B mit weiteren Beiträgen


    Und damit kannst du beiden Newsliste jeweils ein eigenes Layout verpassen und es müssen 2 Newslisten sein
    Grüsse
    Bernhard


  7. #7
    Contao-Nutzer Avatar von Black Pirate
    Registriert seit
    10.02.2015.
    Beiträge
    224

    Standard

    Die Frage stellt sich mir noch, soll die Seite anders aussehen, oder nur die Anordnung der News-Beiträge.

    Falls ich richtig verstehe, nur die Anordnung der Beiträge.
    (Also nicht Layout, sondern Template anders)

    Somit würde ich wohl
    - Hauptseite -> Modul News-Liste mit Template A (konfig nur die 10 neusten Einträge anzeigen)
    - Unterseite -> Modul News-Liste mit Template B (konfig die ersten 10 Einträge überspringen)

  8. #8
    Contao-Nutzer
    Registriert seit
    06.04.2013.
    Beiträge
    78

    Standard

    Vielen Dank für eure Ideen. Und im Grunde habt ihr mein Vorhaben verstanden.
    Das Problem dabei ist, dass ich die Erweiterung "contao-news_categories" von "codefog" im Einsatz habe. Das bedeutete, wenn ich auf Seite A Beinträge filtern lasse, werden diese logischerweise nicht auf Seite B übernommen, wenn ich einfach nur die ersten 10 überspringe. Die Filterauswahl müsste also weitergeben werden und das funktioniert prima über die Paginierung.

    Gerne erläutere ich auch noch mal den Sinn der ganzen Sache. Vielleicht habt ihr auch alternative Vorschläge.

    Die Filterliste in dieser Newsliste ist etwas länger. Und jedes mal wenn Filter aktiviert und deaktiviert werden, springt die Seite nach einem reload wieder zum Anfang. Das möchte ich gerne verhindern. Daher habe ich ein Script eingebaut, welches die aktuelle Scrollposition des Users speichert und nach dem Reload wieder zur selben Stelle springt.

    Code:
    <script>
    	$(window).scroll(function() {
      sessionStorage.scrollTop = $(this).scrollTop();
    });
    
    $(document).ready(function() {
      if (sessionStorage.scrollTop != "undefined") {
        $(window).scrollTop(sessionStorage.scrollTop);
      }
    });
    
    
    function myFunction(){
    	$("form").submit();
    }

    Leider wirkt sich das Script auf alle Links aus, sodass man beim Navigieren durch die Paginierung ebenfalls wieder am Ende anstatt am Anfang der Seite landet. Daher war die Idee, dass der User in diesem Moment auf ein anderes Template ohne dieses Script geleitet wird.

    Alternativ könnte man auch in der "Kategorieren Navigation" ein onclick Befehl einbauen, sodass nur beim aktivieren der Filter die Scrollposition weitergegeben wird. Mangels Javascript Kenntnisse konnte ich das leider nicht umsetzen.

    Ajax habe ich probiert, aber leider habe ich es auch damit nicht geschafft. Wahrscheinlich weil bei der Filterauswahl jedesmal eine neue URL erzeugt wird.

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.049
    Partner-ID
    10107

    Standard

    Zitat Zitat von bjoernson Beitrag anzeigen
    Ajax habe ich probiert, aber leider habe ich es auch damit nicht geschafft. Wahrscheinlich weil bei der Filterauswahl jedesmal eine neue URL erzeugt wird.
    Hier könnte https://extensions.contao.org/?q=rel...reload_element helfen.
    » sponsor me via GitHub or PayPal or Revolut

  10. #10
    Contao-Nutzer
    Registriert seit
    06.04.2013.
    Beiträge
    78

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Damit habe ich es leider nicht geschafft. Wie gesagt, beim ändern der Kategorien wird jedes mal eine komplett neue URL erzeugt. In welchem Modul müsste Ajax theoretisch aktiviert werden? Im Categories Modul? In der Newsliste? Beides? Oder gibt es einen anderen Ansatz, den ich eventuell nicht bedacht habe?

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.049
    Partner-ID
    10107

    Standard

    Zitat Zitat von bjoernson Beitrag anzeigen
    Damit habe ich es leider nicht geschafft. Wie gesagt, beim ändern der Kategorien wird jedes mal eine komplett neue URL erzeugt. In welchem Modul müsste Ajax theoretisch aktiviert werden? Im Categories Modul? In der Newsliste? Beides?
    Beides - denn einerseits ändern sich ja die Links für die Kategorien im Kategoriemodul und anderseits ändert sich der Inhalt im Nachrichtenlistenmodul.


    Zitat Zitat von bjoernson Beitrag anzeigen
    Oder gibt es einen anderen Ansatz, den ich eventuell nicht bedacht habe?
    Du könntest auch die gesamte Seite per AJAX requesten und dann genau die Teile aktualisieren, die du brauchst.
    » sponsor me via GitHub or PayPal or Revolut

  12. #12
    Contao-Nutzer
    Registriert seit
    06.04.2013.
    Beiträge
    78

    Standard

    Okay ich werde es noch mal ausgiebig Testen.

    Sofern es klappt, hätten man aber wahrscheinlich auch wieder das Problem, dass man beim Navigieren der Pagination nicht zum Seitenanfang springt?

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.049
    Partner-ID
    10107

    Standard

    Das kommt einzig und allein auf dein Javascript an.
    » sponsor me via GitHub or PayPal or Revolut

  14. #14
    Contao-Nutzer
    Registriert seit
    06.04.2013.
    Beiträge
    78

    Standard

    Beim Javascript schwächel ich leider etwas
    Ich habe Ajax in den entsprechenden Modulen und auch in dem Artikel wo die Module eingesetzt sind aktiviert.

    Das folgende Script habe ich in das verwendete Seitenlayout eingesetzt. Als Trigger habe ich die Klasse "linkclass" im Template von der Kategorien-Navigation in die Links eingebaut.

    Was genau muss in dem Abschnitt "element = $(this).closest('[class^="ce_"],[class^="mod_"]');" angepasst werden?

    Code:
    <script>
        $(".linkclass").click(function (event) {
            var element;
            
            // Don't follow the link
            event.preventDefault();
            
            // This is the elements div container like ".mod_my_module". "Allow ajax reload" has to be ticket for this element in the backend
            element = $(this).closest('[class^="ce_"],[class^="mod_"]');
            // Add a css class to this element. An overlay and spinning icon can be set via css
            element.addClass('ajax-reload-element-overlay');
            
            $.ajax({
                method: 'POST',
                url: location.href,
                data: {
                    // The data- attribute is set automatically
                    ajax_reload_element: element.attr('data-ajax-reload-element')
                }
            })
                .done(function (response, status, xhr) {
                    if ('ok' === response.status) {
                        // Replace the DOM
                        element.replaceWith(response.html);
                    }
                    else {
                        // Reload the page as fallback
                        location.reload();
                    }
                });
        });
    
    </script>
    Vielen Dank

  15. #15
    Contao-Nutzer
    Registriert seit
    06.04.2013.
    Beiträge
    78

    Standard

    Ich mein Problem nun mit einem passenden Javascript lösen können.

    Die Scollposition wird dabei jetzt nur noch gemerkt und weitergegeben, wenn der Link die Klasse scrollposition enthält.

    Code:
    <script>
    $(document).ready(function(){
     $('a.scrollposition').click(function(){
      sessionStorage["scrollPosition"] = $(window).scrollTop();
     });
     $(window).scrollTop(sessionStorage["scrollPosition"]);
       sessionStorage.clear();
    });
    </script>

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •