[gelöst] Modul Calendar - Umstellung des englischen Zeitformates in Tages-/Wochenansicht auf Deutsch
am 15.01.2010 - 21:21 Uhr in
Hallo,
dieses Thema ist schon das eine oder andere Mal im Forum aufgetaucht.
Leider haben mir die Beiträge nicht bei der Lösung meines Problems helfen können.
Ich will das Modul Calendar für einen Veranstaltungskalender nutzen. Leider lautet die Datumsangabe im Kopf der Tagesansicht beharrlich z.B. "Sonnabend, Januar 16 2010" sowie in der Wochenansicht: "Week of Januar 11 2010". Die Ausgabe erfolgt also im englischen Format .
In den Einstellungen unter Datum-Zeit habe ich die Formate Long, Mittel, Short auf das deutsche Datumsformat eingestellt.
Hat jemand eine Idee, an welchen "Schrauben" (z.B. im View Calendar???) ich noch drehen kann?
Gruß
Angalo
PS:
Ich nutze Drupal Version 6.15 u.a. mit den Modulen
Calendar 2,2 mit Calendar Popup, Date, Date Popup, Date Repeat API aktiv
CCK 2.6 mit Number, Option Widgets, Text aktiv
Views 2.8 mit Views UI aktiv
- Anmelden oder Registrieren um Kommentare zu schreiben
Format des Kalendertitels
am 17.01.2010 - 14:51 Uhr
Hi Angelo,
Für den Titel des Kalenders ist die Funktion theme_date_nav_title zuständig. Diese findest Du in der theme.inc des Date Moduls und sieht bei mir so aus:
/**
* Theme the calendar title
*/
function theme_date_nav_title($granularity, $view, $link = FALSE, $format = NULL) {
switch ($granularity) {
case 'year':
$title = $view->date_info->year;
$url = $view->date_info->url .'/'. $view->date_info->year;
break;
case 'month':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'F Y' : 'F');
$title = date_format_date($view->date_info->min_date, 'custom', $format);
$url = $view->date_info->url .'/'. $view->date_info->year .'-'. date_pad($view->date_info->month);
break;
case 'day':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'l, F j Y' : 'l, F j');
$title = date_format_date($view->date_info->min_date, 'custom', $format);
$url = $view->date_info->url .'/'. $view->date_info->year .'-'. date_pad($view->date_info->month) .'-'. date_pad($view->date_info->day);
break;
case 'week':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'F j Y' : 'F j');
$title = t('Week of @date', array('@date' => date_format_date($view->date_info->min_date, 'custom', $format)));
$url = $view->date_info->url .'/'. $view->date_info->year .'-W'. date_pad($view->date_info->week);
break;
}
// TODO Update this.
if (!empty($view->date_info->mini) || $link) {
// Month navigation titles are used as links in the mini view.
$attributes = array('title' => t('View full page month'));
return l($title, $view->date_info->url, array('attributes' => $attributes));
}
else {
return $title;
}
}
Hier kannst Du das Format für den Kalendertitel ändern. In Deinem Fall also bei case 'day' bzw. case 'week'. Sinnvoll: Funktion in die template.php Deines Themes kopieren, umbenennen und dann ändern.
Hoffe es hilft Dir.
Grüße, Broerello
Danke für die Anregung. Um
am 17.01.2010 - 18:01 Uhr
Danke für die Anregung. Um ihr nachgehen zu können, werde ich mich wohl auch mit PHP befassen müssen.
Wobei ich hier auf Anhieb nicht so recht verstehe, wozu das Kopieren in die template.php und das dortige Umbenennen sein soll, denn diese Funktion wird doch von irgendwo her mit genau diesem Namen "theme_date_nav_title" aufgerufen.
btw: Was macht die hier aufgerufene date_format_date im date_api.module?
gruß angalo
Themeable Function
am 18.01.2010 - 01:02 Uhr
Die Funktionen, deren Namen mit 'theme_' beginnen können überschrieben werden. Das hat den Vorteil, daß man im Modul selbst nichts ändern muß. Nach einem Update des Moduls sind dann die Änderungen nämlich futsch.
In der template.php Deines themes benennst Du die Funktion in der Art um, daß Du das 'theme' durch den Namen Deines themes ersetzt, z.B. garland_date_nav_title.
Drupal wird dann diese Funktion benutzen. Kannst hier mal nachlesen http://drupal.org/node/457740 .
Für Deinen Fall sind nur die Formatangaben relevant, z.B.
case 'day':
$format = !empty($format) ? $format : (empty($view->date_info->mini) ? 'l, F j Y' : 'l, F j');
Die erste Formatangabe 'l, F j Y' ist für die normale Tagesansicht, die zweite 'l, F j' für die Miniansicht in einem Block. Die Abkürzungen kannst Du hier nachsehen http://de.php.net/manual/en/function.date.php
Probiers doch z.B. mal mit 'l, j. F Y' sollte dann sowas liefern 'Donnerstag, 28. Januar 2010'.
Wenn Du die Funktion in die template.php kopiert und wie beschrieben umbenannt hast, kannst ja einfach mal ausprobieren, wenn's nicht klappt lösch sie wieder und alles ist wieder beim alten...
Änderungen werden aber erst nach dem leeren des Cache sichtbar, nicht vergessen.
Viel Erfolg.
Grüße, Broerello
Themeable Funktion
am 18.01.2010 - 20:27 Uhr
Dan k für die umfassende Erläuterung.
In der func theme_date_nav_title hatte ich schon das passende Format ersetzt.
In Sachen "themenbezogenen Funktion" hab' ich dazugelernt.
Insgesamt wunderte mich, das hier, wo lokale Einstellungen durchaus eine Rolle spielen, die Ausgabe bis hin zu Vorgaben wie z.B. "Week of" hart kodiert ist.
Danke nochmals
Angalo
Das Thema ist zwar alt und
am 15.02.2014 - 11:51 Uhr
Das Thema ist zwar alt und schon gelöst, doch ich hatte gerade die gleichen Probleme in den Kalendertiteln in Drupal 7.
Deshalb als Hinweis: Ich hatte date 7.x-2.x-dev im Einsatz und nachdem ich stattdessen die stabile Version 7.x-2.7 installiert habe, ist alles gut, ohne Hand am Code anlegen zu müssen.
– Grüße aus Franken –
"Eine Entscheidung ist dann eine gute Entscheidung, wenn Sie zu mehr Möglichkeiten führt.”
Heinz von Foerster (Kybernetiker)
www.bienlein-kommunikation.de