Création d'une vue qui affiche tous les événements et les utilisateurs qui ont signé pour chaque événement

drupal.stackexchange https://drupal.stackexchange.com/questions/1749

  •  16-10-2019
  •  | 
  •  

Question

J'utilise le module Inscription , et je cherche à créer une vue qui affiche tous les événements et les avatars (champ de l'image utilisateur par défaut Drupal) des utilisateurs qui ont signé pour chaque événement.

Voici une maquette de ce que je suis en train de réaliser. J'ai tout, mais les avatars jusqu'à présent.

Voir Mockup

Voir l'exportation de la vue je jusqu'à présent

Était-ce utile?

La solution

Faire quelque chose comme ça pousse vue sur les limites de elle. Vous voulez tirer dans un grand nombre de données et le groupe par l'ID de nœud. Je ne sais pas si tout cela est possible grâce à l'interface de vue, mais je crois qu'il sera possible avec le moteur qui est en cours d'exécution des vues.

Au lieu d'essayer d'atteindre ce point de vue assez complexe, ce qui peut devenir quelque chose, c'est difficile à modifier, vous pouvez le faire assez facilement en utilisant de plus en plus simples requêtes. Une telle solution simple pourrait ressembler à ceci:

  1. Vous pouvez créer une vue simple, qui affiche toutes les informations à l'exception des inscriptions. (Titre Node etc)
  2. Inscription a déjà vue, qui affiche les personnes qui ont signé pour un événement. Avec un peu de modification, vous pouvez le faire montrer l'avatar des utilisateurs qui a signé pour un événement. Ensuite, vous pouvez incorporer cette vue soit une fonction de pré-traitement et / ou un modèle pour la vue que vous avez créé à l'étape 1.
  3. Vous avez terminé.

idéal chose serait de créer tout cela en une seule vue, mais parfois vous devez penser à ce que le coût sera comparer aux gains. Je doute que vous serez en mesure mesure les différences de performance, à moins que vous listez des centaines si noeuds avec inscriptions. Mais le temps vous faire économiser de cette façon de faire est tout à fait beaucoup.

Ceci est la même chose avec des vues lui-même, il est inefficace, mais rien d'important (pour la plupart des sites) et il nous permet d'économiser beaucoup de temps, ne pas avoir à des requêtes de code, fonctions thématiques etc.

Mise à jour:

Intégration d'une vue avec des arguments (comme id noeud) est assez simple:

$html = views_embed_view($name, $display_id, $arguments)

Ou dans votre cas

$html = views_embed_view('signup_user_list', 'default', array('nid' => $nid));

Autres conseils

Créer un « groupe » nommé « événement ». Vous n'avez pas besoin d'installer tous les modules OG, que quelques-uns. Vous ne avez pas besoin de créer un type de contenu de groupe: il vous suffit d'un « événement »
. Les gens créent des événements et se joindre à des événements. Allez dans les autorisations par défaut du groupe et de rendre le groupe public en permettant aux gens de se joindre l'événement sans abonnement.

Vous voudrez peut-être utiliser le « String Remplacer » module pour personnaliser facilement une partie de la langue à votre goût, ou l'emporter sur les fonctions thématiques du groupe. « String Remplacer » est simple et rapide, mais peut être un peu trop universel (il est à vous). Ou bien peut aider à rendre la langue de se joindre à être comme vous voulez. Le modèle sur-tour vous permettra d'apporter des modifications supplémentaires à l'interface utilisateur.

Utilisez une vue et un template.tpl.php personnalisé! Terminé! Son rapide, léger et facile. Les utilisateurs ne sauront jamais qu'ils se joignent à un « groupe » et les résultats que vous obtenez correspondra exactement ce que vous voulez. Facile comme bonjour!

Ajoutez une référence utilisateur à votre type de contenu si elle ne comprend pas déjà un et l'inclure sur votre point de vue avec une relation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à drupal.stackexchange
scroll top