comparison popups_reference.module @ 10:108ced764a40 tip

Fix compatibility with CCK Multigroup
author Franck Deroche <franck@defr.org>
date Thu, 26 Mar 2009 14:59:27 +0100
parents 571a89603e2b
children
comparison
equal deleted inserted replaced
9:8ced981c0dc0 10:108ced764a40
26 } 26 }
27 elseif (isset($form['type'])) { 27 elseif (isset($form['type'])) {
28 // Add the "Add New: Node Type" links. 28 // Add the "Add New: Node Type" links.
29 $node = $form['#node']; 29 $node = $form['#node'];
30 if ($form['type']['#value'] .'_node_form' == $form_id) { 30 if ($form['type']['#value'] .'_node_form' == $form_id) {
31 $fields = content_fields(); 31 $form['#after_build'][] = 'popups_reference_after';
32 foreach ($form as $key => $item) { 32 }
33 if (is_array($item)) { 33 }
34 $type = $item['#type']; 34 }
35 if ($type == 'fieldset') { // Loop through all the subitems. 35
36 foreach ($form[$key] as $subkey => $subitem) { 36 function popups_reference_after($form, &$form_state) {
37 popups_reference_alter_item($form[$key], $subkey, $subitem, $fields); 37 $fields = content_fields();
38 } 38 foreach ($form as $key => $item) {
39 } 39 if (element_child($key) && is_array($item)) {
40 else { 40 $type = $item['#type'];
41 popups_reference_alter_item($form, $key, $item, $fields); 41 if ($type == 'fieldset' || is_numeric($key)) { // Loop through all the subitems.
42 } 42 $form[$key] = popups_reference_after($form[$key], $form_state);
43 } 43 }
44 44 else {
45 popups_reference_alter_item($form, $key, $item, $fields);
45 } 46 }
46 } 47 }
47 } 48 }
49 return $form;
48 } 50 }
49 51
50 /** 52 /**
51 * Implementation of hook_nodeapi(). 53 * Implementation of hook_nodeapi().
52 * Add cookies with node info when a new node is created. 54 * Add cookies with node info when a new node is created.
91 $wrapper_id = 'popups-reference-' . _popups_reference_counter(); 93 $wrapper_id = 'popups-reference-' . _popups_reference_counter();
92 $links = _popups_reference_links($field, $type, $wrapper_id, $field['widget']['type']); 94 $links = _popups_reference_links($field, $type, $wrapper_id, $field['widget']['type']);
93 if ($links) { 95 if ($links) {
94 // Put the nodereference widget and links in an wrapper. 96 // Put the nodereference widget and links in an wrapper.
95 // Makes it easy to find for Ahah targeting, and popups_reference behavior selecting. 97 // Makes it easy to find for Ahah targeting, and popups_reference behavior selecting.
96 $form[$key]['#popups_reference_prefix'] = '<div id="'. $wrapper_id .'">'; 98 $form[$key]['#prefix'] = '<div id="'. $wrapper_id .'">' . $form[$key]['#prefix'];
97 $form[$key]['#popups_reference_suffix'] = '<div>Add New: ' . implode(', ', $links) .'</div></div>'; 99 $form[$key]['#suffix'] = $form[$key]['#suffix'] . '<div>Add New: ' . implode(', ', $links) .'</div></div>';
98 $form[$key]['#after_build'][] = 'popups_reference_after_build';
99 } 100 }
100 } 101 }
101 } 102 }
102 103
103 function popups_reference_after_build($form_element) { 104 function popups_reference_after_build($form_element) {