csv import
csv import
Hallo Forum.
Ich bin grad an einer Page dran und habe folgendes Problem:
Ich benötige eine Möglichkeit mit der man im Backend csv-Dateien importieren kann.
Die csv-Daten sind lange Tabellen und sollen dann im Front-End dargestellt werden. Automatisch muss jede zweite Zeile peer CSS angesprochen werden. Die Tabellen haben zudem einen Headerbereich, der aber immer Fix ist.
Leider habe ich kaum php-Kenntnisse und kenn mich mit dem System (noch) nicht so gut aus. Vielleicht gibt es diese Möglichkeit ja schon...
Ich danke euch schonmal im Vorraus.
Jörn
Ich bin grad an einer Page dran und habe folgendes Problem:
Ich benötige eine Möglichkeit mit der man im Backend csv-Dateien importieren kann.
Die csv-Daten sind lange Tabellen und sollen dann im Front-End dargestellt werden. Automatisch muss jede zweite Zeile peer CSS angesprochen werden. Die Tabellen haben zudem einen Headerbereich, der aber immer Fix ist.
Leider habe ich kaum php-Kenntnisse und kenn mich mit dem System (noch) nicht so gut aus. Vielleicht gibt es diese Möglichkeit ja schon...
Ich danke euch schonmal im Vorraus.
Jörn
Re: csv import
Hallo und danke für die schnelle Antwort.
Das ist im Prinzip genau das was ich gesucht habe... *super*
Ich habe die Datei jetzt im plugin-Ordner abgelegt, unter Tags finde ich jetzt auch "csv". In der Beschreibung steht ja auch im groben wie es funzt, doch bei mir klappts noch nicht so.
Ich hab im Backend nen Template Namens "plan" angelegt und die "testmonat.csv" per upload in "uploads/plan/testmonat.csv" geladen.
Dann hab ich mit meinem Standardtemplate eine neue Seite angelegt und dann im Editor den Tag: {csv template="plan" file="plan/testmonat.csv"} eingefügt.
Das ist doch eigentlich alles richtig oder?
Danke schonmal im vorraus.
Jörn
Das ist im Prinzip genau das was ich gesucht habe... *super*
Ich habe die Datei jetzt im plugin-Ordner abgelegt, unter Tags finde ich jetzt auch "csv". In der Beschreibung steht ja auch im groben wie es funzt, doch bei mir klappts noch nicht so.
Ich hab im Backend nen Template Namens "plan" angelegt und die "testmonat.csv" per upload in "uploads/plan/testmonat.csv" geladen.
Dann hab ich mit meinem Standardtemplate eine neue Seite angelegt und dann im Editor den Tag: {csv template="plan" file="plan/testmonat.csv"} eingefügt.
Das ist doch eigentlich alles richtig oder?
Danke schonmal im vorraus.
Jörn
Re: csv import
Was genau funzt denn bei dir nicht?joernroeder wrote: doch bei mir klappts noch nicht so.
Hatte/habe damit auch so meine Probleme:
http://forum.cmsmadesimple.org/index.ph ... l#msg39186
Hmm, müsste konsequenterweise file="uploads/plan/testmonat.csv" heißen. Hab mal im Source geschaut - da ist kein Pfad vorgegeben.Ich hab im Backend nen Template Namens "plan" angelegt und die "testmonat.csv" per upload in "uploads/plan/testmonat.csv" geladen.
Dann hab ich mit meinem Standardtemplate eine neue Seite angelegt und dann im Editor den Tag: {csv template="plan" file="plan/testmonat.csv"} eingefügt.
Re: csv import
Danke für deine Antwort.
Ich habe jetzt noch mal nen bissl rumprobiert, aber irgendwie wills nicht funzen.
Aus der csv-Datei habe ich jetzt eine txt-Datei gemacht, bringt aber auch nix.
Der Tag lautet jetzt
und mein Template ist folgendes:
vielleicht könnt ihr damit ja etwas anfangen. Ich bin langsam am verzweifeln...
Vielen Dank schonmal.
Jörn
Ich habe jetzt noch mal nen bissl rumprobiert, aber irgendwie wills nicht funzen.
Aus der csv-Datei habe ich jetzt eine txt-Datei gemacht, bringt aber auch nix.
Der Tag lautet jetzt
Code: Select all
{csv file="uploads/plan/testmonat.txt" template="plantable" encode="utf-8"}
Code: Select all
{section loop=$csvdata name="i"}
{if $csvdata[i][0] neq "o.E."}
<table border="1" cellpadding="3" cellspacing="0" width="100%">
<caption>{$csvdata[i][0]}</caption>
<tbody>
<tr>
<td width="22%">{$csvfields[1]}</td>
<td>{$csvdata[i][1]}</td>
</tr>
<tr>
<td width="22%">{$csvfields[2]}</td>
<td>{$csvdata[i][2]}</td>
</tr>
<tr>
<td width="22%">{$csvfields[3]}</td>
<td>{$csvdata[i][3]}</td>
</tr>
<tr>
<td width="22%">{$csvfields[4]}</td>
<td>{$csvdata[i][4]}</td>
</tr>
<tr>
<td width="22%">{$csvfields[5]}</td>
<td>{$csvdata[i][5]}</td>
</tr>
</tbody>
</table>
{/if}
{/section}
Vielen Dank schonmal.
Jörn
Re: csv import
Hallo Jörn,
? Wird nix angezeigt? Oder wird nur Müll angezeigt? Oder wird zuviel angezeigt? Oder ...
Mit welchem Programm erzeugst du die csv-Datei?
Wie schon gefragt, was genau funzt nichtjoernroeder wrote: Ich habe jetzt noch mal nen bissl rumprobiert, aber irgendwie wills nicht funzen.
Aus der csv-Datei habe ich jetzt eine txt-Datei gemacht, bringt aber auch nix.

