Page 1 sur 1

Bouton de pause messages

Posté : 20 janv. 2011, 22:00
par JohnSteven
Bonjour,

J'ai fait un systeme de messages pour une webradio. En effet, l'auditeur envoie un message à partir du site et moi je le recois sur une page web accessible seulement par moi.

Le problème c'est que j'ai besoin d'un bouton pour mettre en pause le défilement des messages parce que j'en recois tellement que je n'arrive pas à lire.

Est-ce possible à faire ? :)

Merci

Re: Bouton de pause messages

Posté : 20 janv. 2011, 22:16
par moogli
salut,

surement, cela dépend de comment c'est fait.

si cela change sans intervention de ta part ça doit être du JS, du flash ?

sans code et plus d'info on ne peut t'aider.

@+

Re: Bouton de pause messages

Posté : 20 janv. 2011, 22:26
par JohnSteven
Salut,

C'est du JS , je peux te filer le systeme par message privé si besoin. C'est en effet une shoutbox sauf que les messages arrivent sur une page différente.

Re: Bouton de pause messages

Posté : 20 janv. 2011, 23:26
par moogli
oula je suis pas assez calé en JS pour cela.

mais sur le principe tu a une fonction qui va chercher les infos en continue, il faut ajouter un paramètre qui s'il est validé "arrete" le poling, donc arrête la fonction. en gros

Code : Tout sélectionner

function polling( stop=false) { if (stop == false) { // contenu de la fonction d'origine } else { // rien }
@+

Re: Bouton de pause messages

Posté : 21 janv. 2011, 22:25
par JohnSteven
C'est ca la fonction:
function refreshShouts() {
	var refreshRate = 1000; // time in milliseconds
	var cacheBuster = (new Date).getTime();
	$.ajax({
	   	type: "POST",
	   	dataType: "xml",
	   	url: "php/getShouts.php",
	   	data: {op: 'tick', time: cacheBuster},
	   	error: function() { $('#shoutStatus').empty().addClass('shoutError').html('An error occured! Try again.'); },
	   	success: function(xml){
	   		if($('shout', xml).size() > 0) {
				$('#shoutStatus').empty().removeClass().addClass('shoutStatus').html('Showing shouts.');
		   		$('shout', xml).each(function(id){
		   			var nickname = $('nickname', this).text();
		   			var ville = $('ville', this).text();
		   			var gsm = $('gsm', this).text();
		   			var message = $('message', this).text();
		   			var date = $('date', this).text();
		   			var cssClass = 'shoutRow1';
		   			if((id%2)/10 == 0)
		   				cssClass = 'shoutRow';
		   			var shoutRow = '<div id="'+cssClass+'"><span id="gsm">'+gsm+' | </span><span id="nickname">'+nickname+' <span id="ville">| '+ville+':</th></tr> </span><span id="shoutedMessage">'+message+'</span><br /> <span id="date">('+date+')</span></div>';
		   			if(id == 0)
		   				$('#shoutsContainer').empty().removeClass().addClass('shouts').html(shoutRow);
		   			else
		   				$('#shoutsContainer').removeClass().addClass('shouts').append(shoutRow);
		   		});
	   		} else {
	   			$('#shoutStatus').empty().addClass('shoutError').html($('error', xml).text());
	   			$('#shoutsContainer').empty().removeClass().addClass('noShouts').html('Shouts will be displayed here!');
	   		}
	   	}
	});
	setTimeout('refreshShouts()', refreshRate);
}
Donc j'ai besoin de qqchose qui l'arrete ?

Re: Bouton de pause messages

Posté : 22 janv. 2011, 19:40
par JohnSteven
Personne ? :cry:

Re: Bouton de pause messages

Posté : 22 janv. 2011, 20:22
par Ryle
L'idée, c'est tout simplement de ne pas exécuter le code de la fonction lorsque tu a cliqué sur pause. Il y a de nombreuses façon de le faire... tu peux par exemple tester si une case est cochée : si oui tu es en pause donc pas d'exécution, sinon, tu n'es pas en pause et il exécute le code :

Code : Tout sélectionner

function refreshShouts() { var refreshRate = 1000; // time in milliseconds var cacheBuster = (new Date).getTime(); if (!document.getElementById('idDeMaCaseACocher').checked) { // ajout du test : si la case n'est pas cochée $.ajax({ ... }); } // fin du test // on garde le prochain rappel de la fonction en dehors du test setTimeout('refreshShouts()', refreshRate); }
Et dans ton code html, il te suffit juste d'ajouter :
<input type="checkbox" id="idDeMaCaseACocher" /> <label for="idDeMaCaseACocher">Pause</label>

Re: Bouton de pause messages

Posté : 22 janv. 2011, 20:42
par JohnSteven
Le probleme maintenant c'est que je n'arrive plus du tout à envoyer des messages :(

Re: Bouton de pause messages

Posté : 22 janv. 2011, 21:16
par JohnSteven
Ce ne serait pas mieux de mettre en pause l'execution du javascript "code.js" sur la page ou je recois les sms ?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="en-US" dir="ltr">
	<head>
		<title>Guillaume Radio Libre | SMS</title>
		<link rel="stylesheet" type="text/css" href="style/style.css">
		<meta name="Title" content="Guillaume Radio Libre">
		<meta name="Distribution" content="free">
		<meta name="Robots" content="All">
		<meta name="verify-v1" content="r/NImAjDz0HRiUAolYgw6ctQfuyYPuRHvhpSgyiYDnA=" />
		<script src="js/jquery.js" type="text/javascript" language="javascript"></script>
		<script src="js/code.js" type="text/javascript" language="javascript"></script>
</head>
<body>
	<div id="content">
		<div id="header">
						<input type="checkbox" id="idDeMaCaseACocher" /> <label for="idDeMaCaseACocher">Pause</label>
						<div class="shouts" id="shoutsContainer"></div>			
					</div>
				</td>
			</tr>
		</table>
			<p id="footer">&copy; 2011 JohnSteven. All rights reserved.</p>
	</div>
</body>
</html>
Donc le meme checkbox mais qui annule le <script src="js/code.js" type="text/javascript" language="javascript"></script>

Re: Bouton de pause messages

Posté : 22 janv. 2011, 22:37
par JohnSteven
Ah non, j'ai reussi !!

J'ai du mettre le code html sur la page d'envoi aussi.

Merci Ryle =D> :wink:

Re: Bouton de pause messages

Posté : 23 janv. 2011, 11:43
par Ryle
Effectivement, si le même code est utilisé côté utilisateur, il va bloquer si la case n'est pas présente... mais si tu ne veux pas proposer de bouton "pause" à tes visiteurs, il te suffit juste de modifier le test :
if (!document.getElementById('idDeMaCaseACocher') || !document.getElementById('idDeMaCaseACocher').checked)
on test ainsi la présence de la cas en plus du fait qu'elle soit cochée. Si la case n'existe pas (côté utilisateur), ou qu'elle n'est pas cochée (côté chez toi), on exécute le rafraîchissement :)

Re: Bouton de pause messages

Posté : 23 janv. 2011, 12:06
par JohnSteven
Sinon, c'est possible de faire un bouton qui supprime tous les messages de la base données ?

Re: Bouton de pause messages

Posté : 23 janv. 2011, 18:11
par moogli
Oui c'est possible


Il faut une requete delete en reponse au formulaire (meme chose en ajax).

@+