Seite 1 von 2

Nickname variable und berechtigungen für einen Chat

Verfasst: 17.07.2004 15:24
von CyborgMax
hi,



ich hab ne tpl datei, und darin hab ich einen jIRC Chat applet integriert.
<applet archive="chat/jirc_nss.zip" code=Chat.class width=100% height=350 >
<param name="CABBASE" value="chat/jirc_mss.cab">
...
..
<param name="NickName" value="">
...
..
</applet>
mit dem Parameter <param name="NickName" value=""> kann ich den nicknamen festlegen.
nun möchte ich, dass in diesen Parameter automatisch, der eigene Forennick übernommen wird.
also, dass bei mir dann z.b. gleich automatisch value="CyborgMax" gesetzt wird.

ist das möglich?
wenn ja, wie heißt die Variable für den user nick, die ich da eintragen muss. oder gibt es da noch andere wege.




ein weitere sache wäre, dass ich möchte, dass nur registrierte User den chat sehen können. wie kann ich das mit den berechtigungen in die php bzw. tpl einbringen.


ich hab mal hier die gesammte TPL und PHP datei angehängt:

Code: Alles auswählen

<body>
<table width="100%" border="0">
  <tr>
    <td width="167" align="left" valign="top"><table width="150" height="0%" border="0" cellpadding="3" cellspacing="1" class="forumline" style="border-collapse: collapse">
      <tr>
        <th height="7%" colspan="2" valign="middle" class="thHead"><center>
        Hilfe
        </center></th>
      </tr>
      <tr>
        <td height="92%" colspan="2" valign="top" class="row2">
		<p class="postbody"> 
			&nbsp;<a href="#"><b>Navigation</b></a><br />
                <img src="templates/fisubsilversh/images/arrow.gif" alt="{L_HOME}">&nbsp<a href="{U_PORTAL}">{L_HOME}</a><br />
                <img src="templates/fisubsilversh/images/arrow.gif" alt="{L_FORUM}">&nbsp<a href="index.php">{L_FORUM}</a><br />
			&nbsp;<a href="#"><b>Anleitungen</b></a><br />
				<img src="templates/fisubsilversh/images/arrow.gif" alt="{L_RECENT}">&nbsp<a href="viewtopic.php?t=1">Befehle</a><br />
				<img src="templates/fisubsilversh/images/arrow.gif" alt="{L_FAQ}">&nbsp<a href="{U_FAQ}">{L_FAQ}</a><br />
				<img src="templates/fisubsilversh/images/arrow.gif" alt="{L_ALBUM}">&nbsp<a href="viewtopic.php?t=1">Hilfe</a>
         		<hr>
		 	Es erscheint ein Fenster, du musst auf "JA" klicken, um chatten zu können.
			<span class="row1"></span></td>
      </tr>
      <td width="150" height="1%" valign="top">
    </table></td>
    <td width="1388"><table width="100%" border="0" cellpadding="3" cellspacing="1" style="border-collapse: collapse" class="forumline">      <tr>        <th class="thHead" colspan="2"><center>
      Chat
    </center></th>      </tr>      <tr>        <td colspan="2" class="row2"><span class="postbody">          
	
	<!-- Connection Related Parameters -->             
      <tr>
        <td colspan="2" class="row2"><span class="postbody">
          <applet archive="chat/jirc_nss.zip"  code=Chat.class width=100% height=350 >
            <param name="CABBASE" value="chat/jirc_mss.cab">
            <param name="LicenseKey" value="xxx">
			
			<!-- Connection Related Parameters -->
			<param name="" value="">
			
			<param name="TotalServersAllow" value="1">
			<param name="ServerName1" value="xxx">
			<param name="Channel1" value="xx">
			<param name="TotalChannelsAllow" value="1">
            <param name="ServerPort" value="6668">
            <param name="NickName" value=""> 
            <param name="RealName" value="Gast meies Forums">
            <param name="ChannelPassword" value="xxx">
            <param name="UserName" value="xxx">            
			<!-- Color Related Parameters --> 
			<!--fisubsilver Farben:
	wei&szlig;: 255,255,255 white
	hellblau1: 234,237,244
	hellblau2: 217,226,236
	dunkelblau: 0,103,191
	linkfarbe: 0,102,153
	schriftfarbe: 0,0,0 black-->
            <param name="TextColor" value="black">
            <param name="TextScreenColor" value="234,237,244">
            <param name="BackgroundColor" value="217,226,236">
            <param name="FGColor" value="black">
            <param name="ListTextColor" value="black">
            <param name="ListScreenColor" value="234,237,244">
            <param name="LogoBgColor" value="234,237,244">
            <param name="InputTextColor" value="black">
            <param name="InputScreenwhiteColor" value="white">
            <param name="UserCmdColor" value="grey">
            <param name="ServerErrorColor" value="red">
            <param name="ActionColor" value="orange">
            <param name="NickNameColor" value="2">
            <param name="TitleBackgroundColor" value="217,226,236">
            <param name="TitleForegroundColor" value="0,102,153">
            <param name="ConfigBorderColor" value="0,103,191">
            <param name="LogoBorderColor" value="0,103,191">
			
			<!-- GUI and States Control --> 
            <param name="DisplayConfigRealName" value="false">
            <param name="DisplayConfigServer" value="false">
            <param name="DisplayConfigPort" value="false">
            <param name="DisplayConfigMisc" value="false">
			<param name="DisplayConfigChannel" value="false">	
			<param name="DisplayConfigSocks" value="false">
            <!-- Smilies Rausgenommen:
