You are here

function domain_menu_access_form_menu_edit_item_submit in Domain Menu Access 7

Same name and namespace in other branches
  1. 6 domain_menu_access.admin.inc \domain_menu_access_form_menu_edit_item_submit()

Processes updated form submission and adds extra information to menu $item['options'] element.

1 string reference to 'domain_menu_access_form_menu_edit_item_submit'
domain_menu_access_form_menu_edit_item_alter in ./domain_menu_access.admin.inc
Implementation of hook_form_FORM_ID_alter().

File

./domain_menu_access.admin.inc, line 79
Domain Menu Access module admin functions.

Code

function domain_menu_access_form_menu_edit_item_submit($form, &$form_state) {
  if ($form_state['submitted'] && user_access('administer menus per domain')) {

    // Clear previous domain access values.
    $form_state['values']['options']['domain_menu_access'] = array(
      'show' => array(),
      'hide' => array(),
    );

    // Process showing menu item per domain.
    foreach ($form_state['values']['domain_menu_access_show'] as $key => $value) {
      if ($value) {
        $form_state['values']['options']['domain_menu_access']['show'][$key] = $key;
      }
    }

    // Process hiding menu item per domain.
    foreach ($form_state['values']['domain_menu_access_hide'] as $key => $value) {
      if ($value) {
        $form_state['values']['options']['domain_menu_access']['hide'][$key] = $key;
      }
    }

    // Verify that at least one checkbox for 'show' and for 'hide' was ticked.
    // Otherwise just unset relevant arrays, as no point in saving them then.
    if (count($form_state['values']['options']['domain_menu_access']['show']) == 0) {
      unset($form_state['values']['options']['domain_menu_access']['show']);
    }
    if (count($form_state['values']['options']['domain_menu_access']['hide']) == 0) {
      unset($form_state['values']['options']['domain_menu_access']['hide']);
    }
    if (count($form_state['values']['options']['domain_menu_access']) == 0) {
      unset($form_state['values']['options']['domain_menu_access']);
    }

    // Set 'alter' flag to true for this menu item if it was modified,
    // otherwise hook_translated_menu_link_alter() will not be invoked:
    // http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_translated_menu_link_alter/7
    if (isset($form_state['values']['options']['domain_menu_access'])) {
      $form_state['values']['options']['alter'] = TRUE;
    }
  }
}