Spaces. Smartes Cloud Hosting für anspruchsvolle Webprojekte. Loslegen und Spaces testen. Von Mittwald.
Dieter Petereit 9. Januar 2013

TablePress, die eierlegende Wollmilchsau für Datentabellen in WordPress

Das recht fri­sche Plugin TablePress von Tobias Bäthge über­zeugt mit einer ein­fa­chen, dabei sehr leis­tungs­star­ken Einbindung von Datentabellen und deren Inhalten in belie­bi­ge WordPress-Sites. Es steht zur kos­ten­lo­sen Nutzung im WordPress-Repository unter GNU-Lizenz bereit, kann ver­schie­de­ne Sprachen und ist auch ansons­ten fle­xi­bel bis zur Wunschlosigkeitsgrenze. Kennen Sie nicht? Dann lesen Sie mal den fol­gen­den Beitrag…

Tabellen in WordPress – ohne Plugins eine Quälerei

Wir haben bei Dr. Web und Noupe Magazine die Präsentation unse­rer Showcases neu­er WordPress-Themes ver­än­dert. Monat für Monat brin­gen wir einen Artikel mit den Neuerscheinungen der letz­ten vier Wochen. Zur bes­se­ren Übersicht sind wir vor ein paar Ausgaben dazu über­ge­gan­gen, eine zusätz­li­che Tabelle ans Ende des Beitrages zu set­zen. Darin kann man nun auf einen Blick erken­nen, wor­in die Gemeinsamkeiten und Unterschiede der vor­ge­stell­ten Themes lie­gen. Bin ich etwa gezielt auf der Suche nach einem respon­si­ven Theme, so kann ich es mir direkt spa­ren, die ein oder ande­re Vorlage über­haupt anzu­schau­en.

Diese Tabellen legen wir bis­lang per Hand mit gutem altem HTML an. Da das ins­be­son­de­re bei unse­rem Jahresrückblick 2012 mit 50 Themes in ech­te Arbeit aus­ar­te­te, habe ich mich auf die Suche nach einer bes­se­ren Lösung bege­ben. Und wie es der Zufall will, hat der Magdeburger Tobias Bäthge seit weni­gen Monaten exakt eine sol­che Lösung parat. Wie es scheint, hat er sie gezielt für die Bedarfe sei­nes Baseball-Clubs Poor Pigs pro­gram­miert, ist aber so freund­lich, sie zur frei­en Nutzung zur Verfügung zu stel­len.


So sieht eine Tabelle aus TablePress in einem Beitrag im Standard, also ohne zusätz­li­ches Styling, aus

TablePress glänzt mit ausgezeichneter Dokumentation und alternativem Ansatz

Direkt vor­ne­weg sei erwähnt, dass die Dokumentation aus­ge­spro­chen gut ist. Leider bleibt ja genau die­ser Punkt bei vie­len Projekten rund um freie Software zu häu­fig auf der Strecke. Der Programmierer kennt schließ­lich sei­ne Lösung und der Nutzer soll sich halt rein­fri­ckeln, ist ja schließ­lich kos­ten­los. Geschenkter Gaul und so…

Tobias Bäthge geht so nicht vor. Auch wenn er sein Plugin unter die libe­ra­le GNU-Lizenz stellt, so doku­men­tiert er doch akri­bisch alle Ecken und Winkel des­sel­ben, jeden­falls soweit es für die Nutzung rele­vant ist. Keine mei­ner Fragen blieb offen, alles konn­te aus der Doku beant­wor­tet wer­den.

Obschon TablePress ganz frisch ist und erst in der Version 0.8.1-beta vor­liegt, ist es doch kein völ­li­ger Newbie auf sei­nem Gebiet. Vielmehr han­delt es sich um den Nachfolger des recht erfolg­rei­chen WP-Table Reloaded, das bereits seit 2009 am Markt befind­lich und ein Fork des Originals WP-Table von Alex Rabe war. Nach eige­nen Angaben traf Bäthge im Rahmen der Programmierung des Vorgängers die ein oder ande­re fal­sche Entscheidung im Rahmen des Software-Designs, wes­halb er schluss­end­lich einen kom­plet­ten Rewrite des Plugins für unab­ding­bar befand. Dieses Rewrite ist TablePress.

