RE: MouseOver = Infobox erscheint - arabiczone - 01.02.2007
Diese Variable soll ja ständig variieren, wie mach ich das denn?
RE: MouseOver = Infobox erscheint - Michael - 01.02.2007
Da du schon andere Dinge über den Benutzer anzeigen lässt, sollte die ID des Benutzers ja bereits in einer Variable stecken. Oder hast du das noch gar nicht? Welcher Benutzer soll den angezeigt werden?
RE: MouseOver = Infobox erscheint - arabiczone - 01.02.2007
Also bei mir im Quelltext der portal.php sieht es im Moment so aus. Ich wollte ja die 5 neuesten Mitglieder anzeigen lassen. Zudem wollte ich dann wenn man mit der Maus über den Link fährt, dass ein Tooltip zum User aufgeht.
Nun wollte ich ja erst versuchen die ganzen Daten ohne Tooltip anzeigen zu lassen. Der Username und die Beitragsanzahl funktionieren bereits. Beim Rest liegt halt das Problem.
PHP-Code: $newmember = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"; $query = $db->query("SELECT username, uid, avatar, postnum FROM ".TABLE_PREFIX."users ORDER BY regdate DESC LIMIT 0,5"); while ($user = $db->fetch_array($query)) { $newmember .= "<tr><td><a href=\"member.php?action=profile&uid=".$user['uid']."\">".$user['username']."</a> (".$user['postnum'].")<br /><br /></td></tr>\n"; $newmember .= "<tr><td><img src=\"".$user['avatar']."\" border=0 width=0 height=0><br /></td></tr>\n"; } $newmember .= "</table>\n";
$query = $db->query("SELECT fid3 FROM ".TABLE_PREFIX."userfields WHERE ufid = '".BENUTZER_ID."'"); $geschlecht = $db->fetch_array($query); $benutzergeschlecht = $geschlecht['fid3'];
Also wir sind ja jetzt gerade beim Geschlecht. Nur weiß ich jetzt nicht wie ich die ID des Users angeben soll. Kann ich da etwas vom vorigen Teil verwenden, oder wie mache ich das am Besten?
RE: MouseOver = Infobox erscheint - Michael - 01.02.2007
Versuchs mal so:
PHP-Code: $newmember = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"; $query = $db->query("SELECT username, uid, avatar, postnum FROM ".TABLE_PREFIX."users ORDER BY regdate DESC LIMIT 0,5"); while ($user = $db->fetch_array($query)) { $query2 = $db->query("SELECT fid3 FROM ".TABLE_PREFIX."userfields WHERE ufid = '".$user['uid']."'"); $geschlecht = $db->fetch_array($query2); $newmember .= "<tr><td><a href=\"member.php?action=profile&uid=".$user['uid']."\">".$user['username']."</a> (".$geschlecht['fid3'].") (".$user['postnum'].")<br /><br /></td></tr>\n"; $newmember .= "<tr><td><img src=\"".$user['avatar']."\" border=0 width=0 height=0><br /></td></tr>\n"; } $newmember .= "</table>\n";
RE: MouseOver = Infobox erscheint - arabiczone - 01.02.2007
Wow das hat super geklappt. Ich konnte nun auch noch andere Einstellung hinzufügen. Nun wollte ich diesen Tooltip dort einbauen, und dann fiel mir auf, dass ich ein Problem damit habe, dass es nicht in php, sondern in Java-Script und HTML geschrieben ist. Und nun stehe ich vor der fast letzten großen Hürde. Wie kann man diese beiden Sprachelemente noch mit einbauen?
Das Beispiel-Skript sieht so aus:
PHP-Code: /* Hier beginnt das Skript für den Tooltip für die neuen User */ $query = $db->query("SELECT username, uid, avatar, postnum, usergroup FROM ".TABLE_PREFIX."users ORDER BY regdate DESC LIMIT 0,5"); while ($user = $db->fetch_array($query)) { $query2 = $db->query("SELECT fid3 FROM ".TABLE_PREFIX."userfields WHERE ufid = '".$user['uid']."'"); $geschlecht = $db->fetch_array($query2); $query3 = $db->query("SELECT title, gid FROM ".TABLE_PREFIX."usergroups WHERE gid = '".$user['usergroup']."'"); $usergruppe = $db->fetch_array($query3);
<style type="text/css"> .tooltip { position: absolute; display: none; border-width: 1px; border-style: solid; border-color: #ccc; -moz-opacity: 0.9; filter: alpha(Opacity=90); } .tooltip .ueberschrift { FONT: 16px , verdana, arial, helvetica, sans-serif; font-weight: bold; color: #666666; } .tooltip .content td { color: #666666; FONT: 11px , verdana, arial, helvetica, sans-serif; } </style>
<script> <!-- wmtt = null; document.onmousemove = updateWMTT; function updateWMTT(e) { x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX; y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY; if (wmtt != null) { wmtt.style.left = (x + 20) + "px"; wmtt.style.top = (y + 20) + "px"; } } function showWMTT(id) { wmtt = document.getElementById(id); wmtt.style.display = "block" } function hideWMTT() { wmtt.style.display = "none"; } //--> </script>
<div class="tooltip" id="1"> <table border=0 width=250 height=140 background="bg.png"><tr> <td height=15 colspan=2><div class="ueberschrift"><img src=\"images/".$geschlecht['fid3'].".gif\" border=0> ".$user['username']."</div></td></tr> </tr><tr> <td colspan=2 height=1><hr></td> </tr><tr> <td width=50% valign=top><div class="content"> <table><tr> <td width=50%>Beiträge: </td><td align=right>".$user['postnum']."</td> </tr><tr> <td width=50%>Gruppe:</td><td align=right>".$usergruppe['title']."</td> </tr><tr> <td colspan=2 height=10></td> </tr></table> </div></td> <td valign="top"><img src=\"".$user['avatar']."\"></td> </tr></table> </div>
/* Hier endet das Skript */
RE: MouseOver = Infobox erscheint - Mak - 01.02.2007
Wo genau steht dieser Code jetzt drin? In der portal.php?
RE: MouseOver = Infobox erscheint - arabiczone - 01.02.2007
Der Code steht so noch nicht in der portal.php, da er noch nicht ganz korrekt ist. Ich hoffe, dass mir jemand helfen kann, diesen auszubessern.
RE: MouseOver = Infobox erscheint - Michael - 01.02.2007
Diesen Teil kannst du ins Template headerinclude einfügen bzw. ins Template portal, je nachdem wo du ihn benötigst:
Code: <style type="text/css">
.tooltip {
position: absolute;
display: none;
border-width: 1px;
border-style: solid;
border-color: #ccc;
-moz-opacity: 0.9;
filter: alpha(Opacity=90);
}
.tooltip .ueberschrift {
FONT: 16px , verdana, arial, helvetica, sans-serif;
font-weight: bold;
color: #666666;
}
.tooltip .content td {
color: #666666;
FONT: 11px , verdana, arial, helvetica, sans-serif;
}
</style>
<script>
<!--
wmtt = null;
document.onmousemove = updateWMTT;
function updateWMTT(e) {
x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY;
if (wmtt != null) {
wmtt.style.left = (x + 20) + "px";
wmtt.style.top = (y + 20) + "px";
}
}
function showWMTT(id) {
wmtt = document.getElementById(id);
wmtt.style.display = "block"
}
function hideWMTT() {
wmtt.style.display = "none";
}
//-->
</script>
Es wäre auch möglich den CSS-Code in die Box für zusätzliches CSS in den Einstellungen des Themes einzufügen, da kannst du entscheiden was dir lieber ist.
Den HTML-Code musst du im Template unterbringen, über das die Ausgabe erfolgen soll.
RE: MouseOver = Infobox erscheint - arabiczone - 01.02.2007
Ich habe es mal so versucht, aber es hat sich nichts getan
Ich habe auch mal folgendes Skript ausprobiert:
PHP-Code: $newmember = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"; $query = $db->query("SELECT username, uid, avatar, postnum, usergroup FROM ".TABLE_PREFIX."users ORDER BY regdate DESC LIMIT 0,5"); while ($user = $db->fetch_array($query)) { $query2 = $db->query("SELECT fid3 FROM ".TABLE_PREFIX."userfields WHERE ufid = '".$user['uid']."'"); $geschlecht = $db->fetch_array($query2); $query3 = $db->query("SELECT title, gid FROM ".TABLE_PREFIX."usergroups WHERE gid = '".$user['usergroup']."'"); $usergruppe = $db->fetch_array($query3); $newmember .= "<tr><td><a href=\"member.php?action=profile&uid=".$user['uid']."\" onMouseOver=\"showWMTT('1')\" onMouseOut=\"hideWMTT()\"><img src=\"images/".$geschlecht['fid3'].".gif\" border=0> ".$user['username']."</a> (".$user['postnum'].")<br /><br /></td></tr>\n"; $newmember .= "<tr><td><img src=\"".$user['avatar']."\" border=0 width=0 height=0><br /></td></tr>\n"; } $newmember .= "</table>\n";
echo;" <html> <head> <style type=\"text/css\"> .tooltip { position: absolute; display: none; border-width: 1px; border-style: solid; border-color: #ccc; -moz-opacity: 0.9; filter: alpha(Opacity=90); } .tooltip .ueberschrift { FONT: 16px , verdana, arial, helvetica, sans-serif; font-weight: bold; color: #666666; } .tooltip .content td { color: #666666; FONT: 11px , verdana, arial, helvetica, sans-serif; } </style>
<script> <!-- wmtt = null; document.onmousemove = updateWMTT; function updateWMTT(e) { x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX; y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY; if (wmtt != null) { wmtt.style.left = (x + 20) + \"px\"; wmtt.style.top = (y + 20) + \"px\"; } } function showWMTT(id) { wmtt = document.getElementById(id); wmtt.style.display = \"block\" } function hideWMTT() { wmtt.style.display = \"none\"; } //--> </script> </head> <body> <div class=\"tooltip\" id=\"1\"> <table border=0 width=250 height=140 background=\"bg.png\"><tr> <td height=15 colspan=2><div class=\"ueberschrift\"><img src=\"images".$geschlecht['fid3'].".gif\" border=0> ".$user['username']."</div></td></tr> </tr><tr> <td colspan=2 height=1><hr></td> </tr><tr> <td width=50% valign=top><div class=\"content\"> <table><tr> <td width=50%>Beiträge: </td><td align=right>".$user['postnum']."</td> </tr><tr> <td width=50%>Gruppe:</td><td align=right>".$usergruppe['title']."</td> </tr><tr> <td colspan=2 height=10></td> </tr></table> </div></td> <td valign=\"top\"><img src=\"".$user['avatar']."\"></td> </tr></table> </div> </body> </html> ";
Leider hat sich auch hier nicht viel getan. Allerdings kam keine Fehlermeldung, wie zuvor, und da habe ich mal die Hoffnung gehabt, ob sich dieses Skript noch etwas anpassen lässt, damit es dann funktioniert. Könnte sich das jemand mal angucken?
RE: MouseOver = Infobox erscheint - Mak - 02.02.2007
Hast du gemacht, was Michael oben geschrieben hat?
|