Seite 7 von 12

Verfasst: 08.04.2008 19:59
von ups
keine ahnung...
es gibt für den x7chat nen eigenen thread... suchen HIER

ups

Verfasst: 08.04.2008 20:33
von Planewalker
Danke für den Link zur Suchfunktion, aber ich kann da nur Threads zur Integration des x7chat2 in phpBB2 finden, und die helfen mir nicht weiter.

Darum würd mich die von Jonnsn angesprochene Lösung interessieren.

Danke
Planewalker

Verfasst: 08.04.2008 21:57
von Jonnsn
Sorry - das geriet mir etwas in Vergessenheit. Denke ich kanns morgen aber wieder zusammen kratzen :wink:

Edit: hier kommts

X7chat installieren wie hier beschrieben

datei "whosonline.php" im php-Root verzeichnis erstellen mit folgendem Inhalt (DB-Daten anpassen!). Man kann für die DB-verbindung sicherlich auch bestehende Codes des Boards nehmen - nur hab ich das noch nicht raus :D vlt jemand anderes?!

Code: Alles auswählen

<?
	function who_is_in_chat(){
		// MySql Information
		$user = "db_user";			// Your MySql username
		$dbhost = 'localhost';			// My SQL Host
		$pass = "db_password";			// Your MySql password
		$db = "db_name";			// Your MySql Database
		$prefix = "x7chat_";		// Your table prefix
		$expire_time = 240;	// The amount of seconds that users can be idle before they are considered offline
							// This value is setable in the X7 Chat admin panel, you must also set it here.
							// If the values do not match then the scripts may be inaccurate.
		// No more editing required

		mysql_connect($dbhost,$user,$pass);
		mysql_select_db($db);
	
		$exp_time = time()-$expire_time;
		$q = mysql_query("DELETE FROM {$prefix}online WHERE time<'$exp_time'");
		$q = mysql_query("SELECT name FROM {$prefix}online");
		$results = array();
		while($row = mysql_fetch_row($q))
			$results[] = $row[0];
		return $results;
	}
	
	function list_totals(){
		return count(who_is_in_chat());
	}
	
	function list_members($sep=", "){
		$online = who_is_in_chat();
		return implode($sep,$online);
	}
?>
Um den Chat innerhalb des normalen phpBB-Layouts anzuzeigen brauchen wir nun noch eine weitere Datei (ich hatte allerdings Probleme mit der zeichendarstellung - muss man wohl irgendwo noch das encoding-zeugs anpassen - alternativ kann man beim setzen des Links später auch direkt auf den Chat verlinken)
im phpBB root verzeichnis eine datei "chat.php" erstellen mit folgendem Inhalt:

Code: Alles auswählen

<?php
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$user->setup();
$auth->acl($user->data); 

if ($user->data['user_id'] == ANONYMOUS)
{
   login_box();
}

page_header($user->lang['CHAT']);

$template->set_filenames(array(
	'body' => 'chat.html')
);

page_footer();

?>
öffne viewonline.php
finde

Code: Alles auswählen

case 'report':
			$location = $user->lang['REPORTING_POST'];
			$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
		break;
danach einfügen:

Code: Alles auswählen

case 'chat':
         $location = $user->lang['CHATTING'];
         $location_url = append_sid("{$phpbb_root_path}chat.$phpEx");
    break;
öffne includes/functions.php
finde

Code: Alles auswählen

// Which timezone?
	$tz = ($user->data['user_id'] != ANONYMOUS) ? strval(doubleval($user->data['user_timezone'])) : strval(doubleval($config['board_timezone']));
danach einfügen:

Code: Alles auswählen

// Who is in chat?
	include_once($phpbb_root_path.'whosonline.'.$phpEx);$chat_room_users_online=list_members(", ");$chat_room_online=list_totals();
	if(empty($chat_room_users_online)){
		$chat_room_users_online = $user->lang['CHAT_NOONE_ONLINE'];
	}
finde

Code: Alles auswählen

'U_FAQ'					=> append_sid("{$phpbb_root_path}faq.$phpEx"),
davor einfügen:

Code: Alles auswählen

'U_CHAT'                => append_sid("{$phpbb_root_path}chat.$phpEx"),
finde - Achtung - Teil einer Zeile! (dahinter steht im frischen phpBB eine weitere Klammer)

Code: Alles auswählen

