function _ajax_form_entity_build_entity_forms in Ajax form entity 7
Same name and namespace in other branches
- 7.x ajax_form_entity.module \_ajax_form_entity_build_entity_forms()
Helper function to build forms arguments depending on the entity.
Return value
array() with form arguments
2 calls to _ajax_form_entity_build_entity_forms()
- ajax_form_entity_callback in ./
ajax_form_entity.module - AJAX submit handler for entity message add form. Returns ajax commands to update the relevant message comments.
- ajax_form_entity_entity_edit_callback in ./
ajax_form_entity.callback.inc - Ajax callback for edition (ajax edit link).
File
- ./
ajax_form_entity.module, line 276 - Ajaxify entity forms.
Code
function _ajax_form_entity_build_entity_forms($entity_type, $form = array(), $form_state = array(), $entity = NULL) {
$new_form_state = array();
// TODO : make it more general : everything is the same except the form ID for drupal_get_form.
switch ($entity_type) {
// Node form.
case 'node':
// Case of creation and case of edition.
if (!$entity) {
global $user;
$entity = (object) array(
'uid' => $user->uid,
'name' => isset($user->name) ? $user->name : '',
'type' => $form['type']['#value'],
'language' => LANGUAGE_NONE,
);
$new_form_state['input'] = array();
$new_form_state['build_info']['args'][] = $entity;
return drupal_build_form($form['#form_id'], $new_form_state);
}
else {
$entity_id = key($entity);
return drupal_get_form($entity[$entity_id]->type . '_node_form', $entity[$entity_id]);
}
break;
// User form.
case 'user':
if (!$entity) {
$entity = (object) array();
$new_form_state['input'] = array();
$new_form_state['build_info']['args'][] = $entity;
return drupal_build_form($form['#form_id'], $new_form_state);
}
else {
$entity_id = key($entity);
return drupal_get_form('user_profile_form', $entity[$entity_id]);
}
break;
// User form.
case 'taxonomy':
if (!$entity) {
$entity = (object) array();
$new_form_state['input'] = array();
$new_form_state['build_info']['args'][] = $entity;
return drupal_build_form($form['#form_id'], $new_form_state);
}
else {
$entity_id = key($entity);
return drupal_get_form('taxonomy_form_term', $entity[$entity_id]);
}
break;
// Comment form.
case 'comment':
if (!$entity) {
$entity = (object) array(
'nid' => $form['#node']->nid,
);
$new_form_state['input'] = array();
$new_form_state['build_info']['args'][] = $entity;
return drupal_build_form($form['#form_id'], $new_form_state);
}
else {
$entity_id = key($entity);
return drupal_get_form($entity[$entity_id]->node_type . '_form', $entity[$entity_id]);
}
break;
// Entityforms module.
case 'entityform':
// Case of creation and case of edition.
if (!$entity) {
$entity->type = $form_state['build_info']['args'][0]->type;
$entity = entityform_create($values = array());
$new_form_state['input'] = array();
$new_form_state['build_info']['args'][] = $entity;
return drupal_build_form($form['#form_id'], $new_form_state);
}
else {
$entity_id = key($entity);
return drupal_get_form('entityform_edit_form', $entity[$entity_id]);
}
break;
case 'field_collection_item':
// Create new default field collection entity.
if (!$entity) {
$entity = new FieldCollectionItemEntity();
$host_entity_type = isset($form_state['values']['host_entity_type']) ? $form_state['values']['host_entity_type'] : $form_state['build_info']['args']['host_entity_type'];
$host_entity_id = isset($form_state['values']['host_entity_id']) ? $form_state['values']['host_entity_id'] : $form_state['build_info']['args']['host_entity_id'];
$ids[] = $host_entity_id;
$host_entity = entity_load($host_entity_type, $ids);
$entity = entity_create('field_collection_item', array(
'field_name' => $form_state['build_info']['args'][0]->field_name,
));
$entity
->setHostEntity($host_entity_type, $host_entity[$host_entity_id], LANGUAGE_NONE, FALSE);
$new_form_state['input'] = array();
$new_form_state['build_info']['args'][] = $entity;
$new_form_state['build_info']['args']['host_entity_id'] = $host_entity_id;
$new_form_state['build_info']['args']['host_entity_type'] = $host_entity_type;
return drupal_build_form($form['#form_id'], $new_form_state);
}
else {
$entity_id = key($entity);
return drupal_get_form('field_collection_item_form', $entity[$entity_id]);
}
break;
default:
break;
}
return $new_form_state;
}