134 views
Gestion des variables Get / Transmission de variables hors formulaire
Astorah

5 subjects, 7 replies

Unread message
Bonjour,
j'ai fait la maquette d'un tableau HTML pour le classement des joueurs dans une compétition.
Je voudrais l'intégrer en module à présent pour l'intégrer dans le CMS NeoFrag.

Le contexte :
en tête des colonnes, j'ai un lien hypertexte pour trier le tableau en croissant/décroissant sur la variable de la colonne.
J'ai donc une URL de type : "www.monsite.com / mapage.php ? var1=matable &var2=mavariable &var3=monsensdetri"

Problème : comment récupérer var1, var2 et var3 ?

Y a -il une gestion de $_GET qui ne serait pas dans la classe d'un formulaire ? ou une gestion de Request?

A défaut, peut-on avoir une URL de type "http:// ww.monsite.com /matable /mavariable /monsensdetri /mapage.html" ?
Et dans ce cas comment récupérer "matable", "mavariable", "monsensdetri" ?

Merci pour vos commentaires :-)
4 participants
11 replies
eResnova

17 subjects, 875 replies

Contributors
Unread message
Bonjour Astorah !

Content d'accueillir une nouvelle personne qui essaye de coder sur NeoFrag ! :)

Pour faire ce que tu décris, il y a deux solutions possibles.
  1. Soit tu utilises notre librairie Table pour générer automatiquement le tableau (tri, recherche, pagination automatiqie)
  2. Soit tu créer un module avec déclaration d'un "Routeur" pour dire quelle fonction exécuter pour récupérer tes variables et les traiter manuellement.


Explication de la solution 1 : librairie Table :

Je ne sais pas si tu as commencé à coder ton module, mais tu as du voir le principe de fonctionnement avec les "controllers", "models" et "views" ? Si ce n'est pas le cas, n'hésites pas à nous demander quelques explications.
Donc, par exemple, tu dois surement avoir dans ton controller/index.php une fonction index() { ... } :

Dans cette fonction, on va charger la librairie et déclarer les colonnes et le contenu à y ajouter :
http://hpics.li/45e33d0

EDIT : il y a une erreur au niveau du ->->add_columns. C'est juste ->add_columns

Je te laisse le soin de bien regarder chaque ligne pour comprendre la démarche :
  1. On récupère les données stockées dans la base de données à afficher dans le tableau
  2. On déclare le tableau avec les données à afficher, si on veut un tri sur les colonnes (sort) et une recherche (search)
  3. On affiche le contenu dans un Panel (return new Panel(...)) côté site
J'ai mis des données d'exemple, à toi de l'adapter suivant tes besoins.


Explication de la solution 2 : à venir...

C'est un peu plus long à expliquer :). Je le ferai si besoin.


Voila !

A bientôt.
Astorah

5 subjects, 7 replies

Unread message
Merci eResnova pour ta rapidité et ton efficience.

Oui, j'ai commencé à implémenter mon controller, mon model et mes views.

Je n'avais pas capté la librairie table. Merci.
Je vais l'essayer mais je pense qu'elle ne répond pas complètement à mon besoin :
- on a des styles sur des lignes (outre la ligne paire/impaire) :
> sur les m premières, une alternance paire/impaires d'une couleur (les m en position de se qualifier)
> sur les n dernières, une alternance paire/impaires d'une autre couleur (les n en position de se faire déclasser)
(Oui, on aime se faire mal pour faire nos états, désolé).

Aussi, je suis preneur de la solution du "router" :-)
C'est possible de l'implémenter dans le Module ou il faut le faire dans Neofrag ?
Il n'y a rien de prévu en natif dans NF pour gérer le HTTPRequest?

Encore merci pour ton attention à ma problématique.
eResnova

17 subjects, 875 replies

Contributors
Unread message
Bonjour Astorah,

En te voyant sur le site, je me suis rappelé que je t'ai oublié ! :)

Pour le routeur, c'est directement gérable dans le module. C'est à toi de définir tes règles pour rediriger vers telle ou telle fonction de ton contrôleur (index, ajax, admin, etc..).

Dans ton cas, si j'ai bien compris ton module (tu me confirme ou non si je me trompe) :
  1. Tu aura l'index de ton module qui va lister tes compétitions
  2. Tu cliquera sur une compétition pour voir la liste des participants et leur classement
Si tu as directement le classement sur l'index du module, ça ne changera pas grand chose à mes explications :

Pour gérer ton routeur, ça ce passe dans le fichier à la racine de ton module (qui porte le nom de ton module).

Dans un premier temps, il faut imaginer quelles URL tu va proposer (sur tes liens) pour faire le tri des colonnes.

J'imagine cela :
  1. http://wwwtonsite.fr/monmodule.html va pointer vers ta fonction index() { ... } du contrôleur index.php
  2. http://wwwtonsite.fr/monmodule/sort/pseudo/desc… va pointer vers ta fonction index() { ... } du contrôleur index.php MAIS en transmettant 2 variables pour gérer ton tri (lors de la requête du model)

Côté routeur, cela ce concrétise de cette façon :
http://hpics.li/ffc8a8c

