J'apprends drupal en travaillant sur un module qui crée un type de contenu personnalisé. Tout fonctionne bien. Je peux ajouter et mettre à jour les noeuds personnalisés. Les seules choses qui ne fonctionnent pas sont que lorsque je modifie le nœud, la valeur #default_value pour les 2 champs personnalisés ne s'affiche pas. Voici mon hook_form:drupal: champ de type de contenu personnalisé #default_value n'affiche pas
function mymodule_form(&$node, $form_state) {
$type = node_get_types('type', $node);
$form['title'] = array(
'#type' => 'textfield',
'#title' => check_plain($type->title_label),
'#required' => TRUE,
'#default_value' => $node->title,
'#weight' => -5,
);
$form['body'] = array(
'#type' => 'textarea',
'#title' => check_plain($type->body_label),
'#rows' => 20,
'#default_value' => $node->body,
'#required' => TRUE,
);
$form['other'] = array(
'#type' => 'textfield',
'#title' => t('Other thingy'),
'#default_value' => $node->other,
);
if ($node->type == 'chucky') {
$form['other2'] = array(
'#type' => 'textfield',
'#title' => t('Other thingy 2'),
'#default_value' => $node->other2,
);
}
return $form;
}
Ainsi, les 2 champs personnalisés sont autres et part2, ces colonnes sont dans le tableau mymodule et je peux ajouter et mettre à jour leurs valeurs. Mais ils ne sont pas ré-affichés comme valeurs par défaut dans le formulaire d'édition.