Submitted by lienty on
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
$node n'est pas defini si tu
Permalien Soumis par tostinni le 21 Janvier, 2008 - 18:07
$node n'est pas defini si tu n'as pas appele d'abord la fonction node_load
Donc en gros
$nid = node_load(arg(1))->nid;
et apres c'est bon...
Ceci dit si tu veux mettre une vue dans un node, je pense que http://drupal.org/project/viewfield devrait t'aider
ok merci je vais tenter je
Permalien Soumis par lienty le 21 Janvier, 2008 - 19:03
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 =
Permalien Soumis par yched@drupal.org le 22 Janvier, 2008 - 19:17
$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
Permalien Soumis par tostinni le 23 Janvier, 2008 - 21:43
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
Permalien Soumis par lienty le 28 Janvier, 2008 - 22:54
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
Permalien Soumis par tostinni le 29 Janvier, 2008 - 18:04
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
Permalien Soumis par lienty le 29 Janvier, 2008 - 21:00
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
Permalien Soumis par tostinni le 29 Janvier, 2008 - 22:10
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
Permalien Soumis par lienty le 30 Janvier, 2008 - 11:08
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
Permalien Soumis par lienty le 30 Janvier, 2008 - 17:48
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...