You are here

function content_multigroup_add_more in Content Construction Kit (CCK) 6.3

Add AHAH add more button, if not working with a programmed form.

1 call to content_multigroup_add_more()
_content_multigroup_fieldgroup_form in modules/content_multigroup/content_multigroup.node_form.inc
Implementation of hook_fieldgroup_form().

File

modules/content_multigroup/content_multigroup.node_form.inc, line 691
Implementation of node edit functions for content multigroup.

Code

function content_multigroup_add_more(&$form, &$form_state, $group) {
  $group_multiple = $group['settings']['multigroup']['multiple'];
  if ($group_multiple != 1 || !empty($form['#programmed'])) {
    return FALSE;
  }

  // Make sure the form is cached so ahah can work.
  $form['#cache'] = TRUE;
  $content_type = content_types($group['type_name']);
  $group_name = $group['group_name'];
  $group_name_css = str_replace('_', '-', $group_name);
  $form_element = array();
  $form_element[$group_name . '_add_more'] = array(
    '#type' => 'submit',
    '#name' => $group_name . '_add_more',
    '#value' => theme('content_multigroup_add_more_label', $group_name),
    '#weight' => $group_multiple + 1,
    '#submit' => array(
      'content_multigroup_add_more_submit',
    ),
    '#ahah' => array(
      'path' => 'content_multigroup/js_add_more/' . $content_type['url_str'] . '/' . $group_name,
      'wrapper' => $group_name_css . '-items',
      'method' => 'replace',
      'effect' => 'fade',
    ),
    // When JS is disabled, the content_multigroup_add_more_submit handler will
    // find the relevant group information using these entries.
    '#group_name' => $group_name,
    '#type_name' => $group['type_name'],
    '#item_count' => $form[$group_name]['#item_count'],
  );

  // Add wrappers for the group and 'more' button.
  $form_element['#prefix'] = '<div id="' . $group_name_css . '-items">';
  $form_element['#suffix'] = '</div>';
  $form_element[$group_name . '_add_more']['#prefix'] = '<div class="content-add-more clear-block">';
  $form_element[$group_name . '_add_more']['#suffix'] = '</div>';
  return $form_element;
}