Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

sorting-Flag in ParentView wird ignoriert. #3090

Closed
ghost opened this issue Nov 29, 2011 · 22 comments
Closed

sorting-Flag in ParentView wird ignoriert. #3090

ghost opened this issue Nov 29, 2011 · 22 comments
Labels

Comments

@ghost
Copy link

ghost commented Nov 29, 2011

Ich habe ein ParentView für tl_member erstellt, welches Transaktionen nach Datum absteigend sortiert und nach Jahr gruppiert darstellen soll.
Gruppierung funktioniert mit Sortierflag 10 (und 9) wunderbar, aber Flag 10 wird trotzdem aufsteigend sortiert.

        'sorting' => array(
            'mode'          => 4,
            'flag'          => 10,
            'fields'        => array('tstamp'),
            'headerFields'  => array('username', 'firstname', 'lastname'),
            'panelLayout'   => 'search',
            'child_record_callback' => array('PointsDCA', 'generateTransactionListRecord'),
        ),

Ändere ich das Sortierfeld in folgendes:

        'sorting' => array(
            'mode'          => 4,
            'flag'          => 10,
            'fields'        => array('tstamp DESC'),
            'headerFields'  => array('username', 'firstname', 'lastname'),
            'panelLayout'   => 'search',
            'child_record_callback' => array('PitPointsDCA', 'generateTransactionListRecord'),
        ),

dann sortiert er zwar richtig herum, aber zerpflückt das Grouping (jeder tstamp bekommt eigenen Header, der gleich dem tstamp ist)

Ich hab das mal als Feature gepostet, da ich es als "fehlendes" Feature ansehe (zumindest die obere Variante).

--- Originally created by backbone on May 18th, 2011, at 04:56pm (ID 3090)

@aschempp
Copy link
Member

Das Grouping kannst du mit "disableGrouping" ausschalten (siehe DCA-Doku).

--- Originally created on May 18th, 2011, at 06:18pm

@ghost
Copy link
Author

ghost commented Nov 29, 2011

Das ist mir schon klar, aber ich will das Grouping haben.
Soll so aussehen:

2011
- transaktion 3/2011
- transaktion 2/2011
- transaktion 1/2011
2010
- transaktion 2/2010
- transaktion 1/2010

Also gruppiert nach Jahren und absteigend sortiert. Also entsprechend der DCA-Referenz wäre das Sortierflag 10
Allerdings sind die Flags 9 und 10 vom Ergebnis das gleiche: Richtig gruppiert, aber - im Hinblick auf Flag 10 falsch - sortiert und zwar aufsteigend.

--- Originally created by backbone on May 18th, 2011, at 09:36pm

@leofeyer
Copy link
Member

Wie kann ich das im Core reproduzieren?

--- Originally created on August 25th, 2011, at 06:45pm

@ghost
Copy link
Author

ghost commented Nov 29, 2011

Versuch die News mit Sortierflag 10, sollte aufsteigend und nicht absteigend sortiert sein, was laut Doku falsch ist.

--- Originally created by backbone on August 26th, 2011, at 01:25am

@aschempp
Copy link
Member

Ist mir auch schon aufgefallen. Kann es sein dass es funktioniert wenn du den Flag auf das entsprechende Feld setzt (statt in der sorting)?

--- Originally created on August 26th, 2011, at 09:59am

@ghost
Copy link
Author

ghost commented Nov 29, 2011

Hallo auch von mir.

Um mich mal einzuklinken: Ich habe das selbe Problem mit dem "parent view". Die Sortierungen desc werde komplett ignoriert. Bei allen Flags.

Es hilft auch nicht, den Flag auf das Feld zu setzen (sowohl nur bei dem Feld, als auch das Flag in beiden Bereichen).

Gibt es eine Variante, das Sortieren anders zu beeinflussen?

Lg

--- Originally created by CulexCoding on September 14th, 2011, at 02:18pm

@aschempp
Copy link
Member

@leo: pending?

--- Originally created on September 14th, 2011, at 06:50pm

@leofeyer
Copy link
Member

"Pending" und "Incomplete" ist dasselbe (nur indiziert "Incomplete" zusätzlich, dass nicht alle Informationen mitgeliefert wurden).

--- Originally created on September 14th, 2011, at 07:18pm

@aschempp
Copy link
Member

Ich habe das nun nachvollziehen können, und aus meiner Sicht ist es kein (gravierender) Fehler. Die Sortierung im Mode 4 wird in der Session (durch das Sortierungs-Dropdown) gespeichert. Wenn du also im DCA den Sorting-Modus änderst, musst du deine Session aktualisieren (oranger Button), und dann stimmt es auch.

--- Originally created on September 15th, 2011, at 08:07pm

@ghost
Copy link
Author

ghost commented Nov 29, 2011

Funktioniert leider dennoch nicht. Ich änder die Einstellung nicht. Selbst nach erneutem Einloggen (wobei dann die Session mit Sicherheit neu ist, oder?) ist die Sortierung nach wie vor unverändert. Ich habe folgende Einstellungen beim Sorting:

