JeuWeb - Crée ton jeu par navigateur
Algo de checklist pour wizard - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Algo de checklist pour wizard (/showthread.php?tid=5841)

Pages : 1 2 3


Algo de checklist pour wizard - niahoo - 05-12-2011

Hello les gens,

J'ai du mal à formuler ce que je demande, donc j'arrive pas trop à trouver ce qu'il me faut, alors j'espère que vous connaîtrez des trucs dans le style.

Il faudrait que pour une appli web je puisse afficher un wizard à l'utilisateur. Donc une succession de différents écrans avec entre chacun d'eux des allers retours entre client et serveur (basiquement envoi / réception de forms via ajax ou classique).

Je cherche une lib ou un pattern.

Donc, le principe est de stocker en session les informations de l'entité en train d'être créée. Mais à plusieurs moments il faudra pouvoir insérer dans le processus la création d'entités subalternes.

Un exemple : je m'inscris à un jeu. J'utilise un processus pas forcément réaliste, c'est pour l'exemple.

>> ça commence par la création du personnage. Je donne donc le nom, la description.
=> envoi de requete, on regarde si le nom est libre, on avertit le joueur si non, on le réserve si oui.
>> ensuite seconde étape, j'ajoute des capacités à mon personnage.
=> envoi de requete au serveur qui ajoute ces capacités au perso en gestation. (et si les capactités sont incompatibles, recommencer)
>> maintenant, mettons qu'il faille choisir une guilde existante ou bien en créer une nouvelle.
=> envoi de requete, si on choisit une guilde existante, on doit vérifier que le compte à accès à cette guilde. Pour cela il faut que l'utilisateur soit loggué, bam, on oublie temporairement la création de perso pour entrer dans le processus de login.

Pour le login, c'est pareil, on commence par l'email, si déjà utilisé on demande le mot de passe, sinon j'envoie un mot de passe automatique et je crée le compte.

dans les deux cas on a un user.

Si on choisit plutot de créer une guilde, la requête va la créer et ici aussi on pourra passer sur des écrans supplémentaires afin de choisir des spécificités pour le groupe.

Enfin, avant de créer le personnage, s'il y a eu création de guilde on n'est pas forcément logué donc ici aussi peut intervenir le processus de login.


Un beau bordel quoi. Il faut pouvoir tout gérer dans un ordre logique mais assez libre, que ça reste lisible pour l'utilisateur (donc pouvoir afficher facilement tout ce qu'on est en train de faire et pourquoi on me demande de me connecter/créer un compte) et que ça marche.


J'ai dessiné le workflow et à chaque fois on a une question, deux réponses simples : true ou false.

Et selon chaque réponse on accède à une étape suivante avec soit une nouvelle question (loggué ? accès à telle guilde ?), soit une fonction à exécuter (vérif et ajout des compétences au perso) qui donne lui aussi sur une nouvelle question/écran, ou bien le message final de confirmation.

Donc voilà, si vous avez un concept qui fait ça, open-source, c'est cool.

Merci !


alors je précise, je cherche un truc générique pour m'en servir ou reprendre le principe sur plusieurs apps !


RE: Algo de checklist pour wizard - srm - 05-12-2011

C'est utilisé que dans les jeux ça, pas dans les jeux web de manière générale, je ne suis pas certain de l'intérêt que ça apporte par rapport à la complexité (tout relative, mais complexité tout de même) à réaliser la chose.


RE: Algo de checklist pour wizard - niahoo - 05-12-2011

Ben l'intérêt c'est de pouvoir maintenir des états qui soient également sur le serveur. Je pense qu'on peut pas mal s'appuyer là dessus pour avoir un site réactif, qui peut demander au client les informations quand on en a besoin dans une suite logique, sans perdre le fil de l'activité que le client exerce sur le site.

