function menu_icons_form_submit in Menu Icons 7.3
Same name and namespace in other branches
- 8 menu_icons.module \menu_icons_form_submit()
- 6.2 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 - Implements hook_form_alter().
File
- ./
menu_icons.module, line 189 - Module to associate icons with menu items
Code
function menu_icons_form_submit($form, &$form_state) {
// Check the destination folder, attempt to create it if it does't exist
$directory_path = menu_icons_directory_path();
file_prepare_directory($directory_path, FILE_CREATE_DIRECTORY);
// Store the current icon path
$path = $form_state['values']['icon_path'];
// Define the validation settings
$validate = array(
'file_validate_is_image' => array(),
);
// Check for a new uploaded icon, and use that instead.
if ($file = file_save_upload('icon_upload', $validate)) {
$parts = pathinfo($file->filename);
$filename = $directory_path . '/menu_icon_' . $form_state['values']['mlid'] . '.' . $parts['extension'];
file_unmanaged_copy($file->uri, $filename, FILE_EXISTS_REPLACE);
// Flush image style generated images
image_path_flush($filename);
$path = $filename;
}
$options = unserialize(db_query('SELECT options FROM {menu_links} WHERE mlid = :mlid', array(
':mlid' => $form_state['values']['mlid'],
))
->fetchField());
$options['menu_icon'] = array(
'enable' => $form_state['values']['use_icon_logo'],
'path' => $path,
'image_style' => $form_state['values']['image_style'],
);
// Use default image style if not explicitly set.
if (empty($options['menu_icon']['image_style'])) {
$options['menu_icon']['image_style'] = variable_get('menu_icons_image_style_default', 'menu_icon');
}
if (!isset($options['attributes'])) {
$options['attributes'] = array();
}
if (!isset($options['attributes']['class'])) {
$options['attributes']['class'] = array();
}
$classes = array();
$classes[] = "menu_icon";
$classes[] = "menu-" . $form_state['values']['mlid'];
if ($options['menu_icon']['enable'] && !empty($options['menu_icon']['path']) && file_exists($options['menu_icon']['path'])) {
foreach ($classes as $class) {
if (!in_array($class, $options['attributes']['class'])) {
$options['attributes']['class'][] = $class;
}
}
}
if (empty($options['attributes']['class'])) {
unset($options['attributes']['class']);
}
db_update('menu_links')
->fields(array(
'options' => serialize($options),
))
->condition('mlid', $form_state['values']['mlid'])
->execute();
// Regenerate the css file
menu_icons_css_generate();
}