A form theming example would be a nice addition to the form_example if you&#39;d be interested in posting a patch.<br><br>Thanks,<br><br>-Randy<br><br><div class="gmail_quote">On Sun, Oct 24, 2010 at 10:45 AM, Bob Hutchinson <span dir="ltr">&lt;<a href="mailto:hutchlists@midwales.com">hutchlists@midwales.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">On Saturday 23 October 2010, Earl Miles wrote:<br>
&gt; On 10/22/2010 1:56 PM, Bob Hutchinson wrote:<br>
&gt; &gt; In D7 I get somewhat different behaviour:<br>
&gt; &gt;<br>
&gt; &gt; If I do not create an entry in the theme registry, all works as expected,<br>
&gt; &gt; but if I do, things start to behave oddly.<br>
&gt; &gt;<br>
&gt; &gt; function mymodule_theme() {<br>
&gt; &gt; ....<br>
&gt; &gt;<br>
&gt; &gt;     &#39;mymodule_thingy_form&#39; =&gt; array(<br>
&gt; &gt;<br>
&gt; &gt;       &#39;variables&#39; =&gt; array(<br>
&gt; &gt;<br>
&gt; &gt;         &#39;form&#39; =&gt; NULL,<br>
&gt; &gt;<br>
&gt; &gt;       ),<br>
&gt; &gt;<br>
&gt; &gt;     ),<br>
&gt;<br>
&gt; In D7 the above should actually be:<br>
&gt;<br>
&gt;      &#39;mymodule_thingy_form&#39; =&gt; array(<br>
&gt;        &#39;render element&#39; =&gt; &#39;form&#39;,<br>
&gt;<br>
&gt; &gt; ....<br>
&gt; &gt; }<br>
&gt; &gt; and create a function<br>
&gt; &gt; function theme_mymodule_thingy_form($variables) {<br>
&gt; &gt;<br>
&gt; &gt;   $form = $variables[&#39;form&#39;];<br>
&gt; &gt;   $output = drupal_render($form);<br>
&gt; &gt;   return $output;<br>
&gt; &gt;<br>
&gt; &gt; }<br>
&gt;<br>
&gt; You should use either render() or drupal_render_children() rather than<br>
&gt; drupal_render(). So far as I could figure out, drupal_render() should no<br>
&gt; longer be used inside theme functions. You use render() to render a<br>
&gt; specific element, and drupal_render_children() to render all the<br>
&gt; children but NOT the element (which is what you want when attempting to<br>
&gt; render $form since that is currently being rendered).<br>
<br>
I ran some trials using form_example from <a href="http://drupal.org/project/examples" target="_blank">http://drupal.org/project/examples</a><br>
I found that indeed I should not use drupal_render()  inside theme functions,<br>
drupal_render_children() works fine.<br>
I also found that using drupal_get_form() within a function (as opposed to in<br>
a menu) requires the output of drupal_get_form() to be run through render(),<br>
otherwise the form is not complete. The theme (defined with &#39;render element&#39;)<br>
is picked up automatically, the same as it is when calling  drupal_get_form()<br>
directly in a menu $item.<br>
<br>
Thanks for your help.<br>
<font color="#888888"><br>
--<br>
-----------------<br>
Bob Hutchinson<br>
Midwales dot com<br>
-----------------<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Randy Fay<br>Drupal Module and Site Development<br><a href="mailto:randy@randyfay.com">randy@randyfay.com</a><br>+1  970.462.7450<br><br>