'SITE_LOGO_IMG'			=> $user->img('site_logo')
danach einfügen: (in der Zeile - zwischen den beiden runden Klammern - das Komma nicht vergessen!)

Code: Alles auswählen

,
		'CHAT_ROOM_ONLINE'	=> $chat_room_online,
		'CHAT_ROOM_USERS_ONLINE'	=> $chat_room_users_online,
		'CHAT_ROOM_USERS_LABEL'	=>	$user->lang['CHAT_ONLINE_LABEL']
Folgendes für jede Sprache die man will - hier Deutsch und Englisch
öffne language/de/common.php
finde

Code: Alles auswählen

'CHANGING_PROFILE'		=> 'Ändert sein Profil',
danach einfügen:

Code: Alles auswählen

	// --- X7 Chat -----------------------------
	'CHAT'                  => 'Chat', 
	'CHAT_EXPLAIN'          => 'Chat',
	'CHATTING'						=> 'Ist im Chat',
	'CHAT_ONLINE_LABEL'		=> 'Im Chat online',
	'CHAT_NOONE_ONLINE'		=> 'Zur Zeit befinden sich keine User im Chat.',
	// --- End X7 Chat -------------------------
öffne language/en/common.php
finde

Code: Alles auswählen

	'CHANGING_PROFILE'		=> 'Changing profile settings',
danach einfügen:

Code: Alles auswählen

	// --- X7 Chat -----------------------------
	'CHAT'                  => 'Chat', 
	'CHAT_EXPLAIN'          => 'Chat',
	'CHATTING'						=> 'Is in Chat',
	'CHAT_ONLINE_LABEL'		=> 'In Chat online',
	'CHAT_NOONE_ONLINE'		=> 'Currently there are no users online in Chat.',
	// --- End X7 Chat -------------------------
bezügl. templates habe ich Prosilver verwendet. SubSilver2 hab ich mir diesbezüglich nicht angeschaut - sollte ähnlich sein. Kann ich auf Anfrage gern auch nachholen, sofern ich Zeit habe ;)
öffne styles/prosilver/template/index_body.html
Anzeige der User die Online sind unten im Forum
finde - Achtung - Teil einer Zeile!

Code: Alles auswählen

<!-- IF LEGEND --><br /><em>{L_LEGEND}: {LEGEND}</em>
danach einfügen:

Code: Alles auswählen

<br />{CHAT_ROOM_USERS_LABEL}:&nbsp;{CHAT_ROOM_USERS_ONLINE}
Link zum Chat oben im Foren Header (evtl das href attribut anpassen, wenn man direkt auf den chat verlinken will. Das target attribut kann man weglassen, wenn man will, dass sich der Chat im selben Fenster öffnet.):
öffne styles/prosilver/template/overall_header.html
finde

Code: Alles auswählen

<ul class="linklist rightside">
danach einfügen:

Code: Alles auswählen

<!-- IF not S_IS_BOT -->
				<!-- IF S_USER_LOGGED_IN -->
				<li class="icon-minichat"><a href="{U_CHAT}" target="_blank" title="{L_CHAT_EXPLAIN}">{L_CHAT}&nbsp;({CHAT_ROOM_ONLINE})</a></li>
				<!-- ENDIF -->
				<!-- ENDIF -->
Datei "chat.html" im Ordner "styles/prosilver/template/" erstellen. folgender Inhalt (src Attribut evtl anpassen):

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
<iframe src="./x7chat/index.php" width="100%" height="600" FRAMEBORDER=0></iframe>
<!-- INCLUDE overall_footer.html -->
öffne styles/prosilver/theme/buttons.css
finde - Achtung - Teil einer zeile!

Code: Alles auswählen

.icon-bookmark, .icon-bump, .icon-subscribe, .icon-unsubscribe, .icon-pages, .icon-search
danach einfügen:

Code: Alles auswählen

, .icon-minichat
öffne styles/prosilver/theme/colours.css
finde

Code: Alles auswählen

.icon-search					{ background-image: url("{T_THEME_PATH}/images/icon_search.gif"); }
danach einfügen:

Code: Alles auswählen

.icon-minichat					{ background-image: 
url("{T_THEME_PATH}/images/icon_mini_chat.gif"); }
Ich habe als Minichaticon dieses verwendet [ externes Bild ]
Pfad: styles/prosilver/theme/images/icon_mini_chat.gif

