[development] Node Rendering Debate
Jeff Eaton
jeff at viapositiva.net
Fri Jun 22 01:42:16 UTC 2007
It would be perfectly possible to *render* a form in that fashion,
but unless you called drupal_get_form() it would not actually enter
the full form lifecycle. In fact this is already possible using
Drupal 5's infrastructure. Try this in your hook_nodeapi op view:
$node->content['my_thing'] = array(
'#type' => 'fieldset',
'#title' => t('Test fieldset'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$node->content['my_thing']['content'] = array(
'#value' => 'Test content goes here...',
);
It will add a collapsible fieldset to your view containing static
content.
renderable elements are renderable elements. Form elements just
render into <input> tags and so on. FormAPI adds additional behavior
on top of that, but under the hood, the rendering infrastructure is a
way of taking a metadata rich array structure and rendering it into
raw HTML (or JSON, or XML, if you feel like layering a new set of
theme functions onto it.)
It is a tremendously powerful system. We shouldn't jump into using it
unawares, but we would also be missing a huge opportunity to pass up
this system of storing meta-data rich structures and renderable content.
--Jeff
On Jun 21, 2007, at 6:16 PM, sime wrote:
> If the drupal_render on a node is made possible, would you be able
> insert, say, a form somewhere in the tree and have it render? Would
> you be able to nest additional nodes in the tree? Would you be able
> to insert parts of the node under a fapi fieldset elements? Bear in
> mind, I'm not thinking about the ramifications on theming, more I'm
> interested in where we see drupal_render going.
More information about the development
mailing list