Next Events 1.0

Peh
Was macht der Hack:
Es werden auf der Startseite unter Aktuelle Ereignisse nicht nur die Termine vom heutigen Tag sondern auch die zukünftigen Termine in den nächsten X Tagen angezeigt.

Die Anzahl der Tage, die Termine im Vorraus angezeigt werden sollen kann
natürlich im ACP eingestellt werden.


Einbauzeit: ca. 8-10 min

Copyright/Haftungsausschluss:
Dier Hack darf nur vom Autor (Peh) zum Download angeboten werden. Modifikation
nur für Eigenbedarf erlaubt. Copyright darf nicht entfernt werden.
Der Autor übernimmt keinerlei Haftung für Schäden die durch den Einbau
oder die Benutzung dieses Hacks entstehen.


Version / History:
1.0 2006-03-06 Hack erstellt.


Bitte schreibt auch mal ein Feedback wie es bei euch geklappt hat.
----


weiter zum Download
Donnerbalken
also ich habe diesen eingebaut, aber es wird nichts angezeigt
Peh
hast du im acp -> einstellungen -> startseite -> termine anzeigen auf JA gestellt? und Zukünftige Termine vorher anzeigen? eine zahl größer 0?

und vor allem sind im Terminkalender Termine eingetragen die in den Nächsten X Tagen sind?

gruß peh
The-Storm
Kann man es nicht so machen,
dass die naechsten Events einer Woche angezeigt werden?

Also so, ungefaehr:

# Montag
- Event 01
- Event 001

# Dienstag
- Event 02

# Mittwoch
- Event 03

USW. Waere super. ^^
Peh
wie wärs wenn du es auf 7 Tage stellst?

ich meine wenn jetzt immer von montag bis sonntag angezeigt würde und wir mittwoch hätten würde mich der termin vom montag und dienstag ja nicht mehr interessieren oder?

oder geht es dir nur darum dass die wochentage angezeigt werden statt "in x Tagen"

gruß peh
The-Storm
Zitat:
Original von Peh
oder geht es dir nur darum dass die wochentage angezeigt werden statt "in x Tagen"

Genau, das mein(t)e uch! Freude
spider30
bei mir kommt ne fehlermeldung bei der Index.
Hab laut Anleitung eingebaut!

Parse error: parse error, unexpected ';' in /srv/www/htdocs/web76/html/forum/index.php(484) : eval()'d code on line 282
Peh
schick die index mal rüber per pn oder icq

gruß peh
spider30
Danke für den Super Hack und für die schnelle Hilfestellung.Läuft einwandfrei!
The-Storm
Zitat:
Original von spider30
Danke für den Super Hack und für die schnelle Hilfestellung.Läuft einwandfrei!

Jop, Support ist wirklich TOP! Augenzwinkern
Peh
@storm
um Wochentage oder das Datum anzuzeigen statt dem " in X Tagen:"

suche in der Index.php
php:
1:
2:
/** NEXT EVENTS (c) by Peh **/
unset($daybit);

und füge dahinter ein
php:
1:
$weekdays=array(0=>"Sonntag"1=>"Montag"2=>"Dienstag"3=>"Mittwoch"4=>"Donnerstag"5=>"Freitag"6=>"Samstag");


suche
php:
1:
$days floor(($eventday $today)/86400);

füge darunter ein
php:
1:
2:
$weekday[$days] = $weekdays[intval(date("w",$eventday))];
            $eventdate date($dateformat$eventday);


für das Template index_nexteventbit
könnte man dann folgendes verwenden:
code:
1:
2:
3:
<if(isset($daybit[$days]))><then>, </then><else>
<b>$weekday[$days] ($eventdate): </b>
</else></if><a href="calendar.php?action=viewevent&amp;id=$row[eventid]{$SID_ARG_2ND}">$row[subject]</a>


gruß Peh
MAD_87
ein mini-bug: wenn man ein event löscht, bzw das datum ändert, dann wird unten noch angezeigt in x tagen..
Peh
hmm das kann ich nicht nachvollziehen wenn ein termin gelöscht oder geändert wird, so wird das in der Anzeige geändert sobald die seite neu geladen wird.

gruß peh
Iceblue
edit: großes Grinsen danke auch für diese kleine erweiterung.
MAD_87
Zitat:
Original von Peh
hmm das kann ich nicht nachvollziehen wenn ein termin gelöscht oder geändert wird, so wird das in der Anzeige geändert sobald die seite neu geladen wird.

