Verwendung: Reihenfolge umkehren

Elke's Avatar

Elke

16 Apr, 2018 12:53 PM

Produkt: Slider Pro Contao
Contao-Version: 3.5.33

Ich verwende Rocksolid Slider Pro um Nachrichten Teaser anzuzeigen.
Jetzt soll die Reihenfolge der Beiträge umgedreht werden. Wie kann ich das bewerkstelligen?

Ohne Slider würde ich ein eigenes mod_newslist Template anlegen und darin dann am Anfang dieses Schnipsel einfügen:
<?php $this->articles = array_reverse( $this->articles ); ?>

Im Frontend-Modul kann ich aber lieder kein individuelles mod_newslist.html5 Template definieren.

  1. Support Staff 1 Posted by RockSolid Theme... on 16 Apr, 2018 03:41 PM

    RockSolid Themes's Avatar

    Vielen Dank für Ihre Frage.

    Das Slider-Modul verwendet kein mod_newslist-Template, weshalb die beschriebene Technik nicht funktioniert.

    Sie können jedoch die Reihenfolge der Newsbeiträge umdrehen indem Sie folgenden Code in die Datei system/config/initconfig.php einfügen:

    <?php
    
    $GLOBALS['TL_HOOKS']['newsListFetchItems'][] = array('CustomSort','newsListFetchItems');
    
    class CustomSort {
        public function newsListFetchItems($newsArchives, $blnFeatured, $limit, $offset, $moduleNewsList) {
            return \NewsModel::findPublishedByPids($newsArchives, $blnFeatured, $limit, $offset, array('order' => 'tl_news.date ASC'));
        }
    }
    
  2. 2 Posted by Elke Schiffer on 17 Apr, 2018 07:31 AM

    Elke Schiffer's Avatar

    Super! Danke für die schnelle Antwort.

    Was ich leider vergessen hab zu erwähnen, ich bräuchte diese Sortierung nicht für alle News Teaser Slider.
    Wie kann ich das individuell zuweisen?

    Theoretisch in der ModuleNewsList.php eine zweite Function einbauen aber das wäre ja nicht updatesicher.

  3. Support Staff 3 Posted by RockSolid Theme... on 18 Apr, 2018 05:14 AM

    RockSolid Themes's Avatar

    Sie können für diesen Zweck z. B. die ID des Slider-Moduls abfragen:

    <?php
    
    $GLOBALS['TL_HOOKS']['newsListFetchItems'][] = array('CustomSort','newsListFetchItems');
    
    class CustomSort {
        public function newsListFetchItems($newsArchives, $blnFeatured, $limit, $offset, $moduleNewsList) {
            if ((int) $moduleNewsList->id === 123) {
                return \NewsModel::findPublishedByPids($newsArchives, $blnFeatured, $limit, $offset, array('order' => 'tl_news.date ASC'));
            }
            return false;
        }
    }
    

    Ersetzen Sie dabei 123 mit der ID des gewünschten Slider-Moduls.

  4. 4 Posted by Elke Schiffer on 20 Apr, 2018 09:54 AM

    Elke Schiffer's Avatar

    Leider funktioniert das bei mir so nicht.
    Ich könnte ihnen gerne einen Link schicken aber ich möchte nicht, dass dieser veröffentlicht wird.

  5. Support Staff 5 Posted by RockSolid Theme... on 20 Apr, 2018 03:10 PM

    RockSolid Themes's Avatar

    Was genau bedeutet „es funktioniert so nicht“?

    Ein Link zur Seite hilft in diesem Fall leider nicht das Problem untersuchen zu können. Wie sieht der endgültige Code aus Ihrer initconfig.php-Datei aus?

  6. 6 Posted by Elke Schiffer on 23 Apr, 2018 07:39 AM

    Elke Schiffer's Avatar

    Es ändert die Sortierung des Sliders nicht.
    Zuvor - ohne id Abfrage hat die Umkehrung funktioniert.

    system/config/initconfig.php:

    <?php
    
    $GLOBALS['TL_HOOKS']['newsListFetchItems'][] = array('CustomSort','newsListFetchItems');
    
    class CustomSort {
        public function newsListFetchItems($newsArchives, $blnFeatured, $limit, $offset, $moduleNewsList) {
            if ((int) $moduleNewsList->id === sortReverse) {
                return \NewsModel::findPublishedByPids($newsArchives, $blnFeatured, $limit, $offset, array('order' => 'tl_news.date ASC'));
            }
            return false;
        }
    }
    

    Das Content Element hat die ID „sortReverse“ bekommen:

    <div style="height: auto;" class="mod_rocksolid_slider block rsts-main rsts-direction-x rsts-type-slide rsts-skin-teaser-slider rsts-no-touch animated fadeIn full-visible" id="sortReverse">
    
  7. Support Staff 7 Posted by RockSolid Theme... on 24 Apr, 2018 06:54 AM

    RockSolid Themes's Avatar

    Bei $moduleNewsList->id handelt es sich um die numerische ID des Moduls aus der Datenbank, nicht um die CSS-ID. Die numerische ID des Moduls steht in der Überschrift wenn Sie das Modul im Backend bearbeiten: „Modul ID 123 bearbeiten“.

  8. 8 Posted by Elke Schiffer on 24 Apr, 2018 07:21 AM

    Elke Schiffer's Avatar

    Vielen Dank!
    Da hab ich nicht mitgedacht - jetzt funktioniert es ganz wunderbar.

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

Recent Discussions

18 Oct, 2018 06:44 AM