[gelöst] drupal_add_js und fullcalendar
am 17.01.2012 - 12:55 Uhr in
Hallo zusammen,
ich möchte gerne auf Konfigurationsmöglichkeiten des fullcalendar Plugins in der template.php zugreifen.
(Konkret: ich möchte das der Kalender einen bestimmten Monat anzeigt, der nicht der jetzige Monat sein soll, in der template.php ist dieser Monat bekannt, den ich im Kalender anzeigen lassen möchte)
In der Dokumentation habe ich folgendes gefunden, um insbesondere einen speziellen Monat/Jahr anzeigen zu lassen:
// Oktober 2009
$(document).ready(function() {
$('#calendar').fullCalendar({
month: 10 - 1,
year: 2009
});
});
Bei einer Standard Kalenderinstallation ohne Drupal funktioniert das auch einwandfrei.
Nun wird der Kalender bei mir in einer View (Display Block) in einer Seitenleiste angezeigt.
Dort habe ich dann folgendes versucht:
drupal_add_js('jQuery(document).ready(function($) {
$("#calendar").fullCalendar({
month: 10 - 1,
year: 2009
});
});',
array('type' => 'inline', 'scope' => 'footer', 'weight' => 10)
);
Das funktioniert aber nicht, denn es gibt den Selector: calendar nicht bei der Art und Weise, wie Drupal diesen Kalender einsetzt.
Update:
ich habe auch schon folgendes versucht:
drupal_add_js('jQuery(document).ready(function($) {
$("DIV.view-content > DIV.fullcalendar")({
month: 10 - 1,
year: 2009
});
});',
array('type' => 'inline', 'scope' => 'footer', 'weight' => 10)
);
wobei "DIV.view-content > DIV.fullcalendar" der Selector für den Kalender ist, funktioniert aber auch nicht :-(
noch ein Update (ich habe jetzt versucht)
drupal_add_js('jQuery(document).ready(function($)
{
$("*").fullcalendar({
month: 10 - 1,
year: 2009
});',
array('type' => 'inline', 'scope' => 'footer', 'weight' => 10)
);
Bei einer Standardinstallation des Fullcalenders funktioniert das auch einwandfrei, nur eben nicht wenn man den Fullcalender als Drupal-Modul installiert.
Die JS-Fehlermeldung ist: Uncaught exception: TypeError: '$("*").fullcalendar' is not a function
Weiss jemand von euch, wie man dieses kleine Javascript so abändern kann, dass man auch in Drupal dort einen Monat vorauswählen kann, der angezeigt wird ?
lieben Gruß
Daniela
- Anmelden oder Registrieren um Kommentare zu schreiben
Ersetze mal $() durch
am 17.01.2012 - 16:03 Uhr
Ersetze mal $() durch jQuery(), dann sollte es gehen.
Beste Grüße
Werner
Danke Werner, leider war es
am 17.01.2012 - 19:33 Uhr
Danke Werner,
leider war es das auch nicht....
manchmal ist es schon schwierig.
Ich konnte nach vielem Hin und Her das Problem lösen.
Drupal legt beim Fullcalender - Modul noch ein zusätzliches Div an mit dem Namen: fullcalender (beachte das klein geschriebene c von calendar.
Es muß also heißen:
$("#block-views-veranstaltungskalender-block > .content > .view-veranstaltungskalender > .view-content >.fullcalendar").fullCalendar("gotoDate",2009,4);
Man beachte die Groß- und Kleinschreibung bei der letzten CSS-Klasse und der danach mit Punkt angefügten CSS Klasse.
Jetzt funktioniert es endlich :-)