Si tu regardes bien, la première règle va juste servir à rediriger des URL volontairement inexistant sur ton index, pour éviter de voir une page introuvable (c'est une règle optionnelle)

La deuxième règle est plus "complexe" : si tu reprend mon exemple d'URL au dessus :
http://wwwtonsite.fr/monmodule/sort/pseudo/desc.html
Va se retrouver dans cette règle :
http://wwwtonsite.fr/monmodule/sort/{url_title}/{url_title}.html

On utilise {url_title} pour dire qu'on va récupérer une variable TEXTE dans l'URL saisi. Donc dans notre cas, on récupère 2 variables.

Du coup, sachant qu'on pointe cette règle vers ta fonction index() { ... } tu pourra avoir un code qui ressemble à ceci :
http://hpics.li/eee7bfc

Si tu comprend bien, dans la fonction index() on peut récupérer 2 variables : les 2 qui sont déclarées dans le routeur. Par défaut on les laisse vides si tu n'as pas fait de tri sur les colonnes (http://wwwtonsite.fr/monmodule.html). Si un tri est fait, tu peux ensuite les transmettre à ton model pour faire la bonne requête (order_by ...).

Je m'arrête là, mais si tu as des questions, je reste disponible ;)

A bientôt
Astorah

5 subjects, 7 replies

Unread message
OK, Merci eResnova !!

Merci pour ces explications sur le routage de l'URL.
Je n'avais pas capté dans les codes des autres modules à quoi correspondaient exactement les {id} et les {url_title}. C'est plus clair
à présent.^^
Je testerais dans une prochaine version.

Actuellement, j'envoie mapage.html?var1=...&var2=...
Et je teste l'appel avec une variable serveur.
Ca marche bien, mais j'imagine que c'est moins sécure que les routes telles que tu me les présentes.
Astorah

5 subjects, 7 replies

Unread message
Juste pour info, notre page avec le module de classements : http://www.ligue-bloodbowl.fr/classements.html
dirtyharry93

1 subject , 10 replies

Unread message
Bonjour,
Et excuse moi de me mêler a la conversation mais je vois que ton module commence a prendre forme et je suis exactement a la recherche du même module.
est-il opérationnel ? si oui y a t-il moyen de le test ?! Merci d'avance
SwoOn

8 subjects, 41 replies

Unread message
Salut DirtyHarry,
notre module a bien évolué au rythme de nos besoins, le lien est toujours valide !
Le code est vraiment adapté à nos affichages/compet mais après si les lignes de codes ne te font pas peur, y'a moyen de l'adapter je pense !
C'est pour quel jeu ? Compet' ?
dirtyharry93

1 subject , 10 replies

Unread message
Merci pour ta réponse ! le module m'intéresse pour plusieurs application et je m’explique étant le leader de ma communauté et admin du site on est présent sur plusieurs jeux de tout type (fps, simule sportive, etc) avec plus +100 membres ce type de module peut aussi bien me servi pour des tournois sur R6S, simule de foot (fifa, pes), mais également et surtout de pouvoir l'adapter pour des événement de simulation racing (assetto corsa, project cars , etc) et c'est sur ce dernier point que le module sera bien car pour les simule automobile sur console rien n’est prévu et c'est assez dure d'organiser des championnat sans un module adapter (module autre que tournoi ou championnat classic type victoire, nul, défaite) là j'ai besoin d'un module pour classement 1er, 2nd, 3th etc, avec les point qui sont distribuer en fonction de leur arrivée et pouvoir afficher un classement générale qui en découle .

Concernant le lien du module je ne le voit pas pourrais tu me communiquer le lien ?! merci d'avance
SwoOn

8 subjects, 41 replies

Unread message
il est pas téléchargeable actuellement car pas assez "ouvert" dans le sens où il est adapté à nos usages !

Tu as une base de données perso ? Tu récupères comment les donnes de classement ?
dirtyharry93

1 subject , 10 replies

Unread message
Slt SwoOn et merci à toi de me consacré un peu de ton tps c'est cool.
Bon concernant ta question pour la BDD oui j'ai ! pour le classement et la récup de donné rien étant donné qu'on a pas de module a cet effet, j’entends par là de quoi organiser des championnat, tournoi, etc...
Pour l'instant on fait des matches entre team qu'on gère avec le dernier module en date " l'événement " issue de la dernière mise la jour la 0.1.6.1.
J'ai vue l'utilisation que vous en faite sur votre site via le lien posté plus haut et je doit dire qu'en l’état votre module je peux l'utiliser pour les "championnat" type fifa, R6S, car c'est le même système que vous a savoir: 3pts pour la victoire, 1pts pour le nul, 0pts pour la défaite.
Assez basique en somme, mais là ou moi en plus je souhaite aussi l'utiliser c'est de le cadre de Championnat en SimRacing,
Du coup la gestion est plus la même car il faudra attribuais un nombre de point donné en fonction de l'arrivée du pilote comme par exemple: 30pts pour le 1er, 23pts le 2éme, 17pts le 3éme, 10pts le 4éme, etc...
SwoOn

8 subjects, 41 replies

Unread message
Ah ce que je voulais dire c'est plutôt une bdd où tu stockes tes données / résultats de compétitions ! Sans ça difficile d'utiliser notre module !