2010-12-05 8 views
0

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.

Répondre

0

désolé, j'aurais dû lire plus loin dans le tutoriel que je suis. Apparemment, les champs personnalisés ne font pas partie de l'objet nœud tant que vous ne les avez pas récupérés avec hook_load(). Fonctionne bien maintenant.

Questions connexes