Page 1 of 1

csv import

Posted: Mon Nov 06, 2006 4:18 pm
by joernroeder
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 

Re: csv import

Posted: Mon Nov 06, 2006 4:23 pm
by cyberman
Hallo Jörn,

evtl. könnte dir das hier weiterhelfen ...

Re: csv import

Posted: Mon Nov 06, 2006 10:08 pm
by joernroeder
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

Re: csv import

Posted: Tue Nov 07, 2006 7:38 am
by cyberman
joernroeder wrote: doch bei mir klappts noch nicht so.
Was genau funzt denn bei dir nicht?

Hatte/habe damit auch so meine Probleme:

http://forum.cmsmadesimple.org/index.ph ... l#msg39186
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.
Hmm, müsste konsequenterweise file="uploads/plan/testmonat.csv" heißen. Hab mal im Source geschaut - da ist kein Pfad vorgegeben.

Re: csv import

Posted: Fri Nov 10, 2006 6:54 am
by joernroeder
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

Code: Select all

{csv file="uploads/plan/testmonat.txt" template="plantable" encode="utf-8"} 
und mein Template ist folgendes:

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}
vielleicht könnt ihr damit ja etwas anfangen. Ich bin langsam am verzweifeln...
Vielen Dank schonmal.

Jörn

Re: csv import

Posted: Fri Nov 10, 2006 7:44 am
by cyberman
Hallo Jörn,
joernroeder 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.
Wie schon gefragt, was genau funzt nicht  :)? Wird nix angezeigt? Oder wird nur Müll angezeigt? Oder wird zuviel angezeigt? Oder ...

Mit welchem Programm erzeugst du die csv-Datei?

Re: csv import

Posted: Fri Nov 10, 2006 7:58 am
by cyberman
joernroeder wrote: Ich habe die Datei jetzt im plugin-Ordner abgelegt, unter Tags finde ich jetzt auch "csv".
Hab dazu gerade noch mal die Doku gelesen:
Da es sich um ein normales Smartyplugin handelt ist es in den Unterordner plugins von Smarty zu
kopieren.
Das heisst für CMSms - das Plugin muss in den Pfad /lib/smarty/plugins und nicht /plugins ...

Re: csv import

Posted: Fri Nov 10, 2006 6:56 pm
by joernroeder
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

Re: csv import

Posted: Sat Nov 11, 2006 11:52 pm
by joernroeder
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

Code: Select all

{if ($csvdata[i] % 2) != 0}
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

Re: csv import

Posted: Mon Nov 13, 2006 9:37 am
by cyberman
joernroeder wrote: das mit dem Import der csv funzt jetzt!!!
Woran lag es denn?
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}
funzts leider nicht.
In einem Projekt wollte ich mal News 2spaltig ausgeben und habs mit Smarty nicht hinbekommen ... bin dann auf PHP ausgewichen  :).
Ist es möglich normale Seiten, keine News, auch zeitgesteuert zu zeigen?
Hmm, was genau hast du denn vor ? Standardmäßig, also via Admin, ist das nicht möglich ...

Re: csv import

Posted: Mon Nov 13, 2006 3:24 pm
by joernroeder
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.

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>
Jede zweite Zeile soll also als style "on" haben, die andere "off" oder keinen Style.

Danke
Jörn

Re: csv import

Posted: Tue Nov 14, 2006 8:24 am
by cyberman
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.
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 ...
Ich hab jetzt mal wegen der Tabelle geschaut, aber irgendwie raff ichs nicht...
Hier eine vom Autor des Plugins empfohlene Möglichkeit:

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>
{cycle} ist ein standardmäßig mit Smarty mitgeliefertes Plugin, siehe auch

http://smarty.php.net/manual/de/languag ... .cycle.php

Re: csv import

Posted: Wed Nov 15, 2006 7:03 am
by cyberman
cyberman 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 ...
Schau mal hier

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

Posted: Wed Nov 15, 2006 12:14 pm
by joernroeder
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