Beiträge: 51
Themen: 16
Registriert seit: 06.03.2006
hallöchen,
ich habe gerade das plugin "Ereignisse auf Startseite" installiert und aktiviert im theme coolred, aber leider sehe ich da nicht wirklich etwas.
liegt das hier auch wieder am theme das dort eine variable fehlt oder bin ich nur blind?
und gleich noch eine 2. frage hintendran, ist es bei dem plugin auch möglich das man die ereignisse schon ab 7 tage vorher oder so sehen kann?
zb so : 7 tage noch bis chattreffen ist.....
Gruß kai
Beiträge: 51
Themen: 16
Registriert seit: 06.03.2006
also die ereignisse gehen nun aufeinmal.
aber wie sieht es mit frage 2 aus :-) jemand eine idee wie man das machen kann oder schon jemand an so einem plugin dran?
Gruß kai
Beiträge: 137
Themen: 7
Registriert seit: 05.08.2005
Du möchtest also wie einen Counter "7 Tage bis zum Chat" und am nächsten steht dann eben "6 Tage bis zum Chat" und das automatisiert?
Soweit ich weiß gibt es kein solches Plugin. Aber wenn du mal Google durchsuchst, findest du viele kleine Javascripte die das realisieren könnten und die du dann eben in ein BoardMessage Plugin einbauen könntest.
Beiträge: 583
Themen: 95
Registriert seit: 15.02.2006
MyBB-Version: 1.4.4
Zitat:und gleich noch eine 2. frage hintendran, ist es bei dem plugin auch möglich das man die ereignisse schon ab 7 tage vorher oder so sehen kann?
zb so : 7 tage noch bis chattreffen ist.....
Wie Scorpio schon sagte, ein Plugin gibts dafür wohl nicht !
Aber Probier es mal mit folgendem Script !
Musst aber noch anpassen, damit die zeiten stimmen.
Ich kann dir keine Garantie geben das es Funtzt !
Aber einmal probieren ist es wert.
Code: <script language="JavaScript">
var jahr=2006, monat=1, tag=27, stunde=22, minute=0, sekunde=0; // Ziel-Datum in MEZ
var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);
function countdown() {
startDatum=new Date(); // Aktuelles Datum
// Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
if(startDatum<=zielDatum) {
var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;
/* Allgemeines Vorgehen:
* Zunächst werden die vollen Jahre gezählt
* und anschließend der Start- und Ziel-Monat auf den jeweiligen 1. gesetzt.
* Nun werden erst die vollen Monate vom 1. zum 1. des Start- bzw. Ziel-Monats berechnet
* und danach die tatsächlichen Monatstage wieder mit einbezogen.
* Dieses Vorgehen vermeidet Probleme mit den verschiedenen Monatslängen.
* Die restliche Differenz zwischen Start- und Ziel-Zeit wird mit Tagen aufgefüllt und
* was dann noch übrig bleibt, in Stunden, Minuten und Sekunden ausgedrückt.*/
// Jahre
if(startDatum<zielDatum) {
while(startDatum<zielDatum) {
if(startDatum.setFullYear(startDatum.getFullYear()+1)<=zielDatum) jahre++;
}
startDatum.setFullYear(startDatum.getFullYear()-1);
}
// Restliche Tage zum Monatsende ermitteln
var restTage=0;
var m=startDatum.getMonth();
if(m==1-1||m==3-1||m==5-1||m==7-1||m==8-1||m==10-1||m==12-1) restTage=31-startDatum.getDate();
else if(m==4-1||m==6-1||m==9-1||m==11-1) restTage=30-startDatum.getDate();
else if(m==2-1) {
if(startDatum.getFullYear()%4==0 && (startDatum.getFullYear()%100!=0 || startDatum.getFullYear()%400==0)) restTage=29-startDatum.getDate(); // Schaltjahr
else restTage=28-startDatum.getDate();
}
// Start- und Ziel-Tag merken und auf 1 setzen
var startTag=startDatum.getDate();
var zielTag=zielDatum.getDate();
startDatum.setDate(1);
zielDatum.setDate(1);
// Monate
if(startDatum<zielDatum) {
while(startDatum<zielDatum) {
if(startDatum.setMonth(startDatum.getMonth()+1)<=zielDatum) monate++;
}
startDatum.setMonth(startDatum.getMonth()-1);
}
// Tatsächlichen Start- und Ziel-Tag berücksichtigen
if(startDatum.getMonth()==zielDatum.getMonth()) {
if(startTag<=zielTag) startDatum.setDate(startTag);
else {
monate--;
tage=restTage+1;
}
}
else {
startDatum.setMonth(startDatum.getMonth()+1);
if(startTag>=zielTag) tage=restTage+1;
else {
monate++;
startDatum.setDate(startTag);
}
}
zielDatum.setDate(zielTag);
// Tage
restTage=Math.floor((zielDatum-startDatum)/(24*60*60*1000));
startDatum.setTime(startDatum.getTime()+restTage*24*60*60*1000);
tage+=restTage;
// Stunden
stunden=Math.floor((zielDatum-startDatum)/(60*60*1000));
startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);
// Minuten
minuten=Math.floor((zielDatum-startDatum)/(60*1000));
startDatum.setTime(startDatum.getTime()+minuten*60*1000);
// Sekunden
sekunden=Math.floor((zielDatum-startDatum)/1000);
// Anzeige formatieren
(jahre!=1)?jahre=jahre+" Jahre, ":jahre=jahre+" Jahr, ";
(monate!=1)?monate=monate+" Monate, ":monate=monate+" Monat, ";
(tage!=1)?tage=tage+" Tage, ":tage=tage+" Tag, ";
(stunden!=1)?stunden=stunden+" Stunden, ":stunden=stunden+" Stunde, ";
(minuten!=1)?minuten=minuten+" Minuten und ":minuten=minuten+" Minute und ";
if(sekunden<10) sekunden="0"+sekunden;
(sekunden!=1)?sekunden=sekunden+" Sekunden":sekunden=sekunden+" Sekunde";
document.countdownform.countdowninput.value=jahre+monate+tage+stunden+minuten+sekunden;
setTimeout('countdown()',200);
}
// Anderenfalls alles auf Null setzen
else document.countdownform.countdowninput.value="0 Jahre, 0 Monate, 0 Tage, 0 Stunden, 0 Minuten und 00 Sekunden";
}
</script>
Sag bescheid wenn es geht !
bis gli...
greetz DaStaFlexX
Beiträge: 51
Themen: 16
Registriert seit: 06.03.2006
also so umständlich brauche ich es nicht wirklich ,also countdown muss nicht sein, es reicht auch so:
Nächste Ereignisse:
messe in wupertal (24-3-2006)
messe in halle (26-3-2006)
messe in hamburg (27-3-2006)
aber wenn es sowas noch nicht gibt auch nicht schlimm.
@DaStaFlexX wo baue ich das denn dein? mit extra datei und dann wo reinladen oder wie geht das? ich hab leider kaum ahnung von programmieren.
gruß kai
Beiträge: 137
Themen: 7
Registriert seit: 05.08.2005
Du könntest diese Termine auch in den Kalender im Forum eintragen.
Beiträge: 51
Themen: 16
Registriert seit: 06.03.2006
genau das meine ich ja ich trage diese termine in den kalender ein und durch das plugin heutige ereignisse werden sie ja auf der index.php angezeigt.
aber leider nur die heutigen ereignisse im kalender, schöner wäre aber die ereignisse der nächsten 7 tage.
aber wenn das so umfangreich ist, ist es nicht so wichtig ,werde dann wohl nochmal per hand eine seite basteln und die immer aktuell halten.
Gruß kai
Beiträge: 51
Themen: 16
Registriert seit: 06.03.2006
hab jetzt ein beispiel gefunden beim vbb gibt es sowas guckt iht mal hier http://www.hochzeitsforum.de/ ganz unten "Anstehende Termine in den nächsten 90 Tagen"
sowas meine ich :-)
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Was ich dir auf die Schnelle geben kann ist ein Codeschnipsel, der noch bei mir rumfliegt, und alle Termine des aktuellen Monats zeigt.
Öffne die Datei index.php und suche nach:
PHP-Code: eval("\$whosonline = \"".$templates->get("index_whosonline")."\";");
Darüber einfügen:
PHP-Code: ### Events des Monats auf Index ### $query = $db->query("SELECT * FROM ".TABLE_PREFIX."events WHERE private = 'no' AND date LIKE '%-".date("n")."-%' ORDER BY date ASC"); $comma = ""; while($events = $db->fetch_array($query)) { $eventdate = explode("-", $events['date']); $dateline = mktime(0, 0, 0, $eventdate['1'], $eventdate['0'], $eventdate['2'], 0); $nextevents .= $comma."<a href=\"calendar.php?action=event&eid=".$events['eid']."\">".htmlentities($events['subject'])." (".mydate($mybb->settings['dateformat'], $dateline).")</a>"; $comma = ", "; } ### Events des Monats auf Index ###
Öffne danach das Template index_whosonline und füge am Ende ein:
Code: <tr>
<td class="trow2"><span class="smalltext"><strong>Termine in diesem Monat</strong></span></td>
</tr>
<tr>
<td class="trow1"><span class="smalltext">$nextevents</span></td>
</tr>
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
23.03.2006, 03:10
(Dieser Beitrag wurde zuletzt bearbeitet: 23.03.2006, 03:14 von Michael.)
So, habs schnell für deine Bedürfnisse umgeschrieben (allerdings nicht getestet).
Öffne die Datei index.php und suche nach:
PHP-Code: eval("\$whosonline = \"".$templates->get("index_whosonline")."\";");
Darüber einfügen:
PHP-Code: ### Events der nächsten x Tage auf Index ### // Anzahl der Tage $futuredays = "7"; $date = mktime(0, 0, 0, date("m"), date("d") + $futuredays, date("Y")); $futuredate = date("j-n-Y" , $date); $today = date("j-n-Y"); $query = $db->query("SELECT * FROM ".TABLE_PREFIX."events WHERE private = 'no' AND date <= '".$futuredate."' AND date >= '".$today."' ORDER BY date ASC"); $comma = ""; while($events = $db->fetch_array($query)) { $eventdate = explode("-", $events['date']); $dateline = mktime(0, 0, 0, $eventdate['1'], $eventdate['0'], $eventdate['2'], 0); $nextevents .= $comma."<a href=\"calendar.php?action=event&eid=".$events['eid']."\">".htmlentities($events['subject'])." (".mydate($mybb->settings['dateformat'], $dateline).")</a>"; $comma = ", "; } ### Events der nächsten x Tage Index ###
Füge am Ende des Templates index_whosonline ein:
Code: <tr>
<td class="trow2"><span class="smalltext"><strong>Termine in den nächsten $futuredays Tagen</strong></span></td>
</tr>
<tr>
<td class="trow1"><span class="smalltext">$nextevents</span></td>
</tr>
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
|