2009-11-19 9 views
0

Je suis actuellement en train de lutter avec un puzzle de relation-argument.Vues/Drapeaux relation-argument puzzle

J'ai une configuration de drapeau appelé Favoris, de sorte que les utilisateurs peuvent contenu favori du site. J'utilise aussi Content Profiles et Pathauto. Maintenant, j'ajoute une pièce jointe au contenu des vues au profil de contenu de l'utilisateur pour afficher les favoris choisis par l'utilisateur. Le chemin de profil de contenu par défaut de Pathauto est: member/[title-raw] - de sorte qu'un alias typique de la page de profil d'un utilisateur soit: member/john-smith (veuillez garder à l'esprit que l'identifiant de noeud de profil n'est pas le même que l'ID utilisateur)

Et voici ma configuration de vues: Relation: drapeaux: favoris - PAR: Tout utilisateur

Argument: C'est là casse ma compréhension vers le bas. Je dois d'une façon ou d'une autre obtenir le nom d'utilisateur ou l'identificateur d'utilisateur à partir de l'URL du profil actuel.

Toutes les idées de l'argument correct pour obtenir cette chose à travailler? J'ai essayé toutes les possibilités qui se présentent à moi, et jusqu'ici aucune chance.

Merci

Répondre

0

si vous êtes prêt à utiliser le code php personnalisée pour chercher l'argument, http://api.drupal.org/api/function/drupal_get_normal_path/6 est votre ami. vous pouvez lui passer l'alias que vous visualisez avec arg (0). '/'. arg (1)

+0

Merci pour la réponse. Je sais à propos de la fonction arg(), mais je ne peux pas le faire fonctionner dans cette instance. Si vous connaissez un moyen spécifique de le faire fonctionner dans mon scénario, veuillez le spécifier. –

+0

désolé.mon code vous renvoie le nid du profil de contenu. vous avez besoin de son utilisateur uid. essayez de charger le nœud via node_load puis renvoyez l'utilisateur depuis l'objet node. J'espère que vous trouverez votre chemin ... –

1
  1. Dans votre configuration View, cliquez sur + dans Arguments pour ajouter un argument.
  2. Dans la configuration de votre argumentation, sélectionnez « Utilisateur » dans le menu déroulant « Groupes » vers le bas.
  3. Cochez la case « Utilisateur: Nom »
  4. Cliquez sur le bouton « Ajouter »
  5. Enregistrez votre vue

Tant que cela est votre seul argument, il vous suffit de passer le nom d'utilisateur dans l'URL. Dans votre exemple, voir la vue pour john-smith, vous devez naviguer vers http://example.com/viewname/john-smith.

Ce serait pour une vue de type de page.

Si vous créez un type d'affichage de bloc, vous ne pouvez pas passer des arguments dans l'URL. Pour une vue de type bloc, procédez comme suit:

  1. Dans votre configuration View, cliquez sur + dans Arguments pour ajouter un argument.
  2. Sélectionnez "PHP Code" pour "type d'argument par défaut"
  3. Entrez les informations suivantes pour le code PHP,

    si (arg (0) == 'ViewName' & & arg (1)! = ' ') { return arg (1); }

Maintenant que le bloc va obtenir les arguments de l'URL, similaire à ce qui se passe pour une page vue.

+0

Merci pour l'explication détaillée Mike! Malheureusement, ne fonctionne pas. Je dois commencer l'expérimentation sur cette chose à partir d'une base plus simple et construire la complexité sur un prototype de travail. Donc, je vais commencer avec le profil de l'utilisateur de base sans alias et aller à partir de là. –

+0

Michael D, vous souhaiterez peut-être essayer de créer une vue de type de page qui répertorie les favoris pour un utilisateur. Ensuite, essayez de transformer cela en un bloc qui fonctionne suivant les informations que j'ai fournies. À ce stade, vous pouvez configurer ce bloc pour qu'il s'affiche uniquement sur la page de profil utilisateur. –