diff options
author | Dries Buytaert <dries@buytaert.net> | 2005-11-30 11:09:38 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2005-11-30 11:09:38 +0000 |
commit | b8ae0b32188231ce79c2945e78c26e909f4e25c2 (patch) | |
tree | 91397a84e5848fdc0bb4fcc282c513ce667262e4 /modules | |
parent | 0f6067fc849f749ca4356a5db224c6a0e5f95666 (diff) | |
download | brdo-b8ae0b32188231ce79c2945e78c26e909f4e25c2.tar.gz brdo-b8ae0b32188231ce79c2945e78c26e909f4e25c2.tar.bz2 |
- Patch #38981 by Robert: add permission to enable/disbale theme switching by users.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/system.module | 47 | ||||
-rw-r--r-- | modules/system/system.module | 47 | ||||
-rw-r--r-- | modules/user.module | 2 | ||||
-rw-r--r-- | modules/user/user.module | 2 |
4 files changed, 54 insertions, 44 deletions
diff --git a/modules/system.module b/modules/system.module index 248ae68a4..e22afafed 100644 --- a/modules/system.module +++ b/modules/system.module @@ -47,7 +47,7 @@ function system_help($section) { * Implementation of hook_perm(). */ function system_perm() { - return array('administer site configuration', 'access administration pages'); + return array('administer site configuration', 'access administration pages', 'select different theme'); } /** @@ -159,30 +159,35 @@ function system_test() { */ function system_user($type, $edit, &$user, $category = NULL) { if ($type == 'form' && $category == 'account') { - $themes = list_themes(); - ksort($themes); - - // Reset to follow site default theme if user selects the site default - if ($key == variable_get('theme_default', 'bluemarine')) { - $key = ''; - if ($edit['theme'] == variable_get('theme_default', 'bluemarine')) { - $edit['theme'] = ''; - } - } + if (user_access('select different theme')) { + $themes = list_themes(); - $form['themes'] = array( - '#type' => 'fieldset', '#title' => t('Theme configuration'), '#description' => t('Selecting a different theme will change the look and feel of the site.'), '#weight' => 2, '#collapsible' => TRUE, '#theme' => 'system_user'); + if (count($themes) > 1) { + ksort($themes); - foreach ($themes as $info) { - $info->screenshot = dirname($info->filename) . '/screenshot.png'; - $screenshot = file_exists($info->screenshot) ? theme('image', $info->screenshot, t('Screenshot for %theme theme', array('%theme' => $info->name)), '', array('class' => 'screenshot'), false) : t('no screenshot'); + // Reset to follow site default theme if user selects the site default + if ($key == variable_get('theme_default', 'bluemarine')) { + $key = ''; + if ($edit['theme'] == variable_get('theme_default', 'bluemarine')) { + $edit['theme'] = ''; + } + } - $form['themes'][$info->name]['screenshot'] = array('#type' => 'markup', '#value' => $screenshot); - $form['themes'][$info->name]['description'] = array('#type' => 'item', '#title' => $info->name, '#value' => dirname($info->filename)); - $options[$info->name] = ''; - } + $form['themes'] = array( + '#type' => 'fieldset', '#title' => t('Theme configuration'), '#description' => t('Selecting a different theme will change the look and feel of the site.'), '#weight' => 2, '#collapsible' => TRUE, '#theme' => 'system_user'); - $form['themes']['theme'] = array('#type' => 'radios', '#options' => $options, '#default_value' => $edit['theme'] ? $edit['theme'] : variable_get('theme_default', 'bluemarine')); + foreach ($themes as $info) { + $info->screenshot = dirname($info->filename) . '/screenshot.png'; + $screenshot = file_exists($info->screenshot) ? theme('image', $info->screenshot, t('Screenshot for %theme theme', array('%theme' => $info->name)), '', array('class' => 'screenshot'), false) : t('no screenshot'); + + $form['themes'][$info->name]['screenshot'] = array('#type' => 'markup', '#value' => $screenshot); + $form['themes'][$info->name]['description'] = array('#type' => 'item', '#title' => $info->name, '#value' => dirname($info->filename)); + $options[$info->name] = ''; + } + + $form['themes']['theme'] = array('#type' => 'radios', '#options' => $options, '#default_value' => $edit['theme'] ? $edit['theme'] : variable_get('theme_default', 'bluemarine')); + } + } if (variable_get('configurable_timezones', 1)) { $zones = _system_zonelist(); diff --git a/modules/system/system.module b/modules/system/system.module index 248ae68a4..e22afafed 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -47,7 +47,7 @@ function system_help($section) { * Implementation of hook_perm(). */ function system_perm() { - return array('administer site configuration', 'access administration pages'); + return array('administer site configuration', 'access administration pages', 'select different theme'); } /** @@ -159,30 +159,35 @@ function system_test() { */ function system_user($type, $edit, &$user, $category = NULL) { if ($type == 'form' && $category == 'account') { - $themes = list_themes(); - ksort($themes); - - // Reset to follow site default theme if user selects the site default - if ($key == variable_get('theme_default', 'bluemarine')) { - $key = ''; - if ($edit['theme'] == variable_get('theme_default', 'bluemarine')) { - $edit['theme'] = ''; - } - } + if (user_access('select different theme')) { + $themes = list_themes(); - $form['themes'] = array( - '#type' => 'fieldset', '#title' => t('Theme configuration'), '#description' => t('Selecting a different theme will change the look and feel of the site.'), '#weight' => 2, '#collapsible' => TRUE, '#theme' => 'system_user'); + if (count($themes) > 1) { + ksort($themes); - foreach ($themes as $info) { - $info->screenshot = dirname($info->filename) . '/screenshot.png'; - $screenshot = file_exists($info->screenshot) ? theme('image', $info->screenshot, t('Screenshot for %theme theme', array('%theme' => $info->name)), '', array('class' => 'screenshot'), false) : t('no screenshot'); + // Reset to follow site default theme if user selects the site default + if ($key == variable_get('theme_default', 'bluemarine')) { + $key = ''; + if ($edit['theme'] == variable_get('theme_default', 'bluemarine')) { + $edit['theme'] = ''; + } + } - $form['themes'][$info->name]['screenshot'] = array('#type' => 'markup', '#value' => $screenshot); - $form['themes'][$info->name]['description'] = array('#type' => 'item', '#title' => $info->name, '#value' => dirname($info->filename)); - $options[$info->name] = ''; - } + $form['themes'] = array( + '#type' => 'fieldset', '#title' => t('Theme configuration'), '#description' => t('Selecting a different theme will change the look and feel of the site.'), '#weight' => 2, '#collapsible' => TRUE, '#theme' => 'system_user'); - $form['themes']['theme'] = array('#type' => 'radios', '#options' => $options, '#default_value' => $edit['theme'] ? $edit['theme'] : variable_get('theme_default', 'bluemarine')); + foreach ($themes as $info) { + $info->screenshot = dirname($info->filename) . '/screenshot.png'; + $screenshot = file_exists($info->screenshot) ? theme('image', $info->screenshot, t('Screenshot for %theme theme', array('%theme' => $info->name)), '', array('class' => 'screenshot'), false) : t('no screenshot'); + + $form['themes'][$info->name]['screenshot'] = array('#type' => 'markup', '#value' => $screenshot); + $form['themes'][$info->name]['description'] = array('#type' => 'item', '#title' => $info->name, '#value' => dirname($info->filename)); + $options[$info->name] = ''; + } + + $form['themes']['theme'] = array('#type' => 'radios', '#options' => $options, '#default_value' => $edit['theme'] ? $edit['theme'] : variable_get('theme_default', 'bluemarine')); + } + } if (variable_get('configurable_timezones', 1)) { $zones = _system_zonelist(); diff --git a/modules/user.module b/modules/user.module index baf2af024..8b3f57889 100644 --- a/modules/user.module +++ b/modules/user.module @@ -1820,7 +1820,7 @@ function user_help($section) { <ul> <li>view your <a href="%user">user page</a>.</li> <li>administer user at <a href="%admin-user">administer >> user</a>.</li> -<li>allow users to select themes from their user account by enabling themes in <a href="%admin-themes">administer >> themes</a>.</li> +<li>allow users who have the "select different theme" permission to select themes from their user account by enabling themes in <a href="%admin-themes">administer >> themes</a>.</li> <li>read user profile help at <a href="%admin-help-profile">administer >> help >> profile</a>.</li> <li>read about distributed authentication in the system module help at <a href="%admin-help-system">administer >> help >> system</a>.</li> </ul> diff --git a/modules/user/user.module b/modules/user/user.module index baf2af024..8b3f57889 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -1820,7 +1820,7 @@ function user_help($section) { <ul> <li>view your <a href="%user">user page</a>.</li> <li>administer user at <a href="%admin-user">administer >> user</a>.</li> -<li>allow users to select themes from their user account by enabling themes in <a href="%admin-themes">administer >> themes</a>.</li> +<li>allow users who have the "select different theme" permission to select themes from their user account by enabling themes in <a href="%admin-themes">administer >> themes</a>.</li> <li>read user profile help at <a href="%admin-help-profile">administer >> help >> profile</a>.</li> <li>read about distributed authentication in the system module help at <a href="%admin-help-system">administer >> help >> system</a>.</li> </ul> |