drupal: поле пользовательского типа контента #default_value не отображается - PullRequest
0 голосов
/ 05 декабря 2010

Я изучаю drupal, работаю над модулем, который создает пользовательский тип контента. Все отлично работает Я могу добавлять и обновлять пользовательские узлы. Единственное, что не работает, это то, что когда я редактирую узел, #default_value для 2-х пользовательских полей не отображается. Вот моя форма hook_form:

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; 
}

Таким образом, 2 настраиваемых поля - это другие и другие2, эти столбцы находятся в таблице mymodule, и я могу добавлять и обновлять их значения. Но они не отображаются повторно в качестве значений по умолчанию в форме редактирования.

1 Ответ

0 голосов
/ 05 декабря 2010

извините, я должен был читать дальше в учебнике, которому я следую. Очевидно, что пользовательские поля не являются частью объекта узла, пока вы не получили их с помощью hook_load (). Работает нормально сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...