| | Author: Tobias 'tri' Richter query("SELECT * FROM ".get_table_name('contacts')." WHERE contact_id=? AND user_id=? AND del<>1", $cid, $_SESSION['user_id']); $CONTACT_RECORD = $DB->fetch_assoc(); if (is_array($CONTACT_RECORD)) $OUTPUT->add_script(sprintf("%s.set_env('cid', '%s');", $JS_OBJECT_NAME, $CONTACT_RECORD['contact_id'])); } function rcmail_contact_editform($attrib) { global $CONTACT_RECORD, $JS_OBJECT_NAME; if (!$CONTACT_RECORD && $GLOBALS['_action']!='add') return rcube_label('contactnotfound'); // 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'], $CONTACT_RECORD[$attrib['part']], $attrib); return $out; } // return the complete address edit form as table $out = "$form_start\n\n"; $a_show_cols = array('name', 'email', 'first_name', 'middle_name', 'last_name', 'edu_title', 'addon', 'nickname', 'company', 'organisation', 'department', 'job_title', 'note', 'tel_work1_voice', 'tel_work2_voice', 'tel_home1_voice', 'tel_home2_voice', 'tel_cell_voice', 'tel_car_voice', 'tel_pager_voice', 'tel_additional', 'tel_work_fax', 'tel_home_fax', 'tel_isdn', 'tel_preferred', 'tel_telex', 'work_street', 'work_zip', 'work_city', 'work_region', 'work_country', 'home_street', 'home_zip', 'home_city', 'home_region', 'home_country', 'postal_street', 'postal_zip', 'postal_city', 'postal_region', 'postal_country', 'url_work', 'role', 'birthday', 'rev', 'lang'); foreach ($a_show_cols as $col) { $attrib['id'] = 'rcmfd_'.$col; $title = rcube_label($col); $value = rcmail_get_edit_field($col, $CONTACT_RECORD[$col], $attrib); $out .= sprintf("\n", $attrib['id'], $title, $value); } $out .= "\n
%s
$form_end"; return $out; } // similar function as in /steps/settings/edit_identity.inc function get_form_tags($attrib) { global $CONTACT_RECORD, $OUTPUT, $JS_OBJECT_NAME, $EDIT_FORM, $SESS_HIDDEN_FIELD; $form_start = ''; if (!strlen($EDIT_FORM)) { $hiddenfields = new hiddenfield(array('name' => '_task', 'value' => $GLOBALS['_task'])); $hiddenfields->add(array('name' => '_action', 'value' => 'save')); if ($_GET['_framed'] || $_POST['_framed']) $hiddenfields->add(array('name' => '_framed', 'value' => 1)); if ($CONTACT_RECORD['contact_id']) $hiddenfields->add(array('name' => '_cid', 'value' => $CONTACT_RECORD['contact_id'])); $form_start = !strlen($attrib['form']) ? '
' : ''; $form_start .= "\n$SESS_HIDDEN_FIELD\n"; $form_start .= $hiddenfields->show(); } $form_end = (strlen($EDIT_FORM) && !strlen($attrib['form'])) ? '
' : ''; $form_name = strlen($attrib['form']) ? $attrib['form'] : 'form'; if (!strlen($EDIT_FORM)) $OUTPUT->add_script("$JS_OBJECT_NAME.gui_object('editform', '$form_name');"); $EDIT_FORM = $form_name; return array($form_start, $form_end); } if (!$CONTACT_RECORD && template_exists('addcontact')) parse_template('addcontact'); // this will be executed if no template for addcontact exists parse_template('editcontact'); ?>