function menu_icons_form_submit in Menu Icons 8
Same name and namespace in other branches
- 6.2 menu_icons.module \menu_icons_form_submit()
- 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 93 - Module to associate icons with menu items
Code
function menu_icons_form_submit($form, &$form_state) {
// Get the global setings
$file_validate_image_resolution = module_exists('imagecache') ? '0x0' : variable_get('menu_icons_file_validate_image_resolution', '45x45');
// Check the destination folder, attempt to create it if it does't exist
$directory_path = menu_icons_directory_path();
file_check_directory($directory_path, FILE_CREATE_DIRECTORY);
// 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,
);
if ($form_state['values']['imagecache_preset']) {
$options['menu_icon']['imagecache_preset'] = $form_state['values']['imagecache_preset'];
}
$class = "menu_icon menu-" . $form_state['values']['menu']['mlid'];
if ($options['menu_icon']['enable'] && !empty($options['menu_icon']['path']) && file_exists($options['menu_icon']['path'])) {
if (!strstr($options['attributes']['class'], $class)) {
$options['attributes']['class'] = empty($options['attributes']['class']) ? $class : $options['attributes']['class'] . " {$class}";
}
}
else {
$options['attributes']['class'] = str_replace($class, '', $options['attributes']['class']);
}
if (empty($options['attributes']['class'])) {
unset($options['attributes']['class']);
}
db_query('UPDATE {menu_links} SET options = "%s" WHERE mlid = %d', serialize($options), $form_state['values']['menu']['mlid']);
// Regenerate the css file
menu_icons_css_generate();
}