<param name="FilterKeys" value=":) :( :D :P ;) :confused: :mad: :cool: ;( :love: :thumbup: :thumbdown: :evil: :kiss: :hello: :applause: :banghead: :bye:">
<param name="FilterVals" value="smile.gif frown.gif biggrin.gif tongue.gif wink.gif confused.gif mad.gif cool.gif evil.gif love.gif thumbup.gif thumbdown.gif evil.gif kiss.gif hello.gif applause.gif banghead.gif bye.gif"> -->
            <param name="HostName" value="jpilot" >
            <param name="UseModeIcons" value="false">
            <param name="TimeStampFormat" value="hh:mm a" >
            <param name="AllowTimeStamp" value="false">
			<param name="DisplayAbout" value="false">
            <param name="AllowURL" value="true">
            <param name="IgnoreMOTD" value="true">
            <param name="IgnoreServerMsg" value="true">
			<param name="IgnoreUser" value="User ignorieren:">
			<param name="ActivateUser" value="User aktivieren:">			
			<param name="NoConfig" value="true"> 
			<param name="InitCommands" value="/clear">
			<!-- Label wordings  -->
            <param name="FieldNameNick" value="Nick Name:">
            <param name="FieldNameChannel" value="Chatroom:">
            <param name="FieldNameServer" value="Server:">
            <param name="FieldNameConnectNow" value="Raum betreten">
            <param name="FieldNameCancel" value="Abbruch">
            <param name="FieldNameAbout" value="Info">
            <param name="FieldNameConfig" value="Konfiguration">
            <param name="FieldNameConnect" value="Raum betreten">
            <param name="FieldNameDisconnect" value="  Raum verlassen  ">
            <param name="FieldNameTitlePeople" value="Benutzer online">
            <param name="FieldNameTitleTopic" value="Aktuelles Thema: ">
            <param name="FieldNameAudio" value="Audio abspielen">
            <param name="FieldNamePrivateClose" value="schlie&szlig;en">
            <param name="FieldNamePrivateChatTitle" value="Chat mit: ">
            <param name="FieldNameConnecting" value="Verbindung mit unserem Server wird aufgebaut">
            <param name="FieldNameConnected" value="verbinde, bitte warten ...">
            <param name="FieldNameChannelJoined" value="hat den Raum betreten">
            <param name="FieldNameConnected" value="Verbinde, Bitte warten...">
            <param name="FieldNameConnectionClose" value="Verbindung beendet">
            <param name="FieldNameChannelJoined" value="hat den Raum betreten">
            <param name="FieldNameChannelLeft" value="hat den Raum verlassen">
            <param name="FieldNameNickNotify" value="hat seinen/ihrern Nick ge&auml;ndert in">
            <param name="FieldNameProfileButton " value="Zeige Profil">
            <param name="FieldNameQuitMsg " value="Verlassen">
            <param name="FieldNameOK" value="OK">
            <param name="FieldNamePrivateIgnore " value="Diesen User ignorieren">
			
			<!-- Misc  -->
            <param name="WelcomeMessage" value="Willkommen im /stufen.net Chat!">
            <param name="IgnoreUser" value="ignore user : ">
            <param name="ActivateUser" value="activate  user : ">
            <param name="TextFontSize" value="12">
            <param name="TextFontName" value="Verdana">
            <param name="AllowJoinSound" value="true" >
            <param name="AllowLeaveSound" value="true">
            <param name="LogoGifName" value="/chat/IRClogo.gif"> 
            <param name="SoundMsg" value="Play Sound">
            <param name="NickNameColor" value="6">
            <param name="NickMaskStart" value="">
            <param name="NickMaskEnd" value=":">
            <param name="PWindowHeight" value="250">
            <param name="PWindowWidth" value="400">
            <param name="BorderSpacing" value="0">
            <param name="BorderVsp" value="3">
            <param name="IgnoreModeMsg" value="true">
            <param name="IgnoreCode" value="5" >
            <param name="AllowShowURL" value="true">
            <param name="AllowIdentd" value="true">
          </applet>
        </span></td>
      </tr>

      <td width="100%">
    </table></td>
  </tr>
