function _touch_icons_precomp_validate in Touch Icons 7
Same name and namespace in other branches
- 7.2 touch_icons.admin.inc \_touch_icons_precomp_validate()
Validate custom precomposed touch icon settings
1 string reference to '_touch_icons_precomp_validate'
- touch_icons_form_system_theme_settings_alter in ./
touch_icons.module - Implement hook_form_FORM_ID_alter(). Implement hook_form_system_theme_settings_alter().
File
- ./
touch_icons.module, line 201 - Adds a fieldset to theme settings form which allows site administrators to specify Apple Touch icons for Drupal websites. The Touch icon settings behave in a similar manner to the Site Logo and Favicon settings provided by Drupal core.
Code
function _touch_icons_precomp_validate($element, &$form_state) {
// If the user provided a path for precomposed touch icon
// make sure a file exists at that path.
if ($form_state['values']['touch_icon_path_precomp']) {
$path = _system_theme_settings_validate_path($form_state['values']['touch_icon_path_precomp']);
if (!$path) {
form_set_error('touch_icon_path_precomp', t('The custom precomp-touch-icon path is invalid.'));
return;
}
}
// Handle file uploads.
$validators = array(
'file_validate_is_image' => array(),
);
// Check for a new uploaded precomposed touch icon.
$file = file_save_upload('touch_icon_upload_precomp', $validators);
if (isset($file)) {
// File upload was attempted.
if ($file) {
// If the user uploaded a new plain touch-icon, save it to a permanent
// location and use it in place of the default theme-provided file.
$filename = file_unmanaged_copy($file->uri);
$form_state['values']['touch_icon_path_precomp'] = $filename;
$form_state['values']['default_touch_icon_precomp'] = 0;
$form_state['values']['toggle_touch_icon_precomp'] = 1;
unset($form_state['values']['touch_icon_upload_precomp']);
}
else {
// File upload failed.
form_set_error('touch_icon_upload_precomp', t('The touch icon (precomposed) could not be uploaded.'));
return;
}
}
// If the user entered a path relative to the system files directory for
// a precomposed touch icon, store a public:// URI so the theme system can
// handle it.
if (!empty($form_state['values']['touch_icon_path_precomp'])) {
$form_state['values']['touch_icon_path_precomp'] = _system_theme_settings_validate_path($form_state['values']['touch_icon_path_precomp']);
}
}