ich weiß nicht ob ich hier richtig bin, wenn nicht, bitte verschieben.
Es gibt ja von blueimp die Chat-Version 0.8.8 die auch mit phpBB3.1.x funktioniert und die habe ich bei meinem aktiven Forum mit phpBB3.1 auch im Einsatz. Funktioniert einwandfrei.
Ich hatte einen Vorschlag gefunden um die Chat-Logs abzuspeichern, dafür musste im Chat-Ordner ein Verzeichnis "log" erstellt werden mit 777 Rechten.
In der Datei AJAXChat.php musste die funktion purgeLogs mit dem nachfolgenden Code ersetzt werden. Auch das funktioniert bei 3.1 einwandfrei.
Code: Alles auswählen
function purgeLogs() {
if ($purgeDelay < (time() - 3600) || !isset($purgeDelay)) {
// SQL Query to select messages for purge:
$sql = 'SELECT
userName,
channel AS channelID,
UNIX_TIMESTAMP(dateTime) AS timeStamp,
text
FROM
'.$this->getDataBaseTable('messages').'
WHERE
dateTime < DATE_SUB(NOW(), interval '.$this->getConfig('logsPurgeTimeDiff').' HOUR)
ORDER BY
id;';
$result = $this->db->sqlQuery($sql);
// Stop if an error occurs:
if($result->error()) {
echo $result->getError();
die();
}
// Store result for logging:
$logMsg = '';
while($row = $result->fetch()) {
$privmsg = ereg('/privmsg', $row['text']);
if ($privmsg == false) {
$logMsg .= '('.date('r', $row['timeStamp']).') ';
$logMsg .= $this->decodeSpecialChars($row['userName']).': ';
$logMsg .= $this->decodeSpecialChars($row['text'])."\n";
}
}
$result->free();
// Files are rotated every week, labelled by week number, month, and year.
// File container where all messages are logged:
$fileContainer = AJAX_CHAT_PATH.'log/'.date("WMY").'.log';
$fileDirectory = AJAX_CHAT_PATH.'log/';
// Check to make sure directory is writable:
if(is_writable($fileDirectory)) {
// Open the said file:
$filePointer = fopen($fileContainer,"a");
// Write log messages to file:
fputs($filePointer,$logMsg);
// Close the open said file after writing:
fclose($filePointer);
// Delete what has been archived:
$sql = 'DELETE FROM
'.$this->getDataBaseTable('messages').'
WHERE
dateTime < DATE_SUB(NOW(), interval '.$this->getConfig('logsPurgeTimeDiff').' HOUR);';
// Create a new SQL query:
$result = $this->db->sqlQuery($sql);
// Stop if an error occurs:
if($result->error()) {
echo $result->getError();
die();
}
}
$purgeDelay = time();
}
}
und die Speicherung funktioniert auch nicht.
Sobald ich wieder die Orginal AJAXChat.php einsetze funktioniert der Chat wieder normal, natürlich ohne Speicherung der Logs.
Hat Jemand vieleicht eine Idee was ich da ändern müsste?
Mein Englisch reicht leider nicht aus um mein Problem bei blueimp zu posten. Sorry.