1 contact.admin.inc | contact_category_edit_form_submit($form, &$form_state) |
Form submission handler for contact_category_edit_form().
See also
contact_category_edit_form_validate()
File
- core/
modules/ contact/ contact.admin.inc, line 417 - Admin page callbacks for the Contact module.
Code
function contact_category_edit_form_submit($form, &$form_state) {
$cid = $form_state['values']['cid'];
$contact = array(
'cid' => $cid,
'category' => $form_state['values']['category'],
'recipients' => $form_state['values']['recipients'],
'reply' => $form_state['values']['reply'],
'weight' => $form_state['values']['weight'],
);
// Get Categories Data stored in $form_state.
$config_data = $form_state['categories_data'];
$default_category = $config_data['contact_default_category'];
$categories = $config_data['categories'];
if (isset($cid)) {
foreach ($categories as $key => $val) {
if ($val['cid'] == $cid) {
$categories[$key] = $contact;
}
}
}
else {
$max_cid = 0;
if ($categories) {
foreach ($categories as $key => $cat) {
$cids[] = $cat['cid'];
}
$max_cid = max($cids);
}
$cid = $max_cid + 1;
$contact['cid'] = $cid;
$categories[] = $contact;
}
// If selected set variable contact_default_category.
if ($form_state['values']['selected']) {
$config_data['contact_default_category'] = $cid;
}
elseif ($cid == $default_category) {
// If not selected but is set as default then set default back to 0.
$config_data['contact_default_category'] = 0;
}
$config_data['categories'] = array_values($categories);
$config = config('contact.categories');
$config->setData($config_data);
$config->save();
backdrop_set_message(t('Contact form category %category has been saved.', array('%category' => $form_state['values']['category'])));
watchdog('contact', 'Contact form category %category has been saved.', array('%category' => $form_state['values']['category']), WATCHDOG_NOTICE, l(t('Configure'), 'admin/structure/contact/configure/' . $form_state['values']['cid']));
$form_state['redirect'] = 'admin/structure/contact';
}