Wichtig zu wis­sen: TablePress setzt zum jet­zi­gen Zeitpunkt min­des­tens WordPress 3.4 vor­aus. Schon die nächs­te Beta 0.9 wird zwin­gend WordPress 3.5 ver­lan­gen.

Von ande­ren Tabellen-Plugins, sowie den erwei­ter­ten Tabellen-Bearbeitungsfunktionen alter­na­ti­ver Editoren, unter­schei­det sich TablePress schon vom Ansatz her. TablePress näm­lich lie­fert kein lee­res HTML-Gerüst, das es dann manu­ell mit Inhalten zu beschi­cken gilt. Vielmehr ver­wal­tet TablePress Form und Inhalt in einer Hand. Das Einfügen einer Tabelle in einen Beitrag oder eine Seite erfolgt mit­tels eines Shortcode, für deren Verwaltung auch ein Icon in der Toolbar des TinyMCE ange­legt wird, so dass man sich die Codes nicht ein­mal mer­ken muss.


Shortcode nebst Icon in der Toolbar des TinyMCE (oben ganz rechts)

Bevor wir uns das Plugin in Aktion anse­hen, noch ein Wort zu den Sprachversionen. Im Auslieferungszustand bringt TablePress die Sprachen Englisch, Deutsch und Französisch mit. Abhängig von der Standardsprache des eige­nen Blog in der wp-config.php wird die kor­re­spon­die­ren­de Sprache auto­ma­tisch gewählt. In den Einstellungen zu TablePress lässt sich die­se Standardvorgabe jedoch jeder­zeit ändern. Das ist nütz­lich, wenn man etwa – wie ich – Screenshots des Plugin auch für eng­lisch­spra­chi­ge Magazine wie Noupe braucht, den Test aber mit sei­nem deut­schen Blog durch­führt ;)

Da TablePress mit .po und .mo arbei­tet, kann man es per Poedit oder dem WordPress-Plugin Codestyling Localization leicht auch für ande­re Sprachen die­ser Erde und dar­über hin­aus fit machen.

TablePress – die Vorgehensweise

Nachdem die Installation nebst Aktivierung erle­digt ist, die ich per­sön­lich stets direkt über das Backend erle­di­ge, fin­den Sie links in der Navigation einen neu­en Punkt namens TablePress. Die Position die­ses Menüpunktes kön­nen Sie übri­gens in den Einstellung ver­än­dern.

Klickt man nun die­sen Punkt an, ist es fort­an egal, ob man die abklap­pen­den unter­ge­ord­ne­ten Menüpunkten in der seit­li­chen Navigation wählt oder die eben­falls ver­füg­bar wer­den­de Karteireiter-Navigation vor­zieht. Auf den ers­ten Blick sind die Möglichkeiten über­schau­bar. Tabellen las­sen sich ver­wal­ten, neu anle­gen, sowie im- oder expor­tie­ren. Der Punkt Einstellungen, der glo­bal aller­dings nur weni­ge Optionen bereit hält, run­det das Portfolio ab.

Hat man bereits mit dem Vorgänger WP-Table Reloaded gear­bei­tet oder will man etwa Tabellen aus Excel in TablePress brin­gen, kann man das kom­for­ta­bel über den Punkt Import erle­di­gen. Neben dem CSV-Format ver­steht TablePress auch HTML und JSON als Importquelle. Der Export kann eben­falls als CSV, HTML oder JSON erfol­gen. Das Trennzeichen lässt sich defi­nie­ren. Auf Wunsch wird das Exportfile gezippt, was sinn­voll ist, wenn man vie­le Tabellen gleich­zei­tig expor­tiert. Übrigens las­sen sich Zip-Files mit meh­re­ren Tabellen auch impor­tie­ren.

Über den Punkt Alle Tabellen, der optisch der Artikelübersicht ent­spricht, nimmt man Zugriff auf alle bereits ange­leg­ten und/oder impor­tier­ten Tabellen. Von hier aus kön­nen sie edi­tiert, kopiert, gelöscht oder expor­tiert wer­den. Technisch betrach­tet – und das erklärt auch die ver­trau­te Optik – legt TablePress die Inhalte der Tabellen als Custom Post Type in der Tabelle wp-posts ab.

