Seite 1 von 1

Calendar 0.1.0 (alightner) und Event-Vorschau

Verfasst: 24.11.2009 11:00
von Helmut
Hallo,

ich möchte für meine neue Homepage (ist noch nicht Online) auf der Startseite einen Bereich für die Vorschau von Events einrichten. Ich habe mir dazu schon eine Kopie der Datei includes/functions_calendar.php etwas angepasst und das funktioniert auch schon soweit, es werden alle Events des aktuellen Monats angezeigt.

Nun stehe ich aber an einem Problem und komme irgendwie nicht weiter. Ich möchte haben, dass nur die Events von aktuellen Tag und den nächsten 14 Tagen angezeigt werden, nicht aber zurück liegende Events des aktuellen Monats. Ich denke das hängt irgendwie mit der folgenden Stelle im Codes ab:

Code: Alles auswählen

[...]

function calendar_display_month()
{
    global $auth, $db, $user, $config, $template, $date, $available_etype_colors, $available_etype_images, $available_etype_display_names, $month_sel_code, $day_sel_code, $year_sel_code, $mode_sel_code;
    global $phpEx, $phpbb_root_path;

    init_calendar_data();
    init_view_selection_code("month");

[...]

    $counter = 0;
    for ($j = 1; $j < $number_days+1; $j++, $counter++)
    {

[...]

        if ( $user_can_view_events )
        {
            //find any events on this day
            $start_temp_date = gmmktime(0,0,0,$date['month_no'], $j, $date['year'])  - $user->timezone - $user->dst;            
            $end_temp_date = $start_temp_date + 86399;

            $sql = 'SELECT * FROM ' . CALENDAR_EVENTS_TABLE . '
                    WHERE ( (event_access_level = 2) OR
                        (event_access_level = 0 AND poster_id = '.$db->sql_escape($user->data['user_id']).' ) OR
                        (event_access_level = 1 AND ('.$db->sql_escape($group_options).'))) AND
                        ((( event_start_time >= '.$db->sql_escape($start_temp_date).' AND event_start_time <= '.$db->sql_escape($end_temp_date).' ) OR
                        ( event_end_time > '.$db->sql_escape($start_temp_date).' AND event_end_time <= '.$db->sql_escape($end_temp_date).' ) OR
                        ( event_start_time < '.$db->sql_escape($start_temp_date).' AND event_end_time > '.$db->sql_escape($end_temp_date)." )) OR
                        ((event_all_day = 1) AND (event_day LIKE '" . $db->sql_escape(sprintf('%2d-%2d-%4d', $j, $date['month_no'], $date['year'])) . "'))
                        ) ORDER BY etype_id, event_start_time ASC";


            $result = $db->sql_query($sql);
            while ($row = $db->sql_fetchrow($result))
            {
                $event_output['COLOR'] = $available_etype_colors[$row['etype_id']];
                $event_output['IMAGE'] = $available_etype_images[$row['etype_id']];
                $event_output['EVENT_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=event&calEid=".$row['event_id']);

[...]
 
Wie muss ich nun die Abfrage der Datenbank ändern, dass statt der Events des aktuellen Monats, nur die Events ab den aktuellen Tag des Monats und die kommenden 14 Tage angezeigt werden, auch wenn einige Termine dann in den folgenden Monat/Jahr fallen würden?

Die Events sollen dann zuerst nach Event Type und dann Event Datum/Tag sortiert ausgegeben werden.

Ich würde mich sehr über eure Hilfe freuen :)

Gruß Helmut

Re: Calendar 0.1.0 (alightner) und Event-Vorschau

Verfasst: 30.11.2009 11:10
von Helmut
Hallo,

mal hochschieb ..... :wink:

Habe leider bis jetzt noch keine Lösung gefunden und würde mich über eine Unterstützung freuen.

Gruß Helmut

Re: Calendar 0.1.0 (alightner) und Event-Vorschau

Verfasst: 13.12.2009 10:30
von Helmut
Hallo,

und noch einmal hochschieb ..... :wink:

leider habe ich immer noch keine Lösung gefunden, wie ich die Abfrage anpassen muss, dass in der Vorschau nur die Events vom aktuellen Tag und 14 Tage im voraus angezeigt werden. Ich wäre über jede Unterstützung dankbar.

Gruß Helmut

Re: Calendar 0.1.0 (alightner) und Event-Vorschau

Verfasst: 13.12.2009 12:53
von Passat
Im ACP kannst du einstellen, das alte Termine gelöscht werden.
Wenn dir alte Termine nicht wichtig sind, wäre das evtl. eine Lösung.

Re: Calendar 0.1.0 (alightner) und Event-Vorschau

Verfasst: 13.12.2009 17:34
von Helmut
Hallo Passat,

ja das habe ich schon gesehen, aber die Termine sollen alle in der Datenbank erhalten bleiben, lediglich die Anzeige soll wie oben genannt erfolgen. Ich möchte bei mir auf der Startseite so eine Art kurze Übersicht über die anstehenden Termine der nächsten 14 Tagen haben, auch Monats/Jahr übergreifend.

Jetzt habe ich es nur geschafft, alle Termine des aktuellen Monats, auch die schon zurück liegenden anzeigen zu lassen. Es soll aber so ähnlich sein, wie die Anzeige der Geburtstage für 14 Tage im Voraus vom Upcoming Birthdays Mod.

Gruß Helmut

Re: Calendar 0.1.0 (alightner) und Event-Vorschau

Verfasst: 18.12.2009 16:55
von Helmut
Hallo,

und noch einmal hochschieb .....


Gruß Helmut

Re: Calendar 0.1.0 (alightner) und Event-Vorschau

Verfasst: 04.01.2010 18:26
von Helmut
Hallo,

also das Problem ist gelöst, der Calendar Mod bietet diese Funktion bereits. Aber so wie es aussieht, ist diese vermutlich für eine spätere Version vom Mod gedacht, da sie in der aktuellen Version 0.1.0 nicht verwendet werden, zumindest habe ich nichts dazu gefunden. Es gibt da gleich mehrere unterschiedliche Funktionen in der Datei functions_calendar.php. hier mal die Funktionen die ich gefunden habe:

Code: Alles auswählen

/* displays the next x number of upcoming events */
function display_next_events( $x )
 

Code: Alles auswählen

/* displays the upcoming events for the next x number of days */
function display_next_events_for_x_days( $x )
 

Code: Alles auswählen

/* used to generate the UCP "manage my events" module */
function display_posters_next_events_for_x_days( $x, $user_id )
 

Code: Alles auswählen

/* used to generate the UCP "manage event registration" module */
function display_users_next_events_for_x_days( $x, $user_id )
 
Aufgerufen werden die Funktionen über die Datei calendar.php mit case "next":. Wenn ihr zum Beispiel "calendar.php?view=next" im Browser eingebt, dann werden alle Events der nächsten x Tage angezeigt. Der Wert lässt sich in der calendar.php einstellen:

Code: Alles auswählen

$daycount = request_var('daycount', 60 ); 
Anscheinend sind da später noch UCP Module geplant soweit ich das an den Funktionen sehen kann. Wann das dann aber kommt, das weiss ich auch nicht.

Gruß Helmut