</table>

Code: Alles auswählen

<?php

define('IN_PHPBB', true);

$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

$page_title = $lang['Chat'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

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

$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>

Verfasst: 19.07.2004 00:14
von CyborgMax
kann mir niemand helfen? das müsste doch eigentlich nicht so schwierig sein!

bittebitte

Verfasst: 19.07.2004 09:46
von makue
$userdata['username'] müsste es sein. Beachte aber, dass im IRC einige Zeichen nicht gültig sind, die in einem Board-Usernamen aber gültig sind. Ich habe, um das Problem zu minimieren, noch folgendes eingebaut:

Code: Alles auswählen

$username = str_replace(" ","_",$userdata['username']);
$username = str_replace("ä","ae",$username);
$username = str_replace("ö","oe",$username);
$username = str_replace("ü","ue",$username);
$username = str_replace("Ä","Ae",$username);
$username = str_replace("Ö","Oe",$username);
$username = str_replace("Ü","Ue",$username);
$username = str_replace("ß","sz",$username);
$username = ereg_replace("^[0-9]*[0-9]","",$username); 
Außerdem habe ich auch noch das Userpasswort benutzt und identifiziere den User automatisch bei nickserv bzw. melde ihn sogar an. Momentan bin ich noch am Verfeinern und ergänzen, ich werde das dann mal als Mod schreiben. Allerdings benutze ich das pjirc.

Ein Eggdrop-Script habe ich auch, man kann sich mit dessen Hilfe die User im Chat im Forum schon anzeigen lassen, ohne den Chat zu besuchen. Das setzt allerdings ein Eggdrop im Chat voraus.

Verfasst: 19.07.2004 14:31
von CyborgMax
wenn ich den code so:

Code: Alles auswählen

            <param name="NickName" value=$userdata['username']> 
oder so:

Code: Alles auswählen

            <param name="NickName" value="$userdata['username']">
setze, habe dann im Clienten stehen:
Nick Name: $userdata['username']
das ist natürlich ziemlich blöde, irgentwie wird die variable nicht als variable anerkannt.
wie muss ich das machen? wie hast du das gemacht?
kannst du mal den teil aus deinem pjirc chat zeigen? also, wie du das in die parameter eingefügt hast.

edit:
wenn ich das so schreibe:

Code: Alles auswählen

            <param name="NickName" value="{$username}">
... dann steht im feld für Nick Name gar nichts da.

Verfasst: 19.07.2004 14:44
von Leuchte
$userdata['username'] ist ja nicht definiert, deshalb kann da auch nichts angezeigt werden...
Eventuell klappt es so:
chat.php
Suche

Code: Alles auswählen

$template->set_filenames(array(
und füge davor ein

Code: Alles auswählen

$username = $userdata['username'];
$template->assign_vars(array(
'USERNAME' => $username)
	);
In der chat.tpl könntest du dann {USERNAME} nutzen.

Code: Alles auswählen

<param name="NickName" value="{USERNAME}">
Nur so als Anhalt...

Verfasst: 19.07.2004 15:09
von CyborgMax
wow, das klappt schonmal echt super.
danke für den super support soweit.

eine frage hab ich noch, wie heißt die variable für die User ID?

BSP:

http://meinesite.com/profile.php?mode=viewprofile&u=7

da meine ich die variable, die die 7 am ende im link festlegt.

Verfasst: 19.07.2004 15:49
von makue
Sorry, wie man den Wert in die tpl-Datei rüberbekommt, hatte ich hier bewusst oder unbewusst weggelassen. :wink: Die Variable für die User-ID heißt $userdata['user_id']. Wenn Du mit phpmyadmin oder einem anderen Datenbanktool mal in die User-Tabelle schaust, siehst Du die ganzen Namen. Das nur als Tipp, falls Du noch andere Variablen brauchst.

Ich habe übrigens die viewprofile.php so modifiziert, dass man statt der User-ID auch den Usernamen übergeben kann. Nur für den Fall, dass Du das ja brauchen kannst.

Verfasst: 19.07.2004 16:51
von CyborgMax
kk, soweit klappt alles gnaz gut.
wenn mir jetzt noch jemand sagen könnte, wie ich die site chat.php nur für registrierte user zugänglich machen lassen kann, wäre es echt perfekt.

vielen dank nochmal für den super support.

Verfasst: 19.07.2004 17:06
von makue
Frage doch einfach die User-ID ab. Die bessere Methode ist sicherlich ein Verzweigen auf die login-Seite, falls da ein nicht angemeldeter oder nicht registrierter User draufklickt. In meiner phpbb-Version 2.0.1 ging das so:

Code: Alles auswählen

if ( !$userdata['session_logged_in'] ) {
	$header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ) ? "Refresh: 0; URL=" : "Location: ";
	header($header_location . append_sid("login.$phpEx?redirect=chat.$phpEx&mode=editprofile", true));
	exit;
}
Ich glaube, das mit der Weiterleitung wurde inzwischen etwas geändert. Du kannst aber mal in anderen PHP-Dateien nach

Code: Alles auswählen

if ( !$userdata['session_logged_in'] )
suchen, dann solltest Du finden, wie das jetzt gemacht wird.

Verfasst: 19.07.2004 17:44
von CyborgMax
ich habs mal mit

Code: Alles auswählen

	if ( !$userdata['session_logged_in'] )
	{
		redirect(append_sid("login.$phpEx?redirect=chat.php", true));
	}
und

Code: Alles auswählen

if ( !$userdata['session_logged_in'] )
{
	redirect(append_sid('login.' . $phpEx . '?redirect=chat.' . $phpEx, true));
	exit;
}
versucht.

hat aber nicht funktioniert.

ich bekomme immer diese meldung:
Fatal error: Call to undefined function: redirect() in /data/members/free/tripod/de/t/e/s/testforum007/htdocs/chat.php on line 39
also immer die zeile, in der dieser redirect befehl steht.