» ChatBox pour Invision Board (IBF)

Rédigé par : Guillaume
Le : 10/01/2004 à 08:12
Hits : 10152
TéléchargerImprimer
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('<''&lt;'$message);
        
$message str_replace('>''&gt;'$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($fp4096);
        
fputs($fp'<i>'.date('d-m H:i')." </i><b>&lt;$pseudo&gt;</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($fp0);
    
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 !