Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
#1 03. Juni 2014 14:53
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
ListIt2 als Kalender
Hmmm - ich sinniere gerade über eine Möglichkeit, auf den CGcalendar zu verzichten und lieber das neuerdings lieb gewonnene Listit2 dafür einzusetzen.
Das ganze soll so ziemlich genauso funktionieren wie auf dieser Beispielseite:
link entfernt
Meine Sorge ist noch, wie ich die Monatsvorschau automatisiere. Ich dacht zunächst an Kategorien - aber dann würden ja immer alle zwölf Monate angezeigt werden. Es sei denn man könnte sowas einrichten wie "Zeige Kategorie nur, wenn Einträge vorhanden".
Bessere Möglichkeit wäre wohl über die Zeitsteuerung. Dass in der "Monatsnavigation" im Template eben nur der Monat ausgegeben würde, im Hauptemplate dann Tag und Beschreibung.
Könnte das hinhauen oder überschätze ich die Zeitsteuerung?
Problem könnte sein, dass es keine Uhrzeiten gibt und dass auch Termine, die nur an einem Tag stattfinden, dann irgendwie zeitgesteuert werden müssten.
Beitrag geändert von antibart (07. Juli 2014 16:49)
Offline
#2 03. Juni 2014 18:45
- Foaly*
- Gast
Re: ListIt2 als Kalender
Hi antibart,
Es sei denn man könnte sowas einrichten wie "Zeige Kategorie nur, wenn Einträge vorhanden".
Absolut möglich.
[== Smarty ==]
{foreach from=$categories item=category}
{if $category->items|count > 0}
{/if}
{/foreach}
Grüße
Beitrag geändert von Foaly* (03. Juni 2014 18:51)
#3 04. Juni 2014 08:28
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Jou - so dachte ich mir das. Dankeschön
Ich bin allerdings schon wieder ein bisschen weg von der Idee mit ListIt2. Wenn zb ein Theaterstück über fünf Tage nacheinander aufgeführt wird, dann müsst ich den Termin trotzdem fünf mal eingeben, da durch die Zeitsteuerung bei Listit2 ja nur die Dauer der Anzeige gesteuert wird, nicht die Häufigkeit.
Ich brauche es ja so:
01.06. Die Ratten
02.06. Die Ratten
03.06. Die Ratten
nicht so
01.06 bis 03.06 Die Ratten
Also doch eher der Calendar
Beitrag geändert von antibart (04. Juni 2014 08:30)
Offline
#4 06. Juni 2014 08:35
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Ein bisschen peinlich ist das ja schon: Nun bin ich doch zurück zu Listit2, womit mein anderer Thread wieder hinfällig wird. Sorry.
Alles gut. Die Termine müssen jetzt halt kopiert werden, wenn sie sich über mehrer Tage hintereinander wiederholen. Ein bisschen mehr Arbeit beim Pflegen, dafür klappt alles andere bestens.
Ich habe nur noch einen winzigen Schönheitsfehler:
Links im Haupttemplate als sozusagen Untermenpunkte wird das Kategoriemenü (Monate) dargestellt. Wie von Foaly* vorgeschlagen nur jene Kategorien, in denen sich Termine befinden. Danke nochmal. Auch eine currentpage-Klasse für die aktiven Kategorielinks konnte realisiert werden. Die Terminliste erscheint im Content. Alles bestens.
Einziger Wermutstropfen: Der Spielplan ist gleichzeitig die Startseite und beim Erstaufruf werden erstmal alle Termine aufgelistet, nicht nur die des ersten Monats. Die Kategorienavigation nach Monaten funktioniert also aktuell nur als nachträglicher Filter.
Wie kriege ich es hin, dass auch schon beim Erstaufruf nur bzw bereits der aktuellste Monat ausgegeben wird? Über den Category-Parameter geht es nicht, da die Kategorien ja dynamisch sind.
Beitrag geändert von antibart (06. Juni 2014 08:59)
Offline
#5 06. Juni 2014 09:02
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: ListIt2 als Kalender
Wie kriege ich es hin, dass auch schon beim Erstaufruf nur der aktuellste Monat ausgegeben wird? Über den Category-Parameter geht es nicht, da die Kategorien ja dynamisch sind.
Genauso wie hier
{cms_module module="CGCalendar" display="list" listtemplate="month_nav" month={'n'|date} year={'Y'|date}}
Nimm also einen dynamischen Wert als Category-Parameter. Je nachdem wie Du Deine Kategorien benannt hast:
{ListIt2 ... category={'n'|date}} <- aktueller Monat als Zahl
{ListIt2 ... category={'F'|date}} <- aktueller Monat als Name
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#6 06. Juni 2014 09:24
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Dann war es ja doch nicht ganz umsonst
Klingt einleuchtend. Mein Kategorienfeld heißt Monat (bzw alias monat).
{ListIt2Kalender orderby='category_position|ASC, custom_datum' category={'F'|monat}}
Leider gibt die CMS-Fehlerkonsole folgendes aus:
unknown modifier "monat"
ED:
Ääääh - sorry. Muss natürllich date bleiben. Jemineh. Seite ist trotzdem leer. Auch umbennen des Alias in Großschreibung klappts noch nicht. Trotzdem ist klar, was du meinst. Es wird im Parameter einfach der aktuelle Monat ermittelt und die Kategorie heißt eben genauso.
Beitrag geändert von antibart (06. Juni 2014 09:34)
Offline
#7 06. Juni 2014 09:35
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: ListIt2 als Kalender
Lach
Ich dachte Du hast für jeden Monat eine Kategorie angelegt (Januar, Februar, März ...)
Wie steuerst Du denn die einzelnen Monate an?
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#8 06. Juni 2014 09:44
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Jaja völlig richtig. Januar, Februar bzw alias januar, februar usw:)
Es wird noch nichts ausgegeben - aber das muss nichts heißen. Ist Monatsname ausgeschrieben nicht B statt F?
B klappt aber auch nicht. Das ist aber glaube ich nur ein Flüchtigkeitsfehler. Ich weiß, was du meinst.
Wie steuerst Du denn die einzelnen Monate an?
Wie meinen? Für jeden Termin muss der User eine Kategorie (Monat) wählen. Hat eine Kategorie einen Termin zugewiesen bekommen, erscheint diese Kategorie auch im Kategorien-Menü.
Beitrag geändert von antibart (06. Juni 2014 09:57)
Offline
#9 06. Juni 2014 09:51
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
So klappt es:
{Listit2 ...category={$smarty.now|date_format:"%B"}
Ist das unelegant?
Perfekt wäre natürlich, wenn der aktuelle Monat auch beim Erstaufruf im Kategoriemenü schon die currentpage-klasse hätte. Dafür müsste die Kategorie-URL angesteuert werden.
Beitrag geändert von antibart (06. Juni 2014 10:03)
Offline
#10 06. Juni 2014 10:03
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: ListIt2 als Kalender
Was genau gibt Dir denn einfach nur {'F'|date} aus?
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#11 06. Juni 2014 10:04
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Gar nichts. Also keine Termine.
Beitrag geändert von antibart (06. Juni 2014 10:18)
Offline
#12 06. Juni 2014 10:18
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: ListIt2 als Kalender
keine Termine
Ich meinte {'F'|date} einfach so im Template um zu gucken was da überhaupt an ListIt übergeben wird.
Bei mir ist es "June". Hatte nicht bedacht, dass date() die setlocale() einstellungen offenbar nicht beachtet.
Kein Wunder, dass dann keine Termine gefunden werden.
Dann bleib beim Timestamp und strftime (also das was Du da jetzt hast).
Perfekt wäre natürlich, wenn der aktuelle Monat auch beim Erstaufruf im Kategoriemenü schon die currentpage-klasse hätte. Dafür müsste die Kategorie-URL angesteuert werden.
Ich bin ja der Meinung, alle Module sollten ihre Modul-Instanz, ihre ID und alle ihre Parameter generell auch an Smarty übergeben. Dann wären viele Sachen sehr viel einfacher.
Um die Kategorie aus der URL auszulesen, brauchst Du die Modul-ID:
{$arr=','|explode:$smarty.get.mact}
{$id=$arr[1]}
Dann packst Du ID und Parameter-Name zusammen:
{$param=$id|cat:'category'}
Und dann holst Du dir die Kategorie aus den Get-Parametern
{$current_category=$smarty.get.$param|escape:'htmlall'}
PS: klappt nicht bei pretty URLs
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#13 06. Juni 2014 10:21
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Mist - habe pretty url
Offline
#14 06. Juni 2014 10:23
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: ListIt2 als Kalender
Dann schau mit {get_template_vars} was Du so alles im Template zur Verfügung hast. Vielleicht hat ListIt seine Parameter ja doch schon im Template.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#15 06. Juni 2014 10:51
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Hmm - die template_vars helfen mir jetzt noch nicht so recht.
Um die klasse currentpage zuzuweisen habe mich des kategorie-alias beholfen:
In der Zusammenfassung:
{assign var='currentnews' value=$category->alias}
Im Category-Template:
{if $currentnews eq $category->alias}
<li>
<a class="currentpage" href="{$category->url}">
....
Könnten mir category->alias und category->url hierbei nicht auch irgendwie helfen?
Ich denke auch gerade an diese klasse "first/last_item" oder wie die heißt.
Beitrag geändert von antibart (06. Juni 2014 11:17)
Offline
#16 07. Juli 2014 16:58
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Ich muss das nochmal ausgraben, denn mittlerweile ist etwas aufgetaucht, was mich irritiert.
Das Kategoriemenü (=Monatsnamen) wurde (mMn) so konfiguriert, dass nur die Monate ausgegeben werden, für die Termine eingetragen wurden.
[== smarty ==]
{if $category->items|count > 0}
Für die Zukunft klappt das auch. Nicht aber für die Vergangenheit. Obwohl alle vergangenen Termin über die Zeitsteuerung entfernt wurden und keine Einträge für ZB Juni mehr existieren, wird Juni in der Kategorieliste noch angezeigt.
Kann es sein, dass die Zeitsteuerung die Einträge nicht "richtig" löscht.
Beitrag geändert von antibart (07. Juli 2014 17:02)
Offline
#17 09. Juli 2014 09:25
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Entgegen meiner Gewohnheit und Geduld pushe ich die Frage mal, da ich sicher bin, dass jemand eine Antwort weiß
Wie kommt es, dass trotz der Anweisung "Wenn Einträge zur Kategorie vorhanden" Kategorien angezeigt werden, nachdem die Einträge abgelaufen sind (und auch nicht mehr in der Modulverwaltung erscheinen)?
Zur Sicherheit poste ich mal das Template:
<ul>
{foreach from=$categories item=category}
{if $category->items|count > 0}
{if $currentnews eq $category->alias}
<li class="category-{$category->alias}">
<a class="currentpage" href="{$category->url}" title="{$category->name} {$smarty.now|date_format:"%Y"}">{$category->name} {$smarty.now|date_format:"%Y"}</a>
{else}
<li class="category-{$category->alias}">
<a href="{$category->url}" title="{$category->name} {$smarty.now|date_format:"%Y"}">{$category->name} {$smarty.now|date_format:"%Y"}</a>
{/if}
</li>
{/if}
{/foreach}
</ul>
$currentnews dient nur dazu, aktive Kategorielinks einzufärben. Im Zusammenfassungstemplate steht der assign: {assign var='currentnews' value=$category->alias}
Die Einträge werden so aufgerufen:
{ListIt2Instanzname orderby='category_position|ASC, custom_datum' category={$smarty.now|date_format:"%B"}}
Der letzte Parameter soll dafür sorgen, dass immer zuerst der aktuelle Monat (Kategorie) gezeigt wird.
Der Kategoriebaum so:
{ListIt2Instanzname action='category'}
Beitrag geändert von antibart (09. Juli 2014 10:39)
Offline
#18 15. Juli 2014 10:41
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Buäh - niemand eine Idee?
Beitrag geändert von antibart (15. Juli 2014 10:41)
Offline
#19 15. Juli 2014 11:31
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: ListIt2 als Kalender
Hast Du an der Stelle mal im Template mit {$category->items|print_r} bzw. {$categories|print_r} geschaut, was da in der Variable drin steht?
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#20 15. Juli 2014 17:24
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
HAllo NaN,
erstmal danke für die lang ersehnte Antwort
Ich habe die Tags mal zunächst ins Summarytemplate gesteckt.
Die Ausgabe auf der Seite mit keinen Terminen: 1 1
Die AUsgabe auf der Seite mit Terminen: Array ( [0] => 40 [1] => 41 ) 1 1
Im Category-Template:
{$category|print_r} gibt nur eine 1 aus.
{$categories|print_r} ne ganz Menge. Hier januar: Ein Monat, für den noch nie Termine gab und der auch ganz richtig nicht angezeigt wird
1 Array ( [0] => ListIt2Category Object ( [category_id] => 1 [alias] => januar [name] => Januar [description] => [active] => 1 [position] => 1 [parent_id] => -1 [hierarchy] => 00001 [id_hierarchy] => 1 [hierarchy_path] => januar [create_date] => 2014-06-05 16:41:47 [modified_date] => 2014-06-05 16:41:47 [key1] => [key2] => [key3] => [items] => Array ( ) [children] => Array ( ) [depth] => 1
Hier jetzt für juni - der Problemmonat. Für den gab es mal Termine, die aber abgelaufen sind und gelöscht sind. Der Monat wird dennoch angezeigt:
ListIt2Category Object ( [category_id] => 6 [alias] => juni [name] => Juni [description] => [active] => 1 [position] => 6 [parent_id] => -1 [hierarchy] => 00006 [id_hierarchy] => 6 [hierarchy_path] => juni [create_date] => 2014-06-05 16:42:35 [modified_date] => 2014-06-06 10:54:46 [key1] => [key2] => [key3] => [items] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) [children] => Array ( ) [depth] => 1 [prevdepth] => 1 [url] => http://alt.domain.com/neu/spielplan/juni/6/60.html [index] => 5 [menutext] => Juni [parent] => [current] => ) [6] =>
jetzt August. Ein Monat mit Terminen in der Zukunft - der richtigerweise aktuell ausgegeben wird:
ListIt2Category Object ( [category_id] => 8 [alias] => august [name] => August [description] => [active] => 1 [position] => 8 [parent_id] => -1 [hierarchy] => 00008 [id_hierarchy] => 8 [hierarchy_path] => august [create_date] => 2014-06-05 16:42:59 [modified_date] => 2014-06-05 16:42:59 [key1] => [key2] => [key3] => [items] => Array ( [0] => 40 [1] => 41 ) [children] => Array ( ) [depth] => 1 [prevdepth] => 1 [url] => http://alt.domain.com/neu/spielplan/august/8/60.html [index] => 7 [menutext] => August [parent] => [current] => ) [8] =>
Kann ich nicht so ganz viel mit anfangen.
Beitrag geändert von antibart (15. Juli 2014 17:38)
Offline
#21 16. Juli 2014 09:45
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: ListIt2 als Kalender
Hast Du mal den CMS Zwischenspeicher gelöscht?
Möglicherweise wird da einfach zu viel gecached, sodass die Variablen für die gelöschten Termine trotzallem noch im PHP-Code im Cache stehen.
Wenn das wirklich ein Cache-Problem sein sollte, welches immer wieder auftritt, kannst Du ja mal schauen, ob man mit Hilfe der Ereignisverwaltung den Cache nach dem Löschen von Terminen selbst löschen kann. Einen UDT dazu gibt es z.B. hier.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#22 22. Juli 2014 09:56
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Klar hab ich den gelöscht. Hilft leider nicht.
Ich könnte noch über PhpMyadmin in die DB gucken, ob abgelaufene Termine zwar unsichtbar werden, aber dennoch erhalten bleiben. Allerdings wüsste ich dann noch nicht, wie ich es beheben könnte.
Beitrag geändert von antibart (22. Juli 2014 11:19)
Offline
#23 22. Juli 2014 11:18
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Ich habe mal in die DB geschaut. Dort sind die abgelaufenen Termin tatsächlich noch erhalten.
Das ist natürlich ungünstig. Nicht nur für meine Kategoriesteuerung - auf lange Sicht pumpt das auch die DB auf, wenn Einträge nur aus dem Back- und Frontend verschwinden, aber in der DB bleiben.
Würde "Allow system to scan field definitions automatically:" Abhilfe schaffen? Ich habe das wegen der Warnung bisher dekativiert gelassen.
Beitrag geändert von antibart (22. Juli 2014 15:22)
Offline
#24 24. Juli 2014 17:49
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 880
Re: ListIt2 als Kalender
Sorry fürs pushen, aber ich bin ja so nahe dran und komme doch nicht weiter.
Wie bringe ich Listit2 dazu, abgelaufene Einträge wirklich zu löschen. Also nicht nur aus dem Modul, sondern auch aus der DB?
Die Anweisung
{if $category->items|count > 0}
bringt mir ja nichts, wenn sie auch auf Daten reagiert, die es "offiziell" nicht mehr gibt.
Offline
#25 24. Juli 2014 19:03
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: ListIt2 als Kalender
Schau mal in die Ereignisverwaltung.
Vielleicht kann man den Eintrag via UDT löschen, wenn er abläuft.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline