diff -rupN wysiwyg/wysiwyg.module wysiwyg_new/wysiwyg.module --- wysiwyg/wysiwyg.module 2010-02-14 12:59:47.000000000 +1100 +++ wysiwyg.module 2010-04-21 15:06:29.000000000 +1000 @@ -620,8 +620,16 @@ function wysiwyg_profile_load_all() { function wysiwyg_user($type, &$edit, &$user, $category = NULL) { if ($type == 'form' && $category == 'account') { // @todo http://drupal.org/node/322433 - $profile = new stdClass; - if (isset($profile->settings['user_choose']) && $profile->settings['user_choose']) { + $profiles = wysiwyg_profile_load_all(); + $user_formats = filter_formats(); + $options = array(); + foreach ($profiles as $format => $profile) { + // Only show formats a user has access to use that allow user_choose. + if (isset($profile->settings['user_choose']) && $profile->settings['user_choose'] && array_key_exists($format, $user_formats)) { + $options[$format] = $user_formats[$format]->name; + } + } + if (count($options)) { $form['wysiwyg'] = array( '#type' => 'fieldset', '#title' => t('Wysiwyg Editor settings'), @@ -630,11 +638,11 @@ function wysiwyg_user($type, &$edit, &$u '#collapsed' => TRUE, ); $form['wysiwyg']['wysiwyg_status'] = array( - '#type' => 'checkbox', + '#type' => 'checkboxes', '#title' => t('Enable editor by default'), '#default_value' => isset($user->wysiwyg_status) ? $user->wysiwyg_status : (isset($profile->settings['default']) ? $profile->settings['default'] : FALSE), - '#return_value' => 1, - '#description' => t('If enabled, rich-text editing is enabled by default in textarea fields.'), + '#options' => $options, + '#description' => t('For each of the input formats, select whether or not rich-text editing is enabled by default in textarea fields'), ); return array('wysiwyg' => $form); } @@ -647,8 +655,8 @@ function wysiwyg_user($type, &$edit, &$u function wysiwyg_user_get_status($profile) { global $user; - if (!empty($profile->settings['user_choose']) && isset($user->wysiwyg_status)) { - $status = $user->wysiwyg_status; + if (!empty($profile->settings['user_choose']) && isset($user->wysiwyg_status[$profile->format])) { + $status = $user->wysiwyg_status[$profile->format]; } else { $status = isset($profile->settings['default']) ? $profile->settings['default'] : TRUE;