I'm new to drupal, developing a custom module and trying to add some [collapsible] custom fields in my node. So I added this code in my hook_view (before $node = node_prepare($node, $teaser);) :
...
if ($page) {
drupal_add_js('misc/collapse.js');
$node->content['Id'] = array(
'#type' => 'fieldset',
'#title' => t('myfieldset'),
'#weight' => -9,
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$node->content['Id']['myfield'] = array(
'#value' => $node->myfield,
'#parent' => 'Id',
'#weight' => -9,
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
*/
}
... but for some reasons the generated HTML keeps myfield outside of the collapsible area.
The above code generates
followed by the value of myfield which stays outside the
.
So I ended up tweaking with this :
<?php ...
if ($page) {
drupal_add_js('misc/collapse.js');
$node->content['Id'] = array(
'#type' => 'fieldset',
'#title' => t('Artist Details'),
'#weight' => -9,
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$data = 'First Name: '.$node->firstname.
' Last Name: '.$node->lastname.' ';
$data .= $node->toto == '' ? '' : ' Alias: '.$node->toto.'';