Seite 2 von 3

Verfasst: 23.12.2007 12:20
von Max
Dann will ich mal nicht so sein.....


Vor einiger Zeit habe ich mir mal eine vernünftige Ausgabe der Anzahl der User sowie der Namen, die im Chat sind zusammengebaut, die funktioniert und bringt alle notwendigen Daten.

Code: Alles auswählen

portal.php

suche:

//
// Generate the page
//
$template->pparse('body');



davor einfügen:


// X7 Who is online Anfang
// x7chat2_ gegen den eigenen Präfix tauschen, falls bei Installation geändert
$exptime = time()-30;
$sql = "SELECT DISTINCT id, name FROM ".x7chat2_online." 
	WHERE invisible<>'1' AND time>'$exptime' 
	ORDER BY name ASC";
if( $result = $db->sql_query( $sql ) )
{
	$num_users_x7 = $db->sql_numrows( $result );
	$users_x7 = '';
	while( $row = $db->sql_fetchrow( $result ) )
	{
	$users_x7 .= $row[ 'name' ] . ", ";
	}
	$users_x7 = rtrim( $users_x7, ", " );
	$db->sql_freeresult( $result );
}
 $template->assign_vars(array( 
    'L_X7_LIST'   => $users_x7));
// X7 Who is online Ende



portal_body.tpl

suche eine passende Tabelle und füge folgenden Code ein (ggf. anpassen)

<tr>
<td class="row2"><span class="genmed"><a href="{U_X7CHAT}">{L_X7COUNT}</a><br />{L_X7_LIST}</span></td>
</tr>
<tr>
<td class="row1">
<a href="{U_X7CHAT}">Chat betreten</a>
</td>
</tr>



includes/page_header.php


suche:

	$l_online_users .= sprintf($l_g_user_s, $guests_online);
}


danach einfügen:

$chat_link = append_sid('X7-ORDNER/index.php')."\" onclick=\"window.open('".append_sid('X7-ORDNER/index.php')."', '_x7chatpop', 'WIDTH=720,HEIGHT=580,resizable=yes,scrollbars=yes');return false;\" target=\"_x7chatpop\" onLoad=\"document.x7chat.focus();";


suche:

$template->assign_vars(array(
	'SITENAME' => $board_config['sitename'],


DAVOR einfügen:

// X7 Counter Anfang
// x7chat2_ gegen den eigenen Präfix tauschen, falls bei Installation geändert
  $exptime = time()-30;
	$sql = "SELECT COUNT(id) as total_chatter	FROM " .x7chat2_online." WHERE invisible<>'1' AND time>'$exptime'";
  if ($result = $db->sql_query($sql))
  {
		$template->assign_block_vars('switch_x7_view', array());
	}
	$countrow = $db->sql_fetchrow($result);
  $x7_on = ('<b>(' . $countrow['total_chatter'] . ')</b>' . '&nbsp;' . 'User im Chat:');
  $x7_on_h = ('Chat&nbsp;/&nbsp;<b>(' . $countrow['total_chatter'] . ')</b>' . '&nbsp;' . 'Besucher');
 $template->assign_vars(array( 
    'L_H_X7COUNT'   => $x7_on_h, 
    'L_X7COUNT'   => $x7_on));
// X7 Counter Ende 


suche:

'L_USERNAME' => $lang['Username'],


danach einfügen:

'U_X7CHAT' => $chat_link,



und jetzt ist in jeder *.tpl das hier verfügbar:

{L_H_X7COUNT}

und

{L_X7COUNT}


und:

{U_X7CHAT}



denkbar wäre z.B.:

<a href="{U_X7CHAT}" title="CHAT">•&nbsp;{L_H_X7COUNT}</a>

das ergibt:

Chat / ( xx ) Besucher 

und ist als Link klickbar

Viel Spaß damit ;-)



Gruß Max



EDIT = kleine Code-Korrektur

Verfasst: 23.12.2007 13:51
von powersilie
Hallo Max!

Erst mal vieeeelen dank dafür, das ist ja ein Weihnachtsgeschenk!

Muß nur in der portal.php was ändern, ich habe diese Stelle nicht.

Aaaber - bei mir funktioniert der Link {U_X7CHAT} nicht, komme immer auf die index.php meines Forums.

Und in der includes/page_header.php ist er ja als Popup drin, was ich auch nicht möchte, weil der x7 ja eine eigene index.php hat und ich möchte, daß diese Seite öffnet und kein Popup.

Hm, wie stelle ich das an??

Ich versprechs, ich quäle Dich nie wieder :wink:

Danke Dir und
lg
Powersilie

Verfasst: 23.12.2007 14:20
von Max
powersilie hat geschrieben: - bei mir funktioniert der Link {U_X7CHAT} nicht, komme immer auf die index.php meines Forums.
Da hatte ich noch den etwas mehr auf meine Bedürfnisse spezialisierten Code nicht ganz offen angepasst.
Das ist oben nun korrigiert. Nun muss der Bereich X7-ORDNER auf den Namen des Ordners mit dem X7 angepasst werden (zwei Mal in der Zeile)
powersilie hat geschrieben: Und in der includes/page_header.php ist er ja als Popup drin, was ich auch nicht möchte, weil der x7 ja eine eigene index.php hat und ich möchte, daß diese Seite öffnet und kein Popup.

Wenn es kein Popup sein soll, dann mach das:

Diese Zeile muss gar nicht in die page_header.php

Code: Alles auswählen

$chat_link = append_sid('X7-ORDNER/index.php')."" onclick="window.open('".append_sid('X7-ORDNER/index.php')."', '_x7chatpop', 'WIDTH=720,HEIGHT=580,resizable=yes,scrollbars=yes');return false;" target="_x7chatpop" onLoad="document.x7chat.focus();"; 

dann muss statt:
'U_X7CHAT' => $chat_link,



'U_X7CHAT' => "X7-ORDNER/index.php",

in die page_header.php
(hier auch wieder X7-ORDNER dem selbst verwendeten Pfad anpassen)



Wegen Deiner portal.php musst Du dann einfach einen anderen Platz suchen, das ist aber eigentlich nicht besonders dramatisch ;-)
Oder Du packst den Code einfach mit in die page_header.php, gleich unter den Code für den Counter vom X7.


