Geburtstag in OL

Fragen zu HTML, CSS, eigenen Erweiterungen etc.
weltsieger
Beiträge: 18
Registriert: 15.06.2010, 00:12

Geburtstag in OL

Ungelesener Beitrag von weltsieger » 14.09.2012, 14:44

Hi,

ich bin grad dabei ein Script zu basteln, dass in der OnlineListe ein Geburtstagssmilie hinter dem Usernamen angezeigt wird, wenn jemand Geburtstag hat.

Dazu habe ich mir einerseite aus dem wkforum (http://www.wkforum.de/viewtopic.php?p=101778#101778) ein Script geschnappt, welches zum Geburtstag eine Nachricht in den Chat schreibt. Das habe ich versucht zu Verknüpfen mit einem Script, welches hinter einen User ein Smilie packt: http://www.wkforum.de/viewtopic.php?p=79798#79798

Leider will das ganze nicht so funktionieren. Ich hab leider auch ein Verständnisproblem: Ich weiß nicht wann ein Script direkt in die Ankündigung muss und wann es in eine JS-Datei soll?

Hier mein gebasteltes:

Code: Alles auswählen

var gebIconUser = new Array(); 
var gebIconAdressen = new Array("http://url_vom_geburtstagssmilie/smilie.gif");

gebIconUser[0] = new Array();

function gebOlSetIcons(){ 
var tagesmeldung=new Array();
for(i=1;i<=12;i++)
tagesmeldung[i] = new Array(); // muss so stehenbleiben
tagesmeldung[5][4] = {"User1", "User2"};
tagesmeldung[9][13] = {"User3", "User4"};
datum = new Date();
heute = datum.getDate();
dieserMonat = datum.getMonth()+1;
for(i in tagesmeldung[dieserMonat]){
if(i == parseInt(heute)){
gebIconUser[0].push(tagesmeldung[dieserMonat][i])
}}}

for(i=0;i<gebIconUser.length;i++){
for(j=0;j<gebIconUser[i].length;j++){ 
if(parent.rightFrame.document.getElementById(gebIconUser[i][j]) && 
parent.rightFrame.document.getElementById(gebIconUser[i][j]).innerHTML.search(gebIconAdressen[i]) == -1){
 parent.rightFrame.document.getElementById(gebIconUser[i][j]).innerHTML += "<img src='"+IconAdressen[i]+"'>"; 
}}}}

window.setInterval("gebOlSetIcons()", 1000);
Was mache ich falsch? Gibt es vllt. schon ein fertiges Script, welches ich bloß noch nicht gefunden habe?

Über jede Hilfe wäre ich dankbar.

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Geburtstag in OL

Ungelesener Beitrag von Maxs » 14.09.2012, 17:41

Hallo weltsieger, willkommen im Forum!

Deine Idee, die Scripts zu kombinieren, war schon einmal nicht schlecht! :wink:
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.
Script:Zeigen

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:

Code: Alles auswählen

<script type="text/javascript">
CODE
</script>

PS: Das Script erkennt auch, wenn du das Unterteilbare Onlineliste - Script von mir verwendest und funktioniert dann auch.
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

weltsieger
Beiträge: 18
Registriert: 15.06.2010, 00:12

Re: Geburtstag in OL

Ungelesener Beitrag von weltsieger » 09.10.2012, 00:04

Hallo Maxs,

vielen Dank für deine schnelle Antwort. Ich bin leider erst jetzt dazu gekommen, dein Script zu testen.

Alleine funktioniert dein Script super. Wir nutzen noch eine Reihe weiterer Scripte, unter anderem auch das von wktools.net angebotene nickMenü (http://wktools.net/hostedScripts/nickMenue.js).

Leider bekomm ich es irgendwie nicht hin, sowohl das nickMenü und dein Geburtstagsscript gleichzeitig zu nutzen. Alle anderen Scripte laufen ohne Probleme.

Hast du vllt. eine Idee, wie ich das hinbekommen könnte?

Vielen Dank für deine Hilfe.

Liebe Grüße,
weltsieger.

Benutzeravatar
Partyboy
Beiträge: 172
Registriert: 14.10.2011, 20:06
Wohnort: Duisburg
Kontaktdaten:

Re: Geburtstag in OL

Ungelesener Beitrag von Partyboy » 08.11.2012, 22:35

Hallo.Ich Hätte da mal wieder eine Frage und zwar habe ich jetzt Diesen code genommen und auf wk Tool geladen.

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://server1.webkicks.de/partydisco/replacer/romantic.gif";

tagesmeldung[11][8] = new Array("Schlumpf", "Monster");
tagesmeldung[9][14] = new Array("Nick", "Nick");
tagesmeldung[7][7] = new Array("Nick", "Nick", "Nick");
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+"' />"; 
    }
  }
}


