Seite 21 von 27

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 02.04.2009 10:12
von Daryl van Horne
woitl hat geschrieben:Sorry, könnte mir das jemand auf deutsch erklären bitte!?
was?

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 04.04.2009 23:21
von Leinad3000
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.
...

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 30.04.2009 18:17
von chicko
Ich habe beim Öffnen bzw. bei der Anzeige des Popups 4 kleine weiße Ecken. Wie/Wo änder ich dieses ab?

Style ist Prosilver Special Edition (phpBB3)

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 25.06.2009 14:37
von franki
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.

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 25.06.2009 14:56
von ups
ah!!??

funktioniert er ??
auf phpbb.com seh ich grad das der mod dort schon im februar 09 aktualisiert wurde, hier leider nicht mehr seit dez 08.

schade

ups

ps: werd mal schauen ob ich ihn wieder einbau, mal schauen.....

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 25.07.2009 16:59
von kranio
Kommt dann demnächst eine neue Version heraus, in der das gefixt ist?

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 26.07.2009 11:55
von ups
keine ahnung... hier geschied nix mehr groß

schau mal hier http://www.phpbb.com/community/viewtopi ... 0&t=549021

ups

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 14.09.2009 02:08
von archivar
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.
Macht aber auch Probleme. :oops:
Schau mal hier: http://www.phpbb.de/community/viewtopic ... 4&t=196492

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 18.01.2010 15:59
von Phoenix
gibt es eine version für phpbb306 ?
hab nämlich die code stellen nicht gefunden daher frage ich

Re: [FINAL] AJAX Userinfo 1.0.3

Verfasst: 22.01.2010 23:44
von archivar
Die AJAX Userinfo v. 1.0.3 macht bei mir leider Probleme.
Aber dafür läuft bei mir im phpBB v. 3.0.6 und im board3_Portal_105 eine zusammengestoppelte Variante von mod_AJAX_userinfo recht stabil.
Ich habe für die Styles die install.xml von der v. 1.0.0 genommen.klick :D mich Für die root/includes/functions_content.php habe ich diese Anleitung genommen:
finde in root/includes/functions_content.php:

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']);
und ersetze mit:

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);
Die Datei root/styles/prosilver/template/ajax_userinfo.html sieht bei mir so aus:

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>
Die Datei root/styles/subsilver2/template/ajax_userinfo.html sieht bei mir so aus:

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>
Bis auf die hier geänderten Dateien brauchst Du nur der install.xml der mod_AJAX_userinfo v. 1.0.0 folgen und den Cache leeren.
Die Größe des Avartars kannst Du im einzufügenden Code in der overal_header.html:

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>
und in der jeweiligen ajax_userinfo.html anpassen.
Vor dem Ändern die entsprechenden Dateien sichern!