Chat automatisé : Message qui en remplace un autre

Petit nouveau ! | 7 Messages

30 oct. 2016, 09:56

Bonjour.

Je possède un chat avec des messages automatiques dessus avec 1000ms entre chaque.
Voici un example en live : http://getwebscript.com/fakechatbot/
(Attention au son)

J'aimerais que quand "MESSAGE 2" apparait "MESSAGE 1" disparaît et "MESSAGE 2" prend ça place. Etc avec les prochains messages.
J'ai passé environ 10 heures cumulé sur deux jours à essayer de le faire moi même, j'ai pas réussi..

Voici index.html :
<!DOCTYPE html>
<html>
    <head>
        <title>Fake Chat Script v2.0</title>
        <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,400,300,600' rel='stylesheet' type='text/css'>        
        
        <link rel="stylesheet" href="css/chat.css">
        <link rel="stylesheet" href="css/jquery.fs.scroller.css">
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <script src="js/jquery.fs.scroller.js"></script>
        <script src="js/moment.js"></script>
        <script src="js/livestamp.min.js"></script>
        
        <style>
            body,html{margin:0;padding:0;background:#7287a1;font-family:'Open Sans',Arial,sans-serif}
            .landing{font-size:72px;text-align:center;margin-top:25%;color:#485666;text-shadow:0 -1px 0 rgba(0,0,0,0.7)}
        </style>
        <script>
            var update_timer = 10; // How many seconds between messages
        </script>
    </head>
    <body>
        <h1 class="landing">Live Chat 24/7</h1>
        <div id="CX_chatbox" class="cx-offline">
            <div id="CX_btn_0" style="color: rgb(255, 255, 255); width: 250px; right: 30px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; bottom: 0px; padding:10px; background-color:#327CCB;" class="cx-chat-btn cx-online-btn cx-no-ico">
                <div class="cx-ico cx-ico-chat" style="display:none"></div>
                <div class="cx-ico cx-ico-arrow-up" style="display:block;"></div>
                <div class="cx-title" style="display:block;">Chat</div>
            </div>

            <div id="CX_popup_0" data-id="0" class="cx-widget" style="display: none; width:300px; right:30px;bottom:0;border-radius:4px 4px 0 0; overflow: hidden;">
                <div class="cx-">
                <div id="CX_popup_header_0" class="cx-header" style="border-radius:4px 4px 0 0;background-color:#327CCB; color:#ffffff;">
                    <div class="cx-title" style="text-align:left; padding:10px;">
                        Chat
                        <div class="cx-ico cx-ico-arrow-down" style="float:right;"></div>
                    </div>

                </div>

                <div id="CX_popup_body_0" class="cx-body" style="height: 300px; overflow: hidden;">
                    <div class="chat_content"></div>
                </div>

                <div class="chat_input">
                    <textarea id="omdc" placeholder="Your Message..."></textarea>
                </div>
            </div>
        </div>
        <script src="js/chat.js"></script>
        <script>openChat();</script>
    </body>
</html>

Voici chat_functions.php qui gère tout :
<?php

session_start();
$numofmessages = 9;
$repeatmessages = 0;
$default_messages = array(
    "Hi there, I just bought this product and it's awesome!",
    "Is it really working or is just a scam?",
    "I don't know, let me try...be back in a sec",
    "Ok dude, waiting.",
	"Hie buddy i am from france",
    "Its a great site and awasome product.",
    "I am going to buy ,This awasome chat from getwebscript.com",
    "Alright, I'm back...it actually works! OMG!",
    "This chat is really helpful to increase product sell"
);
function templateMessage($message, $client = 0){
	$html = '
	<div class="message_a">
        <h4 class="name">Anonymous</h4>
        <h4 class="ago"><span data-livestamp="'.strtotime(Date("Y-m-d H:i:s")).'"></span></h4>
        <div class="message">
        '.$message.'
        </div>
    </div>';
    if($client == 0) $_SESSION['messages']['c_' . microtime()] = $html;
    else $_SESSION['messages']['u_' . microtime()] = $html;
	return $html;
}
function getAllMessages($max, $default_messages){
	$html = "";

	if(isset($_SESSION['messages'])):
		foreach($_SESSION['messages'] as $message_html):
			$html .= $message_html;
		endforeach;
	else:
		$html = templateMessage($default_messages[0]);
	endif;

	return $html;
}

function getMessage($max, $repeat, $default_messages){
	$recievedmessages = 0;
	$html = "";
	
	if(isset($_SESSION['messages'])):
		foreach($_SESSION['messages'] as $message_type => $message_html):
			if(strstr($message_type, "c_")) $recievedmessages++;
		endforeach;
	endif;

	if($recievedmessages > $max - 1):
		if($repeat == 1):
			$html = templateMessage($default_messages[$recievedmessages%$max]);
		endif;
	else:
		$html = templateMessage($default_messages[$recievedmessages]);
	endif;

	return $html;
}

function sendMessage(){
	return templateMessage($_POST['message'], 1);
}

if(isset($_POST['action']))
switch($_POST['action']):
	case "getmessages":
		echo getAllMessages($numofmessages, $default_messages);
	break;
	case "getmessage":
		echo getMessage($numofmessages, $repeatmessages, $default_messages);
	break;
	case "sendmessage":
		echo sendMessage();
	break;
endswitch;
?>

Mammouth du PHP | 2703 Messages

30 oct. 2016, 14:55

c'est là que cela se passe :
<script src="js/chat.js"></script>
on a bien accès à ce fichier mais le code a été compliqué pour un humain alors c'est trop long de dire ce qu'il faut changer.

Petit nouveau ! | 7 Messages

31 oct. 2016, 03:08

Bonjour,

Ah bon ? Oui j'ai vue que c'était des caractères mélanger..

Comment le déchiffrer ou le comprendre ?
Impossible de faire ce que je veux via la DIV ou sinon le PHP ?

Eléphant du PHP | 176 Messages

01 nov. 2016, 03:35

Bonsoir,

Ceci devrait marché (à adapter suivant ton besoin)
<script>
$(document).ready(function(){
      $('.chat_input').keydown(function (e){
            if(e.keyCode == 13){
                $('.chat_content').empty();
            }
        });
});
</script>

A chaque fois que ton utilisateur appuie sur entrer lorsqu'il a cliqué dans le barre du chat on clear le contenu du chat
ensuite l'autre message sera ajouté
Cordialement
Naroth

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

01 nov. 2016, 17:31

Message supprimé à la demande de son auteur
Quand tout le reste a échoué, lisez le mode d'emploi...