gruß peh


keine ahnung.. bei mir stehts zumindest unten.. kannst ja mal hier schauen..
Peh
@mad
kann ich leider net sehn ohne anmeldung
BastardOperator
was vll für ne nächste version interresant wäre wäre meiner meinung nach wenn der user "selbst" einstellen kann wieviel termine er sehen will
The-Storm
Danke ... weisst schon fuer was! smile
a-friend
Edit: erledigt, Einbaufehler von mir.
Snopy
hi leute

und hier für diejenigen die probleme mit dem hack in zusammenhang mit dem Performance-Statistik Hack von rellek haben zwegs der anzeige bei db-abfragen das das komisch aussieht

Zitat:


öffne die index.php

suche das hier:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
/** NEXT EVENTS (c) by Peh **/
    unset($daybit);
    if ($shownextevents 0) {
        unset($sql);
        $i intval($shownextevents);
        $today mktime(000date("m"), date("d"),  date("Y")); 
        while ($i 0){
            $currentdate formatdate("Y-m-d"mktime(000date("m"), date("d")+$i,  date("Y")));
            
            if (isset($sql)) $sql .= " OR eventdate = '$currentdate'";
            else $sql "eventdate = '$currentdate'";
            $i--;
        }

        $result $db->unbuffered_query("SELECT eventid, subject, public, eventdate FROM bb".$n."_events WHERE ".$sql." AND (public=2 OR (public=0 AND userid = '$wbbuserdata[userid]')) ORDER BY public ASC, subject ASC");
        while ($row $db->fetch_array($result)) {
            $row['subject'] = htmlconverter($row['subject']);
            
            $eventday mktime(000wbb_substr($row['eventdate'], 62), wbb_substr($row['eventdate'], -2), wbb_substr($row['eventdate'], 04)); 
            $days floor(($eventday $today)/86400);
            
            $lang->items['LANG_START_INDAYS'] = $lang->get("LANG_START_DAYS", array('$days' => $days));

            if (isset($daybit[$days])) eval("\$daybit[$days] .= \"".$tpl->get("index_nexteventbit")."\";");
            else eval("\$daybit[$days] = \"".$tpl->get("index_nexteventbit")."\";");
        }
        $j 1;
        unset($nexteventbit);
        while ($j <= intval($shownextevents)){
            if (!isset($nexteventbit)) $nexteventbit $daybit[$j];
            else if (isset($daybit[$j])) $nexteventbit .= "; ".$daybit[$j];
            $j++;
        }
    }


und ersetze es gegen das hier:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
/** NEXT EVENTS (c) by Peh **/
    unset($daybit);
    if ($shownextevents 0) {
        unset($sql1);
        $i intval($shownextevents);
        $today mktime(000date("m"), date("d"),  date("Y")); 
        while ($i 0){
            $currentdate formatdate("Y-m-d"mktime(000date("m"), date("d")+$i,  date("Y")));
            
            if (isset($sql1)) $sql1 .= " OR eventdate = '$currentdate'";
            else $sql1 "eventdate = '$currentdate'";
            $i--;
        }

        $result $db->unbuffered_query("SELECT eventid, subject, public, eventdate FROM bb".$n."_events WHERE ".$sql1." AND (public=2 OR (public=0 AND userid = '$wbbuserdata[userid]')) ORDER BY public ASC, subject ASC");
        while ($row $db->fetch_array($result)) {
            $row['subject'] = htmlconverter($row['subject']);
            
            $eventday mktime(000wbb_substr($row['eventdate'], 62), wbb_substr($row['eventdate'], -2), wbb_substr($row['eventdate'], 04)); 
            $days floor(($eventday $today)/86400);
            
            $lang->items['LANG_START_INDAYS'] = $lang->get("LANG_START_DAYS", array('$days' => $days));

            if (isset($daybit[$days])) eval("\$daybit[$days] .= \"".$tpl->get("index_nexteventbit")."\";");
            else eval("\$daybit[$days] = \"".$tpl->get("index_nexteventbit")."\";");
        }
        $j 1;
        unset($nexteventbit);
        while ($j <= intval($shownextevents)){
            if (!isset($nexteventbit)) $nexteventbit $daybit[$j];
            else if (isset($daybit[$j])) $nexteventbit .= "; ".$daybit[$j];
            $j++;
        }
    }




dann ist die anzeige wieder in ordnung


mfg Snopy