So ich hoffe mal nichts vergessen zu haben.
So wie das skript jetzt ist, sollte oben beim Link im Header auch die Anzahl der User stehen, die gerade im Chat sind.
Unten im Footer bei der Anzeige, wer im Forum online ist sollten die Namen der User im Chat aufgezählt werden.
Kann man alles so anpassen wie man gerne möchte.

Wenn was nicht passt - postet hier. Vlt hab ich was vergessen. Verbesserungen sind auch willkommen. :grin: bin nicht gerade der erfahrenste phpCoder ;) (wobei das hier ja auch nur anpassung war)

Verfasst: 15.05.2008 20:50
von Polarco
Wie auch schon an anderer Stelle geschrieben habe ich das Update auf phpBB 3.0.1 gemacht.

Mein Chatsymbol wird nun aber leider nicht mehr oben angezeigt.
Damals hatte ich es nach Anleitung folgendermaßen eingebaut:

Im overall_header.html

nach:

Code: Alles auswählen

src="{T_THEME_PATH}/images/icon_mini_profile.gif" width="12" height="13" alt="*" /> {L_PROFILE}</a><!-- ENDIF -->
				<!-- ENDIF -->
folgendes eingefügt:

Code: Alles auswählen

<!--Flashchat Link --> <a href="./chat/flashchat.php" target="_blank"><img src="{T_THEME_PATH}/images/chat.gif" width="61" height="15" alt="Chat" /></a>
das steht da auch noch drin, aber auch meiner Forenübersicht erscheint das nicht mehr ganz oben rechts...

Kann mir jemdand sagen, was ich ändern muss?

Verfasst: 15.05.2008 21:19
von Jonnsn
Hi,

hättest du einen Link wo man sich das anschauen kann? das erleichtert die Fehlersuche meistens etwas :)

Verfasst: 15.05.2008 21:32
von Polarco
www.getupft-und-gestreift.de

da sieht man aber ja nichts, das war sonst immer ganz oben rechts eine kleine Grafik in der Forenübersicht...

Verfasst: 15.05.2008 21:44
von Jonnsn
Polarco hat geschrieben:da sieht man aber ja nichts
doch den Quelltext - und da erscheint nichts von dem codestück
kannst du vlt mal den kompletten Bereich der Navigation posten?
das sollte innerhalb des divs

Code: Alles auswählen

<div id="menubar">
sein :grin:

Verfasst: 16.05.2008 10:41
von Polarco

Code: Alles auswählen

<div id="menubar">
		<table width="100%" cellspacing="0">
		<tr>
			<td class="genmed">
				<!-- IF not S_IS_BOT --><a href="{U_LOGIN_LOGOUT}"><img src="{T_THEME_PATH}/images/icon_mini_login.gif" width="12" height="13" alt="*" /> {L_LOGIN_LOGOUT}</a>&nbsp;<!-- ENDIF -->
				<!-- IF U_RESTORE_PERMISSIONS --> &nbsp;<a href="{U_RESTORE_PERMISSIONS}"><img src="{T_THEME_PATH}/images/icon_mini_login.gif" width="12" height="13" alt="*" /> {L_RESTORE_PERMISSIONS}</a><!-- ENDIF -->
				<!-- IF S_BOARD_DISABLED and S_USER_LOGGED_IN --> &nbsp;<span style="color: red;">{L_BOARD_DISABLED}</span><!-- ENDIF -->
				<!-- IF not S_IS_BOT -->
					<!-- IF S_USER_LOGGED_IN -->
						<!-- IF S_DISPLAY_PM --> &nbsp;<a href="{U_PRIVATEMSGS}"><img src="{T_THEME_PATH}/images/icon_mini_message.gif" width="12" height="13" alt="*" /> {PRIVATE_MESSAGE_INFO}<!-- IF PRIVATE_MESSAGE_INFO_UNREAD -->, {PRIVATE_MESSAGE_INFO_UNREAD}<!-- ENDIF --></a><!-- ENDIF -->
					<!-- ELSE --> &nbsp;<a href="{U_REGISTER}"><img src="{T_THEME_PATH}/images/icon_mini_register.gif" width="12" height="13" alt="*" /> {L_REGISTER}</a>
					<!-- ENDIF -->
				<!-- ENDIF -->
			</td>
			<td class="genmed" align="{S_CONTENT_FLOW_END}">
				<a href="{U_FAQ}"><img src="{T_THEME_PATH}/images/icon_mini_faq.gif" width="12" height="13" alt="*" /> {L_FAQ}</a>
				<!-- IF S_DISPLAY_SEARCH -->&nbsp; &nbsp;<a href="{U_SEARCH}"><img src="{T_THEME_PATH}/images/icon_mini_search.gif" width="12" height="13" alt="*" /> {L_SEARCH}</a><!-- ENDIF -->
				<!-- IF not S_IS_BOT -->
					<!-- IF S_DISPLAY_MEMBERLIST -->&nbsp; &nbsp;<a href="{U_MEMBERLIST}"><img src="{T_THEME_PATH}/images/icon_mini_members.gif" width="12" height="13" alt="*" /> {L_MEMBERLIST}</a><!-- ENDIF -->
					<!-- IF S_USER_LOGGED_IN -->&nbsp; &nbsp;<a href="{U_PROFILE}"><img src="{T_THEME_PATH}/images/icon_mini_profile.gif" width="12" height="13" alt="*" /> {L_PROFILE}</a><!-- ENDIF -->
				<!-- ENDIF -->
