Installation

Vous avez besoin de :

Par défaut, vous n'avez pas besoin d'une base de donnée Mysql car des simples fichiers sont utilisés pour stoquer les informations.

En avant!

Pour les feignants (ne fonctionne pas avec les versions 1.x) :

  1. Téléchargez le script d'installation auto-extractible : phpfreechat-x.x-setup.php (la dernière version de préférence)
  2. Uploadez le script dans un répertoire accessible par votre navigateur (répertoire publique)
  3. Lancez votre navigateur et exécutez le script d'installation que vous venez d'uploader, ceci devrait lancer une interface d'installation, suivez alors les étapes !

    Astuce : supprimez le scripte d'installation une fois terminé pour des raisons de sécurité.

Pour les utilisateurs avancés ou pour ceux qui n'ont pas gzip installé sur leur serveur:

  1. Téléchargez l'archive zip (ou tag.gz pour les utilisateurs linux) : phpfreechat-x.x.zip (la dernière version de préférence)
  2. Décompressez l'archive localement et uploadez le résultat sur votre serveur dans un répertoire accessible par votre navigateur.

    Astuce: si vous avez un accès SSH, je vous conseil d'uploader l'archive tar.gz puis de la décompresser directement sur le serveur avec la commande tar xzf phpfreechat-x.x.tar.gz

  3. Donnez les droits en écriture aux répertoires phpfreechat-x.x/data/public et phpfreechat-x.x/data/private

    Si vous utilisez FTP, voici les commandes:

    CHMOD 777 phpfreechat-x.x/data/private
    CHMOD 777 phpfreechat-x.x/data/public

    Si vous utilisez SSH, voici les commandes:

    chmod a+w phpfreechat-x.x/data/*
  4. Pour terminer : lancez votre navigateur et ouvrez le répertoire phpfreechat-x.x sur votre serveur !

Vous désirez certainement paramétrer votre propre chat, pour cela prenez exemple sur les scriptes du répertoire phpfreechat-x.x/demo.

Voila le script minimum pour que le chat fonctionne (inspiré de demo1) :

<?php

require_once "src/phpfreechat.class.php"; // pensez à ajuster le chemin
$params["serverid"] = md5(__FILE__); // permet d'identifier ce chat
$chat = new phpFreeChat($params);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>phpFreeChat demo</title>
    <?php $chat->printJavascript(); ?>
    <?php $chat->printStyle(); ?>
  </head>
  <body>
    <?php $chat->printChat(); ?>
  </body>
</html>

Configuration avancée

Le chat fonctionne très bien en laissant les paramètres par défaut mais de nombreuses options peuvent être réglées. Par exemple, pour changer le temps de rafraichissement à 2 secondes (par défaut c'est 5 secondes), voila ce qu'il faut faire :

<?php

require_once "src/phpfreechat.class.php"; // ajustez le chemin
$params["serverid"]      = md5(__FILE__);
$params["refresh_delay"] = 2000; // 2000ms = 2s
$chat = new phpFreeChat($params);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>phpFreeChat demo</title>
    <?php $chat->printJavascript(); ?>
    <?php $chat->printStyle(); ?>
  </head>
  <body>
    <?php $chat->printChat(); ?>
  </body>
</html>

Un autre exemple : vous souhaitez que vos utilisateur n'entrent pas de pseudonymes à leur arrivé sur le chat et qu'un pseudo "invité" leur oit assigné automatiquement (ceci est très utile pour integrer le chat dans un forum, un portail ou tout autre système où l'utilisateur est déja authentifié), voila ce qu'il faut faire :

<?php

require_once "src/phpfreechat.class.php"; // ajustez le chemin
$params["serverid"] = md5(__FILE__);
$params["nick"]     = "guest"; // ce pseudo peut-être récupéré depuis une base de données
$chat = new phpFreeChat($params);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>phpFreeChat demo</title>
    <?php $chat->printJavascript(); ?>
    <?php $chat->printStyle(); ?>
  </head>
  <body>
    <?php $chat->printChat(); ?>
  </body>
</html>

Ces deux exemples ont permis de comprendre l'utilisation du tableau de paramètres, maintenant voyons la liste exaustive des paramètres que vous pouvez utiliser :

serverid
C'est leur seule paramètre obligatoire. C'est l'identifiant du chat, "son IP" (comparable à l'adresse (host) d'un serveur IRC) utilisé pour différencer ce chat d'un autre. Deux chats doivent avoir des serverid différents. Si vous ne savez pas quoi mettre, ceci fonctionnera dans la majorité des cas : $params["serverid"] = md5(__FILE__);
nick
Ce paramètre est très utile si vous connaissez à l'avance les pseudonymes des utilisateurs, par exemple si vous souhaitez intégrer le chat à un forum ou a un portail qui possède déjà un système d'authentification. Il suffit de renseigner le pseudonyme de l'utilisateur concerné dans cette option et l'utilisateur sera alors automatiquement connecté avec son pseudonyme, il n'aura pas à choisir son pseudo lors de la première connexion.
Attention : Les pseudonymes doivent être encodés en UTF-8. Si par exemple vos pseudo viennent d'une base de donnée où ils sont encodés en ISO-8859-1, vous devez les convertir : $params["nick"] = iconv("ISO-8859-1", "UTF-8", $bdd_nickname); (bien sur changez la variable $bdd_nickname à votre convenance)

Remarque : Cette option peut-être utilisée conjointement à l'option frozen_nick pour empêcher l'utilisateur de changer de nom.

("" par défaut, signifie que les utilisateurs doivent choisir leur pseudonymes quand ils se connectent)

title
Permet de changer le titre du chat, c'est à dire le texte qui s'affiche en haut.

("My phpFreeChat" est la valeur par défaut)

channel
Permet de créer un salon. Techniquement, ce paramètre permet de choisir où vont être stockés les messages et les pseudonymes du chat. Pour une explication plus détaillées voyez le paragraphe suivant dans la FAQ.

(par défaut, il est calculé automatiquement à partir du title)

frozen_nick
Mettre cette option à true va tout simplement empêcher les utilisateurs de changer leur pseudonymes. Cela sous entends que le pseudonyme à été automatiquement assigné (voir l'option nick)

(false par défaut)

max_nick_len
C'est la longeur maximale que peut avoir un pseudonyme

(15de caractères par défaut)

max_text_len
C'est la longeur maximale que peut avoir un message.

( 250 caractères par défaut)

refresh_delay
Ceci est le temps à attendre entre chaque rafrechissements. Un rafrechissement correspond à une requete HTTP demandant au serveur si il y a quelque chose de nouveau à afficher ou pas. S'il n'y a rien de nouveau alors la réponse HTTP est vide.

( 5000ms = 5s par défaut)

timeout
Ceci est le temps d'inactivité à attendre avant de déconnecter un utilisateur (en millisecondes).

( 20000ms = 20s par défaut)

max_msg
Ceci est la taille de l'historique, c'est à dire le nombre de messages gardés en mémoire. Quand un utilisateur se connect, il voit automatiquement les messages de l'historique. Le nombre de messages qu'il voit est définit par ce paramètre

(20 lignes par défaut)

quit_on_closedwindow
Mettre ce paramètre à true permet d'envoyer une commande /quit lorsque l'utilisateur ferme sa fenêtre (ne fonctionne pas sour Firefox). Ce paramètre n'est pas a true par défaut car sous IE, Safari et Konqueror : lorsque l'utilisateur recharge sa fenêtre le même évenement est envoyé ce qui surcharge de messages le chat.

(false par défaut)

focus_on_connect
Mettre ce parametre à true permet de placer le curseur directement dans la zone de saisie du chat après la connexion. Il peut être intéressant de passer ce paramètre à false lorsque l'on intégre le chat dans un site Web car lorsque le focus change, la vue de l'utilisateur dans la fenêtre change aussi, elle suit le focus. Lorsque la page est grande la bar de scroll peut alors se déplacer de façon involontaire.

(true par défaut)

connect_at_startup
Mettre cette option à false obligera les utilisateurs à cliquer sur l'icone de connexion pour tchater.

(true par défaut, signifie que les utilisateurs sont automatiquement connectés lorsque la page du chat est ouverte)

start_minimized
Mettre cette option à true minimizera le chat au premier chargement de la page.

(false par défaut)

height
Hauteur de la zone de chat

(440px par défaut)

width
Largeur de la zone de chat

("" par défaut, signifie que la valeur est assignées dans les CSS)

shownotice
Trois valeurs sont possibles : 0 pour ne rien afficher (ni les notices de connexion/deconnexion, ni les changements de pseudo), 1 pour afficher les changements de pseudo, 2 pour afficher les connexions/deconnexions, 3 (1+2) pour afficher les changements de pseudo et les connexions/deconnexions.

(3 par défaut)

nickmarker
Mettre cette option à false désactivera la colorisation des pseudonymes.

(true par défaut)

clock
Mettre cette option à false désactivera l'affichage de la date et de l'heure.

(true par défaut)

openlinknewwindow
Mettre cette option à true permettra d'ouvrire les liens des convertations dans une nouvelle fenêtre. Techniquement cela rajoute l'attribut target="_blank" dans la balise du lien.

(true par défaut)

showwhosonline
Permet de cacher/montrer la liste des utilisateurs connectés lors du premier affichage du chat.

Utilisez btn_sh_whosonline pour désactiver complètement la possibilité de voir la liste des pseudonymes.

(true par défaut)

showsmileys
Permet de cacher/montrer la liste des smileys lors du premier affichage du chat.

Utilisez btn_sh_smileys pour désactiver complètement la possibilité de voir la liste des smileys.

(true par défaut)

btn_sh_whosonline
Permet de cacher ou montrer le bouton showwhosonline (celui qui permet de cacher/montrer la liste des pseudonymes)

(true par défaut)

btn_sh_smileys
Permet de cacher ou montrer le bouton showsmileys (celui qui permet de cacher/montrer la liste des smileys)

(true par défaut)

themeurl
Permet de spécifier l'url à utiliser pour acceder aux themes (très utile pour la réécriture d'url)

(ce paramètre est automatiquement calculé en fonction de themepath

themepath
Le chemin vers les themes. Les sous répertoires sont les différents thems disponibles.

(dirname(__FILE__)."/../themes" par défaut)

theme
Ce peramètre permet de spécifier quelle theme utiliser. La liste des themes possible sont les nom des sous répertoires de themepath.

("default" par défaut)

language
Permet d'afficher le chat dans une langue donnée. Les valeurs possibles sont les nom des sous répertoires de i18n.

(par défaut la langue est celle du serveur qui héberge le chat)

output_encoding
Permet de spécifier l'encodage à utiliser pour afficher les labels. Concretement ce paramètre doit correspondre à l'encodage de la page Web contenant le chat.

(par défaut UTF-8, c'est à dire aucun transcodage car les messages sont stoqués en UTF-8 par défaut)

container_type
Permet de spéficier le conteneur à utiliser. Pour le moment, seul le conteneur File (système de fichier) est disponible mais dans le future de nombreux conteneurs existerons surrement (mysql, irc, msn, jabber...).

("File" par défaut)

server_script_path et server_script_url
Ces paramètres permettent de spécifier un script externe qui sera chargé des communication client/serveur du chat. Ce paramètre est très utile lorsque le script du chat (client) consomme beaucoup de ressources (voyez la demo3 pour un exemple concret). Le premier paramètre spécifie l'endroit du fichier lui même, le second paramètre indique l'url où est situé le fichier (utile pour la réécriture d'url)

(par défaut on utilise le même scripte que le script client pour les communications)

client_script_path et client_script_url
Ces paramètres sont utilisés pour spécifier le chemin du script qui va afficher le chat (script client). Ces options peuvent être utile lorsque la configuration du serveur est peu commune. Le premier paramètre spécifie l'endroit du fichier lui même, le second paramètre indique l'url où est situé le fichier (utile pour la réécriture d'url)
(par défaut pfc va essayer d'auto-detecter le script client en fonction des variables globales du serveur)
useie7
Mettre ce paramètre à false désactivera l'ajout des scripts IE7 permettant un meilleur affichage dans Internet Explorer.

(true par défaut)

ie7path
Spécifie le répertoire vers la librairie IE7. Ce paramètre est utile si vous avez déjà installé la librairie ie7 et que vous voulez économiser des octets sur votre serveur.

(dirname(__FILE__)."/../lib/IE7_X_X" par défaut)

jspath
Spécifie le répertoire vers les librairies javascript (md5, cookie ...).

(dirname(__FILE__)."/../lib/javascript" par défaut)

usecsstidy
Mettre ce paramètre à false désactivera l'utilisation de la librairie CSSTidy utilisée pour optimiser (en taille) la génération des CSS.

(false par défaut car sur certains serveur la librarie CSSTidy pose des problèmes)

csstidypath
Spécifie le répertoire vers la librairie CSS Tidy. Ce paramètre est utile si vous avez déjà installé une librairie csstidy et que vous voulez économiser des octets sur votre serveur.

(dirname(__FILE__)."/../lib/csstidy-X.X" par défaut)

xajaxpath
Spécifie le répertoire vers la librairie xajax. Ce paramètre est utile si vous avez déjà installé une librairie xajax et que vous voulez économiser des octets sur votre serveur.

(dirname(__FILE__)."/../lib/xajax_X.X" par défaut)

data_private_path
Ce répertoire est utilisé pour stoqué les données privées du chat : les répertoires des salons, les messages, et les pseudonymes. Astuce : vous pouvez optimisez les performances coté serveur en spécifiant un répertoire en mémoire vive (RAM disk, tmpfs), voyez cette section dans la FAQ.

(dirname(__FILE__)."/../data/private" par défaut)

data_public_path et data_public_url
Ce répertoire doit être impérativement accessible par votre serveur Web. Les scripts IE7 et xajax necessaires au chat y seront stockés. Le premier paramètre indique le répertoire absolue au niveau système de fichier, et le second indique l'url pour y acceder depuis le navigateur (utile pour la réécritude d'url)

(dirname(__FILE__)."/../data/public" par défaut, data_public_url lui est calculé automatiquement)

debug
Cette option est très utile pour les développeurs. La mettre à true va activer les messages de log et la console de debug.

(false par défaut)

debugxajax
Cette option est très utile pour découvrire les bug cachés (warning php lors d'une requete xajax par exemple) . Mettre cette option à true va activer les popup javascript de xajax pour tracer la communication client/serveur.

(false par défaut)

prefix
Ce prefix est utilisé pour chaques fonctions javascript, chaque id CSS et chaques classes CSS de façon à éviter les recouvrements de variables entre phpfreechat et votre site web.

("pfc_" par défaut)