Initial import 6.x-1.0 from upstream
[drupal-theme-rahunas+rootcandy] / rootcandy / theme-settings.php
1 <?php
2 // $Id: theme-settings.php,v 1.6.2.9 2009/02/18 15:31:19 sign Exp $
3
4 /**
5  * Implementation of THEMEHOOK_settings() function.
6  *
7  * @param $saved_settings
8  *   array An array of saved settings for this theme.
9  * @return
10  *   array A form array.
11  */
12 function rootcandy_settings($saved_settings, $subtheme_defaults = array()) {
13
14   // Get the default values from the .info file.
15   $themes = list_themes();
16   $defaults = $themes['rootcandy']->info['settings'];
17
18   // Allow a subtheme to override the default values.
19   $defaults = array_merge($defaults, $subtheme_defaults);
20
21   // Merge the saved variables and their default values.
22   $settings = array_merge($defaults, $saved_settings);
23
24   // Create the form widgets using Forms API
25   $form['header'] = array(
26     '#type' => 'fieldset',
27     '#title' => t('Header'),
28     '#weight' => 1,
29     '#collapsible' => TRUE,
30     '#collapsed' => TRUE,
31   );
32   $form['header']['rootcandy_header_display'] = array(
33     '#type' => 'checkbox',
34     '#title' => t('Disable header'),
35     '#default_value' => $settings['rootcandy_header_display'],
36   );
37   $form['dashboard'] = array(
38     '#type' => 'fieldset',
39     '#title' => t('Dashboard'),
40     '#weight' => 1,
41     '#collapsible' => TRUE,
42     '#collapsed' => TRUE,
43   );
44   $form['dashboard']['rootcandy_dashboard_display'] = array(
45     '#type' => 'checkbox',
46     '#title' => t('Disable dashboard'),
47     '#default_value' => $settings['rootcandy_dashboard_display'],
48   );
49   $form['dashboard']['rootcandy_dashboard_help'] = array(
50     '#type' => 'select',
51     '#options' => array('left' => t('Left'),'right' => t('Right'),'content' => t('Content')),
52     '#title' => t('Help box position'),
53     '#default_value' => $settings['rootcandy_dashboard_help'],
54   );
55   $form['dashboard']['rootcandy_dashboard_messages'] = array(
56     '#type' => 'select',
57     '#options' => array('left' => t('Left'),'right' => t('Right'),'content' => t('Content')),
58     '#title' => t('Messages box position'),
59     '#default_value' => $settings['rootcandy_dashboard_messages'],
60   );
61   $form['dashboard']['rootcandy_dashboard_content_display'] = array(
62     '#type' => 'checkbox',
63     '#title' => t('Disable content on a dashboard'),
64     '#default_value' => $settings['rootcandy_dashboard_content_display'],
65   );
66
67   $form['navigation'] = array(
68     '#type' => 'fieldset',
69     '#title' => t('Navigation'),
70     '#weight' => 1,
71     '#collapsible' => TRUE,
72     '#collapsed' => TRUE,
73   );
74   // Create the form widgets using Forms API
75   $form['navigation']['rootcandy_navigation_icons'] = array(
76     '#type' => 'checkbox',
77     '#title' => t('Disable icons for main navigation'),
78     '#default_value' => $settings['rootcandy_navigation_icons'],
79   );
80
81
82   $form['navigation']['rootcandy_navigation_icons_size'] = array(
83     '#type' => 'select',
84     '#options' => array(16 => 16, 24 => 24, 32 => 32),
85     '#title' => t('Set icons size for main navigation'),
86     '#default_value' => $settings['rootcandy_navigation_icons_size'],
87   );
88
89   $form['navigation']['nav-by-role'] = array(
90     '#type' => 'fieldset',
91     '#title' => t('Menu source by role'),
92     '#weight' => 1,
93     '#collapsible' => TRUE,
94     '#collapsed' => TRUE,
95   );
96
97   $primary_options = array(
98     NULL => t('None'),
99     '_rootcandy_default_navigation' => t('default navigation'),
100   );
101   $primary_options = array_merge($primary_options, menu_get_menus());
102   $roles = user_roles(FALSE);
103   foreach ($roles as $rid => $role) {
104     $form['navigation']['nav-by-role']['rootcandy_navigation_source_'. $rid] = array(
105       '#type' => 'select',
106       '#title' => t('@role navigation', array('@role' => $role)),
107       '#default_value' => $settings['rootcandy_navigation_source_'. $rid],
108       '#options' => $primary_options,
109       '#tree' => FALSE,
110       '#description' => t('Select what should be displayed as the navigation menu for role @role.', array('@role' => $role)),
111     );
112   }
113
114   $form['navigation']['role-weight'] = array(
115     '#type' => 'fieldset',
116     '#title' => t('Role weight'),
117     '#weight' => 1,
118     '#collapsible' => TRUE,
119     '#collapsed' => TRUE,
120     '#tree' => TRUE,
121   );
122
123   foreach ($roles as $rid => $role) {
124     $form['navigation']['role-weight'][$rid] = array(
125       '#type' => 'weight',
126       '#delta' => 5,
127       '#title' => $role,
128       '#default_value' => $settings['role-weight'][$rid],
129     );
130   }
131
132   $form['navigation']['custom-icons'] = array(
133     '#type' => 'fieldset',
134     '#title' => t('Custom icons'),
135     '#weight' => 1,
136     '#collapsible' => TRUE,
137     '#collapsed' => TRUE,
138   );
139
140   $form['navigation']['custom-icons']['rootcandy_navigation_custom_icons'] = array(
141     '#type' => 'textarea',
142     '#title' => t('Custom icons'),
143     '#default_value' => $settings['rootcandy_navigation_custom_icons'],
144     '#description' => t('Format: menu href|icon path (relative to drupal root) - one item per row. eg. admin/build|files/myicons/admin-build.png'),
145     '#required' => FALSE
146   );
147
148   // Return the additional form widgets
149   return $form;
150 }