So habe das jetzt geändert

Code: Alles auswählen

tagesmeldung[11][8] = new Array("Schlumpf", "Monster");
und das habe ich geändert

var gebIconAdresse = "http://server1.webkicks.de/partydisco/r ... mantic.gif";

So jetzt Funktioniert das noch nicht jetzt habe ich noch was gesehen weiß nicht wie man es macht mit dem Script

Code: Alles auswählen

<script type="text/javascript" src="URL-ZUM-SCRIPT"></script>

weltsieger
Beiträge: 18
Registriert: 15.06.2010, 00:12

Re: Geburtstag in OL

Ungelesener Beitrag von weltsieger » 14.11.2012, 11:17

Hallo Partyboy,

ich hab grade deinen Code genommen und bei mir testweise eingefügt. Er hat funktioniert!

Wie hast du den Code in wkTools eingefügt? Ich nutze das auch und habe im ScriptGenerator ein Script dafür angelegt, wo ich einfach genau deinen Code eingefügt habe (nur das datum angepasst, sonst nichts) und schon liefs.

Die Zeile:

Code: Alles auswählen

<script type="text/javascript" src="URL-ZUM-SCRIPT"></script>

Hast du irgendwelche andere Scripte eingebunden, die hier stören könnten? In meinem letzten Post frage ich ja auch, wie ich das mit dem nickMenü hinbekomme, weil diese beiden sich irgendwie behindern.

Liebe Grüße
weltsieger

Benutzeravatar
Partyboy
Beiträge: 172
Registriert: 14.10.2011, 20:06
Wohnort: Duisburg
Kontaktdaten:

Re: Geburtstag in OL

Ungelesener Beitrag von Partyboy » 14.11.2012, 13:09

Hallo.Weltsieger

Ich bin auf wktools gegangen dann auf Generatoren dan auf Scriptmanager dann bin ich nach unten auf
Neuen Script anlegen dan habe ich Diesen code eingefügt

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://server1.webkicks.de/partydisco/replacer/romantic.gif";

tagesmeldung[11][8] = new Array("Schlumpf", "Monster");
tagesmeldung[9][14] = new Array("Nick", "Nick");
tagesmeldung[7][7] = new Array("Nick", "Nick", "Nick");
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+"' />"; 
    }
  }
}
Nun weiß ich nicht was ich mit dem Script machen sol der muss ja auch noch Irgenwo hin der ist ja nicht umsonst da finde ich

Code: Alles auswählen

<script type="text/javascript" src="URL-ZUM-SCRIPT"></script>

weltsieger
Beiträge: 18
Registriert: 15.06.2010, 00:12

Re: Geburtstag in OL

Ungelesener Beitrag von weltsieger » 14.11.2012, 13:39

Hallo Partyboy,

diese Code-zeile ist, wenn du nicht über wktools gehst, sondern das script auf deinem eigenen webspace hostest.

ich gehe davn aus, dass du in der Ankündigung dein wktools-script eingebunden hast.

es ist klar, dass heute kein Bildchen angezeigt wird, da für das heutige Datum nichts eingestellt wurde. Ansonsten müsste alles stimmen.

Benutzeravatar
Partyboy
Beiträge: 172
Registriert: 14.10.2011, 20:06
Wohnort: Duisburg
Kontaktdaten:

Re: Geburtstag in OL

Ungelesener Beitrag von Partyboy » 14.11.2012, 18:09

Stimmt das was ich eingegeben habe vorne 11 und da hinter 14 also vorne ist der Monat wie ich weiß und da hinter das datum mehr brauche ich nicht ändern oder

Code: Alles auswählen

tagesmeldung[11][14] = new Array("Schlumpf", "Monster");

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://server1.webkicks.de/partydisco/replacer/romantic.gif";

tagesmeldung[11][14] = new Array("Schlumpf", "Monster");
tagesmeldung[9][14] = new Array("Nick", "Nick");
tagesmeldung[7][7] = new Array("Nick", "Nick", "Nick");
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+"' />"; 
    }
  }
}


Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Geburtstag in OL

Ungelesener Beitrag von Maxs » 14.11.2012, 18:30

weltsieger hat geschrieben:Hallo Maxs,

vielen Dank für deine schnelle Antwort. Ich bin leider erst jetzt dazu gekommen, dein Script zu testen.

