[RESOLU] Inserer une view avec argument dans user_profile.tpl.php

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonsoir à Tous !

je bosse sur un site communautaire dans lequel chaque utilisateur dispose de son profil,
et de son menu (my bio, my events, my gallery)

pour customiser le profil,
j'ajoute des champs dans l'admin du module "profile" (my bio, my events, my gallery, Discipline, WEBSITE, COUNTRY)
et j'ajoute le module "profile tabs" pour faire apparaitre des onglets (my bio, my events, my gallery)

l'idée serait de créer un bloc fixe qui apparait dans le profile,
dans lequel il y aurait le contenu de 3 champs du profil (Discipline, WEBSITE, COUNTRY)

je tente de mettre en place une views de type bloc,
j'ajoute les champs "Profile: Discipline" // "Profile: WEBSITE" // "Profile: COUNTRY"
j'ajoute le filtre "Node: Author is Current User"

au résultat, j'ai bien mon bloc qui s'affiche, mais le contenu ne coïncide pas avec le profil visité.
en fait, les valeurs changent quand je personnalise le filtre "Node: Author is Current User"
si je choisi "is equal to" "currently logged user", le bloc m'affiche les données de l'user connecté
et si je choisi 'is not equal to", le bloc m'affiche les données du premier user qui figure dans la liste.

j'ai réussi à créer une views d'un calendrier personnel
http://drupalfr.org/node/9096
je pensais que l'édition d'un bloc se passerait de la même manière...

auriez vous une piste à me suggérer ?

Version de Drupal : 

Salut Selinav,
je viens de faire un test en mettant l'argument "User: UID is Author" (display all values / %1)

et rien de nouveau,
ce sont encore les données de la personne connectée qui apparaissent.

normalement, c'est l'admin qui rempli les profiles,
je me suis donc connecté avec un profil A, et j'ai re-rempli les champs du profil A
(je pensais que le problème venait du fait que l'auteur était l'admin est non le profil A)
=> idem

j'ai déposé la capture écran de ma views,
peut être qu'il y a une erreur de débutant

ça avance :
ma view fonctionne, mais pas entièrement.
tout d'abord, j'ai déposé une capture écran de la config de ma view.

quand je me rends à l'url http://www.monsite/my_infos/Artist1/
j'obtiens le bonne données.

ensuite, si je l'insère dans l'un des champs d'un profil,
j'obtiens 2 résultats :
- avec [view:my_infos=Artist1] : j'ai mes champs, mais ils sont vides.
- avec [view:my_infos==Artist1] : j'ai les bonnes données, mais en trois exemplaires. (j'ai une petite idée...)

ce bloc doit etre constament affiché dans l'une des zones du profil,
pour x raison, je n'utilise pas le module "panel",
du coup, je me rends dans la page "user_profile.tpl.php" pour l'insérer en dur.

j'ai passé un long moment à faire mes recherches, et j'ai trouvé 2 débuts de piste :
- avec le script qui suit, j'affiche mon bloc (il y a l'intitulé des champs), mais il est vide :

<?php
$view_name
= 'my_infos'; //name of view
$limit = 1; // number of returns
$view_args = array();
$view = views_get_view($view_name);
print
views_build_view('embed', $view, $view_args, FALSE, $limit);
?>

-avec ce script, j'ai mon bloc qui s'affiche une dizaine de fois, le contenu varie :

<?php
 
global $current_view;
 
$current_view->args[0]=$node->nid;
 
$view1 = views_get_view('my_infos');                     // change 'view_name' to the name of your view
 
print (views_build_view('embed', $view1, $current_view->args, false, false));
?>

en gros, je pense que le premier script est plus adapté, et qu'il me suffit d'y insérer mon argument.

chose que je ne sais pas faire (pour le moment)

des idées ?

Yépa !

voici la solution :
en espérant que ça vous aide

<?php
 
global $current_view;
 
$limit = 1;
 
$current_view->args[1]=$node->nid;
 
$view1 = views_get_view('my_infos');                     // change 'view_name' to the name of your view
 
print (views_build_view('embed', $view1, $current_view->args, false, $limit));
?>