Re: [FINAL] AJAX Userinfo 1.0.3
Verfasst: 02.04.2009 10:12
was?woitl hat geschrieben:Sorry, könnte mir das jemand auf deutsch erklären bitte!?
phpBB.de - Die deutsche phpBB-Community
https://www.phpbb.de/community/
was?woitl hat geschrieben:Sorry, könnte mir das jemand auf deutsch erklären bitte!?
...Leinad3000 hat geschrieben:SubSilver bockt bei mir genauso.
Außerdem wenn man ganz schnell über 2 Namen fährt (z.B. bei "Letzer Beitrag" einfach die Maus schnell nach unten bewegen) bleibt das Profil offen und lässt sich nicht mehr schließen.
Ansonsten super Mod, vielleicht sollte man noch einstellen können, ob der User das PopUp haben möchte oder nicht, viele User könnte das stören.
Macht aber auch Probleme.franki hat geschrieben:Info
Nach update auf phpbb3.0.5 funktioniert die Mod nicht mehr und die Codezeilen in der functions_content.php sind nicht
mehr zu finden.
Hab jetzt die Anpassung an 3.0.5 gefunden
http://www.phpbb.com/community/viewtopi ... 0#p9800625
und es funktioniert.
Code: Alles auswählen
if (($mode == 'full' && !$profile_url) || $mode == 'no_profile')
{
return str_replace(array('{USERNAME_COLOUR}', '{USERNAME}'), array($username_colour, $username), (!$username_colour) ? $_profile_cache['tpl_noprofile'] : $_profile_cache['tpl_noprofile_colour']);
}
return str_replace(array('{PROFILE_URL}', '{USERNAME_COLOUR}', '{USERNAME}'), array($profile_url, $username_colour, $username), (!$username_colour) ? $_profile_cache['tpl_profile'] : $_profile_cache['tpl_profile_colour']);
Code: Alles auswählen
$_uinfo_profile = '<a href="{PROFILE_URL}" onmouseover="show_popup(' . $user_id . ')" onmouseout="close_popup()">{USERNAME}</a>';
$_uinfo_profile_colour = '<a href="{PROFILE_URL}" style="color: {USERNAME_COLOUR};" class="username-coloured" onmouseover="show_popup(' . $user_id . ')" onmouseout="close_popup()">{USERNAME}</a>';
if (($mode == 'full' && !$profile_url) || $mode == 'no_profile')
{
return str_replace(array('{USERNAME_COLOUR}', '{USERNAME}'), array($username_colour, $username), (!$username_colour) ? $_uinfo_profile : $_uinfo_profile_colour);
}
return str_replace(array('{PROFILE_URL}', '{USERNAME_COLOUR}', '{USERNAME}'), array($profile_url, $username_colour, $username), (!$username_colour) ? $_uinfo_profile : $_uinfo_profile_colour);
Code: Alles auswählen
<script type="text/javascript">
// <![CDATA[
// display the popup
function show_popup(UserID) {
close_popup()
sendRequest(UserID)
document.getElementById('popup').style.display='block';
}
// hide the popup
function close_popup() {
document.getElementById('popup').style.display='none';
document.getElementById('ajax_username').innerHTML = '';
document.getElementById('ajax_registert').innerHTML = '';
document.getElementById('ajax_posts').innerHTML = '';
document.getElementById('ajax_from').innerHTML = '';
document.getElementById('ajax_last_visit').innerHTML = '';
document.getElementById('ajax_avatar').innerHTML = '<img src="{T_THEME_PATH}/images/loading.gif" alt="" />';
document.getElementById('ajax_rank').innerHTML = '';
document.getElementById('ajax_website').innerHTML = '';
}
// Make the request
function createRequestObject() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
} else {
ro = new XMLHttpRequest();
}
return ro;
}
var http_getuser = createRequestObject();
function sendRequest(UserID) {
http_getuser.open('get', '{ROOT_PATH}includes/ajax_userinfo.php?userid='+UserID);
http_getuser.onreadystatechange = handleResponse;
http_getuser.send(null);
}
// fill in the response
function handleResponse() {
if(http_getuser.readyState == 4){
var xmlDoc = http_getuser.responseXML;
document.getElementById('ajax_username').innerHTML = xmlDoc.getElementsByTagName('username')[0].firstChild.nodeValue;
document.getElementById('ajax_registert').innerHTML = xmlDoc.getElementsByTagName('regdate')[0].firstChild.nodeValue;
document.getElementById('ajax_posts').innerHTML = xmlDoc.getElementsByTagName('posts')[0].firstChild.nodeValue;
document.getElementById('ajax_website').innerHTML = xmlDoc.getElementsByTagName('website')[0].firstChild.nodeValue;
document.getElementById('ajax_from').innerHTML = xmlDoc.getElementsByTagName('from')[0].firstChild.nodeValue;
document.getElementById('ajax_last_visit').innerHTML = xmlDoc.getElementsByTagName('lastvisit')[0].firstChild.nodeValue;
document.getElementById('ajax_rank').innerHTML = xmlDoc.getElementsByTagName('rank')[0].firstChild.nodeValue;
document.getElementById('ajax_avatar').innerHTML = xmlDoc.getElementsByTagName('avatar')[0].firstChild.nodeValue;
}
}
// set popup to mouse possition
document.onmousemove = set_div_to_mouse;
function set_div_to_mouse(e) {
var docX, docY;
if(e) {
if(typeof(e.pageX) == 'number') { docX = e.pageX; docY = e.pageY;}
else {docX = e.clientX; docY = e.clientY;}
} else {
e = window.event;
docX = e.clientX; docY = e.clientY;
if(document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
docX += document.documentElement.scrollLeft; docY += document.documentElement.scrollTop;
}
else if(document.body && (document.body.scrollTop || document.body.scrollLeft)) {
docX += document.body.scrollLeft; docY += document.body.scrollTop;
}
}
if (docX > document.body.offsetWidth - 400) {
document.getElementById('popup').style.left = (docX - 350) + "px";
} else {
document.getElementById('popup').style.left = (docX - 5) + "px";
}
document.getElementById('popup').style.top = (docY + 30) + "px";
}
// ]]>
</script>
<div class="forabg" id="popup" style="display: none;">
<div class="inner">
<span class="corners-top"><span></span></span>
<ul class="topiclist fullwidth">
<li class="header"><dl><dt>{L_USERS} {L_INFORMATION}</dt></dl></li>
</ul>
<ul class="topiclist forums">
<li><dl>
<dd style="width:100%">
<div id="ajax_avatar"></div>
<strong>{L_USERNAME}:</strong> <span id="ajax_username"></span><br />
<strong>{L_TOTAL_POSTS}:</strong> <span id="ajax_posts"></span><br />
<strong>{L_SORT_RANK}:</strong> <span id="ajax_rank"></span><br />
<strong>{L_JOINED}:</strong> <span id="ajax_registert"></span><br />
<strong>{L_LAST_VISIT}:</strong> <span id="ajax_last_visit"></span><br />
<strong>{L_LOCATION}:</strong> <span id="ajax_from"></span><br />
<strong>{L_WEBSITE}:</strong> <span id="ajax_website"></span>
<br style="clear: both;" />
</dd>
</dl></li>
</ul>
<span class="corners-bottom"><span></span></span>
</div>
</div>
Code: Alles auswählen
<script type="text/javascript">
// <![CDATA[
// display the popup
function show_popup(UserID)
{
close_popup()
sendRequest(UserID)
document.getElementById('popup').style.display='block';
}
// hide the popup
function close_popup()
{
document.getElementById('popup').style.display='none';
document.getElementById('ajax_username').innerHTML = '';
document.getElementById('ajax_registert').innerHTML = '';
document.getElementById('ajax_posts').innerHTML = '';
document.getElementById('ajax_from').innerHTML = '';
document.getElementById('ajax_last_visit').innerHTML = '';
document.getElementById('ajax_avatar').innerHTML = '<img src="{T_THEME_PATH}/images/loading.gif" alt="" />';
document.getElementById('ajax_rank').innerHTML = '';
document.getElementById('ajax_website').innerHTML = '';
}
// Make the request
function createRequestObject() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
} else {
ro = new XMLHttpRequest();
}
return ro;
}
var http_getuser = createRequestObject();
function sendRequest(UserID)
{
http_getuser.open('get', '{ROOT_PATH}includes/ajax_userinfo.php?userid='+UserID);
http_getuser.onreadystatechange = handleResponse;
http_getuser.send(null);
}
// fill in the response
function handleResponse() {
if(http_getuser.readyState == 4){
var xmlDoc = http_getuser.responseXML;
document.getElementById('ajax_username').innerHTML = xmlDoc.getElementsByTagName('username')[0].firstChild.nodeValue;
document.getElementById('ajax_registert').innerHTML = xmlDoc.getElementsByTagName('regdate')[0].firstChild.nodeValue;
document.getElementById('ajax_posts').innerHTML = xmlDoc.getElementsByTagName('posts')[0].firstChild.nodeValue;
document.getElementById('ajax_website').innerHTML = xmlDoc.getElementsByTagName('website')[0].firstChild.nodeValue;
document.getElementById('ajax_from').innerHTML = xmlDoc.getElementsByTagName('from')[0].firstChild.nodeValue;
document.getElementById('ajax_last_visit').innerHTML = xmlDoc.getElementsByTagName('lastvisit')[0].firstChild.nodeValue;
document.getElementById('ajax_rank').innerHTML = xmlDoc.getElementsByTagName('rank')[0].firstChild.nodeValue;
document.getElementById('ajax_avatar').innerHTML = xmlDoc.getElementsByTagName('avatar')[0].firstChild.nodeValue;
}
}
// set popup to mouse possition
document.onmousemove = set_div_to_mouse;
function set_div_to_mouse(e)
{
var docX, docY;
if(e)
{
if(typeof(e.pageX) == 'number') { docX = e.pageX; docY = e.pageY;}
else {docX = e.clientX; docY = e.clientY;}
}
else
{
e = window.event;
docX = e.clientX; docY = e.clientY;
if(document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft))
{
docX += document.documentElement.scrollLeft; docY += document.documentElement.scrollTop;
}
else if(document.body && (document.body.scrollTop || document.body.scrollLeft))
{
docX += document.body.scrollLeft; docY += document.body.scrollTop;
}
}
if (docX > document.body.offsetWidth - 400)
{
document.getElementById('popup').style.left = (docX - 350) + "px";
}
else
{
document.getElementById('popup').style.left = (docX - 5) + "px";
}
document.getElementById('popup').style.top = (docY + 30) + "px";
}
// ]]>
</script>
<div id="popup" style="display: none;">
<table class="tablebg" width="100%" cellspacing="1">
<tr>
<th>{L_USERS} {L_INFORMATION}</th>
</tr>
<tr>
<td class="row1">
<div class="box1" style="width:125px; float: left;" align="center">
<span id="ajax_avatar"></span>
</div>
<div class="box1" style="margin-left: 125px;">
<strong>{L_USERNAME}:</strong> <span id="ajax_username"></span><br />
<strong>{L_TOTAL_POSTS}:</strong> <span id="ajax_posts"></span><br />
<strong>{L_SORT_RANK}:</strong> <span id="ajax_rank"></span><br />
<strong>{L_JOINED}:</strong> <span id="ajax_registert"></span><br />
<strong>{L_LAST_VISIT}:</strong> <span id="ajax_last_visit"></span><br />
<strong>{L_LOCATION}:</strong> <span id="ajax_from"></span><br />
<strong>{L_WEBSITE}:</strong> <span id="ajax_website"></span>
</div>
</td>
</tr>
</table>
</div>
Code: Alles auswählen
<style type="text/css">
/* Ajax User-Info Popups */
#popup {z-index: 60; position: absolute; display: none; font-size: 10px; width: 350px;}
#ajax_avatar {width:125px; float: left; overflow: hidden; height: 125px; text-align: center;}
</style>