Bonjour
J'ai créé un type de node qui permet d'avoir une relation parent-fils en ajoutant un champ pour avoir la référence du nid du père. J'essaie maintenant de créer un menu qui permet de créer un node fils pour le node en cours de visualisation. Le but étant de récupérer le formulaire de création de node pour mon type et de préremplir le champ nid automatiquement. Voici ce que ca donne :
<?php
function test_node_info() {
return array(
'testtype' => array(
'name' => t('Test Type'),
'module' => 'test',
'description' => t('Test type from test module'),
'has_title' => TRUE,
'title_label' => t('Test title'),
'has_body' => TRUE,
'body_label' => t('Test body'),
),
);
}
function test_form(&$node, &$param) {
$type = node_get_types('type', $node);
if ($type->has_title) {
$form['title'] = array(
'#type' => 'textfield',
'#title' => check_plain($type->title_label),
'#required' => TRUE,
'#default_value' => $node->title,
'#weight' => -5,
);
}
if ($type->has_body) {
$form['body_field'] = node_body_field($node, $type->body_label, $type->min
_word_count);
}
$form['parentnid'] = array(
'#type' => 'textfield',
'#title' => t('Parent Node Id'),
);
return $form;
}
function test_menu() {
$items['node/%node/child'] = array(
'title' => t('Add children'),
'page callback' => 'get_n_prefill_form',
'page arguments' => array(1),
'access callback' => 'node_access',
'access arguments' => array('create', 'testtype'),
'type' => MENU_LOCAL_TASK,
);
return $items;
}
function get_n_prefill_form($nodeid) {
$form = drupal_get_form('testtype_node_form');
$form['parentnid'] = array(
'#type' => 'textfield',
'#title' => t('Parent Node Id'),
'#default' => $nodeid,
);
return $form;
}
?>warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'node_form' was given in /Users/antoine/usr/Library/WebServer/Documents/includes/form.inc on line 359.<?php
function get_n_prefill_form($nodeid) {
global $user;
$node = array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->na
me : ''), 'type' => 'testtype', 'language' => '');
drupal_set_title(t('Create @name', array('@name' => $types[$type]->name)));
$form = test_form($node);
var_dump($form);
return $form;
}
?>Fatal error: Call to undefined function node_body_field() in /Users/antoine/usr/Library/WebServer/Documents/sites/drawnstuff.com/modules/test/test.module on line 31Est-qu'il existe une bonne méthode pour arriver à ce que je veut faire ?
Merci