Gruß Max

Verfasst: 23.12.2007 14:44
von powersilie
Lieber Max!

Ich danke Dir herzlich, das war die ERSTE brauchbare Lösung, die für den X7 funktioniert, dafür kriegst ein großes Weihnachtsbussi :D

Klappt alles. Es wird die Anzahl der Chatter angezeigt, aber nach dem Doppelpunkt keine Namen.
Ist das OK so, oder hab ich wieder Mist gebaut??

Liebe Grüße
Powersilie

Verfasst: 23.12.2007 17:09
von Max
powersilie hat geschrieben:Klappt alles. Es wird die Anzahl der Chatter angezeigt, aber nach dem Doppelpunkt keine Namen.
Für die Namen ist das hier zuständig:

Code: Alles auswählen

// X7 Who is online Anfang 
// x7chat2_ gegen den eigenen Präfix tauschen, falls bei Installation geändert 
$exptime = time()-30; 
$sql = "SELECT DISTINCT id, name FROM ".x7chat2_online." 
   WHERE invisible<>'1' AND time>'$exptime' 
   ORDER BY name ASC"; 
if( $result = $db->sql_query( $sql ) ) 
{ 
   $num_users_x7 = $db->sql_numrows( $result ); 
   $users_x7 = ''; 
   while( $row = $db->sql_fetchrow( $result ) ) 
   { 
   $users_x7 .= $row[ 'name' ] . ", "; 
   } 
   $users_x7 = rtrim( $users_x7, ", " ); 
   $db->sql_freeresult( $result ); 
} 
 $template->assign_vars(array( 
    'L_X7_LIST'   => $users_x7)); 
// X7 Who is online Ende 

Und {L_X7_LIST} gibt die Namen aus.

Aber dafür muss dann der Codeabschnitt, den ich hier oben gepostet habe, auch in der zuständigen *.php eingebaut sein, oder in der page_header.php
Außerdem muss der Tabellenpräfix passen.



Gruß Max

Verfasst: 23.12.2007 18:09
von powersilie
Jepp, alles klar, hab den Code in den page_header eingebaut und jetzt ist es perfekt!

Ich bin echt happy, daß es nun funzt und wünsche Dir frohe Weihnachten!

[ externes Bild ]

lg
Powersilie

Verfasst: 23.12.2007 20:42
von Max
powersilie hat geschrieben:... und wünsche Dir frohe Weihnachten!
Danke, wünsche ich Dir auch :-)



Gruß Max

Ausgabe von "Niemand" wenn 0 User im X7-Chat?

Verfasst: 27.01.2008 22:34
von Savigny
Klasse, Max, das habe ich tagelang gesucht! Vielen Dank dafür :D!


Jetzt werde ich etwas übermütig und "schiebe" noch eine Frage hinterher ;):

Ist es "einfach" möglich die Ausgabe so anzupassen, daß bei "0 Usern im Chat" als Name "niemand" ausgegeben wird? Damit ließe sich "die Leere" hinter einem Doppelpunkt vermeiden :)


und wer vielleicht nach der Beschreibung von Max vergeblich bei sich die portal.php sucht: Die hat man nur, wenn man den entsprechenden intro_and_portal Mod installiert hat. Alternativ nimmt man die index.php und dann auch die index_body.tpl ;).
Zur Ausgabe der Zahl der User im Chat kann man ergänzend auch auf den Mod auf der Seite von X7 zurückgreifen: Full PhpBB2 Integration Mod.

Re: Ausgabe von "Niemand" wenn 0 User im X7-Chat?

Verfasst: 28.01.2008 07:40
von Max
Savigny hat geschrieben:Jetzt werde ich etwas übermütig und "schiebe" noch eine Frage hinterher ;):

Ist es "einfach" möglich die Ausgabe so anzupassen, daß bei "0 Usern im Chat" als Name "niemand" ausgegeben wird? Damit ließe sich "die Leere" hinter einem Doppelpunkt vermeiden :)

Ja.

Einfach das hier:

Code: Alles auswählen

 $template->assign_vars(array( 
    'L_X7_LIST'   => $users_x7));
gegen:

Code: Alles auswählen

if (!$users_x7)
{
 $template->assign_vars(array( 
    'L_X7_LIST'   => 'niemand' ));
}
else
{
 $template->assign_vars(array( 
    'L_X7_LIST'   => $users_x7));
}
austauschen.



Gruß Max

Verfasst: 28.01.2008 09:48
von powersilie
Hallo Max!

Vielen Dank, prima, hab ich auch eben geändert und es klappt super!

lg
Powersilie