Alleine funktioniert dein Script super. Wir nutzen noch eine Reihe weiterer Scripte, unter anderem auch das von wktools.net angebotene nickMenü (http://wktools.net/hostedScripts/nickMenue.js).

Leider bekomm ich es irgendwie nicht hin, sowohl das nickMenü und dein Geburtstagsscript gleichzeitig zu nutzen. Alle anderen Scripte laufen ohne Probleme.

Hast du vllt. eine Idee, wie ich das hinbekommen könnte?

Vielen Dank für deine Hilfe.

Liebe Grüße,
weltsieger.
Hallo weltsieger,

entschuldige, deine Antwort habe ich ganz verdrängt. :oops:
Was sich da jetzt genau beißt, weiß ich leider nicht. Könntest du mir vielleicht per PN deine Chatadresse geben, damit ich mir das direkt im Chat anschauen kann?


@ Partyboy: Ja, das Datum von heute muss genau so wie du es gemacht hast, angegeben werden.

Das:

Code: Alles auswählen

<script type="text/javascript" src="URL-ZUM-SCRIPT"></script>
brauchst du nicht, wenn du es über wktools machst. Wie weltsieger schon richtig gesagt hat.
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

Benutzeravatar
Partyboy
Beiträge: 172
Registriert: 14.10.2011, 20:06
Wohnort: Duisburg
Kontaktdaten:

Re: Geburtstag in OL

Ungelesener Beitrag von Partyboy » 14.11.2012, 20:08

Ich habe den code jetzt bei wktool hochgeladen.Und ich weiß nicht warum der kein Bild in der onlineliste anzeigt
verstehe ich leider nicht da muss sich doch irgenwas beißen kann ja wohl nicht sein.


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://server1.webkicks.de/partydisco/replacer/romantic.gif";

tagesmeldung[11][14] = new Array("Schlumpf", "Monster");
tagesmeldung[9][14] = new Array("Nick", "Nick");
tagesmeldung[7][7] = new Array("Nick", "Nick", "Nick");
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+"' />"; 
    }
  }
}

weltsieger
Beiträge: 18
Registriert: 15.06.2010, 00:12

Re: Geburtstag in OL

Ungelesener Beitrag von weltsieger » 15.11.2012, 03:41

ich hab jetzt nochmal 1:1 dein Script bei mir eingebaut (+1 Tag, weils ja schon der nächste Morgen ist ;)) - es läuft.

Welche Scripte hast du noch alles in deinem Chat? Ich habe grade eben mal deine wktools.js angeguckt, dort habe ich leider das Geburtstagsscipt nicht sehen können. Hast du es wieder rausgenommen?

Kannst du vllt. mal zum Test alle anderen Scripte rausschmeißen/deaktivieren?

Benutzeravatar
Partyboy
Beiträge: 172
Registriert: 14.10.2011, 20:06
Wohnort: Duisburg
Kontaktdaten:

Re: Geburtstag in OL

Ungelesener Beitrag von Partyboy » 15.11.2012, 14:43

Hallo,Weltsieger

Ich kann die Script leider nicht rausschmeißen sonst läuft im radio chat nichts mehr die müssen alle drin bleiben

Ich habe den Srcipt wieder bei wktool rausgenommen,und jetzt habe ich den wieder reingemacht der steht unter
Geburtstag in OL

der Script ist jetzt drin aber geht immer noch nicht und ich werde auch keine Script bei wktool löschen die bleiben alle da so wie die sind ich muss genau wissen welcher Script sich da stört wenn ich das genau weiß kann ich den ja raus nehmen aber so weiß ich das leider nicht und werde auch noch kein Script raus nehmen.

Ich habe jetzt ein test chat angelegt und das da noch mal ausprobiert und da klappt das super jetzt weiß ich das im test chat das läuft aber nur im mein radio chat da läuft das nicht

Mit freundlichen Grüßen

Markus

Maxs
Moderator
Beiträge: 551
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Geburtstag in OL

Ungelesener Beitrag von Maxs » 15.11.2012, 16:26

Partyboy, ich kann dir nur folgendes empfehlen: Deaktiviere alle Scripts außer das Geburtstagscript und aktiviere sie einzeln wieder, um zu sehen, an welchem Script es liegt. Anders geht es nicht wirklich (wäre viel zu aufwendig).
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

Benutzeravatar
Partyboy
Beiträge: 172
Registriert: 14.10.2011, 20:06
Wohnort: Duisburg
Kontaktdaten:

Re: Geburtstag in OL

Ungelesener Beitrag von Partyboy » 15.11.2012, 16:48

Hallo Maxs

da dran habe ich schon schon gedacht das man Sie Deaktivieren kann und so werde ich es machen dann weiß ich genau wo dran das liegt aber das werde ich am we machen da haben ich mehr zeit.

Mit freundlichen Grüßen

Markus

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 39 Gäste