Insert view dans du 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.

Bonjour

je cherche a intégrer une view dans un type de node

voila le code que je tente de palcer

$candidatures = views_get_view('mes_candidatures_block');

$arg = $node->nid;
print views_build_view('embed', $candidatures, $arg, false, $candidatures->nodes_per_page);

bon naturellement cela ne marche pas

en gros je cherche a afficher une vue simple mais qui a un argument qui est l id de ma node

Quelqu un sait il le faire?

merci d avance

Version de Drupal : 

ok merci je vais tenter

je trouve cela bizzare quand meme puisque ma variable est celle de la node que j affiche.

Pour viewfield le probleme c est qu il me faudrait la parametrer pour chaque node, hors je souhaite que cela soit systématique.

Merci

$nid = node_load(arg(1))->nid;

autant faire
$nid = arg(1);
non ? :-)

sinon, le problème est que le paramètre $arg de views_build_view() doit être un tableau. Ceci devrait marcher :

$candidatures = views_get_view('mes_candidatures_block');
$arg = array(arg(1));
print views_build_view('embed', $candidatures, $arg, false, $candidatures->nodes_per_page);

Ouais en effet c qd meme plus simple...
Bon ceci dit oublie pas de verifier que arg(0) == node et que arg(1) soit numerique et que arg(2) soit null (afin de ne pas prendre en compte node/1/edit) :D

Et oui pour ta 2eme question.

En fait j'ai pris l'habitude de faire des node_load car generalement u as besoin d'autres variables du node...

Sinon je suis qd meme persuade (meme si j'ai pas verifie) qu'un module genre viewfield devrait permettre de faire ca sans ecrire du code, sinon c'est une tres tres bonne idee de module :)
(au pire un module genre view argument API)

super cela fonctionne

il me reste un dernier probleme a réglé qui est la gestion des roles.

Ma view ne doit apparaitre que pour les administrateurs.

Hors la elle apparait pour tous, ce qui me pose un double probleme.

J ai donné l autorisation a ma view que pour les admin

cette view affiche un node qui n est visible normalement que par les admin.

En mettant le code ci dessus je perd toute gestion des droits.

Donc 1 quel est le code me permettant de gérer les droits?

Et pourquoi je perd toutes notion de droit alors que mes nodes sont paramétré avec des droits d affichage.

Merci

voici le code que j ai mis, mais il y a peut etre plus simple

global $user;
if (in_array('monrole',$user->roles)) {

$candidatures = views_get_view('mes_candidatures_block');

$arg = array(arg(1));
print views_build_view('embed', $candidatures, $arg, false, $candidatures->nodes_per_page);

}

lienty

Je pense (pas verifie) que les droits se perdent car le views_build_view ne doit pas les verifier, la verification se fait en amont qd tu visualises directement la vue.

Peut etre que le champs view field puisse en tenir compte, sinon tjs avec ce module, rajoute lui http://drupal.org/project/cck_field_perms

Un doute... Tu dis que ta vue te fais perdre les droit de visualisation de ton node...
Ca parait bizarre car vu que tu as mis ta vue directement ds le code du node, si tu ne peux pas le voir tu ne devrais pas voir le node non plus.
C quoi ton module de gestion des droits ?

en fait lepb es tplus loin je pense car j utilise content acces et CCK Field Permissions

En gros j ai un node (une offre d emploi) les commentaire sont fait par node comment et sont un formulaire avec piece jointe qui représente une candidature.

Lorsque je suis admin j affiche ma vue des candidature avec un etat, que ne voient pas les anonyme ni les utilisateurs.

Le node candidature est ouvert en création mais pas en visualisation sauf pour l admin.

jusque la tout va bien sur le node offre les droits sont bon.

Par contre tout le monde peux accéder en anonyme a ma node candidature ( a condition de connaitre l url) alors que j ai bien précisé par content acces que seul les admin pouvaient visualiser cette node

j'utilise content template pour la mise en page de cette node peut etre que le pb vient de la?

Par contre tout le monde peux accéder en anonyme a ma node candidature ( a condition de connaitre l url) alors que j ai bien précisé par content acces que seul les admin pouvaient visualiser cette node
J'avoue que ca ca me laisse perplexe... Normalement ca ne devrait pas etre possible... Y a un truc qui va pas avec node access...

clairement

le pire c est que cela fonctionne sur mon serveur de test mais pas sur mon serveur de prod, cela me laisse perplexe.

j' ai pourtant vérifier tout.

En gros depuis que j ai installé jstools mon serveur de prod merde pas le serveur de test. je désinstalle les modules un par une pour tenter de trouver quel module me fait merder

par exemple j ai perdu workflowng

bon pour résoudre le pb j ai codé dans node.tpl.php mon test de droit comme je l avais fait pur ma view.

le meme code, et je protege comme cela ma view

a priori c est un conflit entre cente acces et field perm...