On Feb 7, 2008 2:40 PM, Florian Loretan &lt;<a href="mailto:floretan@gmail.com">floretan@gmail.com</a>&gt; wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The $node variable is not defined in hook_block.<br><br>What you need to do is make sure you are indeed on a node page of type<br>&quot;blog&quot;, and then load the information from the url in the &#39;display&#39;<br>section of your hook_block:<br>
<br>if (arg(0) == &#39;node&#39; &amp;&amp; is_numeric(arg(1))) {<br> &nbsp;$node = node_load(array(&#39;nid&#39; =&gt; arg(1)));<br> &nbsp;if ($node-&gt;type == &#39;blog&#39;) {<br> &nbsp; &nbsp;$author = user_load(array(&#39;uid&#39; =&gt; $node-&gt;uid));<br>
 &nbsp; &nbsp;$block[&#39;subject&#39;] = t(&#39;About the author&#39;);<br> &nbsp; &nbsp;$block[&#39;content&#39;] = theme(&#39;username&#39;, $author); // do whatever you<br>want to create the content of your block using $node and $author<br>
 &nbsp; &nbsp;// ...<br><br> &nbsp; &nbsp;return $block;<br> &nbsp;}<br>}<br>else {<br> &nbsp;return; // you want to make sure this block is not displayed on other pages.<br><div><div></div><div class="Wj3C7c">}<br><br>On Feb 7, 2008 12:24 PM, Tony Yarusso &lt;<a href="mailto:tonyyarusso@gmail.com">tonyyarusso@gmail.com</a>&gt; wrote:<br>
&gt; I&#39;m trying to put together a block that will display additional information<br>&gt; on users&#39; blog pages. &nbsp;The person I&#39;m working with wants some of the more<br>&gt; &quot;traditional&quot; blog stuff, like a user picture, short bio, blogroll, and<br>
&gt; archives links shown in the sidebar. &nbsp;All of the actual information is<br>&gt; supported by other modules, so I just need to be able to access it from<br>&gt; within my theme. &nbsp;Essentially, what I&#39;m going for is to load this block<br>
&gt; whenever the node type is &#39;blog post&#39;, and populate it with the content<br>&gt; matching the author of the node.<br>&gt;<br>&gt; I am using a small snippet of code that someone else gave me already for<br>&gt; displaying a title. &nbsp;This is residing in node-blog.tpl.php right now and<br>
&gt; works fine:<br>&gt; &lt;?php $the_user = user_load(array(&#39;uid&#39; =&gt; $node-&gt;uid)); ?&gt;<br>&gt; &lt;?php if ($the_user-&gt;profile_blog_title != &quot;&quot;): ?&gt;<br>&gt; &nbsp; &lt;h2&gt;&lt;?php print $the_user-&gt;profile_blog_title ?&gt;&lt;/h2&gt;<br>
&gt; &nbsp; &lt;?php else: ?&gt;<br>&gt; &nbsp; &lt;h2&gt;&lt;?php print $node-&gt;name . &quot;&#39;s blog&quot; ?&gt;&lt;/h2&gt;<br>&gt; &lt;?php endif; ?&gt;<br>&gt;<br>&gt; What I&#39;ve been using so far in my module&#39;s implementation of hook_block<br>
&gt; looks like this, which is just worrying about the picture for now:<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; case &#39;view&#39;:<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $block[&#39;subject&#39;] = t(&#39;Blog&#39;);<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$the_user = user_load(array(&#39;uid&#39; =&gt; $node-&gt;uid));<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $user_pic = $the_user-&gt;picture;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $block[&#39;content&#39;] = $user_pic;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $block;<br>&gt;<br>&gt; However, this does not return anything, and upon further investigation with<br>
&gt; print_r(), it appears to be returning the anonymous user from &#39;uid&#39;, which<br>&gt; of course doesn&#39;t have a picture associated with it. &nbsp;Part of what I&#39;m not<br>&gt; sure about is whether I can access the node information ($node-&gt;uid) from<br>
&gt; within the block, since it&#39;s in the sidebar, not the main content area where<br>&gt; the node is loaded. &nbsp;Please excuse me as I&#39;m very new to PHP and Drupal<br>&gt; development, but looking to learn.<br>&gt;<br>
&gt; --<br>&gt; Tony Yarusso<br>&gt; <a href="http://tonyyarusso.com/" target="_blank">http://tonyyarusso.com/</a><br></div></div>&gt; _______________________________________________<br>&gt; themes mailing list<br>&gt; <a href="mailto:themes@drupal.org">themes@drupal.org</a><br>
&gt; <a href="http://lists.drupal.org/mailman/listinfo/themes" target="_blank">http://lists.drupal.org/mailman/listinfo/themes</a><br>&gt;<br>&gt;<br>_______________________________________________<br>themes mailing list<br>
<a href="mailto:themes@drupal.org">themes@drupal.org</a><br><a href="http://lists.drupal.org/mailman/listinfo/themes" target="_blank">http://lists.drupal.org/mailman/listinfo/themes</a><br></blockquote></div><br>Ah, okay.&nbsp; That worked, but only partially.&nbsp; I now have things displaying okay when looking at any individual blog post (ie, &#39;blog/tony/2008/01/31/converted-site-drupal&#39;), but not on the main blog pages (&#39;blog&#39;, &#39;blog/tony&#39;, etc.).&nbsp; Apparently this is because those are &quot;views&quot;, not nodes, but I&#39;m not really sure how to interact with a view now.&nbsp; To make things more complicated, it only makes sense to display this stuff when everything belongs to the same user, so &#39;blog/tony&#39; should show the block, but not just &#39;blog&#39;.<br clear="all">
<br>-- <br>Tony Yarusso<br><a href="http://tonyyarusso.com/">http://tonyyarusso.com/</a>