Chat anpassen
Moderator: Supporter
Re: Chat anpassen
Wie kann ich die Größe des Chats anpassen? Wenn ich den Iframe verkleinere?
- daniel
- Ehemaliger
- Beiträge: 413
- Registriert: 13. März 2008, 16:49
- Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
- Wohnort: Bremen
- Kontaktdaten:
Re: Chat anpassen
Hallo matze93,
Weiß ich im moemnt garnicht. versuch es erstmal mit veränderung der Iframegröße. Warscheinlich musst du die CSS-Eigenschaften in der chat.html noch anpassen.
Der linke Bereich ist #chat und der rechte #userlist. Versteht sich ja eigentlich von selbst.
MfG.: Daniel
Weiß ich im moemnt garnicht. versuch es erstmal mit veränderung der Iframegröße. Warscheinlich musst du die CSS-Eigenschaften in der chat.html noch anpassen.
Der linke Bereich ist #chat und der rechte #userlist. Versteht sich ja eigentlich von selbst.
MfG.: Daniel
http://www.daniel-schlueter.eu
Meine Homepage
Meine Homepage
- daniel
- Ehemaliger
- Beiträge: 413
- Registriert: 13. März 2008, 16:49
- Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
- Wohnort: Bremen
- Kontaktdaten:
Re: Chat anpassen
jetzt hab ich das als Mod veröffentlicht:
http://www.easyhp.org/forum/viewtop ... f=16&t=350
Da wir unseren Chat jetzt wieder aktiviert haben, wird er jetzt von mir auch wieder weiterentwickelt. Der Fehler, dass die Userliste nicht auftaucht ist zB. weg und die Chatbefehle sind hinzugekommen.
http://www.easyhp.org/forum/viewtop ... f=16&t=350
Da wir unseren Chat jetzt wieder aktiviert haben, wird er jetzt von mir auch wieder weiterentwickelt. Der Fehler, dass die Userliste nicht auftaucht ist zB. weg und die Chatbefehle sind hinzugekommen.
http://www.daniel-schlueter.eu
Meine Homepage
Meine Homepage
Re: Chat anpassen
Macht es dir etwas aus, wenn ich daran noch ein bisschen rumbastle (ich habe bald Ferien).
Ich will Smileys und BBCodes hinzufügen und das Design verbessern.
Ich will Smileys und BBCodes hinzufügen und das Design verbessern.
- daniel
- Ehemaliger
- Beiträge: 413
- Registriert: 13. März 2008, 16:49
- Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
- Wohnort: Bremen
- Kontaktdaten:
Re: Chat anpassen
Hallo matze93,
nein. macht mir überhaupt nichts aus.
werde mal demnächst dazuschreiben, dass ich dass unter der GPL oder ähnlichem veröffentliche.
schön wäre es auch, wenn du das auch wiederum veröffentlichst und ich mir die Arbeit ersparen kann
.
ich werde mich wohl in der hinsicht mal an die arbeit machen ein Bot-system zu entwickeln, die dann quasie als Module hinzugefügt werden können.
BB-Codes würde ich auch eher als Modul hinzufügen, oder deaktivierbar. (einfaches include "bbcodes.php" sollte da jann reichen, das auszukommentieren
)
MfG.: Daniel
nein. macht mir überhaupt nichts aus.
werde mal demnächst dazuschreiben, dass ich dass unter der GPL oder ähnlichem veröffentliche.
schön wäre es auch, wenn du das auch wiederum veröffentlichst und ich mir die Arbeit ersparen kann

