Seite 1 von 2
Eventliste für Callite: Akt. Termine hervorheben?
Verfasst: 18.08.2007 11:52
von junos
Hallo...
ich habe bei mir den Kalender callite mit folgender Eventliste zum Anzeigen der anstehenden Termine auf der Index-Seite eingebaut:
Code: Alles auswählen
MOD Title: Events from callite 1.4.4 on ezPortal
MOD Author: OXPUS < webmaster@oxpus.de > (Karsten Ude) http://www.oxpus.de
MOD Description: This Mod displays an eventlist for future events on ezPortal. On ACP the admininstrator can set how many events will be displayed on the next X days or by number.
MOD Version: 1.2.4
Kann man den Mod abändern, dass aktuelle Termine in dieser Liste hervorgehoben (z.B. rot markiert) werden? Ich meine also Termine, die mit dem aktuellen Datum übereinstimmen.
Grüße junos
Verfasst: 18.08.2007 16:15
von oxpus
Sollte gehen, wenn Du in der index.php vor der Zeile
diese Zeilen einfügst:
Code: Alles auswählen
if ($start_date == create_date('d.m.Y', time(), $board_config['board_timezone'])
{
$subject = '<span style="color: #FF0000;">'.$subject.'</span>';
}
Ist ein Schnellschuss und dabei dann für
alle Styles rot! Das gilt es zu bedenken!
Verfasst: 18.08.2007 17:56
von junos
Hallo oxpus, Danke für den schnellen Support!
In deinem geposteten Code habe ich noch eine Klammer geschlossen:
if ($start_date == create_date('d.m.Y', time(), $board_config['board_timezone']))
{
$subject = '<span style="color: #FF0000;">'.$subject.'</span>';
}
Ohne diese Klammer erhalte ich die Fehlermeldung: Parse error: syntax error, unexpected '{' in ...
Wenn ich den Code mit der Klammer eingebe, bekomme ich keine Fehlermeldung mehr, allerdings ändert sich die Farbe auch nicht bei heute anstehenden Termin(en). Könntest du nochmal schauen?
Danke dir
Nico
Verfasst: 18.08.2007 19:50
von oxpus
Öhm,

, ja, die Klammer. Sorry...
Füge den Code aber mal vor
Code: Alles auswählen
$subject = ( $userdata['session_logged_in'] ) ? '<a href="'. append_sid('calendar.'.$phpEx.'?id='. $row['id'] .'&mode=display&cl_d='. substr($row['stamp'],8,2). '&cl_m='.substr($row['stamp'],5,2).'&cl_y='.substr($row['stamp'],0,4)).'">'. $subject .'</a>' : $subject;
$author = ( $userdata['session_logged_in'] ) ? '<a href="'. append_sid('profile.'.$phpEx.'?mode=viewprofile&'. POST_USERS_URL .'='. $row['user_id']) .'">('. stripslashes($row['username']) .')</a>' : '('. stripslashes($row['username']) .')';
$template->assign_block_vars('event', array(
ein, also zwei Zeilen nach "vorne" verschieben.
Der Titel des Events ist sonst ja bereits formatiert und kann dann nur noch schlecht neu formatiert werden...
Verfasst: 18.08.2007 21:23
von junos
Genial...das klappt!
[ externes Bild ]
Vielen Dank!

Verfasst: 19.08.2007 12:11
von junos
Einen kleinen Fehler habe ich noch gefunden: Bei Terminen, welche über mehrere Tage laufen, wird der Termin nur am ersten Tag rot markiert. Dafür habe ich folgende Lösung gefunden:
suche:
ersetze mit:
Weiterhin habe ich den Code bei mir so ergänzt, dass Termine die übermorgen beginnen grün und Termine die morgen beginnen gelb dargestellt werden, sowie die Schriftgröße für alle farblich markierten Termine vergrößert.
Ich weiß nicht, ob das sauber geschrieben ist, aber es funktioniert:
Code: Alles auswählen
if ($start_date-2 == create_date('d.m.Y', time(), $board_config['board_timezone']))
{
$subject = '<span style="color: #4ACB4A"><span style="font-size:18">'.$subject.'</span>';
}
if ($start_date-1 == create_date('d.m.Y', time(), $board_config['board_timezone']))
{
$subject = '<span style="color: #FCC403"><span style="font-size:18">'.$subject.'</span>';
}
if ($start_date <= create_date('d.m.Y', time(), $board_config['board_timezone']))
{
$subject = '<span style="color: #EF4952"><span style="font-size:18">'.$subject.'</span>';
}
Grüße Nico
Verfasst: 19.08.2007 15:39
von junos
So geht`s leider doch nicht.
Es werden nur die Tage berücksichtigt, die Monate jedoch nicht. Einige Termine, die in der Zukunft liegen (bei denen der Tag kleiner/gleich dem heutigen Tag ist) werden somit auch rot markiert.

Verfasst: 22.08.2007 16:21
von junos
Hat dazu noch jemand eine Idee, dass bei der Abfrage des Datums auch der Monat einbezogen wird?
klappt, aber
hat zur Folge, dass auch einige zukünftige Termine rot markiert werden. Nämlich genau diese, bei denen der Tag vom Datum des Termins kleiner/gleich dem Tag vom aktuellen Datum sind - egal welchen Monat der Termin hat.
Verfasst: 25.08.2007 13:49
von oxpus
So, nimm mal diesen Block hier:
Code: Alles auswählen
$mark_date = substr($row['stamp'],0,10);
$mark_end_date = substr($row['eventspan'],0,10);
$cur_date = create_date('Y-m-d', time(), $board_config['board_timezone']);
if ($mark_end_date >= $cur_date && $mark_date <= $cur_date)
{
$subject = '<span style="color: #FF0000;">'.$subject.'</span>';
}
Also den oben geposteten Block damit ersetzen...
Verfasst: 25.08.2007 16:17
von junos
Das scheint zu funktionieren.
Vielen Dank!