'mode' => 4, 'flag' => 8, 'fields' => array('date'), // auch mit tstamp versucht 'disableGrouping' => false, // auch ohne diesen Wert versucht 'headerFields' => array('name', 'id'), 'panelLayout' => 'search,limit', // auch mit dem sort layout versucht 'child_record_callback' => array('tl_culex_guestbook_entries', 'renderEntryField')

--- Originally created by CulexCoding on September 15th, 2011, at 09:36pm

@aschempp
Copy link
Member

Nein die Sortierung/Session bleibt zwischen den Logins erhalten. Klick mal auf den Refresh-Button, dann siehst du es ;-)

--- Originally created on September 16th, 2011, at 07:32am

@ghost
Copy link
Author

ghost commented Nov 29, 2011

Ja hatte ich auch probiert. Funktioniert dennoch nicht.

--- Originally created by CulexCoding on September 16th, 2011, at 12:18pm

@aschempp
Copy link
Member

Ich glaube ich hatte noch was vergessen. Bei den News steht standardmässig "date DESC" in den Sortierkonfiguration. Das DESC solltest du da womöglich entfernen, damit es geht.

--- Originally created on September 16th, 2011, at 01:00pm

@ghost
Copy link
Author

ghost commented Nov 29, 2011

Okay das war etwas verwirrend.

Es funktioniert jetzt mit folgenden Einstellungen:
sorting: mode = 4, kein flag setzen, fields aber auf 'date DESC',
dann beim "fields"-Array den Flag bei "date" setzen.

Ich hatte mir das zwar immer im News-Modul angeschaut, allerdings hatte nicht nicht genau die Konstellation versucht.

Danke für den letzten Hinweis. Unabhängig von der jetzigen Lösung ist das doch dennoch ein Bug oder?

--- Originally created by CulexCoding on September 16th, 2011, at 02:12pm

@leofeyer
Copy link
Member

Nein, das Verhalten ist korrekt. Die Standardsortierung (noch bevor überhaupt irgendetwas in der Session geschrieben wurde) legst Du mittels 'date DESC' fest. Sobald Du dann nach einem Feld sortieren lässt, nimmt Contao immer das Flag aus der Feldkonfiguration und nicht das aus dem Sorting-Header.

--- Originally created on November 1st, 2011, at 02:06pm

@ghost
Copy link
Author

ghost commented Nov 29, 2011

Ok, das ursprüngliche Ticket hatte aber nix mit der OT Diskussion hier zu tun!

Fakt ist, das es nicht möglich ist, eine Standardsortierung nach tstamp absteigend gruppiert nach Jahren (flag 10) umzusetzen.

--- Originally created by backbone on November 1st, 2011, at 02:35pm

@HellPat
Copy link

HellPat commented Nov 29, 2011

Habe das selbe Problem.
Der gelde reload-Pfeil bringt auch nichts, da es sich um die Grundsortierung handelt.
Bei mir kommt das so zu Stande:

'sorting' => array
        (
            'mode'                    => 4,
            'flag'                    => 11,
            'fields'                  => array('createdOn'),
            'headerFields'            => array('title','deadline'),
            'child_record_callback'   => array('tl_project_task', 'listTasks'),
            'panelLayout'             => 'filter,limit;search',
        ),

Egal welche flag ich eingebe. es ändert sich nichts.

--- Originally created on November 17th, 2011, at 05:54pm

@leofeyer
Copy link
Member

--- Originally closed on November 1st, 2011, at 02:06pm

@PhilWaldmann
Copy link

Wie wurde das Problem gelöst? In der aktuellen stable Version 2.11.2 hat "flag" keinen Einfluss auf die Sortierung in einer ParentView. (mode 4)
Siehe dazu DC_Table Zeile 3548!

Hier gehört zumindest folgendes danach hin:

if (($GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['flag'] % 2) == 0){
   $query .= " DESC";
}

@aschempp
Copy link
Member

@PhilWaldmann Die Auswahl wird in deiner Benutzersession gespeichert. Du musst also explizit die Sortierung umstellen und zurückstellen! Ausserdem ggf. deine Benutzersession löschen.

@PhilWaldmann
Copy link

Das kann nichts mit der session zu tun haben, wenn man sich die Funktion parentView genau anschaut! (Zeile 3515 - 3549)

$orderBy = $GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['fields'];
....
if (is_array($orderBy) && !empty($orderBy)){
   $query .= " ORDER BY " . implode(', ', $orderBy);
}

@leofeyer
Copy link
Member

Ich habe es eben noch mal getestet und kann keinen Fehler feststellen.

  1. Wie das Feld gruppiert wird, bestimmt das Flag beim Feld (['fields']['date']['flag']).
  2. Ob die Datensätze anfänglich auf- oder absteigend sortiert werden, bestimmt nur der Zusatz " DESC".

Das Flag in ['list']['sorting']['mode'] hat im Darstellungsmodus 4 keine Funktion.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants