Page 1 of 1
{kalender}wie auf felder zugreifen?
Posted: Mon Apr 28, 2008 2:12 pm
by nicmare
Hiho,
Habe nen benutzerdifiniertes Feld hinzugefügt bei Calendar / Kalender. Ein Uploadfeld. Wenn ich nen Event verfasse kann ich auch erfolgreich das Bild hochladen. Aber wie kann ich im Template das Bild ausgeben lassen?? Das Feld nennt sich banner im backend. Und demnach habe ich im Template {$event.event_banner} probiert. Aber da passiert nichts. Und die Hilfe von dem Modul ist leider sehr unpräzise.
Gruß
Re: {kalender}wie auf felder zugreifen?
Posted: Mon Apr 28, 2008 9:25 pm
by cyberman
Ist $event.event_banner tatsächlich in Smarty vorhanden?
Füg mal {$event|print_r} in das Calendar-Template ein ...
Re: {kalender}wie auf felder zugreifen?
Posted: Tue Apr 29, 2008 2:22 pm
by nicmare
hmm da zeigt er mir von einem mir eventdaten an von einem bestimmten event.
aber die sache ist dass in der hilfe steht dass man benutzerdefinierte felder so ausgeben kann:
Es ist weiterhin möglich, benutzerdefinierte Felder zu erstellen, die in der Modul-Administration über den Reiter 'Felder' jedem Ereignis zugeordnet werden können. Entweder ein oder mehrere Felder definieren die Werte des Feldes für jedes Ereignis. Diese Felder können dann über den Reiter 'Ereignisse' gefüllt werden. Die Werte dieser Felder können über den Syntax event.feld.feldname in den Templates ausgegeben werden. Ein Tipp - geben Sie {debug} in Ihrem Template ein, um alle Daten zu sehen, die an das Template übergeben werden.
aber wen ich $event.feld.banner versuche, passiert nichts!!
Re: {kalender}wie auf felder zugreifen?
Posted: Tue Apr 29, 2008 3:16 pm
by NaN
nicmare wrote:
hmm da zeigt er mir von einem mir eventdaten an von einem bestimmten event.
Schau mal genau hin.
Er dürfte Dir da etwas mehr als nur Event-Daten anzeigen, sondern auch die Namen der Variablen, mit denen man auf diese Daten zugreifen kann.
Auch mit {debug} erhält man eine Menge Infos.
Wenn man genau hinschaut, erkennt man, dass da ein Fehler in der Doku ist.
Da hat jemand die Namen der Variablen übersetzt.
event.feld.feldname sollte eigentlich
event.fields.feldname heißen.
Je nachdem in welchem Template Du das Feld anzeigen lassen willst, heißt die Smarty-Variable
{$event.field.feldname} (Kalender- und Listen-Template) bzw.
{events.fields.feldname} (Template für bevorstehende Termine/Ereignisse und Termin/Ereignis-Template).
Re: {kalender}wie auf felder zugreifen?
Posted: Tue Apr 29, 2008 4:17 pm
by nicmare
ja, hatte ich schon beinahe vermutet. daher habe ich die kombinationen einfach schon so ausprobiert aber es hat nicht funktioniert.
zum testen habe ich den kalender mal so eingebunden: {cms_module module="Calendar" display="upcominglist" dbupcominglisttemplate="banner"}
es gibt also das template banner was auch problemlos geladen wird. hier wollte ich nur die daten anziegen lassen die vom upload feld hochgeladen wurden. das feld heißt auch "banner". will es nämlich gleich mit ner kleinen bannerfunktin ausstatten. aber wieso werden die hochgeladenen bilder nicht angezeigt? habe das ungute gefühl dass die hochgeladenen daten garnicht mit dem event verknüpft sind sondern lediglich die sachen hochladen und das wars. kann das sein?
Re: {kalender}wie auf felder zugreifen?
Posted: Tue Apr 29, 2008 6:15 pm
by NaN
also die smarty-variable hat lediglich den namen des bildes.
du müsstest im template mit das Bild anzeigen können.
Re: {kalender}wie auf felder zugreifen?
Posted: Tue Apr 29, 2008 7:04 pm
by nicmare
achso. verstehe! gut. wenn ich das probiere, komme ich aber auch nicht weiter. das sehe ich im geparsten quelltext:
habt ihr die möglichkeit das mal modulmäßig auszuprobieren? das geht glaub ich nicht.
und ich habe mal manuell in der datenbank geschaut und finde da nirgends nen feld bzw nen eintrag wo der dateiname zu entnehmen ist. oder guck ich nich richtig?
Re: {kalender}wie auf felder zugreifen?
Posted: Tue Apr 29, 2008 7:40 pm
by NaN
Also ich habe es in allen Standard-Templates getestet. So wie ich oben beschrieben habe.
Hast Du es auch mal mit {$events.fields.banner} probiert?
Du musst Dir mal in den Templates die {foreach}-Schleifen anschauen.
Wenn dort steht {foreach from=$events... item=event}, dann heißt das Extra-Feld im Template innerhalb dieser Schleife logischerweise {$event.fields.banner}.
Wenn keine {foreach}-Schleife da ist, dann gibt es, soweit ich das jetzt sehen konnte, immer noch de Variable {$events}.
Poste doch mal Dein Banner-Template. Eventuell ist ja auch dort der Wurm drin.
Re: {kalender}wie auf felder zugreifen?
Posted: Tue Apr 29, 2008 8:39 pm
by nicmare
handhabe das fürs erste ganz simpel:
Code: Select all
{foreach from=$events key=key item=event}
<a href="{$event.url}" title="{$event.event_title}"><img src="uploads/images/events/{$event.fields.banner}" /></a>
{/foreach}
auf diese weise werden mir alle bevorstehenden (upcoming) events gelistet. besser gesagt nur die links () aber eben ohne banner variable
Re: {kalender}wie auf felder zugreifen?
Posted: Wed Apr 30, 2008 2:26 am
by NaN
also bei mir funktionierts.
habs gerade mit deinem template ausprobiert.
allerdings wird das bild bei mir in den ordner uploads geladen.
wenn ich den event bearbeite, wird beim extra feld auch der name des bildes angezeigt.
Re: {kalender}wie auf felder zugreifen?
Posted: Wed Apr 30, 2008 8:12 am
by nicmare
hmm komisch. habe mal auch den standardupload ordner auf /upload/ eingestellt und nen neues event erstellt und da ein testbild hochgeladen. bild liegt in /upload/ aber wenn ich den event jetzt bearbeite wird hier kein bild angezeigt. also das durchsuchen feld ist leer. das scheint bei dir nicht zu sein?! welche version hast du von kalender? ich habe 0.7.13
edit: sehe gerade dass es schon wieder nen update gibt: 0.7.14. gleich mal testen
edit2: hat sich diesbezüglich nichts getan
NaN, hast du das modul auch so eingebunden? {cms_module module="Calendar" display="upcominglist" dbupcominglisttemplate="banner"}
Re: {kalender}wie auf felder zugreifen?
Posted: Wed Apr 30, 2008 10:27 am
by NaN
nicmare wrote:
NaN, hast du das modul auch so eingebunden? {cms_module module="Calendar" display="upcominglist" dbupcominglisttemplate="banner"}
Yepp.
Also ich habe ein Extra-Feld vom Typ Fileupload erstellt.
Anschließend habe ich einen Event irgendwo in der Zukunft angelegt und mit Hilfe des Extra-Feldes irgendein Bild hochgeladen.
Danach habe ich ein neues Kalender-Template erstellt und Dein Template hinein kopiert (und den Pfad zum Bild noch auf "uploads" geändert).
Dann habe ich eine neue Seite angelegt und den Kalender mit genau diesem Aufruf anzeigen lassen.
Alles was er mir anzeigt, ist ein Bild. Nämlich genau das, was ich hochgeladen habe.
Beim Bearbeiten des Events ist das Extra-Feld bei mir auch leer (man kann Input-Felder vom Typ File nicht mit einem Wert vorbelegen). Aber davor steht, wenn ich den Event jetzt bearbeite, der Name des Bildes.
Lasse ich das Extra-Feld beim Speichern leer, wird daran auch nichts geändert.
Gebe ich dort etwas anderes ein, wird die vorherige Option überschrieben.
Es liegt also nicht an Deinem Template oder einer Variable.
Ich hatte noch keine Zeit, mir den Quellcode des Moduls mal anzuschauen. Möglicherweise liegt es an der Verknüpfung zwischen Extra-Feld und Event. Hast Du zuerst den Event angelegt und dann das Feld oder umgekehrt? Möglicherweise muss man zuerst das Feld und dann den Event anlegen. So hab ich es gemacht.
Re: {kalender}wie auf felder zugreifen?
Posted: Wed Apr 30, 2008 12:13 pm
by nicmare
jo. habe zum testen auch mal nen komplett neues event angelegt aber auch ohne erfolg. werde jetzt noch ein wenig rumprobieren! auf jeden fall vielen dank für deine mühe - echt! welche version von kalender haste?
Re: {kalender}wie auf felder zugreifen?
Posted: Wed Apr 30, 2008 1:20 pm
by NaN
Benutze auch die Version 0.7.14
Re: {kalender}wie auf felder zugreifen?
Posted: Fri May 02, 2008 1:50 pm
by nicmare
so. zuerst die gute nachricht! Es geht! Und zwar habe ich noch bei einem anderen Projekt CMSMS und habe dort komplett neu Calendar installiert und ein Testevent mit Banner erstellt. Funzt bestens. Jetzt muss ich nur noch vergleichen wieso das bei dem bestehenden Modul nicht läuft. Zur not komplett deinstallieren und neu installieren
edit: habe schonmal festgestellt das in der db die Tabelle: cms_module_calendar_event_field_values komplett fehlt. lol
edit2: habe also die table von der einen db exportiert und das problemprojekt importiert. und nun gehts! ich werd kirre!!
geil - da fällt mir echt nen stein vom herzen. denn das template geht somit auch

. großen dank nochmal an euch!