将自定义模块表单中的数据存储到内容类型中

时间:2014-08-01 08:17:34

标签: php drupal-7

我正在寻找一种方法来保存表单收集的数据(此表单是从我正在处理的模块生成的)。我想将数据保存到我也创建的内容类型中。 这可能吗?我一直在寻找一种方法来做到这一点,并没有找到任何简单的方法来做到这一点。 我目前正在研究drupal 7。

到目前为止,这是我的代码:

function drupalform_menu() {
$items['drupalform/form1'] = array(
    'type' => MENU_CALLBACK,
    'access arguments' => array('access content'),
    'page callback' => 'drupal_get_form',
    'page arguments'=>array('drupalform_form1'));

  return $items;
}

function drupalform_form1() {
$form = array();


$form['Civilite']=array(
    '#type'=>'select',
    '#title'=>t('Entrez votre civilite'),
    '#options'=>array('M','Mr','Mme')
  );
$form['nom']=array(
    '#type'=>'textfield',
    '#title'=>t('Entez votre nom'),
  );

 $form['email']=array(
    '#type'=>'textfield',
    '#title'=>t('Enter votre e-mail'),
  );

$form['submit']=array(
    '#type'=>'submit',
    '#value'=>t('Submit')
  );

  return $form;
}

function drupalform_form1_validate($form, $form_state) {
  if(empty($form_state['values']['nom']))
     form_set_error('nom','Veuillez saisir votre nom');
  else if(filter_var($form_state['values']['email'], FILTER_VALIDATE_EMAIL) == false)
    form_set_error('email','Mail non valide');
}

function drupalform_form1_submit($form, $form_state) {
   drupal_set_message("Le formulaire est envoyé");
   drupal_goto();
}

1 个答案:

答案 0 :(得分:0)

您可以通过分配如下所示的值来创建节点,

global $user;
$newNode = new stdClass();
$newNode->type = 'NODE_TYPE';
$newNode->title = 'NODE_TITLE'
$newNode->uid = $use->uid;
$newNode->created = strtotime("now");
$newNode->changed = strtotime("now");
$newNode->status = 1;
$newNode->comment = 0;
$newNode->promote = 0;
$newNode->moderate = 0;
$newNode->sticky = 0;

// add CCK field data
$newNode->field_YOUR_CUSTOM_FIELD_NAME_1[0]['value'] = 'FORM_VALUE_1';
$newNode->field_YOUR_CUSTOM_FIELD_NAME_2[0]['value'] = 'FORM_VALUE_2';
// save node
node_save($newNode);

您可以在表单中提交。