Submitted by Pix Me on
A votre avis quelle est la meilleure façon de réaliser ce type de page :
une page présentant l'équipe d'une entreprise avec une liste de vignettes des photos des collaborateurs et en cliquant sur une photo, la page (sans rechargement si possible) intègre le détail du collaborateur.
J'ai pour le moment créer un type de contenu CCK avec les datas (prénom, nom, photo etc...)et utilise views pour insérer la liste des vignettes, je bloque maintenant sur le chargement du détail. Une idée ?
Merci par avance pour vos réponses.
Et pourquoi ne pas utiliser
Permalien Soumis par Crayulayon le 25 Septembre, 2009 - 18:53
Et pourquoi ne pas utiliser simplement le module de core "user" ? Tu actives les portraits dans les paramètres des utilisateurs (/admin/user/settings), tu actives le module "profile" en renseignant les datas (prénom, nom, etc...), tu crées une vue de type "utilisateur" que tu affiches sous la forme d'une grille ou d'un tableau avec les bons champs (portraits, prénom et nom) en n'oubliant pas de les faire pointer sur la fiche de leur profil détaillé.
Si tu souhaites afficher les détails sans rechargement de la page, ajoute en plus tous les champs que tu souhaites voir apparaître au clic sur la photo.
Et après il faut mettre la main sur les css et sur le javascript.
En css : tu mets des display:none sur les champs (ou le div englobant) correspondants aux détails du collaborateur.
En javascript tu écris une fonction qui ressemble à quelque chose comme :
$(document).ready(function(){
// au clic sur un portrait
$("#ma-vue-des-collaborateurs .field-image-portrait").click(function(){
// on cache tout
$("#ma-vue-des-collaborateurs .ma-classe-avec-les-details").hide();
//on montre l'element cliqué en supposant que le div .ma-classe-avec-les-details vient après
$(this).next(".ma-classe-avec-les-details").fadeIn("slow");
});
});
Cette solution est rapide mais pas vraiment propre, puisque dès le départ on génère une page avec tous les détails chargés.
On pourrait mettre en place une solution en Ajax qui n'est pas forcément plus complexe.
Et pour revenir au choix de départ, si un jour on te demande d'ouvrir des comptes sur le site pour les collaborateurs de l'entreprise et ben ça sera déjà ça de fait.
J'ai une question par
Permalien Soumis par floown@drupal.org le 25 Septembre, 2009 - 18:57
J'ai une question par rapport à ce display:none. Et si l'utilisateur n'a pas javascript ? :)
Le display:none concerne les
Permalien Soumis par Crayulayon le 25 Septembre, 2009 - 19:05
Le display:none concerne les css.
Imaginons effectivement le cas où l'utilisateur désactive le javascript. Il faudra lier l'image à la page profil.
Je change un peu le javascript
// clic sur le lien
$("#ma-vue-des-collaborateurs a").click(function(){
// on cache tout
$("#ma-vue-des-collaborateurs .ma-classe-avec-les-details").hide();
//on montre l'element cliqué en supposant que le div .ma-classe-avec-les-details vient après
$(this).next(".ma-classe-avec-les-details").fadeIn("slow");
return false;
});
J'ai rajouté un return false; pour empêcher le lien d'aller vers ma page profile
Et si je désactive le javascript, et bien je vais sur ma page profile.
Un peu dans la même veine
Permalien Soumis par nyl auster le 25 Septembre, 2009 - 19:04
Un peu dans la même veine que la solution javascript donnée ci dessus, tu peux aussi peut être jeter un oeil à ce module, directement intégré avec views :
http://drupal.org/project/views_accordion?no_cache=1253898049
Je n'ai pas le sentiment que
Permalien Soumis par Marie-Hélène le 25 Septembre, 2009 - 19:11
Je n'ai pas le sentiment que PixMe a parlé de créer un compte sur le site à chaque membre de l'équipe. Ce sont deux choses différentes. Ce n'est pas parce que son problème consiste à gérer des personnes que la solution passe par créer un compte à chacune ! en faire des utilisateurs Drupal ça veut dire gérer leurs permissions, leurs rôles ; si il/elle a besoin de configurer l'affichage des blocs selon les rôles, merci la galère !
Un type de contenu et la vue qui va avec c'est une bonne solution ; et le views accordion suggéré par nyl auster devrait résoudre le problème principal, qui est d'afficher des infos supplémentaires "à la demande".
Merci pour vos retour,
Permalien Soumis par Pix Me le 25 Septembre, 2009 - 20:02
Merci pour vos retour, j'avais pensé à la solution javascript (display:none), mais cela ralentit le chargement de la page car comme bien expliqué tt les éléments sont chargés. La solution Ajax semble intéressante.Je vais aussi tester le système Views Accordion.
Je test et reviens vers vous pour vous donner mon avis.
Finalement, La mise en place
Permalien Soumis par Pix Me le 4 Octobre, 2009 - 18:46
Finalement,
La mise en place de cette page a été réalisée avec javascript. Avec un slider et des vignettes qui pointent vers le bon contenu.
Voir ce script :
http://cssglobe.com/post/5780/easy-slider-17-numeric-navigation-jquery-s....
Et ici une comparaison des modules existants pour drupal:
http://drupal.org/node/418616
Merci pour vos réponses,
A plus tard,
Ghislain