You are here

function menu_icons_form_submit in Menu Icons 6.2

Same name and namespace in other branches
  1. 8 menu_icons.module \menu_icons_form_submit()
  2. 7.3 menu_icons.module \menu_icons_form_submit()

Process the submitted form

1 string reference to 'menu_icons_form_submit'
menu_icons_form_alter in ./menu_icons.module
Implementation of hook_form_alter().

File

./menu_icons.module, line 82
Module to associate icons with menu items

Code

function menu_icons_form_submit($form, &$form_state) {

  // Clear the cached css
  cache_clear_all('menu_icons', 'cache');

  // Get the global setings
  $file_validate_image_resolution = variable_get('menu_icons_file_validate_image_resolution', '45x45');
  $image_folder = variable_get('menu_icons_image_folder', 'menu_icons');

  // Check the destination folder, attempt to create it if it does't exist
  $directory_path = file_directory_path() . "/{$image_folder}";
  file_check_directory($directory_path, FILE_CREATE_DIRECTORY, 'file_directory_path');

  // Store the current icon path
  $path = $form_state['values']['icon_path'];

  // Define the validation settings
  if ($file_validate_image_resolution != '0x0') {
    $validate = array(
      'file_validate_is_image' => array(),
      'file_validate_image_resolution' => array(
        $file_validate_image_resolution,
      ),
    );
  }
  else {
    $validate = array(
      'file_validate_is_image' => array(),
    );
  }

  // Check for a new uploaded logo, and use that instead.
  if ($file = file_save_upload('icon_upload', $validate)) {
    $parts = pathinfo($file->filename);
    $filename = "{$directory_path}/menu_icon_" . $form_state['values']['menu']['mlid'] . '.' . $parts['extension'];

    // The image was saved using file_save_upload() and was added to the
    // files table as a temporary file. We'll make a copy and let the garbage
    // collector delete the original upload.
    file_copy($file, $filename, FILE_EXISTS_REPLACE);
    $path = $filename;
  }
  $options = unserialize(db_result(db_query('SELECT options FROM {menu_links} WHERE mlid = %d', $form_state['values']['menu']['mlid'])));
  $options['menu_icon'] = array(
    'enable' => $form_state['values']['use_icon_logo'],
    'path' => $path,
  );
  $options['attributes']['class'] = "menu_icon menu-" . $form_state['values']['menu']['mlid'];
  db_query('UPDATE {menu_links} SET options = "%s" WHERE mlid = %d', serialize($options), $form_state['values']['menu']['mlid']);
}