Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Module Shootbox Made Simple v1.3.0-beta2
#1

Ca y est j'ai finit mon développement d'une shootbox propre ! (et par là mon premier développement de module full cmsms)

http://dev.cmsmadesimple.org/projects/shootbox

J'attends avec impatience vos retours dessus Wink

ne fonctionne qu'en php5. Pour les utilisateurs de OVH, pensez à créer à la racine de votre site un fichier .htaccess contenant la ligne suivante :

Code :
SetEnv PHP_VER 5
démonstration sur http://www.furie.be/shootbox.html

Paramètres :

* (optional) lang="en_US" - Paramètre utilisé pour spécifier dans quelle langue afficher le module dans la partie publique. Ce paramètre n'est pas supporté ou utile pour tous les modules.
* (optional) maxInScreen="" - Nombre de shoot en affichage. Valeur par défaut : 10
* (optional) maxInDb="" - Nombre de shoot à conserver en base. Valeur par défaut : 40
* (optional) refresh="" - durée en miliseconde avant de rafraichir la liste des shoots. Valeur par défaut : 2000ms (2secondes). NE PAS DEFINIR A UNE VALEUR INFERIEUR A 1000 (surcharge du serveur)
* (optional) timeFormat="" - Format de la date de création d'un shoot. Valeur par défaut : H:iConfused. Plus d'information sur : http://fr.php.net/manual/en/function.date.php
* (optional) delayOfLastShoot="" - durée en seconde accordée avant d'afficher un message spécifiant le délai écoulé depuis le dernier shoot. Par défaut : aucun message
* (optional) sort="" - Spécifie le tri. "ASC" (par défaut) trie du plus ancien en haut au plus récent en bas de liste. "DESC" pour l'inverse
* (optional) url="" - Gère les urls :
"none" => remplace l'url par un mot,
"default" => l'option par défaut, écrit l'url sans lien html
"link" => génère un lien html externe sans changer le texte,
"xxxx" => génère un lien html externe, remplace le texte par "xxxx" ou autre chose.
* (optional) scroll="" - Définir à "free" si la position de l'ascenseur de la div #shoutbox_contenu ne dois pas descendre. Définir à "last" pour garder le focus sur le dernier message envoyé (dépend alors du paramètre sort). Par défaut : "last". Inutile si la div #shoutbox_contenu n'a aucune hauteur définit (css)
* (optional) credit="" - Par défaut : vrai. Affiche un (très petit) lien vers mon site web. Définir à faut pour cacher le lien.

Les gabarits sont modifiables directement dans le sous répertoires /module/shootbox/template tout en HTML. Les variables utilisables sont :
-> %id% : l'identifiant de la ligne de shoot
-> %ip% : l'ip du posteur (masquage automatique du dernier quart de l'ip en base)
-> %author% : l'auteur
-> %message% : le message
-> %date% : la date du shoot

Il y a 4 gabarits :
-> shootbox_detail.tpl : affichage d'une simple ligne de shoot
-> shootbox_last.tpl : affichage de la ligne de shoot la plus récente.
-> shootbox_noData.tpl : affichage en cas d'absence de donnée en base
-> shootbox_delayOfLastShoot.tpl : personnalise l'affichage de la ligne comportant le temps écoulé entre le dernier shoot et maintenant

A noter qu'une roadMap avec les idées que l'on a pu me donner ici est disponible

edit : mise à jour le 8 mai 2009, nouvelle version 1.0.1
edit : mise à jour le 21 mai 2009, nouvelle version 1.1.0
edit : mise à jour le 15 juin 2009, nouvelle version 1.2.0
edit : mise à jour le 24 juillet 2009, nouvelle version 1.2.1
edit : mise à jour le 24 décembre 2010, nouvelle version 1.3.0-beta1
edit : mise à jour le 24 décembre 2010, nouvelle version 1.3.0-beta2
edit : mise à jour le 28 Juin 2013, nouvelle version 1.4.1
#2

Calp, clap, clap : félicitations, tu as sauté le pas.
Je n'ai jamais essayé de créer un module. Ton retour d'expérience ?

Une petite correction à faire : dans ton template shootbox_display.tpl, modifier method="POST" en method="post". Ca mettra ton code en validité xhtml.
#3

*sous perfusion de café, des cernes sous les yeux*

nan nan ça va, pas trop dur ...

j'ai été plus emmerdé par l'utilisation de l'api Ajax Made Simple (compréhension de son fonctionnement) que par le fait de coder en php à la sauce cmsms. Leur API est hyper bien documentée... no soucis de ce côté. Pour info, ceux qui veulent commencer à coder : installez le module Skeleton. C'est toujours sympa de commencer avec un module déjà commenté de partout qui vous montre deux trois exemples tout con qui fonctionnent. Tu n'as plus qu'a pomper le code pour faire ton propre dev Wink

