Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
-
- Posts: 235
- Joined: Mon Mar 07, 2011 4:34 pm
- Location: South of Lower Saxony, Germany
Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
Hallo,
gibt es eine Möglichkeit eine CSV Tabelle direkt in einer CMSimple Seite einzubinden, darzustellen?
Ich würde gerne die von advancedform_XH erzeugte Datei anzeigen lassen.
Viele Grüße, Ele
gibt es eine Möglichkeit eine CSV Tabelle direkt in einer CMSimple Seite einzubinden, darzustellen?
Ich würde gerne die von advancedform_XH erzeugte Datei anzeigen lassen.
Viele Grüße, Ele
Re: Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
Hallo Ele,
mit Advancedform_XH ist das nicht möglich, weil ich das CSV nur bei der letzten Version noch schnell eingebaut hatte, da es ein User für einen guten Zweck brauchte. Ursprünglich wollte ich diese Funktionalität erst in Version 2 ergänzen, und dann auch mit der Möglichkeit die Daten im Back-End ansehen und bearbeiten zu können. Und ich hatte auch ein anderes Datenformat geplant. Aber CSV war schnell und leicht umzusetzen.
Jetzt hab ich überlegt, ob ich die Darstellung des CSV in Advancedform_XH nachreichen soll. Aber eigentlich kann eine solche Darstellung auch für beliebige CSV-Dateien interessant sein (z.B. eine Excel-Tabelle, die man schnell nach CSV wandelt). Daher hab ich mal kurz ein bisschen probiert, und das grundlegende lässt sich mit 10 Zeilen PHP machen. Nun will ich aber das noch etwas erweitern, so dass auch evtl. Überschriften in der CSV als Header angezeigt werden, usw. Ein eigenes Plugin ist sicher übertrieben, deshalb werde ich das (vermutlich noch heute) im Wiki als Add-On beschreiben.
Ich gebe noch mal Bescheid, wenn's fertig ist.
Christoph
mit Advancedform_XH ist das nicht möglich, weil ich das CSV nur bei der letzten Version noch schnell eingebaut hatte, da es ein User für einen guten Zweck brauchte. Ursprünglich wollte ich diese Funktionalität erst in Version 2 ergänzen, und dann auch mit der Möglichkeit die Daten im Back-End ansehen und bearbeiten zu können. Und ich hatte auch ein anderes Datenformat geplant. Aber CSV war schnell und leicht umzusetzen.
Jetzt hab ich überlegt, ob ich die Darstellung des CSV in Advancedform_XH nachreichen soll. Aber eigentlich kann eine solche Darstellung auch für beliebige CSV-Dateien interessant sein (z.B. eine Excel-Tabelle, die man schnell nach CSV wandelt). Daher hab ich mal kurz ein bisschen probiert, und das grundlegende lässt sich mit 10 Zeilen PHP machen. Nun will ich aber das noch etwas erweitern, so dass auch evtl. Überschriften in der CSV als Header angezeigt werden, usw. Ein eigenes Plugin ist sicher übertrieben, deshalb werde ich das (vermutlich noch heute) im Wiki als Add-On beschreiben.
Ich gebe noch mal Bescheid, wenn's fertig ist.
Christoph
Christoph M. Becker – Plugins for CMSimple_XH
-
- Posts: 68
- Joined: Fri Apr 16, 2010 4:19 pm
- Location: Germany/Franconia
Re: Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
Au ja!
Das kann ich auch gut brauchen!!
Das kann ich auch gut brauchen!!
leberecht.net | keep it simple, or fail
Re: Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
Hallo Ele, hallo Jochen,
ich warte mit dem Eintrag im Wiki lieber noch ab. Einerseits könnte die Funktion den ein oder anderen Fehler haben (ich habe aus Zeitgründen nur wenig getestet; es kann aber auch nichts schlimmes passieren, da die Funktion nur die Datei liest; im schlimmsten Fall ist die Tabelle nicht zu gebrauchen), andererseits bin ich mir bezüglich der Parameterübergabe noch nicht sicher. Aber hier ist schon mal der aktuelle Stand:
Diesen Code einfach in cmsimple/userfuncs.php einfügen. Wenn es diese Datei noch nicht gibt, einfach erstellen, und am Anfang noch ergänzen:
Um ein CSV von Advancedform anzuzeigen auf der gewünschten Seite (im Quellcode) schreiben:
Den Pfad immer relativ zur aktuellen Sprache angeben. Für die Hauptsprache also z.B.: ./plugins/advancedform/data/formular.csv
Wenn andere CSV angezeigt werden sollen, dann sind vermutlich die Parameter zu ändern. Das kann direkt beim PLUGIN-Call erfolgen. Die zusätzlichen Parameter:
Das Styling der Tabelle erfolgt dann über die angegebenen Klassen (Voreinstellung ist csv_table).
Christoph
ich warte mit dem Eintrag im Wiki lieber noch ab. Einerseits könnte die Funktion den ein oder anderen Fehler haben (ich habe aus Zeitgründen nur wenig getestet; es kann aber auch nichts schlimmes passieren, da die Funktion nur die Datei liest; im schlimmsten Fall ist die Tabelle nicht zu gebrauchen), andererseits bin ich mir bezüglich der Parameterübergabe noch nicht sicher. Aber hier ist schon mal der aktuelle Stand:
Code: Select all
function csv_as_table($fn, $headings = FALSE, $classes = 'csv_table', $delimiter = "\t", $enclosure = '"') {
$o = '<table class="'.$config['classes'].'">'."\n";
if (($fh = fopen($fn, 'r')) !== FALSE) {
if ($headings !== FALSE) {
$o .= '<thead><tr>';
if ($headings === TRUE) {
if (($headings = fgetcsv($fh, 4096, $delimiter, $enclosure)) === FALSE) {
$headings = array();
}
}
foreach ($headings as $heading) {
$o .= '<td>'.$heading.'</td>';
}
$o .= '</tr></thead>'."\n";
}
$o .= '<tbody>'."\n";
while (($rec = fgetcsv($fh, 4096, $delimiter, $enclosure)) !== FALSE) {
$o .= '<tr>';
foreach ($rec as $field) {
$o .= '<td>'.htmlspecialchars($field).'</td>';
}
$o .= '</tr>'."\n";
}
fclose($fh);
$o .= '</tbody>'."\n";
}
$o .= '</table>'."\n";
return $o;
}
Code: Select all
<?php
Code: Select all
{{{PLUGIN:csv_as_table('PFAD_ZUR_DATEI');}}}
Wenn andere CSV angezeigt werden sollen, dann sind vermutlich die Parameter zu ändern. Das kann direkt beim PLUGIN-Call erfolgen. Die zusätzlichen Parameter:
- $headings FALSE um keine Tabellenüberschrift anzuzeigen, TRUE um diese der 1. Zeile der Datei zu entnehmen, oder array('1.Spalte', '2.Spalte', '3.Spalte') um diese selbst anzugeben
- $classes eine oder mehrere Klassen (durch Leerzeichen getrennt), die dem <table> zugewiesen werden
- $delimiter das Trennzeichen, also üblicherweise ein Tab oder ein ","
- $enclosure das Zeichen, das die einzelnen Feldwerte umschließt. Meist ein "
Das Styling der Tabelle erfolgt dann über die angegebenen Klassen (Voreinstellung ist csv_table).
Christoph
Christoph M. Becker – Plugins for CMSimple_XH
-
- Posts: 235
- Joined: Mon Mar 07, 2011 4:34 pm
- Location: South of Lower Saxony, Germany
Re: Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
Christoph, absolute KLASSE!
Es funktioniert, Danke, Danke.
Habe es eben ausprobiert und es hat auf Anhieb funktioniert.
Ich bin begeistert.
Viele Grüße, Ele
Es funktioniert, Danke, Danke.
Habe es eben ausprobiert und es hat auf Anhieb funktioniert.
Ich bin begeistert.
Viele Grüße, Ele
-
- Posts: 235
- Joined: Mon Mar 07, 2011 4:34 pm
- Location: South of Lower Saxony, Germany
Re: Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
Hallo,
da die schelle Lösung von Christoph schon mal gut klappte, möchte ich dazu auch noch einen kleinen Beitrag leisten.
Wer den Spalten seiner Tabelle eine feste Breite geben will, der sollte die Zeilen im userfuncs.php (s.o.) wie folgt ändern:
$o = '<table class="'.$config['classes'].'">'."\n";
in z.B.
$o = '<table id="ID_NAME" class="'.$config['classes'].'">'."\n";
sowie
$o .= '<td>'.$heading.'</td>';
in z.B.
$o .= '<td id="ID_BREIT">'.$heading.'</td>';
Dann muss dazu die gewünschte Spaltenbreite im CSS noch angegeben werden.
Z.B.:
table#ID_NAME td {
width:200px;
}
td#ID_BREIT {
width: 200px;
}
Es ist nicht auf meinem Mist gewachsen, sondern stammt von meinem Neffen.
Vielleicht hilft es ja den einen oder anderen.
Gruß, Ele
da die schelle Lösung von Christoph schon mal gut klappte, möchte ich dazu auch noch einen kleinen Beitrag leisten.
Wer den Spalten seiner Tabelle eine feste Breite geben will, der sollte die Zeilen im userfuncs.php (s.o.) wie folgt ändern:
$o = '<table class="'.$config['classes'].'">'."\n";
in z.B.
$o = '<table id="ID_NAME" class="'.$config['classes'].'">'."\n";
sowie
$o .= '<td>'.$heading.'</td>';
in z.B.
$o .= '<td id="ID_BREIT">'.$heading.'</td>';
Dann muss dazu die gewünschte Spaltenbreite im CSS noch angegeben werden.
Z.B.:
table#ID_NAME td {
width:200px;
}
td#ID_BREIT {
width: 200px;
}
Es ist nicht auf meinem Mist gewachsen, sondern stammt von meinem Neffen.
Vielleicht hilft es ja den einen oder anderen.
Gruß, Ele
Re: Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
Hi
Es funktioniert perfekt. Können Sie so, dass die Sorten in alphabetischer Reihenfolge
Google translate - Sorry for my bad german
Jens
Es funktioniert perfekt. Können Sie so, dass die Sorten in alphabetischer Reihenfolge
Google translate - Sorry for my bad german
Jens
Re: Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
Hi Jens,
soll fest nach einer bestimmten Spalte sortiert werden, oder soll der User das selbst machen können? Letzteres ist eigentlich eine sehr schöne Lösung, und könnte z.B. mit TableSort_XH gemacht werden. Dazu müsste dann nur die entsprechende CSS-Klasse beim Pluginaufruf angegeben werden.
Are you looking for a fixed sort order for a particular column, or shall the user be able to sort for himself? The latter case is actually a very nice solution, and can be realized with TableSort_XH for example. You just have to give the respective CSS class in the plugin call.
Christoph
soll fest nach einer bestimmten Spalte sortiert werden, oder soll der User das selbst machen können? Letzteres ist eigentlich eine sehr schöne Lösung, und könnte z.B. mit TableSort_XH gemacht werden. Dazu müsste dann nur die entsprechende CSS-Klasse beim Pluginaufruf angegeben werden.
Are you looking for a fixed sort order for a particular column, or shall the user be able to sort for himself? The latter case is actually a very nice solution, and can be realized with TableSort_XH for example. You just have to give the respective CSS class in the plugin call.
Christoph
Christoph M. Becker – Plugins for CMSimple_XH
Re: Möglichkeit eine CSV Tabelle direkt anzeigen zu lassen?
Das ist ein sehr nettes jQuery-Plugin (nutze ich auch in Dlcounter_XH). Allerdings scheint es nicht mehr entwickelt zu werden; die letzte Version ist von Oktober 2010.Holger wrote:Ich kann dieses jQuery-Plugin sehr empfehlen
http://tablesorter.com/docs/
Christoph M. Becker – Plugins for CMSimple_XH