Seite 1 von 1

content_teaser_... - Sortierung nach Titel der Artikel ergänzen

Verfasst: Do 21. Mär 2019, 22:07
von McHubi
Hallo zusammen,

die Module "content_teaser_..." nutzen ja die Klasse "contenido/classes/content_types/class.content.type.teaser.php". Dort ist auch in der function _generateSortSelect() hinterlegt, welche Sortierkriterien zur Auswahl stehen. Dummerweise fehlt hier die Möglichkeit, nach den Titeln der Artikel in der zur Auflistung ausgewählten Kategorie zu sortieren, was meiner Meinung nach hinzugefügt werden sollte.

Wo und wie kann man das erweitern?

Ein einfaches Hinzufügen von

Code: Alles auswählen

$htmlSelectOption = new cHTMLOptionElement(i18n("title"), 'title', false);
$htmlSelect->appendOptionElement($htmlSelectOption);
führt zwar dazu, dass im Dropdown ein "title" mit aufgeführt wird, aber da hierdurch keine Verknüpfung hergestellt wird, bleibt es beim Default-Wert "creationdate".

Vielen Dank für einen Hinweis bzw. Aufnahme in den Core,

Markus

Re: content_teaser_... - Sortierung nach Titel der Artikel ergänzen

Verfasst: Fr 22. Mär 2019, 08:57
von xmurrix
Hallo Markus,

danke für den Verbesserungsvorschlag, es ist als Ticket aufgenommen worden:
https://issues.contenido.org/browse/CON-2806

Grüße
Murat

Re: content_teaser_... - Sortierung nach Titel der Artikel ergänzen

Verfasst: Fr 22. Mär 2019, 15:10
von McHubi
Hallo Murat,
es ist als Ticket aufgenommen worden:
Super! :D

@all: Da ich bei meinen Versuchen nur bis zum dropdown gekommen bin: fehlen hier evtl. nur zweidrei weitere Codezeilen, die man für die 4.10.0 "nachrüsten" kann?

VG,

Markus

Re: content_teaser_... - Sortierung nach Titel der Artikel ergänzen

Verfasst: Do 5. Sep 2019, 15:17
von Oldperl
Servus,

@McHubi: Eigentlich sollte das hinzufügen deiner Codezeilen ausreichen. Eine entsprechende Prüfung auf 'title' wird beim Setzen der Optionen des Artikel-Collectors gemacht (Datei: class.article.collector - setOptions() - Zeile 138 ff)

Code: Alles auswählen

switch ($options['order']) {
            case 'sortsequence':
                $options['order'] = 'artsort';
                break;

            case 'title':
                $options['order'] = 'title';
                break;

            case 'modificationdate':
                $options['order'] = 'lastmodified';
                break;

            case 'publisheddate':
                $options['order'] = 'published';
                break;

            case 'creationdate':
            default:
                $options['order'] = 'created';
                break;
        }
und damit auch in der entsprechenden Datenbankabfrage mit ins SQL geschrieben. Warum das trotzdem nicht gehen soll kann ich ohne weiteres nicht sagen.

Gruß aus Franken

Ortwin