zarbinut35
Messages postés2Date d'inscriptiondimanche 4 avril 2010StatutMembreDernière intervention12 février 2011 7 oct. 2010 à 18:54
Bravo,
Super shootbox elle m'a sauvé la vie.
Merci
SpacePirate
Messages postés1Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 6 juillet 2009 6 juil. 2009 à 14:36
Bonjour, je trouve cette shoutbox très pratique mais je suis débutant et rencontre un petit problème, lorsque j'ajoute un message la page se rafraichi bien mais uniquement sur "mon" navigateur pas sur le navigateur des autres visiteurs!
Firey
Messages postés3Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention23 décembre 2006 23 déc. 2006 à 21:02
On fait comment pour augmenter sa taille?
lilhouh
Messages postés4Date d'inscriptionvendredi 29 avril 2005StatutMembreDernière intervention13 novembre 2006 27 oct. 2006 à 17:14
Bonjour,
Merci pour ce code. Très pratique et compréhensible...dans sa globalité; cependant, en bonne débutante que je suis, je ne vois pas trop comment changer les paramètres de la zone de 'message'.
(lui donner plus de hauteur : 4-5 lignes par exemple).
Autre question. Est -il possible de restreindre le nombre des messages affichés ? ou du moins comment supprimer les plus vieux ?
Merci par avance.
mrmadoverclocker
Messages postés7Date d'inscriptionmardi 24 janvier 2006StatutMembreDernière intervention24 mai 2014 30 août 2006 à 03:47
Hello,
Ce code est assez clean je trouve,merci pour cette belle shoutbox. 10/10
Si tu le reecris,il devrait devenir excellent.
Cependant,j'ai un petit probleme : comment forcer php a travailler en utf-8 pour afficher les caracteres accentues ? (mon site est en utf-8).
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 juil. 2006 à 08:31
Ledju => dans me fichier css, tu cherches les styles de la boîte "shoutbox".
Mamat3000 => Bon, je vais réinstaller ce script et le tester (sois patient, je suis assez débordé), et si
je trouve un peu plus de temps, je le réécrirai parce que bon, il commence à dater, et le code me fait un peu peur ;-)
En tous cas, j'irai jeter un oeil sur ton site, merci :-)
ledjdu24
Messages postés2Date d'inscriptionsamedi 7 janvier 2006StatutMembreDernière intervention25 juillet 2006 25 juil. 2006 à 19:44
Heu c'est ou que je epxu modifiai la largeur ?
Mamat3000
Messages postés9Date d'inscriptionmardi 21 mars 2006StatutMembreDernière intervention21 juillet 2006 21 juil. 2006 à 05:13
J'ai fait le test, il inverse l'affichage, mais affiche pas les 5 derniers...toujours pareil...mais bon...Comme j'ai dit, ce n'est pas grave, ton script reste super. J'ai rajouté une barre de déroulement pour le moment...Dont je ne suis toujours pas capable de la mettre transparente sur Firefox. Mais ça ces une autre histoire.
www.starwarsempire.org Là tu pourras voir ton SHOUT. ;)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 juil. 2006 à 15:36
Ben pq tu ne fais pas ce test...? C'est un test, pour savoir ce qu'il t'affiche dans ce cas-ci.
Mamat3000
Messages postés9Date d'inscriptionmardi 21 mars 2006StatutMembreDernière intervention21 juillet 2006 20 juil. 2006 à 14:01
Bon, bien j'y arrive pas...laisse tomber, je trouverai un autre moyen..Meric pour l'aide
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 juil. 2006 à 11:52
Je ne pige pas.
Bon, testons :
$iBorne = 10;
$i (($iMax count ($tabshout['pseudo']) - 1) >= $iBorne)?$iBorne:$iMax;
for ($i; $i>=0; $i--)
Mamat3000
Messages postés9Date d'inscriptionmardi 21 mars 2006StatutMembreDernière intervention21 juillet 2006 20 juil. 2006 à 11:46
Malalam => Pour l'envoi des informations vers le fichier txt, tout semble ok, et suis ce que tu expliques, c'est la lecture du fichier qui semble foiré, et ne lit pas à partir du bas, ou simplement, affiche pas de la bonne façon.
J'ai seulement modifier ce que tu m'as donné plus haut, et fait des changements seulement dans le nombre, et symbole pour en arriver ou je veux..mais jamais réussi.
<?php
require_once ("smallform.cls.php");
class shoutBox {
var $fichier; // nom du fichier
var $smiley; // gestion des smileys
var $taille; // taille du fichier
var $style; // gestion du style des textes
var $arrSmiley;
var $arrSmileyTrans;
var $arrStyle;
var $arrStyleTrans;
//constructeur, je changerai plus tard le _construct. Les parametres optionnels sont fixes par defaut.
function shoutBox($smiley=true, $style=false, $taille=10, $fichier="shoutbox.txt") {
$this -> smiley = $smiley;
$this -> style = $style;
$this -> fichier = $fichier;
$this -> taille = $taille*1024;
// tableau des smileys, avec le chemin.
$this -> arrSmiley = array ('', '', '', '');
// tableau des codes correspondants. Ajoutez ce que vous voulez, mais les 2 tableaux DOIVENT comporter le meme nombre d'entrees, evidemment!
$this -> arrSmileyTrans = array (':-o', ':-)', ':-(', ';-)');
// tableau des styles de texte. Memes remarques que pour les smileys.
$this -> arrStyle = array ('','', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '','', '', '','', '', '', '', '', '', '', '', '', '', '', '', '');
$this -> arrStyleTrans = array ('[b]', '[i]','[u]', '[o]', '[a]', '[aqua]', '[black]', '[blue]', '[fuchsia]', '[gray]', '[green]', '[lime]', '[maroon]', '[navy]', '[olive]', '[purple]', '[red]', '[silver]', '[teal]', '[white]', '[yellow]', '[aqua_b]', '[black_b]', '[blue_b]', '[fuchsia_b]', '[gray_b]', '[green_b]', '[lime_b]', '[maroon_b]', '[navy_b]', '[olive_b]', '[purple_b]', '[red_b]', '[silver_b]', '[teal_b]', '[white_b]', '[yellow_b]', '/end');
// validation du formulaire
if (isset($_POST['submit']) && $_POST['submit']=="Shout")
$this -> valider(!empty($_POST['texte'])?$_POST['texte']:"Oouups, oubli texte", !empty($_POST['pseudo'])?$_POST['pseudo']:"Anonyme");
echo '
';
// instantiation d'un objet formulaire
$form = new smallForm($this -> smiley, $this -> style);
// appel de la methode affichant les messages
$this -> affiche();
echo '
';
}
// methode enregistrant le message poste dans le fichier
function valider($texte, $pseudo) {
$texte = $this -> valideCode($texte);
if(get_magic_quotes_gpc()===0)
$entree = addslashes($pseudo.'||'.$texte.'||');
$entree=htmlentities($pseudo.'||'.$texte.'||').date("d-m-y").'||';
// different systeme d'ouverture selon si le fichier existe ou doit etre efface, ou n'existe pas encore
if (file_exists($this -> fichier) && filesize($this -> fichier) >= $this -> taille)
$fp = fopen($this -> fichier, 'w') or die("Echec d'ouverture du fichier");
else
$fp = fopen($this -> fichier, 'a') or die("Echec d'ouverture du fichier");
$ecriture=fwrite($fp, $entree) or die ("Echec d'ecriture dans le fichier");
fclose ($fp);
}
// fonction recuperant les valeurs du tableau en fonction d'un calcul modulo (cree pour recuperer chaque pseudo, message et date dans un tavbleau specifique
function getValeursTab($tab, $div, $reste) {
while ($dmp=current($tab)) {
if (key($tab)%$div==$reste)
$tabT[] = $tab[key($tab)];
next($tab);
}
return $tabT;
}
// methode pour afficher les messages.
function affiche () {
if(file_exists($this -> fichier)) {
fopen($this -> fichier, 'r') or die ("Echec d'ouverture du fichier");
// on parse une 1ere fois pour recuperer dans un tableau chaque pseudo suivi de chaque message
if(get_magic_quotes_runtime()===1)
$tabtmp = explode('||', stripslashes(file_get_contents($this -> fichier)));
else
$tabtmp = explode('||', file_get_contents($this -> fichier));
// si smiley, on va chercher la methode les gerant
if ($this -> smiley)
$tabtmp = $this -> parseCode($tabtmp, $this -> arrSmiley, $this -> arrSmileyTrans);
// si style, on va chercher la methode les gerant...
if ($this -> style)
$tabtmp = $this -> parseCode($tabtmp, $this -> arrStyle, $this -> arrStyleTrans);
// recuperation dans un tableau associatif de chaque pseudo, message, date
$tabshout array ('pseudo'> $this -> getValeursTab($tabtmp, 3, 0), 'texte' => $this -> getValeursTab($tabtmp, 3, 1), 'date' => $this -> getValeursTab($tabtmp, 3, 2));
// affichage proprement dit
$iBorne = 10;
$i (($iMax count ($tabshout['pseudo']) - 1) >= $iBorne)?$iBorne:$iMax;
for ($i; $i>=0; $i--)
echo '',$tabshout['pseudo'][$i],'',' ','[',$tabshout['date'][$i],']','',' :: ','',$tabshout['texte'][$i],'
<hr class="separateur" />';
}
}
// On parse les codes speciaux
function parseCode ($tab, $output, $input) {
return $tab = str_replace($input, $output, $tab);
}
// methode pour equilibrer le nombre de tags fermants, afin d'avoir un html correct en sortie
function valideCode($texte) {
$ouvertures = 0;
$tab = $this -> arrStyleTrans;
array_pop($tab);
foreach ($tab as $txt)
$ouvertures += substr_count($texte, $txt);
$fermetures = substr_count($texte, '/end');
if ($fermetures < $ouvertures)
$texte .= str_repeat('/end', $ouvertures - $fermetures);
if ($ouvertures < $fermetures) {
$oter = $fermetures - $ouvertures;
$tab = explode(' ', $texte);
$i = 0;
foreach ($tab as $k => $v) {
if ($i == $oter)
break;
if ($v == '/end') {
$tab[$k] ='';
$i++;
}
}
$texte = implode(' ', $tab);
}
return $texte;
}
}
?>
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 juil. 2006 à 09:38
Mamat => je ne comprends pas. Mon code fait ceci :il enregistre les messages dans un fichier texte, les derniers arrivés étant en fin de fichier.
Puis pour afficher, il lit ce fichier texte, parse les messages, les met dans un tableau, et lit le tableau en partant de la fin.
Tu n'as rien modifié ?
Aton => merci :-)
aton69
Messages postés1Date d'inscriptionmercredi 29 mars 2006StatutMembreDernière intervention20 juillet 2006 20 juil. 2006 à 03:25
serieu il est super 10/10
Mamat3000
Messages postés9Date d'inscriptionmardi 21 mars 2006StatutMembreDernière intervention21 juillet 2006 18 juil. 2006 à 07:50
Ton code fonctionne bien, mais si je peux rappeler mon message précédent, la manière que le code affiche, il liste les anciens message, et non les 5 derniers. Tu a une idée pour inverser l'envoi du formulaire dans le .txt pour qu'il enregistre le dernier message en haut, ou simplement lire à partir du bat. 'Merci
Mamat3000
Messages postés9Date d'inscriptionmardi 21 mars 2006StatutMembreDernière intervention21 juillet 2006 12 juil. 2006 à 14:39
Bon, Les + - == 0 etc ne fontionne pas...lol...je donnes ma langue au chat..tu connais la raison?
Mamat3000
Messages postés9Date d'inscriptionmardi 21 mars 2006StatutMembreDernière intervention21 juillet 2006 12 juil. 2006 à 14:04
Beaucoup mieux, mais les shouts qui s'affiche sont les 5 premiers, et non les 5 derniers. Mais je fait qqe test pour découvrir comment régler ce prob...Merci
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 12 juil. 2006 à 12:22
Mamat3000
Messages postés9Date d'inscriptionmardi 21 mars 2006StatutMembreDernière intervention21 juillet 2006 12 juil. 2006 à 12:03
hum...je vais semblé ignorant, (que je suis) mais j'arrive pas.
// affichage proprement dit
$i=count($tabshout['pseudo'])-1;
for ($i; $i>=0; $i--)
echo '',$tabshout['pseudo'][$i],'',' ','[',$tabshout['date'][$i],']','',' :: ','',$tabshout['texte'][$i],'
<hr class="separateur" />';
}
}
Un coup de main...je commence en PHP, alors... ;) MErci
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 12 juil. 2006 à 10:14
Hello,
ben par exemple, tu peux, dans la méthode soutbox::affiche(), modifier cette ligne :
$i=count($tabshout['pseudo'])-1;
Ici je compte les lignes.
Bref, tu fixes $i au nombre que tu veux afficher, par exemple (en prenant garde qu'il ne dépasse pas la taille du tableau, quand même).
Mamat3000
Messages postés9Date d'inscriptionmardi 21 mars 2006StatutMembreDernière intervention21 juillet 2006 12 juil. 2006 à 07:34
Slu, Merci pour ce script...Je voulais avoir la possibilité d'afficher un minimum de shout dans un tableau, genre le derniers shout seulement, voir même ajouter un scroll-bar invisible pour dérouler.
Merci
tutoandco
Messages postés20Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention27 avril 2006 25 avril 2006 à 17:17
merci c'est cool :) je mettrait le lien vers la shootbox des que jaurai fini la v4 de mon site :)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 25 avril 2006 à 15:00
Dan,s la méthode shoutbox::valider, tu as cette ligne :
$entree=htmlentities($pseudo.'||'.$texte.'||').date("dmy").'||';
tu remplaces le date ("dmy") par ce que tu veux : date ("d-m-y") par exemple.
Si tu veux la virer : dans la méthode shoutbox::affiche, cette lmigne :
echo '',$tabshout['pseudo'][$i],'',' ','[',$tabshout['date'][$i],']','',' :: ','',$tabshout['texte'][$i],'
';
tu remplaces $tabshout['texte'][$i], par une chaîne vide, par exemple.
tutoandco
Messages postés20Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention27 avril 2006 25 avril 2006 à 14:48
une dernière question comment on enlève la date ?
ou sinon comment on met des slashs entre les dates ?
car ca me donne ca :
[250406] et ca fait pas tres beau :-/
merci d avance :)
tutoandco
Messages postés20Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention27 avril 2006 25 avril 2006 à 10:13
ok merci :)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 25 avril 2006 à 09:10
Ben oui :
// tableau des smileys, avec le chemin.
$this -> arrSmiley = array ('', '', '', '');
// tableau des codes correspondants. Ajoutez ce que vous voulez, mais les 2 tableaux DOIVENT comporter le meme nombre d'entrees, evidemment!
$this -> arrSmileyTrans = array (':-o', ':-)', ':-(', ';-)');
il suffit de modifier ces 2 tableaux.
tutoandco
Messages postés20Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention27 avril 2006 25 avril 2006 à 09:03
est ce qu on peut rajouter des smileys ?
tutoandco
Messages postés20Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention27 avril 2006 25 avril 2006 à 09:00
merci :)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 24 avril 2006 à 10:21
Ahh!
$shout = new shoutBox (true, false); // tu auras les smileys, mais pas les styles.
tutoandco
Messages postés20Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention27 avril 2006 24 avril 2006 à 10:03
je veut enlever les styles c est a dire je veut
pas que les visiteurs puissent mettre le texte en couleur, en gras ou autre
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 24 avril 2006 à 09:11
hello,
merci.
Je ne pige pas bien ta question, mais à priori, oui ? Il suffit de toucher un peu le code...tu veux enlever quoi au juste ?
tutoandco
Messages postés20Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention27 avril 2006 23 avril 2006 à 20:36
slt je voulais te dire deja que ton script est
bien mais est ce que l on peut enlever les styles du champ afficher masquer ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 2 févr. 2006 à 09:25
Mea culpa, et pour les instructions, et pour le fichier...je viens de re-jeter un oeil à ce vieux script et effectivement, la création du fichier s'il n'existe pas ne se fera pas à tous les coups, selon le serveur.
cs_starb
Messages postés1Date d'inscriptionvendredi 24 janvier 2003StatutMembreDernière intervention 1 février 2006 1 févr. 2006 à 21:33
Dans mon cas pour que cela fonctionne j'ai dû créer un fichier shoutbox.txt et le CHMODer pour qu'il accepte les entrées de données. (Ce qui devrait être spécifié dans les instructions qu'il n'y a pas). Malgré tout, merci pour ce script!
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 8 sept. 2005 à 13:26
comme je suis un noob je pateinte pour la reponse parce qu je n'est pas compri les infos suivante dans ton message.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 7 sept. 2005 à 10:50
Hello,
bah oui. ce genre d'erreur indique que la version de php utilisée ne supporte pas la fonction en question.
file_get_contents () nécessite au moins php4.3.0.
Cela veut dire que tu as une version antérieure à la 4.3.0.
Mon conseil : mets ta version de php à jour (on en est à la 5, ça ne fera pas de mal ;-) ). Si c'est chez ton hébergeur, commence
par lui demander s'il ne peut pas upgrader sa version de php.
Sinon, t peux essayer de modifier cette ligne. A la place de file_get_contents (), tu peux essayer avec fread ().
Je ne sais plus quelle est la ligne exacte (j'ai changé de pc, je n'ai plus cette source, et pas le temps de regarder tout de suite). Mais en gros :
$chaine = fread ($fichier, filesize ($fichier));
$ chaine étant la chaine dans laquelle je mets le contenu du fichier (je fais pareil avec file_get_contents () ),
$fichier étant le nom du fichier utilisé
filesize ($fichier) est à ajouter par rapport à file_get_contents (), car fread doit savoir combien d'octets lire. Donc on lui dit de
lire un nombre d'octets égal à la taille du fichier.
J'espère que cela va t'aider. Sinon, il va falloir que tu patientes avant que jepuisse télécharger mon code, le regarder, et faire les modifications,
puis te les donner.
Le mieux restant quand même d'upgrader php, si possible.
cs_Oziris
Messages postés70Date d'inscriptionsamedi 15 février 2003StatutMembreDernière intervention30 décembre 2015 7 sept. 2005 à 10:39
salut et merci pour ce code
par contre il me sort une erreur : fatale en ligne 74 du fichier shoutbox.cls.php
Fatal error: Call to undefined function: file_get_contents() in c:\home\shootbox\shoutbox.cls.php on line 74
si tu a une reponse au probleme merci
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 10 juin 2005 à 09:02
Hello,
mets le dans le forum.
De plus je n'ai pas bien compris ta question ? Pourquoi veux tu mettre une shoutbox dans un forum ?
ffvf1er
Messages postés14Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention13 août 2009 9 juin 2005 à 19:07
comment fait on pour mettre un shoud box sur un forum stv
dsl de mettre ce message ici mais je ne sais vraiment pas ou le mettre
darkdje
Messages postés3Date d'inscriptionvendredi 4 février 2005StatutMembreDernière intervention15 février 2005 15 févr. 2005 à 12:21
Je la met sur le site desuite
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 15 févr. 2005 à 11:44
Il est corrige, j'ai update une nouvelle version qui corrige ca.
Il y aura encore une version dans quelques temps, pour fermer les tags ouverts si l'utilisateur ne l'a pas fait, afin d'avoir en sortie un html correct (voire meme un xhtml correct).
Et je vais reflechir a une petite interface d'administration aussi, pour corriger, modifier, effacer des messages.
darkdje
Messages postés3Date d'inscriptionvendredi 4 février 2005StatutMembreDernière intervention15 février 2005 15 févr. 2005 à 10:26
Umh j'ai rien changer du tous moi lol
Sinon le probleme des ' il vient d'où
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 4 févr. 2005 à 21:36
C'est fait, j'ai rajoute le lien, merci beaucoup Darkdje :-)
Je ne me suis pas penche sur le probleme parce que j'ai fait ca a la va vite, mais j'ai vu que mon style pour les <select> ne marche pas, et que tu l'avais change. Tu as mis quoi?
darkdje
Messages postés3Date d'inscriptionvendredi 4 février 2005StatutMembreDernière intervention15 février 2005 4 févr. 2005 à 21:04
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 févr. 2005 à 09:27
Les classes existaient deja en PHP 4. Maintenant, je ne sais pas, je travaille en PHP 5 effectivement. Je ne pense neanmoins pas qu'il y ait grandchose dans cette source qui pose probleme a PHP 4. Il faudrait tester.
cs_tahiti_bob
Messages postés86Date d'inscriptionjeudi 8 juillet 2004StatutMembreDernière intervention27 juin 20071 2 févr. 2005 à 10:36
Je ne suis pas sûr, mais il y a des class, ce qui requiert l'interpréteur PHP 5
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 28 janv. 2005 à 09:34
Merci :-)
Y aura des evolutions...!
Sinon, si quelqu'un s'en sert en ligne sur un site, s'il le veut, il peut me donner l'url, que je la mette ici pour demo, vu que moi je ne m'en sers pas en ligne lol.
tazmania37
Messages postés46Date d'inscriptionmercredi 29 octobre 2003StatutMembreDernière intervention10 novembre 2009 27 janv. 2005 à 21:49
Impec !
Tout à fait ce que je cherchais mais j'avais la flemme de le faire ! Thx !!! lol
Allez, 9/10 !
Continue...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 27 janv. 2005 à 13:05
Pas a grandchose...faut bien l'avouer!
C'est un genre de mini forum, ou de mini chat a l'extreme limite...qui se place souvent en 1ere page d'un site, dans un coin. Les utilisateurs s'en servent pour mettre de petits messages sur la page d'accueuil quoi, et ca peut rendre plus vivant un site.
Et merci :-) Je travaille encore dessus, il y a qques erreurs de programmation, je veux changer un peu tout ca, et il manque quelques fonctionnalites.
astrolabbcracker
Messages postés106Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention11 juin 2012 27 janv. 2005 à 12:58
ta source a l'air de bien tourner mais...ça sert à quoi une shoutbox ?
7 oct. 2010 à 18:54
Super shootbox elle m'a sauvé la vie.
Merci
6 juil. 2009 à 14:36
Je vous donne le lien de la page en question : http://www.space-pirate.net/radio/radio.php
Merci d'avance pour votre aide!
23 déc. 2006 à 21:02
27 oct. 2006 à 17:14
Merci pour ce code. Très pratique et compréhensible...dans sa globalité; cependant, en bonne débutante que je suis, je ne vois pas trop comment changer les paramètres de la zone de 'message'.
(lui donner plus de hauteur : 4-5 lignes par exemple).
Autre question. Est -il possible de restreindre le nombre des messages affichés ? ou du moins comment supprimer les plus vieux ?
Merci par avance.
30 août 2006 à 03:47
Ce code est assez clean je trouve,merci pour cette belle shoutbox. 10/10
Si tu le reecris,il devrait devenir excellent.
Cependant,j'ai un petit probleme : comment forcer php a travailler en utf-8 pour afficher les caracteres accentues ? (mon site est en utf-8).
26 juil. 2006 à 08:31
Mamat3000 => Bon, je vais réinstaller ce script et le tester (sois patient, je suis assez débordé), et si
je trouve un peu plus de temps, je le réécrirai parce que bon, il commence à dater, et le code me fait un peu peur ;-)
En tous cas, j'irai jeter un oeil sur ton site, merci :-)
25 juil. 2006 à 19:44
21 juil. 2006 à 05:13
www.starwarsempire.org Là tu pourras voir ton SHOUT. ;)
20 juil. 2006 à 15:36
20 juil. 2006 à 14:01
20 juil. 2006 à 11:52
Bon, testons :
$iBorne = 10;
$i (($iMax count ($tabshout['pseudo']) - 1) >= $iBorne)?$iBorne:$iMax;
for ($i; $i>=0; $i--)
=>
$jBorne = 10;
$j (($jMax count ($tabshout['pseudo']) - 1) >= $jBorne)?$jBorne:$jMax;
for ($i = 0; $i<$j; $i++)
20 juil. 2006 à 11:46
J'ai seulement modifier ce que tu m'as donné plus haut, et fait des changements seulement dans le nombre, et symbole pour en arriver ou je veux..mais jamais réussi.
<?php
require_once ("smallform.cls.php");
class shoutBox {
var $fichier; // nom du fichier
var $smiley; // gestion des smileys
var $taille; // taille du fichier
var $style; // gestion du style des textes
var $arrSmiley;
var $arrSmileyTrans;
var $arrStyle;
var $arrStyleTrans;
//constructeur, je changerai plus tard le _construct. Les parametres optionnels sont fixes par defaut.
function shoutBox($smiley=true, $style=false, $taille=10, $fichier="shoutbox.txt") {
$this -> smiley = $smiley;
$this -> style = $style;
$this -> fichier = $fichier;
$this -> taille = $taille*1024;
// tableau des smileys, avec le chemin.
$this -> arrSmiley = array ('', '', '', '');
// tableau des codes correspondants. Ajoutez ce que vous voulez, mais les 2 tableaux DOIVENT comporter le meme nombre d'entrees, evidemment!
$this -> arrSmileyTrans = array (':-o', ':-)', ':-(', ';-)');
// tableau des styles de texte. Memes remarques que pour les smileys.
$this -> arrStyle = array ('','', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '','', '', '','', '', '', '', '', '', '', '', '', '', '', '', '');
$this -> arrStyleTrans = array ('[b]', '[i]','[u]', '[o]', '[a]', '[aqua]', '[black]', '[blue]', '[fuchsia]', '[gray]', '[green]', '[lime]', '[maroon]', '[navy]', '[olive]', '[purple]', '[red]', '[silver]', '[teal]', '[white]', '[yellow]', '[aqua_b]', '[black_b]', '[blue_b]', '[fuchsia_b]', '[gray_b]', '[green_b]', '[lime_b]', '[maroon_b]', '[navy_b]', '[olive_b]', '[purple_b]', '[red_b]', '[silver_b]', '[teal_b]', '[white_b]', '[yellow_b]', '/end');
// validation du formulaire
if (isset($_POST['submit']) && $_POST['submit']=="Shout")
$this -> valider(!empty($_POST['texte'])?$_POST['texte']:"Oouups, oubli texte", !empty($_POST['pseudo'])?$_POST['pseudo']:"Anonyme");
echo '
';
// instantiation d'un objet formulaire
$form = new smallForm($this -> smiley, $this -> style);
// appel de la methode affichant les messages
$this -> affiche();
echo '
';
}
// methode enregistrant le message poste dans le fichier
function valider($texte, $pseudo) {
$texte = $this -> valideCode($texte);
if(get_magic_quotes_gpc()===0)
$entree = addslashes($pseudo.'||'.$texte.'||');
$entree=htmlentities($pseudo.'||'.$texte.'||').date("d-m-y").'||';
// different systeme d'ouverture selon si le fichier existe ou doit etre efface, ou n'existe pas encore
if (file_exists($this -> fichier) && filesize($this -> fichier) >= $this -> taille)
$fp = fopen($this -> fichier, 'w') or die("Echec d'ouverture du fichier");
else
$fp = fopen($this -> fichier, 'a') or die("Echec d'ouverture du fichier");
$ecriture=fwrite($fp, $entree) or die ("Echec d'ecriture dans le fichier");
fclose ($fp);
}
// fonction recuperant les valeurs du tableau en fonction d'un calcul modulo (cree pour recuperer chaque pseudo, message et date dans un tavbleau specifique
function getValeursTab($tab, $div, $reste) {
while ($dmp=current($tab)) {
if (key($tab)%$div==$reste)
$tabT[] = $tab[key($tab)];
next($tab);
}
return $tabT;
}
// methode pour afficher les messages.
function affiche () {
if(file_exists($this -> fichier)) {
fopen($this -> fichier, 'r') or die ("Echec d'ouverture du fichier");
// on parse une 1ere fois pour recuperer dans un tableau chaque pseudo suivi de chaque message
if(get_magic_quotes_runtime()===1)
$tabtmp = explode('||', stripslashes(file_get_contents($this -> fichier)));
else
$tabtmp = explode('||', file_get_contents($this -> fichier));
// si smiley, on va chercher la methode les gerant
if ($this -> smiley)
$tabtmp = $this -> parseCode($tabtmp, $this -> arrSmiley, $this -> arrSmileyTrans);
// si style, on va chercher la methode les gerant...
if ($this -> style)
$tabtmp = $this -> parseCode($tabtmp, $this -> arrStyle, $this -> arrStyleTrans);
// recuperation dans un tableau associatif de chaque pseudo, message, date
$tabshout array ('pseudo'> $this -> getValeursTab($tabtmp, 3, 0), 'texte' => $this -> getValeursTab($tabtmp, 3, 1), 'date' => $this -> getValeursTab($tabtmp, 3, 2));
// affichage proprement dit
$iBorne = 10;
$i (($iMax count ($tabshout['pseudo']) - 1) >= $iBorne)?$iBorne:$iMax;
for ($i; $i>=0; $i--)
echo '',$tabshout['pseudo'][$i],'',' ','[',$tabshout['date'][$i],']','',' :: ','',$tabshout['texte'][$i],'
<hr class="separateur" />';
}
}
// On parse les codes speciaux
function parseCode ($tab, $output, $input) {
return $tab = str_replace($input, $output, $tab);
}
// methode pour equilibrer le nombre de tags fermants, afin d'avoir un html correct en sortie
function valideCode($texte) {
$ouvertures = 0;
$tab = $this -> arrStyleTrans;
array_pop($tab);
foreach ($tab as $txt)
$ouvertures += substr_count($texte, $txt);
$fermetures = substr_count($texte, '/end');
if ($fermetures < $ouvertures)
$texte .= str_repeat('/end', $ouvertures - $fermetures);
if ($ouvertures < $fermetures) {
$oter = $fermetures - $ouvertures;
$tab = explode(' ', $texte);
$i = 0;
foreach ($tab as $k => $v) {
if ($i == $oter)
break;
if ($v == '/end') {
$tab[$k] ='';
$i++;
}
}
$texte = implode(' ', $tab);
}
return $texte;
}
}
?>
20 juil. 2006 à 09:38
Puis pour afficher, il lit ce fichier texte, parse les messages, les met dans un tableau, et lit le tableau en partant de la fin.
Tu n'as rien modifié ?
Aton => merci :-)
20 juil. 2006 à 03:25
18 juil. 2006 à 07:50
12 juil. 2006 à 14:39
12 juil. 2006 à 14:04
12 juil. 2006 à 12:22
$i (($iMax count ($tabshout['pseudo']) - 1) >= $iBorne)?$iBorne:$iMax;
for ($i; $i>=0; $i--)
echo '',$tabshout['pseudo'][$i],'',' ','[',$tabshout['date'][$i],']','',' :: ','',$tabshout['texte'][$i],'
<hr class="separateur" />';
}
}
12 juil. 2006 à 12:03
// affichage proprement dit
$i=count($tabshout['pseudo'])-1;
for ($i; $i>=0; $i--)
echo '',$tabshout['pseudo'][$i],'',' ','[',$tabshout['date'][$i],']','',' :: ','',$tabshout['texte'][$i],'
<hr class="separateur" />';
}
}
Un coup de main...je commence en PHP, alors... ;) MErci
12 juil. 2006 à 10:14
ben par exemple, tu peux, dans la méthode soutbox::affiche(), modifier cette ligne :
$i=count($tabshout['pseudo'])-1;
Ici je compte les lignes.
Bref, tu fixes $i au nombre que tu veux afficher, par exemple (en prenant garde qu'il ne dépasse pas la taille du tableau, quand même).
12 juil. 2006 à 07:34
Merci
25 avril 2006 à 17:17
25 avril 2006 à 15:00
$entree=htmlentities($pseudo.'||'.$texte.'||').date("dmy").'||';
tu remplaces le date ("dmy") par ce que tu veux : date ("d-m-y") par exemple.
Si tu veux la virer : dans la méthode shoutbox::affiche, cette lmigne :
echo '',$tabshout['pseudo'][$i],'',' ','[',$tabshout['date'][$i],']','',' :: ','',$tabshout['texte'][$i],'
';
tu remplaces $tabshout['texte'][$i], par une chaîne vide, par exemple.
25 avril 2006 à 14:48
ou sinon comment on met des slashs entre les dates ?
car ca me donne ca :
[250406] et ca fait pas tres beau :-/
merci d avance :)
25 avril 2006 à 10:13
25 avril 2006 à 09:10
// tableau des smileys, avec le chemin.
$this -> arrSmiley = array ('', '', '', '');
// tableau des codes correspondants. Ajoutez ce que vous voulez, mais les 2 tableaux DOIVENT comporter le meme nombre d'entrees, evidemment!
$this -> arrSmileyTrans = array (':-o', ':-)', ':-(', ';-)');
il suffit de modifier ces 2 tableaux.
25 avril 2006 à 09:03
25 avril 2006 à 09:00
24 avril 2006 à 10:21
$shout = new shoutBox (true, false); // tu auras les smileys, mais pas les styles.
24 avril 2006 à 10:03
pas que les visiteurs puissent mettre le texte en couleur, en gras ou autre
24 avril 2006 à 09:11
merci.
Je ne pige pas bien ta question, mais à priori, oui ? Il suffit de toucher un peu le code...tu veux enlever quoi au juste ?
23 avril 2006 à 20:36
bien mais est ce que l on peut enlever les styles du champ afficher masquer ?
2 févr. 2006 à 09:25
1 févr. 2006 à 21:33
8 sept. 2005 à 13:26
# if(get_magic_quotes_runtime()===1)
# $tabtmp = explode('||', stripslashes(file_get_contents($this -> fichier)));
# else
# $tabtmp = explode('||', file_get_contents($this -> fichier));
par ça :
# if(get_magic_quotes_runtime()===1)
# $tabtmp = explode('||', stripslashes(fread($this -> fichier), filesize ($this -> fichier)));
# else
# $tabtmp = explode('||', fread($this -> fichier), filesize ($this -> fichier));
Ca devrait fonctionner.
8 sept. 2005 à 10:43
8 sept. 2005 à 10:18
je vien de changer ma version de php mais toujour la meme erreur perssiste
voila la ligne en question
$tabtmp = explode('||', file_get_contents($this -> fichier));
comme je suis un noob je pateinte pour la reponse parce qu je n'est pas compri les infos suivante dans ton message.
7 sept. 2005 à 10:50
bah oui. ce genre d'erreur indique que la version de php utilisée ne supporte pas la fonction en question.
file_get_contents () nécessite au moins php4.3.0.
Cela veut dire que tu as une version antérieure à la 4.3.0.
Mon conseil : mets ta version de php à jour (on en est à la 5, ça ne fera pas de mal ;-) ). Si c'est chez ton hébergeur, commence
par lui demander s'il ne peut pas upgrader sa version de php.
Sinon, t peux essayer de modifier cette ligne. A la place de file_get_contents (), tu peux essayer avec fread ().
Je ne sais plus quelle est la ligne exacte (j'ai changé de pc, je n'ai plus cette source, et pas le temps de regarder tout de suite). Mais en gros :
$chaine = fread ($fichier, filesize ($fichier));
$ chaine étant la chaine dans laquelle je mets le contenu du fichier (je fais pareil avec file_get_contents () ),
$fichier étant le nom du fichier utilisé
filesize ($fichier) est à ajouter par rapport à file_get_contents (), car fread doit savoir combien d'octets lire. Donc on lui dit de
lire un nombre d'octets égal à la taille du fichier.
J'espère que cela va t'aider. Sinon, il va falloir que tu patientes avant que jepuisse télécharger mon code, le regarder, et faire les modifications,
puis te les donner.
Le mieux restant quand même d'upgrader php, si possible.
7 sept. 2005 à 10:39
par contre il me sort une erreur : fatale en ligne 74 du fichier shoutbox.cls.php
Fatal error: Call to undefined function: file_get_contents() in c:\home\shootbox\shoutbox.cls.php on line 74
si tu a une reponse au probleme merci
10 juin 2005 à 09:02
mets le dans le forum.
De plus je n'ai pas bien compris ta question ? Pourquoi veux tu mettre une shoutbox dans un forum ?
9 juin 2005 à 19:07
dsl de mettre ce message ici mais je ne sais vraiment pas ou le mettre
15 févr. 2005 à 12:21
15 févr. 2005 à 11:44
Il y aura encore une version dans quelques temps, pour fermer les tags ouverts si l'utilisateur ne l'a pas fait, afin d'avoir en sortie un html correct (voire meme un xhtml correct).
Et je vais reflechir a une petite interface d'administration aussi, pour corriger, modifier, effacer des messages.
15 févr. 2005 à 10:26
Sinon le probleme des ' il vient d'où
4 févr. 2005 à 21:36
Je ne me suis pas penche sur le probleme parce que j'ai fait ca a la va vite, mais j'ai vu que mon style pour les <select> ne marche pas, et que tu l'avais change. Tu as mis quoi?
4 févr. 2005 à 21:04
http://membres.lycos.fr/pat665/index.php pour la demo
3 févr. 2005 à 09:27
2 févr. 2005 à 10:36
28 janv. 2005 à 09:34
Y aura des evolutions...!
Sinon, si quelqu'un s'en sert en ligne sur un site, s'il le veut, il peut me donner l'url, que je la mette ici pour demo, vu que moi je ne m'en sers pas en ligne lol.
27 janv. 2005 à 21:49
Tout à fait ce que je cherchais mais j'avais la flemme de le faire ! Thx !!! lol
Allez, 9/10 !
Continue...
27 janv. 2005 à 13:05
C'est un genre de mini forum, ou de mini chat a l'extreme limite...qui se place souvent en 1ere page d'un site, dans un coin. Les utilisateurs s'en servent pour mettre de petits messages sur la page d'accueuil quoi, et ca peut rendre plus vivant un site.
Et merci :-) Je travaille encore dessus, il y a qques erreurs de programmation, je veux changer un peu tout ca, et il manque quelques fonctionnalites.
27 janv. 2005 à 12:58