edit : merci, corrigé et commité sur le svn.
#4

Salut Bess,
Je me permets de te soumettre une remarque au sujet de ta ShootBox... et même des idées :
- La liste de la shootbox redescend automatiquement même quand on est en train de lire un message en haut (résultat il faut se dépêcher de lire sinon hop on se retrouve en bas),
- Il sera pas mal d'indiquer l'heure du dernier message ou du moins depuis combien de temps il a été posté (pour éviter de répondre à quelqu'un si ça fait 2 jours qu'il a posté),
- Est-il possible de choisir l'ordre de tri avec un paramètre pour positionner les nouveaux messages en haut (genre : tri="asc|desc")

Tout ça est basé sur la ShootBox de mon escadrille virtuelle : http://www.2nd-ffs.eu/

Merci en tout cas, je vais suivre ça de prêt... et m'attaquer peut-être à mon module de météo qui pour le moment ne fonctionnait qu'avec des UDT.
#5

edit
#6

En premier point : merci pour les retours et pour les idées, c'est clairement ce qu'il y a de plus motivant dans ce genre d'entreprise Smile

Citation :a liste de la shootbox redescend automatiquement même quand on est en train de lire un message en haut (résultat il faut se dépêcher de lire sinon hop on se retrouve en bas),
Ca va être difficile. vu que l'intégralité du contenu est remplacé en Ajax. Tu peux jouer sur la hauteur de la div#shootbox_contenu + une taille de police suffisamment petite pour tout afficher dans la hauteur + paramétrer le nombre de message à afficher à la fois (param maxInScreen). Tu peux également ralonger le refresh (param refresh)

Citation :- Il sera pas mal d'indiquer l'heure du dernier message ou du moins depuis combien de temps il a été posté (pour éviter de répondre à quelqu'un si ça fait 2 jours qu'il a posté),
J'ajoute l'idée à la todo-list

Citation :- Est-il possible de choisir l'ordre de tri avec un paramètre pour positionner les nouveaux messages en haut (genre : tri="asc|desc")
J'ajoute l'idée à la todo-list. Cependant on aura le même soucis qu'avec ta première remarque...

Citation :Pour le caractère €, peux-tu essayer[...]
génial, je l'avais oublié celui là !
Reste le soucis du passage du symbol '+' qui est remplacé par 'blanc'

Correction sur la prochaine version.

pour info je redonne les paramètres que prend le module :

Code :
Parameters

    * (optional) lang="en_US" - Paramètre utilisé pour spécifier dans quelle langue afficher le module dans la partie publique. Ce paramètre n'est pas supporté ou utile pour tous les modules.
    * (optional) maxInScreen="" - Nombre de shoot en affichage. Valeur par défaut : 10
    * (optional) maxInDb="" - Nombre de shoot à conserver en base. Valeur par défaut : : 40
    * (optional) refresh="" - durée en miliseconde de rafraichir la liste des shoots. Valeur par défaut : 2000ms (2secondes). NE PAS DEFINIR A UNE VALEUR INFERIEUR A 1000 (surcharge du serveur)
    * (optional) timeFormat="" - Format de la date de création d'un shoot. Valeur par défaut : H:i:s. Plus d'information sur : http://fr.php.net/manual/en/function.date.php
#7

Alors je m'intéresse beaucoup à ta shootbox, mais j'ai encore quelques suggestions :

1. D'un point de vue sémantique ce serait pas mal d'organiser les posts des "Shootboxers" sur le principe du :
Code :
<ul>
<li><span>Pseudo :</span> Message</li>
</ul>
2. Avoir la possibilité de poster un lien http:// et qu'il soit transformé en quelque chose de simple du genre <<lien>> au lieu de voir tout le lien (car la shootbox est petite).

3. Avoir la possibilité d'interdire le post de lien...

4. Rendre possible la récupération du Pseudo avec le FEU.

Voilà pour le moment. Tu demandes des retours, j'en donne ;-)
#8

Citation :D'un point de vue sémantique ce serait pas mal d'organiser les posts des "Shootboxers" sur le principe du
je pense proposer un template de base pour la présentation d'une ligne qui actuellement donnerait

Code :
<span class="shoot_date">$date </span>
<span class="shoot_author">$nickname : </span>
<span class="shoot_texte">$texte</span>
ainsi tout le monde pourra personnaliser sa shootbox.

Citation :Avoir la possibilité de poster un lien http:// et qu'il [...]
okay

