| +-----------------------------------------------------------------------+ $Id$ */ if (($cid = get_input_value('_cid', RCUBE_INPUT_GPC)) && ($record = $CONTACTS->get_record($cid, true))) $OUTPUT->set_env('cid', $record['ID']); // adding not allowed here if ($CONTACTS->readonly) { $OUTPUT->show_message('sourceisreadonly'); rcmail_overwrite_action('show'); return; } function rcmail_contact_editform($attrib) { global $RCMAIL, $CONTACTS, $OUTPUT; // check if we have a valid result if ($RCMAIL->action != 'add' && !(($result = $CONTACTS->get_result()) && ($record = $result->first()))) { $OUTPUT->show_message('contactnotfound'); return false; } // add some labels to client rcube_add_label('noemailwarning'); rcube_add_label('nonamewarning'); list($form_start, $form_end) = get_form_tags($attrib); unset($attrib['form']); // a specific part is requested if ($attrib['part']) { $out = $form_start; $out .= rcmail_get_edit_field($attrib['part'], $record[$attrib['part']], $attrib); return $out; } // return the complete address edit form as table $out = "$form_start\n\n"; $a_show_cols = array('name', 'firstname', 'surname', 'email'); foreach ($a_show_cols as $col) { $attrib['id'] = 'rcmfd_'.$col; $value = rcmail_get_edit_field($col, $record[$col], $attrib); $out .= sprintf("\n", $attrib['id'], Q(rcube_label($col)), $value); } $out .= "\n
%s
$form_end"; return $out; } $OUTPUT->add_handler('contacteditform', 'rcmail_contact_editform'); // similar function as in /steps/settings/edit_identity.inc function get_form_tags($attrib) { global $CONTACTS, $EDIT_FORM, $RCMAIL; $result = $CONTACTS->get_result(); $form_start = ''; if (!strlen($EDIT_FORM)) { $hiddenfields = new html_hiddenfield(array('name' => '_task', 'value' => $RCMAIL->task)); $hiddenfields->add(array('name' => '_action', 'value' => 'save', 'source' => get_input_value('_source', RCUBE_INPUT_GPC))); if (($result = $CONTACTS->get_result()) && ($record = $result->first())) $hiddenfields->add(array('name' => '_cid', 'value' => $record['ID'])); $form_start = !strlen($attrib['form']) ? $RCMAIL->output->form_tag(array('name' => "form", 'method' => "post")) : ''; $form_start .= $hiddenfields->show(); } $form_end = (strlen($EDIT_FORM) && !strlen($attrib['form'])) ? '' : ''; $form_name = strlen($attrib['form']) ? $attrib['form'] : 'form'; if (!strlen($EDIT_FORM)) $RCMAIL->output->add_gui_object('editform', $form_name); $EDIT_FORM = $form_name; return array($form_start, $form_end); } if (!$CONTACTS->get_result() && template_exists('addcontact')) $OUTPUT->send('addcontact'); // this will be executed if no template for addcontact exists $OUTPUT->send('editcontact'); ?>