Will man nun eine neue Tabelle anle­gen und manu­ell mit Inhalten bestü­cken, wie es bei unse­ren Theme-Übersichten regel­mä­ßig der Fall blei­ben wird, wählt man den Menüpunkt Neue Tabelle. Hier geht es zunächst sehr über­sicht­lich los. Man ver­gibt einen Namen, eine (optio­na­le) Beschreibung und legt die Anzahl der Zeilen und der Spalten fest. (Diese bei­den zen­tra­len Werte las­sen sich im wei­te­ren Verlauf des Verfahrens kom­for­ta­bel nach Bedarf ver­än­dern.) Dann klickt man auf Tabelle hinzufügen.

Erst danach zeigt TablePress den Tabellen-Editor, wei­te­re Bearbeitungsfunktionen, sowie den Einstellungsdialog für die Funktionalität der ein­zel­nen Tabelle an. Der Editor an sich bedarf kei­ner beson­de­ren Erläuterung. Im Standard wird die obers­te Zeile als Tabellenkopf defi­niert. Korrespondierend kann die letz­te Zeile als Tabellenfuß fun­gie­ren. Beides muss nicht so sein, wenn man das nicht will. Zwei Häkchen in den Einstellungen der Tabelle rei­chen, um das Verhalten aus­zu­he­beln.

Insgesamt ist die Darstellung der Tabelle für das spä­te­re Frontend fle­xi­bel anzu­pas­sen. So kön­nen Sie ent­schei­den, ob der Tabellenname und die Beschreibung über­haupt ange­zeigt wer­den sol­len und wenn ja, ober­halb oder unter­halb der Tabelle. Eigene CSS-Klassen erlau­ben das Styling nach eige­nem Gusto. Daneben kann über die glo­ba­len Einstellungen eine kom­plett eige­ne CSS-Datei bei­gestellt wer­den.

Über die inte­grier­te JavaScript-Bibliothek DataTables ste­hen Such- und Sortierfunktionen, sowie Tabellenpaginierung und Filtermöglichkeiten zur Verfügung. Besonders hilf­reich für brei­te Tabellen ist die Option, hori­zon­ta­les Scrollen zu erlau­ben. Ein Freifeld nimmt manu­el­le Parameter auf, die die Bibliothek DataTables ansons­ten noch zu bie­ten hat. So lässt sich auch in Sachen JavaScript-Funktionalität maxi­ma­le Flexibilität errei­chen. DataTables kann kom­plett oder in Teilen abge­schal­tet wer­den, so man die Funktionalität nicht benö­tigt oder aus bestimm­ten Gründen nicht anbie­ten will.


Im Tabellen-Editor erfasst man Inhalte ähn­lich wie in Excel

Hat man nun sei­ne Tabelle erfasst, wozu man übri­gens auch HTML inner­halb der Zellen ver­wen­den oder über erwei­ter­te Bearbeitungsfunktionen Links oder Bilder auto­ma­ti­siert ein­fü­gen las­sen kann, spei­chert man die Änderungen, kopiert den Shortcode und pas­tet ihn in den ent­spre­chen­den Beitrag in der HTML-Ansicht. Will man eine Tabelle nicht in einem Beitrag oder einer Seite unter­brin­gen, son­dern an ande­rer Stelle im Template, so ist auch das über eine Template Tag-Funktion mög­lich. Das kann bei­spiels­wei­se so aus­se­hen:

Fazit: TablePress ist der­zeit DIE Lösung für Datentabellen in WordPress. Mir fällt nur ein ver­nünf­ti­ger Grund ein, war­um man das Plugin nicht ver­wen­den wol­len könn­te. Der indes gilt für alle Plugins glei­cher­ma­ßen, die Gebrauch von Shortcodes machen. Da die Darstellung der Tabellen vom Vorhandensein und der ord­nungs­ge­mä­ßen Funktion des Plugin abhän­gig ist, muss man sich auf die Motivation des Programmierers ver­las­sen. Stellt er irgend­wann die Fortentwicklung ein und ändert sich danach etwas rele­van­tes am Core von WordPress, dann war es das mit der schi­cken Tabelle im eige­nen Blog. Immerhin gehen einem die Tabellen nicht ver­lo­ren. Man kann sie schließ­lich in meh­re­ren Formaten expor­tie­ren und so etwa als rei­nes HTML zurück­ho­len. Aber Aufwand wäre das alle­mal…

Links zum Beitrag:

Alle Screenshots im Überblick:

Dieter Petereit

Dieter Petereit

