» ChatBox pour Invision Board (IBF)
Rédigé par :
Guillaume
Le : 10/01/2004 à 08:12
Hits : 10152
Le ChatBox est difficilement trouvable pour les dernières versions d'IBF. Voici un article vous permettant simplement d'ajouter un ChatBox à votre forum Invision Board.
Attention ce n'est pas un Mod, il faut l'ajouter manuellement dans votre page et non par la zone d'administration. Placez une iframe comme en bas de l'article à l’endroit où vous désiré le placer. Sur le site de démo, il a été placé sur le fichier skin_global.php ligne 82 sous la <% MEMBER BAR %>
Les données sont stockées dans un fichier texte, il faudra y faire le vide de temps en temps ou créer une fonction php pour le faire (Voir en fin d’article).
Article en démo sur le site TheL5 :
http://www.thel5.com/foruml5/
article_14.php
<?php
// ------------------------------------------------------------------------- //
// ChatBox //
// ------------------------------------------------------------------------- //
// 10/01/2004 à 08h12 par Guillaume JIGUEL (guillaume@gphp.net) //
// ------------------------------------------------------------------------- //
// http://www.gphp.net/articles,14.php //
// ------------------------------------------------------------------------- //
// Status
define('STATUS', 'ON');
// Fichier contenant les messages
$fichier = 'chatbox.txt';
// Nombre de messages affichés
$nb = 20;
// pseudo Admin pour couleur différente
$admin = array ('pseudo');
// Connexion à la DB
$db = mysql_connect('localhost','user','password');
mysql_select_db('database');
// On démarre la session de reconnaissance des pseudos
function id_to_name ($id) {
$requete = 'SELECT name FROM ibf_members WHERE id = "'.$id.'"';
$resultat = mysql_query($requete);
$row = mysql_fetch_array($resultat);
return $row['name'];
}
// On identifie les utilisateurs enregistés grace au Cookie généré par IBF...
if ( isset($_COOKIE['member_id']) ) $pseudo = id_to_name($_COOKIE['member_id']);
else $pseudo = 'anonyme';
// Ecriture du fichier.
if ($_POST['message']) {
$message = $_POST['message'];
if ($fp = fopen($fichier,'a')) {
// On évite le html dans les messages
$message = str_replace('<', '<', $message);
$message = str_replace('>', '>', $message);
// On peut mettre les pseudos admin en couleurs
if (in_array($pseudo, $admin)) {
$pseudo = str_replace($pseudo, '<span style="color: #0000FF">'.$pseudo.'</span>', $pseudo);
}
// On remplace les URL
$message = eregi_replace("^(http://|ftp://|irc://|mailto:|www\.)([^ \)\"'<>]+)","<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", $message);
fgets($fp, 4096);
fputs($fp, '<i>'.date('d-m H:i')." </i><b><$pseudo></b> $message<br>\n");
fclose($fp);
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php if (STATUS == 'ON') echo '<meta http-equiv="Refresh" content="50; url=article_14.php">'; ?>
<title>ChatBox pour IBF</title>
<style type="text/css">
body {
background-color: #BBD7FF;
font-family: Arial;
font-size: 12px;
}
#message {
color: #FFFFFF;
border: 1px solid #345487;
background-color: #345487;
background-image: url('style_images/1/tile_back.gif');
font-size: 12px;
font-weight: bold;
height: 26px;
padding-left: 5px;
vertical-align: middle;
}
form {
margin: 0px
}
#frame {
background-color: #E4EAF2;
border-right: 1px solid #345487;
border-bottom: 1px solid #345487;
border-left: 1px solid #345487;
width: auto;
height: 110px;
overflow: auto
}
</style>
<script language="JavaScript">
function smileys(){
window.open('smileys.html','Legends','width=150,height=220,resizable=yes,scrollbars=yes');
}
</script>
</head>
<body<?php if ($_POST['message']) echo ' onload="document.ChatBox.message.focus();"'; ?>>
<?php
// On vérifie le status du ChatBox
if (STATUS == 'ON') {
?>
<div id="message">
<form name="ChatBox" method="post" action="<?=$_SERVER['PHP_SELF']?>" style="float: left">
<img src="style_images/1/nav_m.gif" border="0"> Message :
<input type="text" name="message" size="40" maxlength="256">
<input type="submit" value="Envoyer">
<a href="javascript:smileys();"><img src="bouton_smileys.gif" border="0" alt="Inserer un Smiley" width="29" height="23" align="absmiddle"></a>
</form>
<form method="post" action="article_14.php" target="chat">
<input type="submit" value="Actualiser">
</form>
</div>
<div id="frame">
<?php
// Lecture du fichier texte
$file = file($fichier);
$cpt = count($file); $i=$cpt-$nb; if($i<0)$i=0;
while($cpt>=$i) $affiche .= chop($file[$cpt--]);
$affiche = ereg_replace("(\n|\r)+"," ",$affiche);
// Gestion des smileys
$smileys = array (
':huh:',
':o',
':P',
':D',
':lol:',
'B)',
':rolleyes:',
'<_<',
':)',
':hangry:',
':(',
':unsure:',
':blink:',
':ph34r:',
';crying',
':love',
':winkingmen:',
':violent'
);
$icones = array (
'<img src="html/emoticons/huh.gif" border="0" alt="">',
'<img src="html/emoticons/ohmy.gif" border="0" alt="">',
'<img src="html/emoticons/tongue.gif" border="0" alt="">',
'<img src="html/emoticons/biggrin.gif" border="0" alt="">',
'<img src="html/emoticons/laugh.gif" border="0" alt="">',
'<img src="html/emoticons/cool.gif" border="0" alt="">',
'<img src="html/emoticons/rolleyes.gif" border="0" alt="">',
'<img src="html/emoticons/dry.gif" border="0" alt="">',
'<img src="html/emoticons/smile.gif" border="0" alt="">',
'<img src="html/emoticons/mad.gif" border="0" alt="">',
'<img src="html/emoticons/sad.gif" border="0" alt="">',
'<img src="html/emoticons/unsure.gif" border="0" alt="">',
'<img src="html/emoticons/blink.gif" border="0" alt="">',
'<img src="html/emoticons/ph34r.gif" border="0" alt="">',
'<img src="html/emoticons/crying.gif" border="0" alt="">',
'<img src="html/emoticons/icon12.gif" border="0" alt="">',
'<img src="html/emoticons/winkin_gif.gif" border="0" alt="">',
'<img src="html/emoticons/violent.gif" border="0" alt="">'
);
$affiche = str_replace($smileys, $icones, $affiche);
echo stripslashes($affiche);
?>
</div>
<?php
}else{
echo '<div align="center"><b>ChatBox : En Cours de Maintenance, merci de patienter ...</b></div>';
}
?>
</body>
</html>
<!-- [EXEMPLE] A retiré de la page article_14.php pour les tests -->
<!-- On peut l'insérer facilement dans une page grace à une Iframe -->
<iframe name="chat" src="chatbox.php" height="200" width="600" border="0" frameborder="0" scrolling="no"></iframe>
<!-- Il faut aussi surveiller le fichier texte si votre ChaBox est beaucoup fréquenté article_14.php?reset=ok -->
<?php
function resetTxt($fichier) {
$fp = @fopen($fichier, 'w+');
fgets($fp, 0);
fputs($fp, '');
fclose ($fp);
echo $fichier . ' à bien été reset le ' . date('d/m/Y à H:i', time());
}
if ($_GET['reset'] == 'ok') resetTxt('chatbox.txt');
?>
<!-- Créer une page smileys.html et placez y vos smileys -->
<script language="JavaScript">
function emoticon(code){
opener.document.ChatBox.message.value += ' ' + code + ' ';
}
</script>
<a href="javascript:emoticon(':huh:')"><img src="forum/html/emoticons/huh.gif" alt="smilie" border="0"></a>
<!-- [/EXEMPLE] -->
» Commentaires
Pas de commentaires.
Vous devez être connecté en tant que Membre pour pouvoir poster un commentaire, Inscrivez vous ici !