Fullcalendar: alle Termine eines Tages anzeigen

am 18.08.2014 - 20:37 Uhr in
Hallo,
wenn man den Fullcalendar in einem Block darstallt, dann werden dort gegebenenfalls mehrere Termine für einen Tag angezeigt. Wenn man auf einen Termin klickt, dann wird dieser EINE Termin im Node dargestellt.
Ich möchte aber gerne erreichen, dass ALLE Termine des im Block angeklickten Tages im Hauptfenster angezeigt werden.
Seit Tagen versuche ich nun schon, dieses Problem zu lösen und finde auch im Internet keinen Lösungsansatz.
Offenbar geht das nicht.
Oder weiß vielleicht jemand von Euch, wie man das machen könnte?
Gruß
Rainer
- Anmelden oder Registrieren um Kommentare zu schreiben
Na ja, grundsätzlich verweist
am 19.08.2014 - 08:14 Uhr
Na ja, grundsätzlich verweist der Kalendereintrag auf den Ursprungsnode, der das Date-API feld enthält.
Wenn Du demnach alle nodes anzeigen lassen möchtest, die den gleichen Tageswert im Date-API Feld haben, so geht das entweder über views oder per Selbstbau.
Dann musst Du noch ein js bauen das wiederum aus dem Datumsfeld den Wert entnimmt und den in die entsprechende URL setzt, das Ganze womöglich über einen layer.
Oder Du setzt einen link hinein der auf die page mit Tagesansicht des Kalenders verweist. Da dort aber keine Inhalte angezeig werden musst Du das wohl mit der ersten Methodik reissen.
Hoffe darauf, dass Du das Ergebnis präsentierst. Kann interessant sein.
BG
Marc
Hallo Marc, danke für deine
am 19.08.2014 - 09:03 Uhr
Hallo Marc,
danke für deine Antwort.
Leider beherrsche ich JS nicht. Ich hatte gehofft, dass es eine einfache Lösung gibt.
Gruß
Rainer
ist mir keine bekannt.
am 19.08.2014 - 09:14 Uhr
ist mir keine bekannt.
evtl. versuchst du einfach
am 20.08.2014 - 04:58 Uhr
evtl. versuchst du einfach einen eigenen view zu erstellen, der auf den tag verlinkt
ich glaube, dass es nicht um
am 20.08.2014 - 08:20 Uhr
ich glaube, dass es nicht um die Problematik geht, wie er den gewünschten Inhalt mittels views erstellt, sondern darum wie er dorthin verlinken kann!?
Ich habe mal geguckt:
http://drupalcontrib.org/api/drupal/contributions!fullcalendar!fullcalendar.api.php/function/hook_fullcalendar_options_submit/7
bzw.
http://drupalcontrib.org/api/drupal/contributions!fullcalendar!fullcalendar.api.php/function/hook_fullcalendar_process_dates_alter/7 müssten dafür zuständig sein.
Einer der 2 hooks müsste zulassen, dass Du den link auf das gewünschte Ziel hin verändern kannst.
BG
Marc
also wenn ich den
am 20.08.2014 - 12:10 Uhr
also wenn ich den fullcalender im block anzeige ist dort immer der tag direkt mit dem tag verlinkt...
@caw> evtl. versuchst du
am 20.08.2014 - 15:06 Uhr
@caw
> evtl. versuchst du einfach einen eigenen view zu erstellen, der auf den tag verlinkt
Im Beitrag:
http://www.drupalcenter.de/node/44504
wurde eine Möglichkeit beschrieben, wie man einen beliebigen View aus dem Block heraus ausführen kann.
Es ist damit kein Problem, alle Termine aufzulisten. Man kann im View natürlich auch filtern, z.B. nur einen Inhaltstyp zulassen oder nur Termine ab heute anzeigen. Was ich bräuchte, wäre ein View, der alle Termine ab dem im Block angeklickten Tag auflistet. Im Filter des Views braucht man also eine Variable oder sonstwas, die den angeklickten Tag enthält. Sie muss dann vom View als Filterkriterium akzeptiert werden.
Eine solche Datenbankabfrage muss bereits existieren, denn im Block werden damit offenbar alle Termine eines Tages separat angezeigt. Nur eben nicht im Node des Hauptfenster.
@Marc
sind Deine Funktionen dazu geeignet, eine solche Variable bzw. einen im View verwendbaren Filterwert zu erzeugen? Ich verstehe als Anfänger leider nicht viel von solchen Funktionen und wie (bzw. ob) man sie in einem View verwenden kann.
Gruß
Rainer
Das sind die hooks aus dem
am 20.08.2014 - 15:30 Uhr
Das sind die hooks aus dem Modul fullcalendar, nicht meine Funktionen. Du verwechselst hier 2 Dinge:
1. Wie erzeuge ich eine Zielpage, auf der die Ergebnisse so gelistet sind wie ich sie brauche.
-> Antwort: mittels views und die von Dir beschriebenen Filtern. Schwierigkeitsstufe: Für Anfänger geeignet.
2. Wie erzeuge ich im Modul Fullcalendar einen anderen link, der das von Fullcalendar vorgegebene Ziel überschreibt.
-> Antwort: einer der beiden hooks muss in einem eigenen zu schreibenden Modul bemüht werden, welcher weiss ich nicht, müsste ich testen. Ein hook ist eine php Funktion, die es erlaubt vorgegebene Funktionen nachträglich zu verändern.
Schwierigkeitsstufe: Nicht für Anfänger geeignet, sollten php Kenntnisse nicht vorhanden sein.
ABER: Ohne zu prüfen ob das wirklich funktioniert sieht dein angegebener Link sehr verheissungsvoll aus! Ich würde das an Deiner Stelle mal durchtesten. Hatte ich nicht gewusst!
danke für Deine Antwort. Was
am 20.08.2014 - 15:44 Uhr
danke für Deine Antwort.
Was meinen angegebenen Link betrifft, so kann ich sagen: es hat funktioniert. Ich kann mit dieser Methode jeden beliebigen View ausführen. Nur lässt sich eben nicht (entgegen der dort gemachten Äußerung) nach dem im Block angeklickten Tag filtern, denn es gibt im View meines Wissens keine Auwahl, die das zulässt. Dazu müsste der View ja auch mit dem Fullcalendar-Modul zusammenarbeiten und den Wert übergeben. Das tut er aber nicht.
PHP-Kenntnisse habe ich. Dann muss ich mich wohl jetzt mit Hooks beschäftigen.
Meister, ohne dass jetzt
am 20.08.2014 - 18:22 Uhr
Meister, ohne dass jetzt durch zu checken, glaube ich dass Du da einem Irrweg hinter her läufst.
Du hast ein Feld mit date api gefüttert. Dieses Feld kannst Du in views filtern, entweder nach einem konkreten Datum oder relativ (Beispiel wäre now, now+1 etc.).
Oder Du ziehst aus deinem Block das Datum und nimmst das als Filterwert. Dat geht alles, Du musst Dich dafür mit "Contextual filter" auseinander setzen. Das waren in Drupal 6 mal Argumente, und da Du PHP beherrschst weisst Du ja was das ist.
Viel Glück und Spass,
Marc
Meinst Du? Es wäre schön,
am 20.08.2014 - 19:25 Uhr
Meinst Du? Es wäre schön, wenn es da doch noch eine Lösung gäbe.
Ich habe mich lange mit den Views beschäftigt und es ist mir nicht gelungen. Bei 'Contextuel Filter' kann man die Daten der einzelonen Events natürlich auslesen. Aber nicht das Tagesdatum, das ich gerade im Block angeklickt habe. Ich müsste dieses Datum als Argument verwenden.
Übrigens filtere sich mit Contextual filter bereits staedte aus den Events aus (sie sind %1). Aber das Datum als %2 aus dem Fullcalendar-Block in den View zu bringen ist mir nicht gelungen.
Eigentlich weiß der unabhängige View ja auch gar nicht, dass es da noch ein Fullcalendar Modul gibt. Wie soll er da auf das angeklickte Datum zugreifen können.
Zitat: Eigentlich weiß der
am 21.08.2014 - 07:04 Uhr
Eigentlich weiß der unabhängige View ja auch gar nicht, dass es da noch ein Fullcalendar Modul gibt. Wie soll er da auf das angeklickte Datum zugreifen können.
Indem Du es deinem Link mitgibst!
Ja, aber wie??? Das ist das
am 21.08.2014 - 13:50 Uhr
Ja, aber wie??? Das ist ja das Problem.
Ich finde im View - auch dort bei Contextuel Filter - keine Möglichkeit, das zuletzt im Fullcalendar-Block angeklickte Datum als Filterkriterium zu verwenden.
Das Devel Modul half mir da auch nicht weiter bei der Variablensuche. Nun ja, ich bin allerdings auch Anfänger in Drupal.
Mein Vorhaben, alle Veranstaltungen eines Tages aufzulisten, ist eigentlich gar nicht so exotisch, meine ich. Ich bin erstaunt, dass der Fullcalendar das nicht von Hause aus kann.
Auch in englischsprachigen Foren habe ich dazu keine Lösung gefunden.