diff --git a/modules/upload.module b/modules/upload.module index 22c055bbfd4df3bf41e091d261cc75e1e6c27172..2e37bec91e3040c8c6e5a6a3976d3f4c1676d574 100644 --- a/modules/upload.module +++ b/modules/upload.module @@ -102,33 +102,86 @@ function upload_menu($may_cache) { } function upload_settings() { - $form['settings_general'] = array('#type' => 'fieldset', '#title' => t('General settings')); + $upload_extensions_default = variable_get('upload_extensions_default', 'jpg jpeg gif png txt html doc xls pdf ppt pps'); + $upload_uploadsize_default = variable_get('upload_uploadsize_default', 1); + $upload_usersize_default = variable_get('upload_usersize_default', 10); + + $form['settings_general'] = array( + '#type' => 'fieldset', + '#title' => t('General settings'), + '#collapsible' => TRUE, + ); $form['settings_general']['upload_max_resolution'] = array( - '#type' => 'textfield', '#title' => t('Maximum resolution for uploaded images'), '#default_value' => variable_get('upload_max_resolution', 0), - '#size' => 15, '#maxlength' => 10, '#description' => t('The maximum allowed image size expressed as WIDTHxHEIGHT (e.g. 640x480). Set to 0 for no restriction.') + '#type' => 'textfield', + '#title' => t('Maximum resolution for uploaded images'), + '#default_value' => variable_get('upload_max_resolution', 0), + '#size' => 15, + '#maxlength' => 10, + '#description' => t('The maximum allowed image size expressed as WIDTHxHEIGHT (e.g. 640x480). Set to 0 for no restriction.'), ); - - $form['settings_general']['upload_list_default'] = array('#type' => 'select', '#title' => t('List files by default'), - '#default_value' => variable_get('upload_list_default',1), - '#options' => array( 0 => t('No'), 1 => t('Yes') ), + $form['settings_general']['upload_list_default'] = array( + '#type' => 'select', + '#title' => t('List files by default'), + '#default_value' => variable_get('upload_list_default', 1), + '#options' => array(0 => t('No'), 1 => t('Yes')), '#description' => t('Set whether files attached to nodes are listed or not in the node view by default.'), ); + $form['settings_general']['upload_extensions_default'] = array( + '#type' => 'textfield', + '#title' => t('Default permitted file extensions'), + '#default_value' => $upload_extensions_default, + '#maxlength' => 255, + '#description' => t('Default extensions that users can upload. Separate extensions with a space and do not include the leading dot.'), + ); + $form['settings_general']['upload_uploadsize_default'] = array( + '#type' => 'textfield', + '#title' => t('Default maximum file size per upload'), + '#default_value' => $upload_uploadsize_default, + '#size' => 5, + '#maxlength' => 5, + '#description' => t('The default maximum file size a user can upload (in megabytes).'), + ); + $form['settings_general']['upload_usersize_default'] = array( + '#type' => 'textfield', + '#title' => t('Default total file size per user'), + '#default_value' => $upload_usersize_default, + '#size' => 5, + '#maxlength' => 5, + '#description' => t('The default maximum size of all files a user can have on the site (in megabytes).'), + ); + $roles = user_roles(0, 'upload files'); foreach ($roles as $rid => $role) { - $form["settings_role_$rid"] = array('#type' => 'fieldset', '#title' => t('Settings for %role', array('%role' => theme('placeholder', $role))), '#collapsible' => TRUE, '#collapsed' => TRUE); + $form["settings_role_$rid"] = array( + '#type' => 'fieldset', + '#title' => t('Settings for %role', array('%role' => theme('placeholder', $role))), + '#collapsible' => TRUE, + '#collapsed' => TRUE, + ); $form["settings_role_$rid"]["upload_extensions_$rid"] = array( - '#type' => 'textfield', '#title' => t('Permitted file extensions'), '#default_value' => variable_get("upload_extensions_$rid", "jpg jpeg gif png txt html doc xls pdf ppt pps"), - '#maxlength' => 255, '#description' => t('Extensions that users in this role can upload. Separate extensions with a space and do not include the leading dot.') + '#type' => 'textfield', + '#title' => t('Permitted file extensions'), + '#default_value' => variable_get("upload_extensions_$rid", $upload_extensions_default), + '#maxlength' => 255, + '#description' => t('Extensions that users in this role can upload. Separate extensions with a space and do not include the leading dot.'), ); $form["settings_role_$rid"]["upload_uploadsize_$rid"] = array( - '#type' => 'textfield', '#title' => t('Maximum file size per upload'), '#default_value' => variable_get("upload_uploadsize_$rid", 1), - '#size' => 5, '#maxlength' => 5, '#description' => t('The maximum size of a file a user can upload (in megabytes).') + '#type' => 'textfield', + '#title' => t('Maximum file size per upload'), + '#default_value' => variable_get("upload_uploadsize_$rid", $upload_uploadsize_default), + '#size' => 5, + '#maxlength' => 5, + '#description' => t('The maximum size of a file a user can upload (in megabytes).'), ); $form["settings_role_$rid"]["upload_usersize_$rid"] = array( - '#type' => 'textfield', '#title' => t('Total file size per user'), '#default_value' => variable_get("upload_usersize_$rid", 10), - '#size' => 5, '#maxlength' => 5, '#description' => t('The maximum size of all files a user can have on the site (in megabytes).') + '#type' => 'textfield', + '#title' => t('Total file size per user'), + '#default_value' => variable_get("upload_usersize_$rid", $upload_usersize_default), + '#size' => 5, + '#maxlength' => 5, + '#description' => t('The maximum size of all files a user can have on the site (in megabytes).'), ); } @@ -284,9 +337,9 @@ function _upload_validate(&$node) { $total_usersize = upload_space_used($user->uid) + $filesize; $error = array(); foreach ($user->roles as $rid => $name) { - $extensions = variable_get("upload_extensions_$rid", 'jpg jpeg gif png txt html doc xls pdf ppt pps'); - $uploadsize = variable_get("upload_uploadsize_$rid", 1) * 1024 * 1024; - $usersize = variable_get("upload_usersize_$rid", 1) * 1024 * 1024; + $extensions = variable_get("upload_extensions_$rid", variable_get('upload_extensions_default', 'jpg jpeg gif png txt html doc xls pdf ppt pps')); + $uploadsize = variable_get("upload_uploadsize_$rid", variable_get('upload_uploadsize_default', 1)) * 1024 * 1024; + $usersize = variable_get("upload_usersize_$rid", variable_get('upload_usersize_default', 10)) * 1024 * 1024; $regex = '/\.('. ereg_replace(' +', '|', preg_quote($extensions)) .')$/i'; diff --git a/modules/upload/upload.module b/modules/upload/upload.module index 22c055bbfd4df3bf41e091d261cc75e1e6c27172..2e37bec91e3040c8c6e5a6a3976d3f4c1676d574 100644 --- a/modules/upload/upload.module +++ b/modules/upload/upload.module @@ -102,33 +102,86 @@ function upload_menu($may_cache) { } function upload_settings() { - $form['settings_general'] = array('#type' => 'fieldset', '#title' => t('General settings')); + $upload_extensions_default = variable_get('upload_extensions_default', 'jpg jpeg gif png txt html doc xls pdf ppt pps'); + $upload_uploadsize_default = variable_get('upload_uploadsize_default', 1); + $upload_usersize_default = variable_get('upload_usersize_default', 10); + + $form['settings_general'] = array( + '#type' => 'fieldset', + '#title' => t('General settings'), + '#collapsible' => TRUE, + ); $form['settings_general']['upload_max_resolution'] = array( - '#type' => 'textfield', '#title' => t('Maximum resolution for uploaded images'), '#default_value' => variable_get('upload_max_resolution', 0), - '#size' => 15, '#maxlength' => 10, '#description' => t('The maximum allowed image size expressed as WIDTHxHEIGHT (e.g. 640x480). Set to 0 for no restriction.') + '#type' => 'textfield', + '#title' => t('Maximum resolution for uploaded images'), + '#default_value' => variable_get('upload_max_resolution', 0), + '#size' => 15, + '#maxlength' => 10, + '#description' => t('The maximum allowed image size expressed as WIDTHxHEIGHT (e.g. 640x480). Set to 0 for no restriction.'), ); - - $form['settings_general']['upload_list_default'] = array('#type' => 'select', '#title' => t('List files by default'), - '#default_value' => variable_get('upload_list_default',1), - '#options' => array( 0 => t('No'), 1 => t('Yes') ), + $form['settings_general']['upload_list_default'] = array( + '#type' => 'select', + '#title' => t('List files by default'), + '#default_value' => variable_get('upload_list_default', 1), + '#options' => array(0 => t('No'), 1 => t('Yes')), '#description' => t('Set whether files attached to nodes are listed or not in the node view by default.'), ); + $form['settings_general']['upload_extensions_default'] = array( + '#type' => 'textfield', + '#title' => t('Default permitted file extensions'), + '#default_value' => $upload_extensions_default, + '#maxlength' => 255, + '#description' => t('Default extensions that users can upload. Separate extensions with a space and do not include the leading dot.'), + ); + $form['settings_general']['upload_uploadsize_default'] = array( + '#type' => 'textfield', + '#title' => t('Default maximum file size per upload'), + '#default_value' => $upload_uploadsize_default, + '#size' => 5, + '#maxlength' => 5, + '#description' => t('The default maximum file size a user can upload (in megabytes).'), + ); + $form['settings_general']['upload_usersize_default'] = array( + '#type' => 'textfield', + '#title' => t('Default total file size per user'), + '#default_value' => $upload_usersize_default, + '#size' => 5, + '#maxlength' => 5, + '#description' => t('The default maximum size of all files a user can have on the site (in megabytes).'), + ); + $roles = user_roles(0, 'upload files'); foreach ($roles as $rid => $role) { - $form["settings_role_$rid"] = array('#type' => 'fieldset', '#title' => t('Settings for %role', array('%role' => theme('placeholder', $role))), '#collapsible' => TRUE, '#collapsed' => TRUE); + $form["settings_role_$rid"] = array( + '#type' => 'fieldset', + '#title' => t('Settings for %role', array('%role' => theme('placeholder', $role))), + '#collapsible' => TRUE, + '#collapsed' => TRUE, + ); $form["settings_role_$rid"]["upload_extensions_$rid"] = array( - '#type' => 'textfield', '#title' => t('Permitted file extensions'), '#default_value' => variable_get("upload_extensions_$rid", "jpg jpeg gif png txt html doc xls pdf ppt pps"), - '#maxlength' => 255, '#description' => t('Extensions that users in this role can upload. Separate extensions with a space and do not include the leading dot.') + '#type' => 'textfield', + '#title' => t('Permitted file extensions'), + '#default_value' => variable_get("upload_extensions_$rid", $upload_extensions_default), + '#maxlength' => 255, + '#description' => t('Extensions that users in this role can upload. Separate extensions with a space and do not include the leading dot.'), ); $form["settings_role_$rid"]["upload_uploadsize_$rid"] = array( - '#type' => 'textfield', '#title' => t('Maximum file size per upload'), '#default_value' => variable_get("upload_uploadsize_$rid", 1), - '#size' => 5, '#maxlength' => 5, '#description' => t('The maximum size of a file a user can upload (in megabytes).') + '#type' => 'textfield', + '#title' => t('Maximum file size per upload'), + '#default_value' => variable_get("upload_uploadsize_$rid", $upload_uploadsize_default), + '#size' => 5, + '#maxlength' => 5, + '#description' => t('The maximum size of a file a user can upload (in megabytes).'), ); $form["settings_role_$rid"]["upload_usersize_$rid"] = array( - '#type' => 'textfield', '#title' => t('Total file size per user'), '#default_value' => variable_get("upload_usersize_$rid", 10), - '#size' => 5, '#maxlength' => 5, '#description' => t('The maximum size of all files a user can have on the site (in megabytes).') + '#type' => 'textfield', + '#title' => t('Total file size per user'), + '#default_value' => variable_get("upload_usersize_$rid", $upload_usersize_default), + '#size' => 5, + '#maxlength' => 5, + '#description' => t('The maximum size of all files a user can have on the site (in megabytes).'), ); } @@ -284,9 +337,9 @@ function _upload_validate(&$node) { $total_usersize = upload_space_used($user->uid) + $filesize; $error = array(); foreach ($user->roles as $rid => $name) { - $extensions = variable_get("upload_extensions_$rid", 'jpg jpeg gif png txt html doc xls pdf ppt pps'); - $uploadsize = variable_get("upload_uploadsize_$rid", 1) * 1024 * 1024; - $usersize = variable_get("upload_usersize_$rid", 1) * 1024 * 1024; + $extensions = variable_get("upload_extensions_$rid", variable_get('upload_extensions_default', 'jpg jpeg gif png txt html doc xls pdf ppt pps')); + $uploadsize = variable_get("upload_uploadsize_$rid", variable_get('upload_uploadsize_default', 1)) * 1024 * 1024; + $usersize = variable_get("upload_usersize_$rid", variable_get('upload_usersize_default', 10)) * 1024 * 1024; $regex = '/\.('. ereg_replace(' +', '|', preg_quote($extensions)) .')$/i';