Mit welchem Programm erzeugst du die csv-Datei?
Re: csv import
Hab dazu gerade noch mal die Doku gelesen:joernroeder wrote: Ich habe die Datei jetzt im plugin-Ordner abgelegt, unter Tags finde ich jetzt auch "csv".
Das heisst für CMSms - das Plugin muss in den Pfad /lib/smarty/plugins und nicht /plugins ...Da es sich um ein normales Smartyplugin handelt ist es in den Unterordner plugins von Smarty zu
kopieren.
Re: csv import
Ich hab die function.csv.php jetzt in /lib/smarty/plugins.
Funzt nicht, auch der csv-Tag ist im admin unter erweiterungen/tags nicht mehr zu finden...
Das "fühlt" sich für mich eher nach einem Rückschritt an.
Vorher wurde auf der Seite nichts angezeigt. Ich hab dann unter den {csv} noch nen "test" geschrieben. Im quellcode wird das {csv} einfach übergangen. das
dahinter ist aber drin...
Meine csv hab ich mit exel 2004 für mac erstellt. Die txt-Datei hab ich mit dem Texteditor erstellt und in utf-8 encoded.
Ich dachte ja auch schon, dass es an der csv und exel liegt (hab ja deinen Post gelesen
) aber dem ist nicht so...
Kannst du mir nicht mal deine csv, den Code von deinem Template und deine csv.php schicken...
Bis denne
Jörn
Funzt nicht, auch der csv-Tag ist im admin unter erweiterungen/tags nicht mehr zu finden...
Das "fühlt" sich für mich eher nach einem Rückschritt an.
Vorher wurde auf der Seite nichts angezeigt. Ich hab dann unter den {csv} noch nen "test" geschrieben. Im quellcode wird das {csv} einfach übergangen. das
dahinter ist aber drin...
Meine csv hab ich mit exel 2004 für mac erstellt. Die txt-Datei hab ich mit dem Texteditor erstellt und in utf-8 encoded.
Ich dachte ja auch schon, dass es an der csv und exel liegt (hab ja deinen Post gelesen

Kannst du mir nicht mal deine csv, den Code von deinem Template und deine csv.php schicken...
Bis denne
Jörn
Re: csv import
Moin,
das mit dem Import der csv funzt jetzt!!!
Mein problem ist nun noch, dass ich ja jede zweite Zeile mit einem anderen css-style ansprechen möchte...
Ist ja eigentlich ne Kleinigkeit.
Mit funzts leider nicht.
Hab auch noch ne andere Frage.
Ist es möglich normale Seiten, keine News, auch zeitgesteuert zu zeigen?
Ich hoffe ihr könnt mir dabei auch noch schnell helfen...
Danke
Jörn
das mit dem Import der csv funzt jetzt!!!
Mein problem ist nun noch, dass ich ja jede zweite Zeile mit einem anderen css-style ansprechen möchte...
Ist ja eigentlich ne Kleinigkeit.
Mit
Code: Select all
{if ($csvdata[i] % 2) != 0}
Hab auch noch ne andere Frage.
Ist es möglich normale Seiten, keine News, auch zeitgesteuert zu zeigen?
Ich hoffe ihr könnt mir dabei auch noch schnell helfen...
Danke
Jörn
Last edited by joernroeder on Sun Nov 12, 2006 12:12 am, edited 1 time in total.
Re: csv import
Woran lag es denn?joernroeder wrote: das mit dem Import der csv funzt jetzt!!!
In einem Projekt wollte ich mal News 2spaltig ausgeben und habs mit Smarty nicht hinbekommen ... bin dann auf PHP ausgewichenMein problem ist nun noch, dass ich ja jede zweite Zeile mit einem anderen css-style ansprechen möchte...
Ist ja eigentlich ne Kleinigkeit.
Mitfunzts leider nicht.Code: Select all
{if ($csvdata[i] % 2) != 0}

Hmm, was genau hast du denn vor ? Standardmäßig, also via Admin, ist das nicht möglich ...Ist es möglich normale Seiten, keine News, auch zeitgesteuert zu zeigen?
Re: csv import
Die Daten, die per csv gepflegt werden, sind immer wöchentlich.
Nun soll man aber nicht jede Woche die neue Seite aktivieren, sondern 1 mal pro Monat alle 4 csv-Dateien hochladen. Die Seiten für die vier Wochen soll es also immer geben, sie werden also nicht jedes mal neu erstellt, sondern nur die csv überschrieben.
Beim überschreiben der csv wird dann auch festgelegt, so wie bei den News, wann die Seite aktiv ist und wann nicht.
Ich könnte dies natürlich auch mit dem Newssystem lösen, aber das Newssystem hat nach meinem Kenntnisstand keine Subnavi, man sieht also nicht in der Navi, welche Newseinträge es jetzt gibt.
Das mit dem Import lag daran, dass ich im tmp/templates kein template.tpl angelegt hatte. Mein Template hatte ich im Backend angelegt...
Ich hab jetzt mal wegen der Tabelle geschaut, aber irgendwie raff ichs nicht...
Währ schön wenn ihr mir mal helfen könntet. Hier der Code von meiner tpl-Datei.
Jede zweite Zeile soll also als style "on" haben, die andere "off" oder keinen Style.
Danke
Jörn
Nun soll man aber nicht jede Woche die neue Seite aktivieren, sondern 1 mal pro Monat alle 4 csv-Dateien hochladen. Die Seiten für die vier Wochen soll es also immer geben, sie werden also nicht jedes mal neu erstellt, sondern nur die csv überschrieben.
Beim überschreiben der csv wird dann auch festgelegt, so wie bei den News, wann die Seite aktiv ist und wann nicht.
Ich könnte dies natürlich auch mit dem Newssystem lösen, aber das Newssystem hat nach meinem Kenntnisstand keine Subnavi, man sieht also nicht in der Navi, welche Newseinträge es jetzt gibt.
Das mit dem Import lag daran, dass ich im tmp/templates kein template.tpl angelegt hatte. Mein Template hatte ich im Backend angelegt...

Ich hab jetzt mal wegen der Tabelle geschaut, aber irgendwie raff ichs nicht...
Währ schön wenn ihr mir mal helfen könntet. Hier der Code von meiner tpl-Datei.
Code: Select all
<table class="plan_table" width="100%" cellpadding="0" cellspacing="0">
<tr>
<th>{$csvfields[0]}</th>
<th>{$csvfields[1]}</th>
<th>{$csvfields[2]}</th>
<th>{$csvfields[3]}</th>
<th>{$csvfields[4]}</th>
</tr>
<tr>
{section loop=$csvdata name="i"}
{if $csvdata[i][1] neq "a.A"}
{if ($csvdata[i] % 2) != 0}
<tr class="on">
<td>{$csvdata[i][0]}</td>
<td>{$csvdata[i][1]}</td>
<td>{$csvdata[i][2]}</td>
<td>{$csvdata[i][3]}</td>
<td>{$csvdata[i][4]}</td>
</tr>
{/if}
{/if}
{/section}
</table>
Danke
Jörn
Last edited by joernroeder on Mon Nov 13, 2006 4:11 pm, edited 1 time in total.
Re: csv import
Hmm, mit dem News-Modul ist es wahrscheinlich am einfachsten - du könntest dir damit behelfen, dass du dir für die CSV-Seiten eine eigene News-Kategorie erstellst und dessen Summary-Template so umbaust/umformatierst, dass es wie eine Subnavi aussieht ...joernroeder wrote: Ich könnte dies natürlich auch mit dem Newssystem lösen, aber das Newssystem hat nach meinem Kenntnisstand keine Subnavi, man sieht also nicht in der Navi, welche Newseinträge es jetzt gibt.
Hier eine vom Autor des Plugins empfohlene Möglichkeit:Ich hab jetzt mal wegen der Tabelle geschaut, aber irgendwie raff ichs nicht...
Code: Select all
<table class="plan_table" width="100%" cellpadding="0" cellspacing="0">
<tr>
<th>{$csvfields[0]}</th>
<th>{$csvfields[1]}</th>
<th>{$csvfields[2]}</th>
<th>{$csvfields[3]}</th>
<th>{$csvfields[4]}</th>
</tr>
<tr>
{section loop=$csvdata name="i"}
{if $csvdata[i][1] neq "a.A"}
<tr bgcolor="{cycle values="#eeeeee,#d0d0d0"}">
<td>{$csvdata[i][0]}</td>
<td>{$csvdata[i][1]}</td>
<td>{$csvdata[i][2]}</td>
<td>{$csvdata[i][3]}</td>
<td>{$csvdata[i][4]}</td>
</tr>
{/if}
{/section}
</table>
http://smarty.php.net/manual/de/languag ... .cycle.php
Last edited by cyberman on Tue Nov 14, 2006 8:26 am, edited 1 time in total.
Re: csv import
Schau mal hiercyberman wrote: du könntest dir damit behelfen, dass du dir für die CSV-Seiten eine eigene News-Kategorie erstellst und dessen Summary-Template so umbaust/umformatierst, dass es wie eine Subnavi aussieht ...
http://cmsms.wts-lab.net/index.php?page=news
Da hat ein User einen Patch für das Newsmodul erstellt, mit dem sich eine navigationsähnliche Struktur erstellen lässt.
Re: csv import
Moin,
ich hab mir jetzt schon nen Template gebaut, in dem die summaryseite ne sub-navi aus den titeln der Newsbeiträge hat. War nen bissl CSS, das is ja kein ding.
Das News-Patch ist zwar nice, aber für meine Bedürfnisse reichts mir so wie ichs jetzt hab. Ich werds aber bestimmt mal wo einbauen...
Danke
Jörn
ich hab mir jetzt schon nen Template gebaut, in dem die summaryseite ne sub-navi aus den titeln der Newsbeiträge hat. War nen bissl CSS, das is ja kein ding.
Das News-Patch ist zwar nice, aber für meine Bedürfnisse reichts mir so wie ichs jetzt hab. Ich werds aber bestimmt mal wo einbauen...
Danke
Jörn