ich werde mich wohl in der hinsicht mal an die arbeit machen ein Bot-system zu entwickeln, die dann quasie als Module hinzugefügt werden können.
BB-Codes würde ich auch eher als Modul hinzufügen, oder deaktivierbar. (einfaches include "bbcodes.php" sollte da jann reichen, das auszukommentieren

MfG.: Daniel
http://www.daniel-schlueter.eu
Meine Homepage
Meine Homepage
Re: Chat anpassen
Klar. Aber mit den BBCodes könnte es vielleicht ein bisschen anders gelöst werden. Vielleicht gebe ich Usern nur Farbformatrieungen und Schriftart zur Verfügung, Admin und Mods können alles nuten. Also auch Schriftgröße, Unterstreichen, Fettdruck und Krusiv. Hab ich irgendetwas vergessen?
Re: Chat anpassen
Also die chat.php sieht dann so aus:
Ist da ein Fehler? Ich sehe immer etwas, wenn etwas geschreiben wird, außer wenn ich Smileys verwende, dann sehe ich kein Text und kein Bild
Code: Alles auswählen
<?php
define("IN_EASYHP", true);
include "../includes/mysql.php";
$chat = 1;
include "../common.php";
if (($cf->chat_aktiv != 1 and !isset($_SESSION['user_data_admin'])) or $uname == 'Anonymous' or !$userdata)
{
header("Location: ../index.php");
print "chat.innerHTML = '<br /><a href=../index.php >zurück zur Hauptseite</a>';";
print "<a href=../index.php >zurück zur Hauptseite</a>";
exit();
}
// Chat script by WebTemp.org
// Start a session and get/generate a random user_id
// We'll use this user_id to create pseudo-uniquely colored chat lines later
// Close the session (a session can only be accessed by one process at a time)
error_reporting(0);
session_start();
header('Cache-control: private'); // IE6 fix
header("Content-Type: text/html; charset=utf-8");
if (!isset($_SESSION['USER_ID'])) $_SESSION['USER_ID'] = rand(1, 24);
$USER_ID = $_SESSION['USER_ID'];
session_write_close();
ob_flush();
flush();
// Path to the text files holding the chat window content
$fn = 'chat.txt';
$log = 'log.txt';
// Did the browser request the chat content?
// If so, it provided this script with its last known line number
$read = &$_GET['r'];
if (isset($read)) {
// Create the chat file if neccessary
if (!file_exists($fn)) {
touch($fn);
chmod($fn, 0644);
}
if ($read == 0)
{
$result = @mysql_query("SELECT `im_chat` FROM ".SESSIONS_TABLE." WHERE `name` = '".$userdata['name']."' AND `im_chat` = -1");
if (mysql_num_rows($result) == 0)
chat_write('<E>');
}
// The script will not exit on its own on user disconnect
// this way we can later add a "user left chat" message
ignore_user_abort(true);
$i = 0;
while (true) {
// Open the chat file and get the current line number
$f = fopen($fn, 'r');
flock($f, 2);
$offset = 0;
$offset = trim(fgets($f));
// Break the loop if the browser is not up to date
if ($offset > $read) break;
// If the browser is up to date, wait
flock($f, 3);
fclose($f);
@set_time_limit(0);
// By default we wait 3 seconds between each check
// However, after one minute of complete silence in the chat we step
// back to 10 second periods to save server resources
if ($i > 20) sleep(10);
else sleep(3);
// To check for user disconnection we have to output at least one byte
// We'll echo a line break since this does no harm to our JavaScript
echo "\n";
ob_flush();
flush();
$result = @mysql_query("SELECT `name` FROM ".SESSIONS_TABLE." WHERE `chat_session` < ".(time()-300)." AND `im_chat` = 1");
$i = 0;
while ($user_row = mysql_fetch_assoc($result))
{
chat_write('<L>');
@mysql_query("UPDATE ".SESSIONS_TABLE." SET `im_chat` = 0 WHERE `name` = '".$user_row['name']."'");
}
$result2 = mysql_query("SELECT `name` FROM ".SESSIONS_TABLE." WHERE `im_chat` = 1");
$i = 0;
while ($user = mysql_fetch_assoc($result2))
{
$result = @mysql_query("SELECT `id`, `level`, `name` FROM ".USERS_TABLE." WHERE `name` = '".$user['name']."'");
$user_row = mysql_fetch_assoc($result);
$link = "<a class=\"user_link\" target=\"_blank\" href=\"../profile.php?mode=view&user_id=".$user_row['id']."\" >".$user_row['name']."</a>";
echo utf8_encode("us('".$i."','".$link."', ".$user_row['level'].");");
$i++;
}
if (connection_status() != 0) {
// This is where a user disconnection is detected
// You could add stuff to display "user left chat" messages here
chat_write('<L>');
@mysql_query("UPDATE ".SESSIONS_TABLE." SET `im_chat` = 0 WHERE `name` = '".$userdata['name']."'");
exit();
}
$i++;
}
@mysql_query("UPDATE ".SESSIONS_TABLE." SET `im_chat` = 1, `chat_session`=".time()." WHERE `name` = '".$userdata['name']."' and `im_chat` != -1");
$result = @mysql_query("SELECT `im_chat`, `name` FROM ".SESSIONS_TABLE." WHERE `im_chat` != 0");
if (!$result)
echo utf8_encode("us(0,'Verbindung zur Datenbank konnte nicht aufgebaut werden');");
$i = 0;
while ($user_row = mysql_fetch_assoc($result))
{
if ($user_row['im_chat'] == "-1" and $userdata['name'] == $user_row['name'])
{
$time = date('H:i:s');
echo utf8_encode(own_write("Du bist gekickt worden. Für mehr infos wende dich an den Administrator der Seite", 1));
exit();
}
$i++;
}
// If the loop was exited, we end up here
// Now, echo all missing lines
while ($s = fgets($f)) {
echo utf8_encode($s);
if ($offset <= ++$read) break;
}
// Close the file, exit
flock($f, 3);
fclose($f);
exit();
}
// This function writes one line into the chat file
// For easiest accessibility newer lines are on top!
function chat_write($write, $system = 0) {
global $USER_ID, $fn, $userdata, $log;
// Maximum line count
$maxlines = 25;
if (trim($write) == '') return;
// Create the chat file if neccessary
if (!file_exists($fn)) {
touch($fn);
chmod($fn, 0644);
}
// Create the chat file if neccessary
if (!file_exists($log)) {
touch($log);
chmod($log, 0644);
}
// Open the chat file and get the current line number
$f = fopen($fn, 'r+');
flock($f, 2);
$offset = 0;
fscanf($f, "%s\n", $offset);
// Open the log file
$l = fopen($log, 'a');
flock($l, 2);
// Increase by one as we're adding a new line now
$offset++;
$i = 0;
$chat = '';
// First we have to read the whole file
// Lines are being read one by one until we're at the end or until we reach $maxlines
while (($i < $maxlines) && ($s = fgets($f))) {
$chat .= $s;
$i++;
}
// This is the actual line we're adding
// You see: The chat file contains JavaScript calls
// This way no parsing of the lines is neccessary
// We'll just need to eval() them in our JavaScript
$time = date('H:i:s');
//
// For the smilies :-)
//
$write = str_replace("#:-)", "<img src='../images/smiles/icon_smile.gif' alt='smile' title='Smile' border='0' />", $write);
$write = str_replace("#:D", "<img src='../images/smiles/icon_biggrin.gif' alt='biggrin' title='Big grin' border='0' />", $write);
$write = str_replace("#conf", "<img src='../images/smiles/icon_confused.gif' alt='confused' title='Confused' border='0' />", $write);
$write = str_replace("#cool", "<img src='../images/smiles/icon_cool.gif' alt='cool' title='Cool' border='0' />", $write);
$write = str_replace("#cry", "<img src='../images/smiles/icon_cry.gif' alt='cry' title='Crying' border='0' />", $write);
$write = str_replace("#eek", "<img src='../images/smiles/icon_eek.gif' alt='eek' title='Eek' border='0' />", $write);
$write = str_replace("#evil", "<img src='../images/smiles/icon_evil.gif' alt='evil' title='Evil' border='0' />", $write);
$write = str_replace("#frown", "<img src='../images/smiles/icon_frown.gif' alt='frown' title='Frown' border='0' />", $write);
$write = str_replace("#lol", "<img src='../images/smiles/icon_lol.gif' alt='lol' title='lol' border='0' />", $write);
$write = str_replace("#mad", "<img src='../images/smiles/icon_mad.gif' alt='mad' title='Mad' border='0' />", $write);
$write = str_replace("#:-|", "<img src='../images/smiles/icon_neutral.gif' alt='neutral' title='Neutral' border='0' />", $write);
$write = str_replace("#:P", "<img src='../images/smiles/icon_razz.gif' alt='razz' title='Razz' border='0' />", $write);
$write = str_replace("#red", "<img src='../images/smiles/icon_redface.gif' alt='redface' title='Red face' border='0' />", $write);
$write = str_replace("#roll", "<img src='../images/smiles/icon_rolleyes.gif' alt='rolleyes' title='Rolling eyes' border='0' />", $write);
$write = str_replace("#:-(", "<img src='../images/smiles/icon_sad.gif' alt='sad' title='Sad' border='0' />", $write);
$write = str_replace("#;-)", "<img src='../images/smiles/icon_wink.gif' alt='wink' title='Wink' border='0' />", $write);
//
// The BBCodes
//
$write = str_replace("[b]", "<b>", $write);
$write = str_replace("[/b]", "</b>", $write);
$write = str_replace("[i]", "<i>", $write);
$write = str_replace("[/i]", "</i>", $write);
$write = str_replace("[u]", "<u>", $write);
$write = str_replace("[/u]", "</u>", $write);
$link = "<a class=\"user_link\" target=\"_blank\" href=\"../profile.php?mode=view&user_id=".$userdata['id']."\" >".$userdata['name']."</a>";
if ($system == 0)
$js = "cs($offset,$USER_ID,'$time','".$link."','$write','');\n";
else
$js = "cs($offset,$USER_ID,'$time','System','$write von $link','');\n";
// Go to the top
fseek($f, 0);
// Empty the file
ftruncate($f, 0);
// Write the new offset
fwrite($f, "$offset\n");
// Write the new line
fwrite($f, $js);
// And then the rest
fwrite($f, $chat);
// Close the file
flock($f, 3);
fclose($f);
// Write the new line
fwrite($l, $js);
// Close the file
flock($l, 3);
fclose($l);
// We'll return the last added line to the calling
return $js;
}
function own_write($write, $system = 0) {
global $USER_ID, $fn, $userdata, $log;
$link = "<a class=\"user_link\" target=\"_blank\" href=\"../profile.php?mode=view&user_id=".$userdata['id']."\" >".$userdata['name']."</a>";
$js = "cs(-1,$USER_ID,'$time','".$link."','$write','');\n";
// We'll return the last added line to the calling
return $js;
}
function chat_delete($delete) {
global $fn;
if ($delete == '') exit();
if (!file_exists($fn)) {
touch($fn);
chmod($fn, 0644);
}
$f = fopen($fn, 'r+');
flock($f, 2);
$offset = 0;
fscanf($f, "%s\n", $offset);
$chat = '';
$i = 0;
while ($s = fgets($f)) {
$s = str_replace("'$delete'", "''", $s);
$chat .= $s;
$i++;
}
fseek($f, 0);
ftruncate($f, 0);
fwrite($f, "$offset\n");
fwrite($f, $chat);
flock($f, 3);
fclose($f);
}
// Did the browser send a new chat line?
$write = &$_POST['w'];
if (isset($write)) {
if ($write == '') exit();
// Remove the slashes that were added to the form contents by PHP automatically
$write = stripslashes($write);
// Transform characters like < and > into their HTML representations
$write = htmlspecialchars($write, ENT_QUOTES);
$write = addslashes($write);
$system = 0;
if ($userdata['level'] >= 1){
if (strpos($write, '/del ') === 0) {
$delete = str_replace('/del ', '', $write);
chat_delete($delete);
exit();
}
elseif (strpos($write, '/ban ') === 0 and $userdata['level'] == 1) {
$name = str_replace('/ban ', '', $write);
$result = @mysql_query("SELECT `name` FROM ".SESSIONS_TABLE." WHERE `name` = '".$name."'");
if (mysql_num_rows($result) == 0)
{
echo utf8_encode(own_write("Den User \'".$name."\' gibt es nicht", 1));
exit();
}
echo utf8_encode(chat_write($name." wurde Systemweit gebannt", 1));
@mysql_query("UPDATE ".SESSIONS_TABLE." SET `im_chat` = -1 WHERE `name` = '".$name."'");
@mysql_query("UPDATE ".USERS_TABLE." SET `ban` = 1 WHERE `name` = '".$name."'");
$system = 1;
exit();
}
elseif (strpos($write, '/kick ') === 0) {
$name = str_replace('/kick ', '', $write);
$result = @mysql_query("SELECT `name` FROM ".SESSIONS_TABLE." WHERE `name` = '".$name."'");
if (mysql_num_rows($result) == 0)
{
echo utf8_encode(own_write("Den User \'".$name."\' gibt es nicht", 1));
exit();
}
echo utf8_encode(chat_write($name." wurde gekickt", 1));
@mysql_query("UPDATE ".SESSIONS_TABLE." SET `im_chat` = -1, `chat_session` = ".(time()+300)." WHERE `name` = '".$name."'");
$system = 1;
exit();
}
elseif (strpos($write, '/unkick ') === 0 AND $userdata['level'] == 1) {
$name = str_replace('/unkick ', '', $write);
$result = @mysql_query("SELECT `name` FROM ".SESSIONS_TABLE." WHERE `name` = '".$name."'");
if (mysql_num_rows($result) == 0)
{
echo utf8_encode(own_write("Den User \'".$name."\' gibt es nicht", 1));
exit();
}
echo utf8_encode(chat_write($name." wurde geunkickt", 1));
@mysql_query("UPDATE ".SESSIONS_TABLE." SET `im_chat` = 0 WHERE `name` = '".$name."'");
$system = 1;
exit();
}
elseif (strpos($write, '/kickall') === 0) {
$name = str_replace('/kickall ', '', $write);
echo utf8_encode(chat_write("Der Chat wird abgeschaltet", 1));
@mysql_query("UPDATE ".SESSIONS_TABLE." SET `im_chat` = -1");
@mysql_query("UPDATE ".CONFIG_TABLE." SET `chat_aktiv` = 0");
$system = 1;
exit();
}
elseif (strpos($write, '/unkickall') === 0 AND $userdata['level'] == 1) {
$name = str_replace('/unkickall ', '', $write);
echo utf8_encode(chat_write("Alle Kicks aufgehoben", 1));
@mysql_query("UPDATE ".SESSIONS_TABLE." SET `im_chat` = 0");
$system = 1;
exit();
}
elseif (strpos($write, '/chat_activate') === 0 AND $userdata['level'] == 1) {
$name = str_replace('/chat_activate', '', $write);
echo utf8_encode(chat_write("Chat aktiviert", 1));
@mysql_query("UPDATE ".CONFIG_TABLE." SET `chat_aktiv` = 1");
$system = 1;
exit();
}
elseif (strpos($write, '/') === 0) {
echo utf8_encode(own_write("Befehl nicht gefunden oder du hast nicht die benötigten Rechte:<br />".$write, 1));
exit();
}
}
$result = @mysql_query("SELECT `name` FROM ".SESSIONS_TABLE." WHERE `im_chat` = -1 AND `name` = '".$userdata['name']."'");
if (mysql_num_rows($result) >= 1)
{
$time = date('H:i:s');
echo utf8_encode(own_write("Du bist gekickt worden. Für mehr infos wende dich an den Administrator der Seite", 1));
exit();
}
// Wordwrap after 100 characters and add the new lines to the chat file
$lines = wordwrap($write, 50, "\n", true);
$lines = explode("\n", $lines);
foreach ($lines as &$line) {
// The function returns the added line
// We'll output this so the users can read their own texts without delay right after sending
echo utf8_encode(chat_write($line), $system);
}
exit();
}
//
//
//php ENDE
// Javascript ANFANG
//
//
?>
var lines = 35;
var title = '';
var offset = 0;
var userNr = 0;
var messages = new Array();
var message = document.getElementById('message');
var befehl = document.getElementById('befehl');
var rueckmeldung = document.getElementById('rueckmeldung');
var chat = document.getElementById('chat');
var userlist = document.getElementById('userlist');
var tmrRead = setTimeout('chat_read();', 1000);
var user = new Array();
function chat_action(action)
{
if (action == "kick" || action == "ban" || action == "unkick")
action1 = "/"+action + " " + befehl.value;
else if (action == "kickall" || action == "unkickall")
action1 = "/"+action;
else
action1 = "/";
request_write('chat.php', 'w='+escape(action1));
befehl.value = '';
}
//Verbindung zum schreiben
function request_write(url, post) {
r = false;
if (window.XMLHttpRequest) {
r = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
r = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
r = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
}
}
}
if (!r) return false;
r.onreadystatechange = alert_write;
if (post == null) {
r.open('GET', url, true);
r.send(null);
} else {
r.open('POST', url, true);
r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
r.send(post);
}
}
function alert_write() {
try {
if ((r.readyState == 4) && (r.status == 200)) parse(r.responseText);
} catch(e) {
}
}
//Verbindung zum lesen
function request_read(url, post) {
r2 = false;
if (window.XMLHttpRequest) {
r2 = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
r2 = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
r2 = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
}
}
}
if (!r2) return false;
r2.abort();
r2.onreadystatechange = alert_read;
if (post == null) {
r2.open('GET', url, true);
r2.send(null);
} else {
r2.open('POST', url, true);
r2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
r2.send(post);
}
}
//Verbindungzum User auslesen
function request_user(url, post) {
r3 = false;
if (window.XMLHttpRequest) {
r3 = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
r3 = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
r3 = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
}
}
}
if (!r3) return false;
r3.abort();
r3.onreadystatechange = alert_user;
if (post == null) {
r3.open('GET', url, true);
r3.send(null);
} else {
r3.open('POST', url, true);
r3.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
r3.send(post);
}
}
function us(o, u, r) {
team = "";
if (r == 1 || r == 2)
team = "(team)";
user[o] = '<span id="C">'+u+'</span> '+team+'<br />';
}
function user_display() {
html2 = '<b>Userliste:</b><br /><br />';
if (user.length == 0)
user[0] = 'wird geladen ...';
for (var i = 0; i < user.length; i++) {
i2 = i+"";
html2 = html2 + user[i2];
}
userlist.innerHTML = html2;
user = new Array();
}
function alert_read() {
clearTimeout(tmrRead);
try {
if ((r2.readyState == 4) && (r2.status == 200)) {
parse(r2.responseText);
tmrRead = setTimeout('chat_read();', 30);
}
} catch(e) {
tmrRead = setTimeout('chat_read();', 3000);
}
}
function chat_read() {
clearTimeout(tmrRead);
request_read('chat.php?r='+offset, null);
}
function keyup(e) {
if (window.event) k = window.event.keyCode;
else if (e) k = e.which;
else return true;
if (k == 13) chat_write();
}
function chat_display() {
html = '';
i = 0;
while ((i < lines) && (i < offset)) {
h = offset-i;
if (messages[h]) html = messages[h] + html;
i++;
}
chat.innerHTML = html;
if (title != '') {
title = title.replace(/&/g, '&');
title = title.replace(/"/g, '"');
title = title.replace(/'/g, '\'');
title = title.replace(/</g, '<');
title = title.replace(/>/g, '>');
document.title = title + ' - Chat by WebTemp.org';
}
}
function chat_write() {
request_write('chat.php', 'w='+escape(message.value));
message.value = '';
}
function del_hinweis()
{
rueckmeldung.innerHTML = "";
}
function cs(o, i, t, u, m, c) {
user_display();
if (o == -1)
{
//alert(m);
rueckmeldung.innerHTML = '<input type="button" value="x" onclick="del_hinweis();" /><b>Meldung vom Server:</b> '+m;
}
else if (m == '<E>') {
if (u != '') messages[o] = '<span id="C'+i+'">['+t+'] * '+u+' has entered the chat *</span><br />';
} else if (m == '<L>') {
if (u != '') messages[o] = '<span id="C'+i+'">['+t+'] * '+u+' has left the chat *</span><br />';
} else {
if (u != '') {
u += ':';
spaces = 5 - u.length;
for (j = 0; j < spaces; j++) u += " ";
u += ' ';
}
if (title == '') title = m;
m = m.replace(/ /g, ' ');
messages[o] = '<span id="C'+i+'">['+t+'] '+u+'<b>'+m+'</b></span><br />';
}
if (o > offset) {
offset = o;
window.focus();
message.focus();
}
}
function parse(s) {
if (s != '') {
var l = user.length;
for (var i = 0; i < l; i++) {
user.pop();
}
s = unescape(s);
eval(s);
chat_display();
user_display()
}
}
- daniel
- Ehemaliger
- Beiträge: 413
- Registriert: 13. März 2008, 16:49
- Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
- Wohnort: Bremen
- Kontaktdaten:
Re: Chat anpassen
inzwischen habe ich die Entwicklung des chats wieder eingestellt und auch wieder aufgenommen. Für Die Smilies habe ich die Methode gewählt, dass diese erst bei der Darstellung durch Javascript ersetzt werden.
Dafür werden diese beiden Funktionen benutzt:
und in der Funktion cs muss dann natürlich vor dem ausgeben in dieser Zeile:
diese Zeile eingefügt werden:
Ich benutze den Chat im moment auch nur für einen Seite ohne EasyHP. deshalb weiß ich nicht, wann ich die Weiterentwicklung des Mods voranbringen kann. Aber ich denke, dass ich in der nächsten Zeit eine neue Version mit einer Schnittstelle für Chatbots anbieten kann. sobald ich diese Schnittstelle für EasyHP und das andere CMS fertiggestellt habe, werden die Bots warscheinlich auch leicht portierbar sein.
Für die BBCodes würde ich noch eine Überprüfung einbauen, ob auch wirklich anfangs und Endtag gesetzt wurden, da sonst eventuell der chat völlig falsch formatiert wird.
Damit man das nicht immer einzelnt machen muss, das ganze für alle bbcodes in der Schleife:
PS.: noch ungetestet
matze93:
Hast du denn inzwischen Fortschritte gemacht?
Dafür werden diese beiden Funktionen benutzt:
Code: Alles auswählen
function SuchenUndErsetzen(QuellText, SuchText, ErsatzText)
{ // Erstellt von Ralf Pfeifer
// Fehlerpruefung
if ((QuellText == null) || (SuchText == null)) { return null; }
if ((QuellText.length == 0) || (SuchText.length == 0)) { return QuellText; }
// Kein ErsatzText ?
if ((ErsatzText == null) || (ErsatzText.length == 0)) { ErsatzText = ""; }
var LaengeSuchText = SuchText.length;
var LaengeErsatzText = ErsatzText.length;
var Pos = QuellText.indexOf(SuchText, 0);
while (Pos >= 0)
{
QuellText = QuellText.substring(0, Pos) + ErsatzText + QuellText.substring(Pos + LaengeSuchText);
Pos = QuellText.indexOf(SuchText, Pos + LaengeErsatzText);
}
return QuellText;
}
function smilies(str){
str = SuchenUndErsetzen(str ,":)", "<img src=\"Pfad_zum_Bild.gif\" />");
....
return str;
}
Code: Alles auswählen
messages[o] = '<span id="C'+i+'">['+t+'] '+u+'<b>'+m+'</b></span><br />';
Code: Alles auswählen
m = smilies(m)
Für die BBCodes würde ich noch eine Überprüfung einbauen, ob auch wirklich anfangs und Endtag gesetzt wurden, da sonst eventuell der chat völlig falsch formatiert wird.
Code: Alles auswählen
if (strpos($write, '[b]') and strpos($write, '[/b]'))
{
$write = str_replace("[b]", "<b>", $write);
$write = str_replace("[/b]", "</b>", $write);
}else
{
$write = str_replace("[b]", "", $write);
$write = str_replace("[/b]", "", $write);
}
Code: Alles auswählen
$bbcodes = array("b", "i", "u");
for ($i= 0;$i<count($bbcodes);$i++)
{
$bb = $bbcodes[$i];
if (strpos($write, '['.$bb.']') and strpos($write, '[/'.$bb.']'))
{
$write = str_replace("[".$bb."]", "<".$bb.">", $write);
$write = str_replace("[/".$bb."]", "</".$bb.">", $write);
}else
{
$write = str_replace("[".$bb."]", "", $write);
$write = str_replace("[/".$bb."]", "", $write);
}
}
matze93:
Hast du denn inzwischen Fortschritte gemacht?
http://www.daniel-schlueter.eu
Meine Homepage
Meine Homepage