ist seit 1994 im Netz unterwegs, aber bereits seit über 30 Jahren in der IT daheim. Seit Anfang des neuen Jahrtausends schreibt er für diverse Medien, hauptsächlich zu den Themenfeldern Technik und Design.

13 Kommentare

  1. Hallo Dieter,

    dein Beitrag und auch TablePress gefällt mir. Eine Kleinigkeit im Fazit ist mir auf­ge­sto­ßen. Du spielst auf die “Motivation des Programmierers” an. Das ist nicht nur bei Shortcodes so und nicht nur bei Einzelkämpfern. Auch pro­fes­sio­nel­le Softwarehersteller wer­den auf­ge­kauft, ver­schwin­den und Produkte wer­den abge­kün­digt. TablePress unter die GNU zu stel­len ist doch eine super Versicherung und eine Einladung mit zu machen. Ansonsten ist der Wunsch nach einem “ewig sorg­los Paket” rei­ne Illusion.

  2. Mir gefällt tab­le­press sehr gut.
    Allerdings habe ich auch Zellen mit Beschreibung etc. ein­zu­fü­gen und da fällt es mir rich­tig schwer, die ein­zel­nen Zellen ordent­lich zu for­ma­tie­ren. Bin nicht so der html-Profi ;)
    Wäre schön, wenn es dafür einen umfas­sen­den Editor geben wür­de, der auch Aufzählungen, Einrücken, etc. beherrscht. Aber ansons­ten: Daumen hoch!

  3. Das Plugin ist durch­aus eine Bereicherung, spe­zi­ell bei den neue­ren WordPress-Themes, die noch eini­ge Bugs auf­wei­sen. Durch die Erweiterung “Responsive Tables” las­sen sich auch grö­ße­re und umfang­rei­che Tabellen auf Mobilgeräten eini­ger­ma­ßen lesen, da sie anders ange­ord­net wer­den. Das soll erst mal jemand bes­ser hin bekom­men.

  4. Zwar tol­le Funktionen, aber für den all­täg­li­chen Bedarf viel zu umständ­lich. Wer mehr als 3 Texte pro Tag ein­fü­gen muss, wird mit die­sem Plugin nur noch Fluchen.

  5. Hallo,

    vie­len Dank für dei­ne Informationen. Ich nut­ze Table Press seit weni­gen Tagen und habe gera­de danach gesucht, wie es ordent­lich zu bedie­nen ist. Jetzt sind mir ein paar Features kla­rer gewor­den – gruß Jochen

  6. Gibt es in TablePress die Möglichkeit, Daten aus einem Formular in einer Tabelle abzu­le­gen?

  7. Hallo,

    schö­ner Beitrag für ein super Plugin, das will ich auch haben.
    Eine Frage habe ich aber:
    Ist es mög­lich das nur bestimm­te Bentzergruppen Zugriff auf die erstell­ten Tabellen haben?
    Ich habe uber UAM bestimm­te Gruppen ange­legt, die ent­spre­chend viel auf der Seite sehen dür­fen.
    Jeder darf bei mir Beiträge erstel­len, aber ich will nicht das JEDER auch bestimm­te Tabellen in sei­nen Beitrag ein­bau­en kann.

    Kann man das unter­bin­den?
    Wenn ja wie?

    DANKE
    Stefan

  8. Danke für die­sen Beitrag. Bei der Vielzahl an Plug’ins von WordPress ist es gar nicht so leicht einen Überblick zu behal­ten. Ich hat­te erst sel­ber ver­sucht in der Liste etwas pas­sen­des für das ein­fü­gen von Tabellen zu fin­den, aber ohne Erfolg nun habe ich dank ihnen ein pas­sen­des Toll gefun­den.

  9. Schönes Plugi. Mich wür­de noch inte­re­sie­ren, ob das Teil bar­rie­re­frie Tabellen unter­stützt, th scheint ja dabei zu sein, wie stehts mit sum­ma­ry, und so wei­ter, weiß das jemand?

    • Hallo Thomas,
      ja, “th” für Kopf- und Fußzeile sind selbst­ver­ständ­lich. “sum­ma­ry” kann mit­tels eines Filter Hooks hin­zu­ge­fügt wer­den. Welche Dinge hät­test du denn ger­ne noch? Vielleicht kann ich sie ja ein­bau­en…
      Viele Grüße
      Tobias

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.