PyroGX
Titel: Chat für Gäste
Version: 1.1
Beschreibung: Dieser Hack ermöglicht es Gästen den Chat zu betreten. Dort können die Gäste sich dann einen Usernamen aussuchen bzw eingeben.
In der Mitgliederanzeige des Chats wird an die Usernamen eines Gastes "_(gast)" angeängt.
Eine deaktivierung ist jederzeit über die schon vorhandenen Gruppenrechte (Kann Chat benutzen?) möglich.
Zusätzlich wird die Anzeige der Chattenden User Stark verändert und ein "Chatrekord" hinzugefügt.
ACHTUNG
Beachtet bitte das es sich noch um eine Beta version handelt.
Bisher gabs allerdings keinerlei Probleme. Wenn ihr den Hack erfolgreich eingebaut habt postet es doch kurz im Supportthread damit ich und andere User wissen das er erfolgreich läuft.
### UPDATE ###
mir ist gerade ein kleiner bug aufgefallen
und zwar wird der rekord nur in die datenbank eingetragen wenn man wärend die user im chat sind die index.php aufruft
dieser bug wurde in der v 1.1 behoben
für eine neuinstallation einfach die datei "installation.html" lesen
um von der v1.0 auf die v1.1 upzudaten lest einfach die datei update 1.0 auf 1.1.html
----
weiter zum Download
-=DV|$tr@nger=-
Also ich weiss ja nicht was da noch alles in der Zip ist, aber was mus ich genau ändern wenn ich einfach nur den Gästen den Zutritt in den Chat erlauben will? Also ohne Reckord Anzeige, Ohne Chat Anzeige u.s.w.
PyroGX
mache ich dir gleich
muss noch nen bischen aufräumen und auto bei meinen eltern abholen
danach mache ich das schnell
-=DV|$tr@nger=-
Also ich hab mal zum Test einfach den Inhalt der Chat.php mit dem Inhalt deiner Anleitung ausgetauscht und dann komme ich nicht mehr in den Chat. Welche Version muss den Vorrausgesetzt sein?
Alluidh
Laut seiner Anleitung:
Chataddon von WoltLab der Version Beta 4
Alluidh
-=DV|$tr@nger=-
Achso, ich nutze soviel ich noch weiss Beta 2 oder 3. Kannst du vielleicht sagen was an der chat.php genau geändert wurde damit man das auch in den anderen Versionen machen kann?
PyroGX
ich weis leider nicht was an den chatversionen geändert wurde
muss mal bei woltlab nachfragen ob ich die alten versionen noch bekomme
sry das ich zeugs mit bzw ohne den rekord nochnicht gemacht habe
muss das die tage machen
hab momentan zuviel zu tuhen
/edit
um nur den gästen das chatten zu ermöglichen ohne die anzeige mache einfach folgendes:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
|
/* ############## CHAT ############## */
$chatMemberCount = 0;
$chatMemberCountUser = 0;
$chatMemberCountGuest = 0;
$chat_online = new useronline($wbbuserdata['a_can_view_ghosts'],$wbbuserdata['buddylist']);
$letzte_userid = $db->query_first("SELECT lastuserid FROM bb".$n."_stats");
$letzte_userid = $letzte_userid['lastuserid'];
$result = $db->unbuffered_query("SELECT c.userid, username, useronlinegroupid, useronlinemarking, invisible FROM bb".$n."_chatter c LEFT JOIN bb".$n."_users u USING (userid) LEFT JOIN bb".$n."_groups g ON g.groupid=u.useronlinegroupid ORDER BY u.username ASC");
while($row = $db->fetch_array($result))
{
if($row['userid'] > $letzte_userid)
{
$chatMemberCountGuest++;
}
else
{
$chatMemberCountUser++;
$chat_online->user($row['userid'],htmlconverter($row['username']),$row['useronlinemarking'],$row['invisible']);
}
$chatMemberCount++;
}
if($chatMemberCount > $rekord_chat)
{
$db->unbuffered_query("UPDATE bb".$n."_options SET value='".$chatMemberCount."' WHERE varname='rekord_chat'",1);
$db->unbuffered_query("UPDATE bb".$n."_options SET value='".time()."' WHERE varname='rekord_chat_time'",1);
require("./acp/lib/class_options.php");
$option = &new options("acp/lib");
$option->write();
$rekord_chat = $chatMemberCount;
}
$chat_rekord_datum = formatdate($wbbuserdata['dateformat'],$rekord_chat_time);
$chat_rekord_uhrzeit = formatdate($wbbuserdata['timeformat'],$rekord_chat_time);
|
|
aus der index.php löschen
danach noch folgendes:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
<tr>
<td class="tabletitle" colspan="<if($hide_modcell==0)><then>6</then><else>5</else></if>" align="left"><span class="smallfont"><b><a href="javascript:void(0);" onclick='javasript:window.open("chat.php", "chatwindow", "toolbar=no,scrollbars=no,resizable=yes,width=800,height=600")'>Zur Zeit <if($chatMemberCount==1)><then>ist</then><else>sind</else></if> $chatMemberCount Benutzer im Chat.</a></b></span></td>
</tr>
<tr>
<td rowspan="2" class="tableb" align="center"><img src="{$style['imagefolder']}/online.gif" alt="" title="" /></td>
<td width="100%" colspan="<if($hide_modcell==0)><then>5</then><else>4</else></if>" class="tablea" align="left"><span class="smallfont">Zur Zeit <if($chatMemberCountUser==1)><then>ist</then><else>sind</else></if> $chatMemberCountUser Mitglied<if($chatMemberCountUser!=1)><then>er</then></if> und $chatMemberCountGuest Besucher im Chat unterwegs. <b>Rekord:</b> $rekord_chat Benutzer am $chat_rekord_datum <span class="time">$chat_rekord_uhrzeit</span>.</span></td>
</tr>
<tr>
<td class="tablea" colspan="<if($hide_modcell==0)><then>5</then><else>4</else></if>" align="left"><span class="smallfont"><if($chat_online->useronlinebit=="")><then> </then></if>$chat_online->useronlinebit</span></td>
</tr>
|
|
aus dem index-template löschen
-=DV|$tr@nger=-
Hmm, das habeich auch ausgelassen. Aber das wichtgiste ist wohl die Chat.php. Aber eben, mit deinem Inhalt funktioniert das Leider nicht.
Vielleicht kannst du mal sagen was du genau geändert hast?
PyroGX
lad mal bitte die chat.php von dir hoch (die orginale, unveränderte)
warum updatest du eigentlich nicht auf die chat 1.0 beta 4?
-=DV|$tr@nger=-
Ich denke mal das dies nicht so richtig ist wenn ich die Datei hier anbiete. Das problem ist laut meinem Hoster da die Beta4 einige Probleme mit sich bringt, und deswegen Updatet er nicht.
PyroGX
man kann mit der chat.php alleine nix anfangen
man braucht noch den chatserver
also lad sie mal hoch
-=DV|$tr@nger=-
Kannst du das nicht im Woltlab Bereich saugen?
PyroGX
ne
da kann ich nur die beta 4 saugen
-=DV|$tr@nger=-
So, habe nun Beta4 laufen und wenn ich den Inhalt der Chat.php mit deinem Code ersetze kommt:
Parse error: parse error, unexpected '?' in /home/www/web12/html/board/chat.php on line 58
Schocko
außerdem auf seinem board steht unten
Zitat: |
Design © by PyroGX |
^^^stimtm so auch nicht! der style der derzeit als standartstyle verwendet wird den ich als gast sehe ist der encym style von woltlab!
passt zwar nicht zur topic, aber das forum von ihm ist im offline modus und irgendwo musste ich das jetzt loswerden
PyroGX
Zitat: |
Original von -=DV|$tr@nger=-
So, habe nun Beta4 laufen und wenn ich den Inhalt der Chat.php mit deinem Code ersetze kommt:
Parse error: parse error, unexpected '?' in /home/www/web12/html/board/chat.php on line 58 |
hm
komisch
ist es zu 100% die die da steht?
versuche alternativ mal die aus der version 1.0 und dann die v1.1
Zitat: |
Original von Schocko
außerdem auf seinem board steht unten
Zitat: |
Design © by PyroGX |
das ist laut woltlab in ordnung da das design verändert wurde (z.B. menü nach links) usw
^^^stimtm so auch nicht! der style der derzeit als standartstyle verwendet wird den ich als gast sehe ist der encym style von woltlab!
passt zwar nicht zur topic, aber das forum von ihm ist im offline modus und irgendwo musste ich das jetzt loswerden
|
richtig
dessen bin ich mir auch bewust
hauptgrund ist das ich vorerst an nem anderen projekt arbeite
danach guck ich mal
-=DV|$tr@nger=-
Kannst du die änderungen in der Chat.php nicht einzeln aufliste wie in jeden anderen Hack auch?
PyroGX
würde das eine änderung machen außer das es komplizierter würde?
-=DV|$tr@nger=-
Wenn du nur die einzelnen stellen angibst, kann man vielleicht besser suchen.
Meine chat.php sieht so aus:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
|
<?php
$filename = 'chat.php';
require("./global.php");
$lang->load("CHAT");
if (isset($_REQUEST['action'])) $action = $_REQUEST['action'];
else $action = '';
if ($action == '') {
if ($wbbuserdata['userid'] && $wbbuserdata['can_use_chat']) {
$hash = md5(uniqid(microtime()));
$username = str_replace(' ', '_', $wbbuserdata['username']);
$login_failed = 0;
$socket = @fsockopen($internal_chatserver_address, $chatserver_port) or $login_failed = 1;
if ($result < 0) $login_failed = 1;
$register = "addclient\n".$hash."\n".$wbbuserdata['userid']."\n".$username."\n".(($wbbuserdata['is_chat_mod'] == 1) ? ("1") : ("0"))."\n" . (($wbbuserdata['is_chat_admin'] == 1) ? ("1") : ("0")) . "\n" . $wbbuserdata['designpackid'];
@fputs($socket, $register, strlen($register));
$read = @fread($socket, 4096);
if (trim($read) == 'login failed') $login_failed = 1;
@fclose($socket);
if ($login_failed == 1) eval("\$tpl->output(\"".$tpl->get("chat_loginerror")."\");");
else eval("\$tpl->output(\"".$tpl->get("chat_frameset")."\");");
exit;
}
else access_error();
}
if ($action == 'help') {
eval("\$tpl->output(\"".$tpl->get("chat_help")."\");");
}
?> |
|
PyroGX
wenn mich nicht alles täuscht is das die orginal-datei
dort gibt es keine zeile 58