function testDedupArray() { $value1 = array('Jason', 'Pell'); $value2 = array('Clair', 'Pell'); $new_value = deduplicate_array($value1, $value2); $this->assertEquals(1, count($new_value)); $this->assertEquals('Jason', $new_value[0]); }
function get_item_form_row($op, $item_r, $item_attribute_type_r, $old_value, $new_value) { if ($item_attribute_type_r['s_field_type'] == 'TITLE') { $fieldname = 'title'; } else { $fieldname = get_field_name($item_attribute_type_r['s_attribute_type'], $item_attribute_type_r['order_no']); } $is_multi_value = is_multivalue_attribute_type($item_attribute_type_r['s_attribute_type']); $refresh_field = FALSE; // Hidden cannot be involved in a refresh operation directly, but refreshed hidden fields, will still be updated. if (strcasecmp($item_attribute_type_r['input_type'], 'hidden') !== 0 && $old_value !== FALSE && (is_not_empty_array($new_value) || !is_array($new_value) && strlen($new_value) > 0) && is_value_refreshed($item_attribute_type_r['s_attribute_type'], $new_value, $old_value) && (is_not_empty_array($old_value) || !is_array($old_value) && strlen($old_value) > 0)) { $refresh_field = TRUE; $new_value = get_array_for_value($new_value); } if ($refresh_field && count($new_value) > 0 || is_array($new_value) && !$is_multi_value) { // ------------- // REFRESH FIELD // ------------- // If we are doing a complete refresh block, and display_type is set to // hidden, overwrite to display it. if ($item_attribute_type_r['display_type'] == 'hidden') { $item_attribute_type_r['display_type'] = 'display(%value%)'; $item_attribute_type_r['display_type_arg1'] = '%value%'; } $field .= "<ul class=\"tabMenu\" id=\"{$fieldname}-tab-menu\">"; if (!$is_multi_value) { $new_value = deduplicate_array($new_value, $old_value); $count = count($new_value) - 1; } else { $count = 0; } $key = array_keys($new_value); for ($i = 0; $i <= $count; $i++) { is_numeric($key[$i]) ? $label_description = "" : ($label_description = " : {$key[$i]}"); $field .= "<li id=\"menu-{$fieldname}_new{$i}\"" . ($i == 0 ? " class=\"first activeTab\"" : "") . ">\n\t\t\t\t\t<label for=\"menu-{$fieldname}_new{$i}-cbox\">" . $item_attribute_type_r['prompt'] . "{$label_description}</label>" . "<input type=\"radio\" class=\"radio\" name=\"" . $fieldname . "\" id=\"menu-{$fieldname}_new{$i}-cbox\" value=\"new{$i}\" onclick=\"return activateTab('{$fieldname}_new{$i}', '{$fieldname}-tab-menu', '{$fieldname}-tab-content');\"" . ($i == 0 ? " CHECKED" : "") . "></li>"; } if ($refresh_field) { $field .= "<li id=\"menu-{$fieldname}_old\" >\n\t\t\t\t<label for=\"menu-{$fieldname}_old-cbox\">" . get_opendb_lang_var('old_prompt', 'prompt', $item_attribute_type_r['prompt']) . "</label>" . "<input type=\"radio\" class=\"radio\" id=\"menu-{$fieldname}_old-cbox\" name=\"" . $fieldname . "\" value=\"old\" onclick=\"return activateTab('{$fieldname}_old', '{$fieldname}-tab-menu', '{$fieldname}-tab-content');\"></li>"; } $field .= "</ul>"; $field .= "<div class=\"tabContentContainer\" id=\"{$fieldname}-tab-content\">"; for ($i = 0; $i <= $count; $i++) { if ($is_multi_value) { $value = $new_value; } else { $value = $new_value[$key[$i]]; } $field .= "<div class=\"tabContent" . ($i > 0 ? "Hidden" : "") . "\" id=\"{$fieldname}_new{$i}\">" . get_item_input_field($fieldname . "_new{$i}", $item_attribute_type_r, $item_r, $value, FALSE) . "</div>"; } if ($refresh_field) { $field .= "<div class=\"tabContentHidden\" id=\"{$fieldname}_old\">" . get_item_input_field($fieldname . "_old", $item_attribute_type_r, $item_r, $old_value, FALSE) . "</div>"; } $field .= "</div>"; $prompt_mask = NULL; if ($refresh_field) { $prompt_mask = theme_image('rs.gif', get_opendb_lang_var('refreshed')) . "%prompt%"; } return format_item_data_field($item_attribute_type_r, $field, $prompt_mask, NULL); // field mask } else { // not a choose attribute if (is_multivalue_attribute_type($item_attribute_type_r['s_attribute_type'])) { // if new_value is empty! if (is_empty_or_not_array($new_value)) { if ($old_value !== FALSE) { $value = $old_value; } else { $value = NULL; } } else { $value =& $new_value; } return get_item_input_field($fieldname, $item_attribute_type_r, $item_r, $value); } else { $value = ifempty($new_value, $old_value === FALSE ? NULL : $old_value); // If this is an edit operation - the value must be NOT NULL // for some widgets to work properly. if ($op != 'new' && $op != 'site' && $value === NULL) { $value = ''; } return get_item_input_field($fieldname, $item_attribute_type_r, $item_r, $value); } } }