On 7/1/06, <b class="gmail_sendername">Augustin (a.k.a. Beginner)</b> &lt;<a href="mailto:drupal.beginner@wechange.org">drupal.beginner@wechange.org</a>&gt; wrote:<br><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I see many implementations of hook_block who declare<br>&nbsp;&nbsp; global $user<br>but none with<br>&nbsp;&nbsp; global $node<br><br>I tried it but $node is still not set, so I cannot access the node object<br>directly.</blockquote><div><br>
That is because there is no global $node. There is a global $user viewing the page, but not every page has a $node that it needs to display (eg all kinds of &quot;listing&quot; pages or the admin pages etc). Blocks can appear on any page, not only node-pages. So hook_block() doesn't have direct access to a $node variable.
<br><br>Note that the functions that need $node always have a $node parameter passed. There is no global $node that I'm aware of (with maybe the exception of theming, but that is then handled by phptemplate).<br></div><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">the solution would be to do like in book_hook() and check on arg():<br>&nbsp;&nbsp;&nbsp;&nbsp;if (arg(0) == 'node' &amp;&amp; is_numeric(arg(1)))
<br>but it looks like a hack and for what I have in mind, it makes things more<br>complicated.</blockquote><div><br>I think this is the correct way of doing this. And I don't really see how this makes things more complicated. The test checks if we are on a node-page, and if you are you can load the node needed. 
node.module makes sure the node is loaded only once, so there is no overload either.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Isn't there a possibility to have directly access to the $node object?<br>How?</blockquote><div><br>Don't think so.<br><br>Kind regards,<br>Robrecht</div></div><br>