ça peut être une bonne surcouche pour les framework javascript qui permettent ça en faisant des applis qui s'appuient sur des états côté client auxquels le serveur sert juste de sauvegarde d'objets. Sauf qu'on n'a pas toujours javascript de dispo ou de si performant. (sur un tel portable un peu léger côté performances par exemple)


RE: Algo de checklist pour wizard - Hideaki - 05-12-2011

Ce que tu recherches, se nomme généralement Web Flow.
En java par l'intermédiaire de Spring ( un framework ) propose cela (Spring Web Flow) malheureusement les docs trouvés date (version xml) alors que framework existe version annotation. L'exemple abordé est sans retour en arrière possible mais il est tout à fait possible de le faire.
Je suppose que cela doit exister dans d'autres langages, j'aurais eu plus de temps, j'aurais fait des recherches plus poussé.
En espérant avoir répondu à ta question.


RE: Algo de checklist pour wizard - srm - 06-12-2011

Ce que tu cherches ça s'appelle du statefull, ce que font tous les "vieux" framework Java et qui tendent tous petit à petit à aller vers du stateless, comme tout ce que se fait en PHP. Car le statefull est pas du tout adapté pour le web Smile


RE: Algo de checklist pour wizard - niahoo - 06-12-2011

Merci Hideaki pour ta réponse, ça me donne des mots clés et de quoi trouver s'il existe la même chose en PHP.
Sinon je pourrais implémenter quelque chose de simplifié si je trouve un principe de base sympa.

@oxman : Je suis pas convaincu de ce que tu dis mais comme j'en sais rien, je veux bien de la doc Wink
Mais j'ai l'impression qu'on va vers du "statefull" avec les trucs comme les web sockets ou avant comet.

Maintenant ce n'est pas grave car je n'ai pas forcément besoin d'être "statefull", je dois surtout pouvoir contrôler, à partir de mon serveur, les vues envoyées au client, cette information étant déduite de l'état d'un objet stocké sur le serveur : le client n'a pas forcément besoin d'exécuter du code pour maintenir cet état côté client. Pas besoin de javascript car le client lit correctement ce qu'il se passe et peut remplir des formulaires / manipuler une interface.

Mais on utilisera quand même javascript sur une version desktop car c'est plus classe et ça peut être plus simple.
Ou alors la logique du wizard serait gérée uniquement côté client.


RE: Algo de checklist pour wizard - php_addict - 06-12-2011

je suis pas certain de la bêtise que je vais dire, mais il me semble que apache (si tu l'utilise) n'est pas adapté à ce genre de truc car il a tendance à lancer trop de process ...des pros ici peuvent confirmer ?


RE: Algo de checklist pour wizard - niahoo - 06-12-2011

Ce n'est pas grave car mon but est justement de rendre javascript dispensable. Donc de pouvoir ne pas utiliser comet ou des websockets avec un client ou un serveur bas de gamme.


RE: Algo de checklist pour wizard - Hideaki - 06-12-2011

J'ai trouvé cela http://www.framasoft.net/article4452.html mais je pense que le framework est sans doute trop évoluer pour tes besoins mais tu y trouveras sans doute l'inspiration, cependant on n'est pas très loin d'un CMS même si celui-ci est bien plus compliqué mais repose aussi sur le système web/work flow.


RE: Algo de checklist pour wizard - srm - 06-12-2011

statefull = avec état, c'est à dire que tu demandes à une page de savoir exactement l'état de toutes les autres pages (ce que l'on fait avec les sessions dans le monde PHP, mais pour un minimum de truc qui sont vitales)

En ajax/comet tu transmets dans l'appel les paramètres qui t'intéressent, c'est stateless.

Enfin en dehors de ça je maintiens ce que j'ai dit : C'est utilisé que dans les jeux ça, pas dans les jeux web de manière générale, je ne suis pas certain de l'intérêt que ça apporte par rapport à la complexité (tout relative, mais complexité tout de même) à réaliser la chose.