Ergebnis 1 bis 35 von 35

Thema: Contao 3.x sortierte Tabelle

  1. #1
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard Contao 3.x sortierte Tabelle

    Hi,

    ich habe mit dem Inhaltselement "Tabelle" mir eine Torschützenliste erstellt.

    Gemäß des Buches "Websites erstellen mit Contao3" und Internetanleitungen habe ich meine erste Zeile als Kopfzeile definiert und als Sortierspalte 1 ausgewählt (Name,Tore,davon 7m).

    Trotzdem sortiert er meine Tabelle nicht richtig. Wenn ich manuell die Pfeile neben den Kopfzeilentiteln betätige, funktioniert die Sortierung.

    Hat jemand eine Idee, woran es liegen könnte?

    Grüße

  2. #2
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    wenn Du nach dem Namen sortieren willst (also die erste Spalte) musst Du "0" eingeben

  3. #3
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    Ich möchte ja nach den Toren sortieren. Habe mich da falsch ausgedrückt sorry.
    Wenn ich über die Pfeile sortieren lasse ist ein Pfeil ja auch immer dunkel gefärbt, dass ist beim 1. Aufruf der Seite nicht, als ob gar nicht sortiert wurde.

  4. #4
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    Zitat Zitat von HobbyWebProgrammer Beitrag anzeigen
    Hat jemand eine Idee, woran es liegen könnte?
    Ich würde das so sehen: eine sortierbare Tabelle ist etwas anderes als eine sortierte Tabelle. Die initiale Reihenfolge musst Du selber angeben. Danach ist sie dann im Frontend sortierbar.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  5. #5
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    Schade, ich dachte ich habe dann nicht nur die Möglichkeit manuell sortieren zu lassen, sondern auch dass diese Tabelle von Anfang anhand einer Spalte sortiert wird.

    Kann ich das irgendwie erreichen?

    *Nachtrag:
    Wenn ich in der Online Demo eine Tabelle erstelle, und den Haken bei sortierte Tabelle anhake und als Spalte die Tore auswähle, dann wird die Tabelle beim 1. Aufruf direkt schon richtig sortiert. Irgendwas muss bei mir falsch sein in der Testumgebung. An CSS kann die Sortierung eigentlich nicht liegen, oder?
    Geändert von HobbyWebProgrammer (28.06.2013 um 13:06 Uhr)

  6. #6
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    Das "sortiere nach" wird in einem Cookie gemerkt. Wenn Du also zum zweiten Mal auf die Seite gehst, ist die Tabelle schon sortiert. Könnte es das gewesen sein.

    Ich erstelle meine sortierbaren Tabellen immer aus Daten dynamisch und dabei Initial so sortiert, wie ich es haben will. Daher kann ich nicht 100-prozentig sicher sagen, daß es nicht doch so ist, wie Du meinst.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  7. #7
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    Hi,

    das mit dem Cookie hätte gut sein können. Habe alles geleert doch leider existiert das Problem noch. Eventuell sollte ich es auch dynamisch ausprobieren.

    Folgend die Einstellung:

    SortSettings.png

    Unsortiert beim Aufruf der Seite (Spalte Tore ist die zweite Spalte, also für Contao Index 1):

    Unsorted.png

    Sortiert, wenn ich auf den unteren Pfeil geklickt habe:

    Sorted.png

  8. #8
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    Noch einer eine Idee eventuell? :-/

  9. #9
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    gib mal einen Link auf die Tabelle oder mach eine Testseite - mit dem Blindflug ist wenig anzufangen

  10. #10
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    So Leute,

    mein erstes Homepageprojekt für meinen Handballverein ist nun online.

    Das Problem mit der Sortierung der Tabelle habe ich immer noch, obwohl ich wie bereits bei früheren Posts erwähnt die Sortierung angewählt habe.
    Eventuell könnt Ihr mir jetzt weiterhelfen, warum nicht automatisch nach den Toren sortiert wird... ich komme einfach nicht weiter .

    Hier der Link direkt zur Torschützenliste:

    http://def1991.mensa.uberspace.de/tv...tzenliste.html

    Hier nochmal die Einstellung (Index 1 sind die Tore, also die zweite Spalte):

    screen_table_settings.png

    Folgendes ist mir aufgefallen: Wenn ich jQuery nicht lade, dann funktioniert die Sortierung. Ich brauch aber jQuery für andere Erweiterungen.
    Geändert von HobbyWebProgrammer (12.09.2013 um 22:20 Uhr)

  11. #11
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    nach was soll sortiert werden, wenn überall "Null" steht? nach Name gehts ja...

  12. #12
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    Nach den Toren, aber auch wenn ich testweise Zahlen dort eintrage geht es nicht.
    Das Problem ist ja, dass die Tabelle beim ersten Aufruf direkt sortiert sein soll, ohne dass ich draufklicken muss.

  13. #13
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    dann mach mal alles so wie es sein soll(te)... dann kann nochmal gucken...

  14. #14
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    so habe ich

  15. #15
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    o.k. - also: die Sortierung als solches funktioniert - du wirst irgendwie angeben müssen, welche Spalte gleich sortiert sein soll...

    Beim Sortieren fügt das Script u.a. eine CSS-Klasse wie "headerSortDown" hinzu - die müsste beim ersten Aufruf schon zu sehen sein... issse aber nich

    sofern es im BE keine Einstellung dazu gibt, ggf. das Template anpassen - siehe http://tablesorter.com/docs/example-...sort-list.html

  16. #16
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    Ich habe oben einen Screenshot vom Backend gepostet. Ich gebe ja die Spalte an nach der direkt sortiert werden soll.
    Fängt bei 0 an und ich habe 1 angegeben. Also die Tore Spalte.

  17. #17
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    ... und mit Deinem CSS musst Du Dir auch was einfallen lassen - die "Zebra-Zeilen" stimmen nach der Sortierung nicht :-(

    entweder per CSS3 einfärben und nicht über die Contao-Klassen (odd/even) bzw. per JS und das dann aktualisieren... guck mal wie das Tablesorter auf seiner Seite macht

  18. #18
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    muss ich das tablesorter plugin implementieren, oder kennt javascript das?

    so wird die Sortierung momentan im Template gemacht:

    PHP-Code:
    <script>
    <?php if ($this->hasMooTools): ?>
    (function($) {
      window.addEvent('domready', function() {
        new TableSort('<?php echo $this->id?>', '<?php echo $this->thousandsSeparator?>', '<?php echo $this->decimalSeparator?>');
      });
    })(document.id);
    <?php elseif ($this->hasJQuery): ?>
    (function($) {
      $(document).ready(function() {
        $('#<?php echo $this->id?>').tablesorter();
      });
    })(jQuery);
    <?php endif; ?>
    </script>
    Ich muss mich da mal reindenken wie ich dieses Tablesort dann dort einbauen kann.

  19. #19
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    <script>
    <?php if ($this->hasMooTools): ?>
    (function($) {
      window.addEvent('domready', function() {
        new TableSort('<?php echo $this->id?>', '<?php echo $this->thousandsSeparator?>', '<?php echo $this->decimalSeparator?>');
      });
    })(document.id);
    <?php elseif ($this->hasJQuery): ?>
    (function($) {
      $(document).ready(function() {
        $('#<?php echo $this->id?>').tablesorter({ 
            // sort on the first column, order asc 
            sortList: [[0,0]] 
        }); 
      });
    })(jQuery);
    <?php endif; ?>
    </script>
    so vielleicht

  20. #20
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    @HobbyWebProgrammer

    Eine Lösung für das Sortierproblem habe ich im Moment auch nicht, mir ist aber aufgefallen, dass sich das Hintergrundraster der Tabelle beim Sortieren unschön ändert. Dies ließe sich umgehen, wenn Du anstelle von
    Code:
    .ce_table tr.even {
        background-color: #F0FFFF;
        color: #222222;
    }
    die Anweisung
    Code:
    .ce_table tbody tr:nth-child(2n-1) {
        background-color: #F0FFFF;
        color: #222222;
    }
    verwendest.

  21. #21
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Daumen hoch

    Hi Leute,

    vielen Dank für Eure Hilfe, top!!!

    Den Tipp für das .css-Problem werde ich nachher versuchen umzusetzen.

    So sieht die Lösung aus, die nun für mich funktioniert (zweite Spalte "Tore" wird direkt initialisiert absteigend sortiert):

    PHP-Code:
    <?php if ($this->sortable): ?>

    <!-- indexer::stop -->
    <script>
    $(document).ready(function() { 
        // call the tablesorter plugin 
        $("table").tablesorter({ 
            // sort the second column, 0 asc | 1 desc
            sortList: [[1,1]] 
        }); 
    }); 
    </script>
    <!-- indexer::continue -->
    <?php endif; ?>
    Geändert von HobbyWebProgrammer (13.09.2013 um 11:22 Uhr)

  22. #22
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    stimmt - sollte ja die 2. Spalte sein...

    Achtung! die Sache gilt nun für alle sortierten Tabellen! entweder die Funktion mit der Startsortierung ist nicht vorgesehen oder buggy in der Umsetzung


    aktuell kannst Du in PHP oder im JS-Script noch die Abfrage nach der Tabellen-ID (table_21 glaube ich) machen



    und ändere Deinen Kommentar in JS in

    // second column

  23. #23
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    wie frage ich die table_id ab, und wäre es so dann richtig?

    PHP-Code:
    <?php if ($this->sortable): ?>

    <!-- indexer::stop --> 
    <?php
    if ($table_id == 21) {
      <
    script
      $(
    document).ready(function() {  
          
    // call the tablesorter plugin  
          
    $("table").tablesorter({  
              
    // sort the second column, 0 asc | 1 desc 
              
    sortList: [[1,1]]  
          });  
      });  
     
    </script> 
    } else {
      <script> 
      <?php if ($this->hasMooTools): ?> 
      (function($) { 
        window.addEvent('domready', function() { 
          new TableSort('<?php echo $this->id?>', '<?php echo $this->thousandsSeparator?>', '<?php echo $this->decimalSeparator?>'); 
      }); 
    })(document.id); 
    <?php elseif ($this->hasJQuery): ?> 
    (function($) { 
      $(document).ready(function() { 
        $('#<?php echo $this->id?>').tablesorter(); 
      }); 
    })(jQuery); 
    <?php endif; ?> 
    </script>
    }
    ?>
    <!-- indexer::continue -->

    <?php endif; ?>

  24. #24
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    PHP-Code:

    <script>
    <?php if ($this->hasMooTools): ?>
    (function($) {
      window.addEvent('domready', function() {
        new TableSort('<?php echo $this->id?>', '<?php echo $this->thousandsSeparator?>', '<?php echo $this->decimalSeparator?>');
      });
    })(document.id);
    <?php elseif ($this->hasJQuery): ?>
    (function($) {
      $(document).ready(function() {
        if('<?php echo $this->id?>' == 'table_21') {
           $('#<?php echo $this->id?>').tablesorter({ 
              // sort on the second column, order desc
              sortList: [[1,1]] 
           });
        } else {
           $('#<?php echo $this->id?>').tablesorter();
        }
      });
    })(jQuery);
    <?php endif; ?>
    </script>

  25. #25
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    sehr geil, funktioniert :-). Danke.

    Kann ich die If-Anweisung einfach mit "or" erweitern, da ich ja noch die Torschützenliste für die 1. und 3. Herren habe?

  26. #26
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    PHP-Code:

    ...
    if('<?php echo $this->id?>' == 'table_21' OR '<?php echo $this->id?>' == 'table_22' OR '<?php echo $this->id?>' == 'table_23') { 
    ...

  27. #27
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    Vielen Dank an alle für die Hilfe.

    ...so für alle, die mal das gleiche Problem haben sollten das komplette Template:


    PHP-Code:
    <div class="<?php echo $this->class?> block"<?php echo $this->cssID?><?php if ($this->style): ?> style="<?php echo $this->style?>"<?php endif; ?>>
    <?php if ($this->headline): ?>

    <<?php echo $this->hl?>><?php echo $this->headline?></<?php echo $this->hl?>>
    <?php endif; ?>

    <table id="<?php echo $this->id?>"<?php if ($this->sortable): ?> class="sortable"<?php endif; ?>>
    <?php if ($this->useHeader): ?>
    <thead>
    <tr>
    <?php foreach ($this->header as $col): ?>
      <th class="<?php echo $col['class']; ?>"><?php echo $col['content']; ?></th>
    <?php endforeach; ?>
    </tr>
    </thead>
    <?php endif; ?>
    <?php 
    if ($this->useFooter): ?>
    <tfoot>
    <tr>
    <?php foreach ($this->footer as $col): ?>
      <td class="<?php echo $col['class']; ?>"><?php echo $col['content']; ?></td>
    <?php endforeach; ?>
    </tr>
    </tfoot>
    <?php endif; ?>
    <tbody>
    <?php foreach ($this->body as $class=>$row): ?>
    <tr class="<?php echo $class?>">
    <?php foreach ($row as $i=>$col): ?>
    <?php 
    if ($i == && $this->useLeftTh): ?>
      <th scope="row" class="<?php echo $col['class']; ?>"><?php echo $col['content']; ?></th>
    <?php else: ?>
      <td class="<?php echo $col['class']; ?>"><?php echo $col['content']; ?></td>
    <?php endif; ?>
    <?php 
    endforeach; ?>
    </tr>
    <?php endforeach; ?>
    </tbody>
    </table>
      
    <?php if ($this->sortable): ?>
    <!-- indexer::stop -->
    <script> 
    <?php if ($this->hasMooTools): ?> 
    (function($) { 
      window.addEvent('domready', function() { 
        new TableSort('<?php echo $this->id?>', '<?php echo $this->thousandsSeparator?>', '<?php echo $this->decimalSeparator?>'); 
      }); 
    })(document.id); 
    <?php elseif ($this->hasJQuery): ?> 
    (function($) { 
      $(document).ready(function() {
        // sort on goals in the goalscorer lists 21, 47 and 53
        if('<?php echo $this->id?>' == 'table_21' || '<?php echo $this->id?>' == 'table_47' || '<?php echo $this->id?>' == 'table_53') { 
        //if('<?php echo $this->id?>' == 'table_21') {
           $('#<?php echo $this->id?>').tablesorter({  
              // sort on the second column, order desc 
              sortList: [[1,1]]  
           }); 
        } else { 
           $('#<?php echo $this->id?>').tablesorter(); 
        } 
      }); 
    })(jQuery); 
    <?php endif; ?> 
    </script>
    <!-- indexer::continue -->
    <?php endif; ?>
    </div>

  28. #28
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.757
    User beschenken
    Wunschliste

    Standard

    hast Du mal geprüft, ob man geschweifte Klammern in die CSS-Klassenfelder im BE einfügen kann??

    wenn ja, wäre es hiermit einfacher und flexibler gegangen: http://tablesorter.com/docs/example-meta-sort-list.html

    als Klasse dann "tablesorter {sortlist: [[1,1]]}"

  29. #29
    Contao-Nutzer Avatar von HobbyWebProgrammer
    Registriert seit
    26.06.2013.
    Ort
    Moers
    Beiträge
    71

    Standard

    Ich probiere es mal nachher noch aus und schreibe dann nochmal, ob es geht.

  30. #30
    Contao-Nutzer
    Registriert seit
    15.04.2014.
    Beiträge
    219

    Standard Das moo_tablesort- oder j_tablesort-Template muss im Seitenlayout eingebunden sein.

    Also diese Fehlermeldung kommt bei mir:

    Das moo_tablesort- oder j_tablesort-Template muss im Seitenlayout eingebunden sein.
    Und in dieser Diskussion wurde ja auch ein ganzes Template für die Problemlösung aufgeführt.

    Wie/wo binde ich nun diese Templates ins Seitenlayout ein?
    Angehängte Grafiken Angehängte Grafiken
    Geändert von claudiacarolina (02.05.2014 um 14:18 Uhr)

  31. #31
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.337
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Im Seitenlayout, das ist ein Häkchen in der entsprechenden Sektion bei JQuery / Mootools

  32. #32
    Contao-Nutzer
    Registriert seit
    15.04.2014.
    Beiträge
    219

    Standard Ahh super!

    Danke vielmals. Ich hatte da schon mal gesucht und jetzt mit Ihrem Hinweis auch gefunden!!! Danke!

  33. #33
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.337
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Gern. Und nur weil ich Moderatorin bin brauchst Du mich nicht zu Siezen ... ;-)


    Sent from my iPhone using Tapatalk

  34. #34
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Sehr geehrte Frau Moderatorin,
    Hier noch ein Beitrag zu diesem Thema:
    https://community.contao.org/de/show...t-Contao-3-2-9

  35. #35
    Contao-Nutzer
    Registriert seit
    15.04.2014.
    Beiträge
    219

    Standard

    [QUOTE=lucina;321892]Gern. Und nur weil ich Moderatorin bin brauchst Du mich nicht zu Siezen ... ;-)


    Also gerne DU - ich bin sonst nicht so.... :-)

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
  •