Citation :Avoir la possibilité d'interdire le post de lien...
l'un n'ira pas sans l'autre Smile

Citation :4. Rendre possible la récupération du Pseudo avec le FEU.
Pas pour tout de suite celui-là. mais je garde l'idée

Citation :Tu demandes des retours, j'en donne
Big Grin


Bon je vais établir un roadmap de développement car j'ai moi même des idées

-> ajout de la commande shell "/quit" pour se déconnecter
-> ajout d'une page d'administration pour faciliter le paramétrage d'une shootbox
-> dans cette partie administration, laisser la possibilité de modérer les lignes
-> possibilité de créer X shootbox différentes.
-> possibilité de logguer les ip selon le masque 255.255.255.0 (et éviter les abus de tout bord)
-> ajout d'une liste de mots censurés.
-> ...

mais pour l'instant je stabilise cette version.

edit : trouvé un nouveau bug.

http://www.alpha-team.fr : fonctionne
http://alpha-team.fr : fonctionne plus.
#9

C'est Ajax. J'ai le même problème pour un autre request.
#10

ouais j'avais trouvé également l'origine... c'est bien beau Ajax Made Simple mais j'ai l'impression qu'il va finir par + me casser les noix que me rendre service au final...

ce soucis + le temps necessaire pour le maitriser + l'anomalie relevée par kraygoon au sujet de l'ascenseur + la perte de focus dû au refresh de l'input + alert JS lorsque l'on change de page si une requête AJAX est en cours

ça pèse pas en sa faveur...

Si j'ai le temps je regarderais combien ça me prendrais de refaire ce que j'ai besoin en ajax. mais ca sera pas pour tout de suite. J'ai maintenant d'autres priorité (après les corrections de bases pour ce module)
#11

Je te propose ceci pour la fonction cleanString
Code :
$string = mysql_real_escape_string(htmlentities(trim($string), ENT_QUOTES, 'UTF-8'));
Par contre, je ne sais pas comment faire pour les +, & et #.
#12

Pour le problème du www ou pas : ajoute ceci dans ton htaccess
Code :
RewriteCond %{HTTP_HOST} ^domaine.com$ [NC]
RewriteRule ^(.*)$ http://www.domaine.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^.*domaine.com [NC]
RewriteRule (.*) http://www.domaine.com/$1 [R=301,L]
Si tu avais installé sur le domaine sans www, il te faudra soit adapter l'htaccess, soit modifier ton config.php ainsi : $config['root_url'] = 'http://www.domaine.com/';
#13

je vais tester tout ca mais ca reste la merde ^^

je vais pas demander à tous ceux qui l'installent de faire cette manip Big Grin
#14

C'est la même chose pour le module de chat ou si tu ajoutes une requête ajax sur formbuilder.
ex: j'ai une requête pour afficher la localité par rapport au code postal sur un formulaire maison et dans une page externe au cms : http://www.pixels2rue.be/inscription.php ou http://pixels2rue.be/inscription.php
No problème.
ex : j'ai une requête pour afficher la localité par rapport au code postal et l'âge par rapport à la date de naissance sur un formBuilder : http://www.menus-cmsms-madesimple.be/bas...ption.html
Là, j'ai été obligé de faire la modif dans l'.htaccess.
Et mes requêtes n'utilisent pas AjaxMadeSimple.
#15

Et puis de toute façon cette redirection sans www -> www est clairement recommandée pour le référencement et les statistiques.
#16

Nouvelle version 1.0.1

http://dev.cmsmadesimple.org/project/files/679

* fix le bug Euro.
* fix la validation Xhtml.
* ajout de la commande "/quit" pour se déconnecter.
#17

Nouvelle version 1.1.0

http://dev.cmsmadesimple.org/project/files/679

Très grosse mise à jour dédicacé à notre ami kraygoon Smile

* fix : bug3417 le symbole # ne fonctionne pas
* fix : bug3418 le symbole & ne fonctionne pas
* fix : bug3419 le symbole + ne fonctionne pas
*
* remove : Dépendance avec le module AjaxMAdeSimple (pour corriger des bugs)
*
* add : gabarit pour le dernier shoot
* add : ganarit pour les autres shoots
* add : gabarit pour le cas ou aucune donnée n'a été trouvé en base
* add : gabarit pour le cas ou l'on doit afficher le temps écoulé depuis le dernier shoot
* add : paramètre pour gérer l'affichage des url (caché, normale, réécriture, ...)
* add : tri des shoots croissant ou décroissant
* add : message avec le délai entre le dernier shoot et maintenant.

démonstration sur http://www.furie.be/shootbox.html

Paramètres :

