Hallo weltsieger, willkommen im Forum!
Deine Idee, die Scripts zu kombinieren, war schon einmal nicht schlecht!
Leider haben sich kleinere Fehler eingeschlichen, wie eine zu viel geschweifte Klammer oder eine Endlosschleife, sodass das gepushte Array unendlich lange wird. Außerdem hast du bei den Tagesmeldungen keine Arrays sondern "andere" Objekte erstellt, wobei darin auch ein kleiner Fehler ist.
Ich habe hier für dich eine funktionierende Funktion gebaut, bei der sogar mehrere User pro Tag eingetragen werden können, falls mehrere Geburtstag haben.
Code: Alles auswählen
var tagesmeldung = new Array();
for (var i=1; i<=12; i++) tagesmeldung[i] = new Array(); // muss so stehenbleiben
// beliebig viele Tagesmeldungen untereinander - einfach komplette Zeile kopieren und Datum ändern
// erste Klammer ist Monat, zweite Klammer ist Tag
// Änderungen nur in den Tagesmeldungen und die Geburtstagsiconadresse
var gebIconAdresse = "http://URL-ZUM-ICON";
tagesmeldung[1][1] = new Array("weltsieger", "Dennis");
tagesmeldung[9][14] = new Array("Maxs", "Tester");
tagesmeldung[7][7] = new Array("Test", "Frank", "Flo");
tagesmeldung[4][8] = new Array("Geburtstagskind4");
tagesmeldung[7][19] = new Array("Geburtstagskind5");
tagesmeldung[12][27] = new Array("Geburtstagskind6");
var datum = new Date();
var heute = datum.getDate();
var dieserMonat = datum.getMonth()+1;
for(i in tagesmeldung[dieserMonat]){
if (i == parseInt(heute)){
var birthdayInt = window.setInterval(function(){OlSetBirthdayIcons(tagesmeldung[dieserMonat][i])}, 2000);
break;
}
}
function OlSetBirthdayIcons(IconUser){
var prfd = parent.rightFrame.document;
for (var i=0; i<IconUser.length; i++){
var olId = (prfd.getElementById("new"+IconUser[i])) ? prfd.getElementById("new"+IconUser[i]) : prfd.getElementById(IconUser[i]);
if (olId && olId.innerHTML.search(gebIconAdresse) == -1) {
olId.innerHTML += " <img src='"+gebIconAdresse+"' />";
}
}
}
Bei
var gebIconAdresse = "http://URL-ZUM-ICON"; kannst du die
URL zum Bild angeben, das bei den Usern neben den Namen angezeigt werden soll, wenn diese Geburtstag haben.
Den Geburtstag der User kannst du bei
tagesmeldung[9][14] = new Array("USER1", "USER2"); hinzufügen bzw. ändern. Die
9 zeigt den Monat an (also hier September) und die
14 den Tag. Die User, die also dort eingetragen sind, haben am 14.09. Geburtstag.
User kannst du im darauffolgenden Array auflisten. Hier einfach immer den User in Anführungszeichen schreiben und vor ihm ein Komma setzen zum abtrennen. Nach dem letzten User darf aber kein Komma stehen!
Tagesmeldungen kannst du so viele machen, wie du möchtest. Passe nur darauf auf, dass es pro Geburtstag nur eine Tagesmeldung geben darf (man kann ja sowieso in den Tagesmeldungen unendlich User auflisten).
Dieses Script kommt dann in eine JavaScript-Datei (*.js) und wird auf deinen eigenen Webspace hochgeladen. Danach fügst du es mit folgendem Code in die 1. und 3. Ankündigung ein:
Code: Alles auswählen
<script type="text/javascript" src="URL-ZUM-SCRIPT"></script>
URL-ZUM-SCRIPT muss natürlich mit dem Link zur Datei ersetzt werden.
Danach sollte es funktionieren.
Zu deiner Frage:
Im Prinzip ist es egal, ob du das Script vollkommen in die Ankündigung kopierst oder es in einer JavaScript-Datei abspeicherst. Die Ankündigung wird dann halt nur voller und unübersichtlicher bzw. schwerer zu bearbeiten. Wenn du es in die Ankündigung kopierst, dann musst du noch an den Anfang ein
<script type="text/javascript"> und am Ende ein
</script> setzen. Also so:
PS: Das Script erkennt auch, wenn du das
Unterteilbare Onlineliste - Script von mir verwendest und funktioniert dann auch.