[FINAL] AJAX Userinfo 1.0.4

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Daryl van Horne
Mitglied
Beiträge: 936
Registriert: 08.07.2008 01:25
Kontaktdaten:

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag von Daryl van Horne »

woitl hat geschrieben:Sorry, könnte mir das jemand auf deutsch erklären bitte!?
was?
Fettflecken halten länger, wenn man sie ab und zu mit Butter einreibt. :D http://www.00493088535469.de/
Leinad3000
Mitglied
Beiträge: 200
Registriert: 02.09.2007 14:57
Kontaktdaten:

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag 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.
...
eAgora.de der "elektronische Diskussionsplatz" - hier wird über absolut alles diskutiert!
chicko
Mitglied
Beiträge: 31
Registriert: 23.05.2008 10:52

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag 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)
Benutzeravatar
franki
Ehemaliges Teammitglied
Beiträge: 2823
Registriert: 21.10.2007 14:02
Wohnort: Sonsbeck
Kontaktdaten:

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag 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.
LG Franki
Benutzeravatar
ups
Mitglied
Beiträge: 990
Registriert: 06.12.2006 14:57
Wohnort: Basel/Freiburg Land

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag 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.....
[FINAL] Impressum Dinseprinz 0.1.8 http://www.phpbb.de/community/viewtopic ... 52&start=0
[Final] Linkverzeichnis Mod Phpbb Annuaire v0.2.1 http://www.phpbb.de/community/viewtopic ... 17&start=0
kranio
Mitglied
Beiträge: 44
Registriert: 21.07.2005 21:05
Wohnort: Rhein-Neckar-Kreis
Kontaktdaten:

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag von kranio »

Kommt dann demnächst eine neue Version heraus, in der das gefixt ist?
Benutzeravatar
ups
Mitglied
Beiträge: 990
Registriert: 06.12.2006 14:57
Wohnort: Basel/Freiburg Land

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag von ups »

keine ahnung... hier geschied nix mehr groß

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

ups
[FINAL] Impressum Dinseprinz 0.1.8 http://www.phpbb.de/community/viewtopic ... 52&start=0
[Final] Linkverzeichnis Mod Phpbb Annuaire v0.2.1 http://www.phpbb.de/community/viewtopic ... 17&start=0
Benutzeravatar
archivar
Mitglied
Beiträge: 572
Registriert: 07.08.2008 08:25
Wohnort: Deutschland

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag 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
V. G. archivar
Phoenix
Mitglied
Beiträge: 129
Registriert: 20.06.2009 20:50

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag von Phoenix »

gibt es eine version für phpbb306 ?
hab nämlich die code stellen nicht gefunden daher frage ich
Benutzeravatar
archivar
Mitglied
Beiträge: 572
Registriert: 07.08.2008 08:25
Wohnort: Deutschland

Re: [FINAL] AJAX Userinfo 1.0.3

Beitrag 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!
V. G. archivar
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“