|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Bonjour,
j'aimerais créer un bouton J'aime sur mon projet. Un sfGuardUser peut aimer une Song Un fois le clic effectué sur le bouton, celui-ci devra changer en Je n'aime pas. Pouvez-vous m'aider pour réaliser cette fonction svp ? Cordialement, Elwyn.
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Renaud BInscription : septembre 2009 Messages : 411 ![]() |
dans l'action, il faut récupérer ton id user, puis lancer une fonction aime_t'il_cette_chanson(id_user, id_song) qui te renvoie true.
dans le template, si true, affichage du bouton "j'aime" sinon affichage de celui "j'aime pas" C'est pour t'aiguiller, on a pas beaucoup d'info la |
|
|
00
|
|
|
#3 | ||
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Merci de ta réponse.
Tout d'abord, dans quel module mettre mes actions ? Song, sfGuardUser ou LikeSong ? Je penche pour LikeSong. Deuxièmement, je souhaite le faire en AJAX. Je ne vois cependant pas quoi mettre dans l'option update. En effet, je veux que le bouton s'actualise au clic. Code :
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
||
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() Renaud BInscription : septembre 2009 Messages : 411 ![]() |
je ne sais pas la différence ente Song et Like song, mais ca devrait etre le module qui t'envoie sur la page ou tu possède ton bouton like.
pour de l'ajax, il te faut une méthode executeMonAjax (comme executeIndex) qui fait les traitements que tu as besoin (ici, un update) à partir de ton exemple ce serait plus : Code :
|
||
|
|
00
|
|
|
#5 | ||||
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Le modèle est construit ainsi :
Code :
Je mettrai donc les actions dans apps/frontend/module/likesong/actions.class.php : Code :
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
||||
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Quelqu'un à déjà utilisé link_to_remote() ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#7 | ||
|
Membre expérimenté
![]() Renaud BInscription : septembre 2009 Messages : 411 ![]() |
J'aurai du vérifier avant, mais ce helper semble ne plus etre présent dans sf1.4. (-> the helper has been deprecated.)
je me permet de te poster la syntaxe jQuery Code javascript :
|
||
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Ah d'accord
Comment je peux l'adapter dans mon cas alors ? Le lien doit changer une fois que l'utilisateur a cliqué.
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#9 |
|
Membre expérimenté
![]() Renaud BInscription : septembre 2009 Messages : 411 ![]() |
dans ton cas tu as par exemple un
et un Code html :
<div id="unlike">monHTMLUnlike</div> tu affiches soit l'un soit l'autre lors du chargement de ta page suivant si l'utilisateur like ou unlike cette chanson. lors de l'évenement click sur like, tu envoie ta requete vers module/Unlike. au retour des infos, tu cache le div like et remplace par unlike. inversement pour l'evenement click sur unlike je te met pas de code tout fait, a toi de chercher! repasse quand meme si tu as toujours des soucis! |
|
|
00
|
|
|
#10 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Ce bouton "Like/Unlike" se trouvera partout dans le projet.
Je dois donc créer un partial/component non ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#11 |
|
Membre expérimenté
![]() Renaud BInscription : septembre 2009 Messages : 411 ![]() |
oui, dans tes templates, tu l'appelles avec
Code :
<?php include_partial('moduleLike/tonPartial', array('variable' => $variable)) ?> dans lequel tu auras le html des boutons, mais aussi l'inclusion des javascripts/ajax (ou du javascript en dur) |
|
|
00
|
|
|
#12 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Merci
Les actions seront dans chaque module où le partial est appelé OU dans les actions du component ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#13 |
|
Membre expérimenté
![]() Renaud BInscription : septembre 2009 Messages : 411 ![]() |
ton ajax appelera toujours l'action de ton module like peut importe ou ton partial est integré. ton partial aussi, toujours le meme nom de module
|
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Oui mais les actions ne sont pas dans actions.class.php mais dans components.class.php. Je me trompe ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#15 |
|
Membre expérimenté
![]() Renaud BInscription : septembre 2009 Messages : 411 ![]() |
j'ai pas encore eu l'occasion de travailler avec des components, j'utilisais des partials sur mes anciens projets, j'essayerai de trouver quelques ressources demain.
si tu as de la doc sous le coude envoie la moi par mp si tu veux! |
|
|
00
|
|
|
#16 | ||||
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Je pense faire comme ça.
Dans /app/frontend/module/likesong/components.class.php : Code :
Code :
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
||||
|
|
00
|
|
|
#17 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Quelqu'un aurait un autre avis sur ma question ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#18 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Si quelqu'un peut participer à la résolution, je l'en remercie d'avance. Le but est de faire un tutoriel.
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com