* (optional) lang="en_US" - Paramètre utilisé pour spécifier dans quelle langue afficher le module dans la partie publique. Ce paramètre n'est pas supporté ou utile pour tous les modules.
* (optional) maxInScreen="" - Nombre de shoot en affichage. Valeur par défaut : 10
* (optional) maxInDb="" - Nombre de shoot à conserver en base. Valeur par défaut : 40
* (optional) refresh="" - durée en miliseconde avant de rafraichir la liste des shoots. Valeur par défaut : 2000ms (2secondes). NE PAS DEFINIR A UNE VALEUR INFERIEUR A 1000 (surcharge du serveur)
* (optional) timeFormat="" - Format de la date de création d'un shoot. Valeur par défaut : H:iConfused. Plus d'information sur : http://fr.php.net/manual/en/function.date.php
* (optional) delayOfLastShoot="" - durée en seconde accordée avant d'afficher un message spécifiant le délai écoulé depuis le dernier shoot. Par défaut : aucun message
* (optional) sort="" - Spécifie le tri. "ASC" (par défaut) trie du plus ancien en haut au plus récent en bas de liste. "DESC" pour l'inverse
* (optional) url="" - Gère les urls :
"none" => remplace l'url par un mot,
"default" => l'option par défaut, écrit l'url sans lien html
"link" => génère un lien html externe sans changer le texte,
"xxxx" => génère un lien html externe, remplace le texte par "xxxx" ou autre chose.

Les gabarits sont modifiables directement dans le sous répertoires /module/shootbox/template tout en HTML. Les variables utilisables sont :
-> %id% : l'identifiant de la ligne de shoot
-> %ip% : l'ip du posteur (masquage automatique du dernier quart de l'ip en base)
-> %author% : l'auteur
-> %message% : le message
-> %date% : la date du shoot

Il y a 4 gabarits :
-> shootbox_detail.tpl : affichage d'une simple ligne de shoot
-> shootbox_last.tpl : affichage de la ligne de shoot la plus récente.
-> shootbox_noData.tpl : affichage en cas d'absence de donnée en base
-> shootbox_delayOfLastShoot.tpl : personnalise l'affichage de la ligne comportant le temps écoulé entre le dernier shoot et maintenant

Bon test à tous et bon amusement. Vos avis et vos retours sur ce module sont évidement toujours les bienvenus Smile
#18

Superbe Bess,

Juste une requête.
Il faudrait empêcher l'envoi de deux fois le même message, je m'explique :
Si je tape "Coucou" et que j'appuie 2 fois sur la touche "Entrée", le message apparait deux fois. Oui je suis vicieux pour aller chercher ces petites bêtes.

Il faudrait, dès l'appui sur la touche "Entrée" effacer le contenu de l'input.

Sinon c'est franchement cool.

Tu n'utilises plus AjaxMadeSimple mais tu utilises quoi à la place ? Du fait maison ?
#19

Ce qui serai bien vu aussi serai simplement que la ou est inscrit "pseudo?", lorsque l'on clique sur le champ, le contenu disparaisse, pour éviter d'avoir à effacer "pseudo?"...

Beau taff sinon Smile
#20

Je m'occuperais de réaliser ces deux requêtes un peu plus tard.
-> empêcher le double envoi de message
-> vider automatiquement la case pseudo

Je dois y ajouter également
-> remettre le focus sur la case pseudo après chaque envoi d'information.

AjaxMadeSimple était la source de pas mal de soucis, d'autant plus chiant que incorrigible sans toucher au code de ce module. Sans compter que généricité rime bien souvent avec 3* trop de code pour ce que tu as besoin. J'ai donc récupéré dans le fichier ajax.js.php le strict minimum vital pour mon cas. La dessus j'ai retiré les alert javascript qui fouttait la merde à chaque changement de page et j'ai corrigé les erreurs pour les symboles +&# en prenant exemple sur le moteur google \o/

la correction pour ceux qui se poseraient la question : avant l'envoi par ajax des paramètres du contenu du champs input :

Code :
value0 = value0.replace('+','%2B').replace('#','%23').replace('&','%26');
tellement simple, tellement efficace Smile
#21

Effectivement se passer de dépendances est bien souvent plus souple.
#22

C'est moi ou la shout ne fonctionne pas sous IE ? En tous cas pas sous la dernière monture ?
#23

negatif devoluti0n : http://www.furie.be/shootbox.html message envoyé avec IE6 sous une shootbox 1.1.0 Wink

tu as quoi comme problème ?
#24

Sous IE 8, je n'arrive pas à envoyer de messages, rien de se passe après validation, après perso j'utilise google chrome donc bon :/...
#25

étrange. Je tenterais le test sur un autre PC ayant IE8.
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 4 visiteur(s)