<!--Flashchat Link --> <a href="./chat/flashchat.php" target="_blank"><img src="{T_THEME_PATH}/images/chat.gif" width="61" height="15" alt="Chat" /></a>
			</td>
		</tr>
		</table>
	</div>
Also eigentlich steht es da mit drin...

Verfasst: 16.05.2008 10:52
von ups
also bei mir sieht das so aus in der overall_header.html (prosilver)

Code: Alles auswählen

			<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->
			<ul class="linklist leftside">
				<li class="icon-ucp">
					<a href="{U_PROFILE}" title="{L_PROFILE}" accesskey="u">{L_PROFILE}</a>
						<!-- IF S_DISPLAY_PM --> (<a href="{U_PRIVATEMSGS}">{PRIVATE_MESSAGE_INFO}</a>)<!-- ENDIF --> &bull; 
					<a href="{U_SEARCH_SELF}">{L_SEARCH_SELF}</a>
					<!-- IF U_RESTORE_PERMISSIONS --> &bull;
					<a href="{U_RESTORE_PERMISSIONS}">{L_RESTORE_PERMISSIONS}</a>
					<!-- ENDIF -->
				</li>
			</ul>
			<!-- ENDIF -->
	<ul class="linklist rightside">
<!-- IF S_USER_LOGGED_IN --><li class-"icon=members"><a href="./chat/flashchat.php" target="_blank" img src="" title="FlashChat Login" accesskey="1">Chat</a></li><!-- ENDIF -->
				<li class="icon-rules"><a href="{U_RULES}" title="{L_RULES_PAGE}">{L_RULES}</a></li>
				<li class="icon-faq"><a href="{U_FAQ}" title="{L_FAQ_EXPLAIN}">{L_FAQ}</a></li>
				<!-- IF not S_IS_BOT -->
					<!-- IF S_DISPLAY_MEMBERLIST --><li class="icon-members"><a href="{U_MEMBERLIST}" title="{L_MEMBERLIST_EXPLAIN}">{L_MEMBERLIST}</a></li><!-- ENDIF -->
					<!-- IF not S_USER_LOGGED_IN --><li class="icon-register"><a href="{U_REGISTER}">{L_REGISTER}</a></li><!-- ENDIF -->
					<li class="icon-logout"><a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="l"<!-- IF S_USER_LOGGED_IN --> onclick="return logout_confirmation(); return true;"<!-- ENDIF -->>
{L_LOGIN_LOGOUT}</a></li>
				<!-- ENDIF -->
		<li><strong>&bull;</strong> <a href="{U_IMPRESSUM}" title="{L_IMPRESSUM}" accesskey="l">{L_IMPRESSUM}</a></li>
wir reden von prosilver????

fals du subsilver verwendest siehe hier : http://forum.tufat.com/showthread.php?t=38553


grüße
ups

Verfasst: 16.05.2008 11:35
von Polarco
Nein wir reden von Subsilver, daher hatte ich auch ursprünglich den Kram, wie ich es eingüge, aber der gute hat seinen Text editiert... und jetzt geht es ja nun leider nicht mehr und dort steht auch nicht wie ich es ändern kann...