Seite 9 von 23
Verfasst: 13.05.2008 19:35
von ~Marioverehrer~
4seven hat geschrieben:
das wäre evtl. in einem frameset möglich. fest verdrahtet wird es etwas tricky, da der templateordner vom chat
ja erstmal nichts vom templateordner des forums weiss und umgekehrt.
Es wäre toll, wenn du mir dabei helfen würdest. Eine feste Größe des Chats wäre meiner Meinung nach sinnvoll, da der Chat ja nicht vom Header und Footer eingeengt werden soll.
Verfasst: 15.05.2008 16:01
von PS3-King
4seven hat geschrieben:Öffne
CustomAJAXChat.php
Finde und füge alle Teile zwischen
Begin und
End ein
Code: Alles auswählen
[code]function &getChannels() {
if($this->_channels === null) {
global $auth;
//############################--BEGIN--##########################################
$channels = array('Technics'=>1111, 'Coding'=>2222, 'Fun'=>3333);
//############################--END--###########################################
$this->_channels = array();
$allChannels = $this->getAllChannels();
foreach($allChannels as $key=>$value) {
// Check if we have to limit the available channels:
if($this->getConfig('limitChannelList') && !in_array($value, $this->getConfig('limitChannelList'))) {
continue;
}
// Add the valid channels to the channel list (the defaultChannelID is always valid):
if($value == $this->getConfig('defaultChannelID') || $auth->acl_get('f_read', $value)) {
$this->_channels[$key] = $value;
}
}
//############################--BEGIN--##########################################
$this->_channels = array_merge($this->_channels, array('Technics'=>1111, 'Coding'=>2222, 'Fun'=>3333));
//############################--END--###########################################
}
return $this->_channels;
}
// Store all existing channels
// Make sure channel names don't contain any whitespace
function &getAllChannels() {
if($this->_allChannels === null) {
global $db;
$this->_allChannels = array();
// Get valid phpBB forums:
$sql = 'SELECT
forum_id,
forum_name
FROM
'.FORUMS_TABLE.'
WHERE
forum_type=1
AND
forum_password=\'\';';
$result = $db->sql_query($sql);
$defaultChannelFound = false;
while ($row = $db->sql_fetchrow($result)) {
$forumName = $this->trimChannelName($row['forum_name']);
$this->_allChannels[$forumName] = $row['forum_id'];
if(!$defaultChannelFound && $row['forum_id'] == $this->getConfig('defaultChannelID')) {
$defaultChannelFound = true;
}
}
$db->sql_freeresult($result);
if(!$defaultChannelFound) {
// Add the default channel as first array element to the channel list:
$this->_allChannels = array_merge(
array(
$this->trimChannelName($this->getConfig('defaultChannelName'))=>$this->getConfig('defaultChannelID')
),
$this->_allChannels
);
}
//############################--BEGIN--##########################################
$this->_allChannels = array_merge($this->_allChannels, array('Technics'=>1111, 'Coding'=>2222, 'Fun'=>3333));
//############################--END--###########################################
}
return $this->_allChannels;
}
[/code]
Wenn du nur einen Channel haben willst, dann logischerweise nur so.
Channel-Namen ändern *auch logo
Öffne
config.php
und passe die Anteile die zwischen
Begin und
End stehen ein, bzw, füge noch nicht vorhandene Anteile ein.
Code: Alles auswählen
//############################--BEGIN--#########################################
// Default channelName used together with the defaultChannelID if no channel with this ID exists:
// $config['defaultChannelName'] = 'Public';
$config['defaultChannelName'] = 'Technics';
// ChannelID used when no channel is given:
// $config['defaultChannelID'] = 0;
$config['defaultChannelID'] = 1111;
// Defines an array of channelIDs (e.g. array(0, 1)) to limit the number of available channels, will be ignored if set to null:
// $config['limitChannelList'] = null;
$config['limitChannelList'] = array(1111, 2222, 3333);
//############################--END--###########################################
Übrigens gibt der Autor in seinem sourceforge-forum und auf blueimp.net gute Anregungen.
Dort mal bitte gelegentlich einkehren
lg
4seven
ich kenn mich mit scripten, programmieren, ... nicht gut aus, was muss ich genau tun um nur ein paar räume mit namen meiner wahl anzubieten
könntest du mir sagen was ich da genau tun muss, die stelle hab ich ungefähr gefunden, aber was meinst du mit dem 1111, Technics, ...?
Thx a lot im voraus!
Verfasst: 15.05.2008 16:25
von 4seven
Das sind nur Beispiele
$channels = array('Technics'=>1111, 'Coding'=>2222, 'Fun'=>3333);
könnte also auch so aussehen
$channels = array('Name für 1. eigenen Raum'=>1111, 'Name für 2. eigenen Raum'=>2222, 'Name für 3. eigenen Raum'=>3333);
Die
1111 und
2222 usw. sind die erforderlichen ID's für den ersten, zweiten usw. Raum. Sie sind gekoppelt an den Raum-Namen
Sie könnten aber auch
1234,
2345 usw. lauten, sollten aber vierstellig sein, damit sie nicht mit den Foren-ID's eines sehr großen Forums kollidieren.
Daher finde ich
1111 (1.Raum) und
2222 (2. Raum) usw. übersichtlicher
Du kannst auch weniger oder mehr eigene Räume haben.
Musst dich nur an die Code-Syntax halten.
Verfasst: 17.05.2008 16:38
von Hinnerk
Da hier ja schon die verschiedensten Fragen zum Ajax Chat getellt wurden und auch so nett geholfen wurde, hier noch ein kleines Problem:
Ich habe mir fünf Räume im Chat eingerichtet. Der Haken dabei: Nur ich als Admin kann diese Räume sehen und dazwischen wählen. Alle andere User sehen nur den Eingangsraum "Helsinki". Was mache ich falsch? hier der entsprechende Ausschnitt meiner lib/config.php (Raum 98=Helsinki):
// Default channelName used together with the defaultChannelID if no channel with this ID exists:
$config['defaultChannelName'] = 'Helsinki';
// ChannelID used when no channel is given:
$config['defaultChannelID'] = 98;
// Defines an array of channelIDs (e.g. array(0, 1)) to limit the number of available channels, will be ignored if set to null:
$config['limitChannelList'] = array(98, 94, 95, 96, 97);
Verfasst: 17.05.2008 18:48
von 4seven
@Hinnerk
Sind es selbst erstellte Channels oder nur eine Auswahl von Foren?
@~Marioverehrer~
Lösung folgt bald
Verfasst: 17.05.2008 19:04
von Hinnerk
Das sind Foren, die ich eigens für diesen Zweck erstellt habe (für die User unsichtbar)
Verfasst: 17.05.2008 21:27
von 4seven
Dann können sie die Räume natürlich nicht sehen
Die Foren-Rechte "vererben" sich in den Chat
Du solltest "echte", von den "Forum-Channels" unabhängige Räume erstellen.
Die können heißen, wie du möchtest.
Anleitung ab hier lesen
http://www.phpbb.de/viewtopic.php?p=976048#976048
Evtl. auch diesen Beitrag
http://www.phpbb.de/viewtopic.php?p=991439#991439
Verfasst: 18.05.2008 00:03
von Hinnerk
Besten Dank 4seven, hat alles geklappt!
Die Sache mit den Foren habe ich hierher:
http://www.phpbb.de/viewtopic.php?t=162 ... e&start=10
(2. Seite, vierter Beitrag von issjut)
Deine Begründung, warum das nicht gehen kann, ist klar. Hab da wohl ein Brett vorm Kopf gehabt.
Verfasst: 18.05.2008 00:44
von 4seven
Geht natürlich auch. Ist aber eine "durch-die-Brust-ins-Auge-Lösung".
Ist mal irgendwas mit den Foren, sind auch die Channels weg

So bleibt der Chat "bei sich".
Verfasst: 21.05.2008 17:27
von 4seven
Hallo ~Marioverehrer~
meinst du das ungefähr so?
http://sekuro.se.funpic.de/phpbb3/chat_body.php
Logout-Button landet im eigenen Frame, ist also noch ein Dummy.
Unter 600px Höhe für den Chat geht nicht (sonst Scrollbalken).
Höhe geht zwar auch mit % sieht aber nicht dolle aus