You are here

function node_gallery_api_item_edit_form in Node Gallery 7

Gallery Item edit form.

1 call to node_gallery_api_item_edit_form()
node_gallery_api_manage_items_form in ./node_gallery_api.pages.inc
Displays the content for our "Manage Images" tab, which is a VBO view.

File

./node_gallery_api.pages.inc, line 522
Node Gallery module.

Code

function node_gallery_api_item_edit_form($form_values, $image, $relationship_type, &$entire_form_state) {
  module_load_include('inc', 'node', 'node.pages');
  $form_state = array(
    'values' => $form_values,
    'build_info' => array(
      'args' => array(
        $image,
      ),
    ),
    'method' => 'post',
  );
  $display_fields = $relationship_type->settings['manage_items']['items_fields'];
  $form = drupal_retrieve_form($image->type . '_node_form', $form_state);
  drupal_prepare_form($image->type . "_node_form", $form, $form_state);

  // Keep all fields that are added to form state, as some are retrieved from
  // form state during validation and submit (such as for Taxonomy auto-complete
  // fields) and need to be accessible at all times.
  if (isset($form_state['field'])) {
    $entire_form_state['field'] = isset($entire_form_state['field']) ? array_merge($form_state['field'], $entire_form_state['field']) : $form_state['field'];
  }
  $item_form = array();
  $display_fields['#node'] = '#node';
  foreach (array_values($display_fields) as $field_name) {
    if (!empty($field_name) && !empty($form[$field_name])) {
      $item_form[$field_name] = $form[$field_name];
    }
  }
  $item_form += (array) node_gallery_api_get_item_form_value_items($form);
  node_gallery_api_set_item_form_default_values($item_form, $image, $relationship_type);
  $item_form = node_gallery_api_flatten_item_edit_form($item_form);
  foreach (element_children($item_form) as $key) {
    $element =& $item_form[$key];
    if (isset($element['#theme']) && $element['#theme'] == 'content_multiple_values') {

      // We need to override several properties for multi-value fields.
      $nid = $item_form['#node']->nid;
      $fieldname = $element['#field_name'];
      $field_name_css = str_replace('_', '-', $fieldname);
      $item_form[$key]['#prefix'] = '<div id="' . $field_name_css . '-items-' . $nid . '">';
      $item_form[$key][$fieldname . '_add_more-' . $nid] = $item_form[$key][$fieldname . '_add_more'];
      $item_form[$key][$fieldname . '_add_more-' . $nid]['#ahah']['wrapper'] = $field_name_css . '-items-' . $nid;

      // Change the path of the AHAH call.
      $item_form[$key][$fieldname . '_add_more-' . $nid]['#ahah']['path'] = 'node-gallery/json/js_add_more/' . $image->type . '/' . $fieldname;
      $item_form[$key][$fieldname . '_add_more-' . $nid]['#name'] = $fieldname . '_add_more-' . $nid;
      unset($item_form[$key][$fieldname . '_add_more']);
      $item_form[$key]['#theme'] = 'node_gallery_content_multiple_values';
    }
  }
  return $item_form;
}