webmaster@1
|
1 <?php |
webmaster@7
|
2 // $Id: block.admin.inc,v 1.14.2.2 2008/06/24 14:40:08 goba Exp $ |
webmaster@1
|
3 |
webmaster@1
|
4 /** |
webmaster@1
|
5 * @file |
webmaster@1
|
6 * Admin page callbacks for the block module. |
webmaster@1
|
7 */ |
webmaster@1
|
8 |
webmaster@1
|
9 /** |
webmaster@1
|
10 * Menu callback for admin/build/block. |
webmaster@1
|
11 */ |
webmaster@1
|
12 function block_admin_display($theme = NULL) { |
webmaster@1
|
13 global $custom_theme; |
webmaster@1
|
14 |
webmaster@1
|
15 // If non-default theme configuration has been selected, set the custom theme. |
webmaster@1
|
16 $custom_theme = isset($theme) ? $theme : variable_get('theme_default', 'garland'); |
webmaster@1
|
17 |
webmaster@1
|
18 // Fetch and sort blocks |
webmaster@1
|
19 $blocks = _block_rehash(); |
webmaster@1
|
20 usort($blocks, '_block_compare'); |
webmaster@1
|
21 |
webmaster@1
|
22 return drupal_get_form('block_admin_display_form', $blocks, $theme); |
webmaster@1
|
23 } |
webmaster@1
|
24 |
webmaster@1
|
25 /** |
webmaster@1
|
26 * Generate main blocks administration form. |
webmaster@1
|
27 */ |
webmaster@1
|
28 function block_admin_display_form(&$form_state, $blocks, $theme = NULL) { |
webmaster@1
|
29 global $theme_key, $custom_theme; |
webmaster@1
|
30 |
webmaster@1
|
31 // Add CSS |
webmaster@1
|
32 drupal_add_css(drupal_get_path('module', 'block') .'/block.css', 'module', 'all', FALSE); |
webmaster@1
|
33 |
webmaster@1
|
34 // If non-default theme configuration has been selected, set the custom theme. |
webmaster@1
|
35 $custom_theme = isset($theme) ? $theme : variable_get('theme_default', 'garland'); |
webmaster@1
|
36 init_theme(); |
webmaster@1
|
37 |
webmaster@1
|
38 $throttle = module_exists('throttle'); |
webmaster@1
|
39 $block_regions = system_region_list($theme_key) + array(BLOCK_REGION_NONE => '<'. t('none') .'>'); |
webmaster@1
|
40 |
webmaster@1
|
41 // Build form tree |
webmaster@1
|
42 $form = array( |
webmaster@1
|
43 '#action' => arg(3) ? url('admin/build/block/list/'. $theme_key) : url('admin/build/block'), |
webmaster@1
|
44 '#tree' => TRUE, |
webmaster@1
|
45 ); |
webmaster@1
|
46 |
webmaster@1
|
47 foreach ($blocks as $i => $block) { |
webmaster@1
|
48 $key = $block['module'] .'_'. $block['delta']; |
webmaster@1
|
49 $form[$key]['module'] = array( |
webmaster@1
|
50 '#type' => 'value', |
webmaster@1
|
51 '#value' => $block['module'], |
webmaster@1
|
52 ); |
webmaster@1
|
53 $form[$key]['delta'] = array( |
webmaster@1
|
54 '#type' => 'value', |
webmaster@1
|
55 '#value' => $block['delta'], |
webmaster@1
|
56 ); |
webmaster@1
|
57 $form[$key]['info'] = array( |
webmaster@1
|
58 '#value' => check_plain($block['info']) |
webmaster@1
|
59 ); |
webmaster@1
|
60 $form[$key]['theme'] = array( |
webmaster@1
|
61 '#type' => 'hidden', |
webmaster@1
|
62 '#value' => $theme_key |
webmaster@1
|
63 ); |
webmaster@1
|
64 $form[$key]['weight'] = array( |
webmaster@1
|
65 '#type' => 'weight', |
webmaster@1
|
66 '#default_value' => $block['weight'], |
webmaster@1
|
67 ); |
webmaster@1
|
68 $form[$key]['region'] = array( |
webmaster@1
|
69 '#type' => 'select', |
webmaster@1
|
70 '#default_value' => $block['region'], |
webmaster@1
|
71 '#options' => $block_regions, |
webmaster@1
|
72 ); |
webmaster@1
|
73 |
webmaster@1
|
74 if ($throttle) { |
webmaster@1
|
75 $form[$key]['throttle'] = array('#type' => 'checkbox', '#default_value' => isset($block['throttle']) ? $block['throttle'] : FALSE); |
webmaster@1
|
76 } |
webmaster@1
|
77 $form[$key]['configure'] = array('#value' => l(t('configure'), 'admin/build/block/configure/'. $block['module'] .'/'. $block['delta'])); |
webmaster@1
|
78 if ($block['module'] == 'block') { |
webmaster@1
|
79 $form[$key]['delete'] = array('#value' => l(t('delete'), 'admin/build/block/delete/'. $block['delta'])); |
webmaster@1
|
80 } |
webmaster@1
|
81 } |
webmaster@1
|
82 |
webmaster@1
|
83 $form['submit'] = array( |
webmaster@1
|
84 '#type' => 'submit', |
webmaster@1
|
85 '#value' => t('Save blocks'), |
webmaster@1
|
86 ); |
webmaster@1
|
87 |
webmaster@1
|
88 return $form; |
webmaster@1
|
89 } |
webmaster@1
|
90 |
webmaster@1
|
91 /** |
webmaster@1
|
92 * Process main blocks administration form submission. |
webmaster@1
|
93 */ |
webmaster@1
|
94 function block_admin_display_form_submit($form, &$form_state) { |
webmaster@1
|
95 foreach ($form_state['values'] as $block) { |
webmaster@1
|
96 $block['status'] = $block['region'] != BLOCK_REGION_NONE; |
webmaster@1
|
97 $block['region'] = $block['status'] ? $block['region'] : ''; |
webmaster@1
|
98 db_query("UPDATE {blocks} SET status = %d, weight = %d, region = '%s', throttle = %d WHERE module = '%s' AND delta = '%s' AND theme = '%s'", $block['status'], $block['weight'], $block['region'], isset($block['throttle']) ? $block['throttle'] : 0, $block['module'], $block['delta'], $block['theme']); |
webmaster@1
|
99 } |
webmaster@1
|
100 drupal_set_message(t('The block settings have been updated.')); |
webmaster@1
|
101 cache_clear_all(); |
webmaster@1
|
102 } |
webmaster@1
|
103 |
webmaster@1
|
104 /** |
webmaster@1
|
105 * Helper function for sorting blocks on admin/build/block. |
webmaster@1
|
106 * |
webmaster@1
|
107 * Active blocks are sorted by region, then by weight. |
webmaster@1
|
108 * Disabled blocks are sorted by name. |
webmaster@1
|
109 */ |
webmaster@1
|
110 function _block_compare($a, $b) { |
webmaster@1
|
111 global $theme_key; |
webmaster@1
|
112 static $regions; |
webmaster@1
|
113 |
webmaster@1
|
114 // We need the region list to correctly order by region. |
webmaster@1
|
115 if (!isset($regions)) { |
webmaster@1
|
116 $regions = array_flip(array_keys(system_region_list($theme_key))); |
webmaster@1
|
117 $regions[BLOCK_REGION_NONE] = count($regions); |
webmaster@1
|
118 } |
webmaster@1
|
119 |
webmaster@1
|
120 // Separate enabled from disabled. |
webmaster@1
|
121 $status = $b['status'] - $a['status']; |
webmaster@1
|
122 if ($status) { |
webmaster@1
|
123 return $status; |
webmaster@1
|
124 } |
webmaster@1
|
125 // Sort by region (in the order defined by theme .info file). |
webmaster@3
|
126 if ((!empty($a['region']) && !empty($b['region'])) && ($place = ($regions[$a['region']] - $regions[$b['region']]))) { |
webmaster@1
|
127 return $place; |
webmaster@1
|
128 } |
webmaster@1
|
129 // Sort by weight. |
webmaster@1
|
130 $weight = $a['weight'] - $b['weight']; |
webmaster@1
|
131 if ($weight) { |
webmaster@1
|
132 return $weight; |
webmaster@1
|
133 } |
webmaster@1
|
134 // Sort by title. |
webmaster@1
|
135 return strcmp($a['info'], $b['info']); |
webmaster@1
|
136 } |
webmaster@1
|
137 |
webmaster@1
|
138 /** |
webmaster@1
|
139 * Menu callback; displays the block configuration form. |
webmaster@1
|
140 */ |
webmaster@1
|
141 function block_admin_configure(&$form_state, $module = NULL, $delta = 0) { |
webmaster@1
|
142 |
webmaster@1
|
143 $form['module'] = array('#type' => 'value', '#value' => $module); |
webmaster@1
|
144 $form['delta'] = array('#type' => 'value', '#value' => $delta); |
webmaster@1
|
145 |
webmaster@1
|
146 $edit = db_fetch_array(db_query("SELECT pages, visibility, custom, title FROM {blocks} WHERE module = '%s' AND delta = '%s'", $module, $delta)); |
webmaster@1
|
147 |
webmaster@1
|
148 $form['block_settings'] = array( |
webmaster@1
|
149 '#type' => 'fieldset', |
webmaster@1
|
150 '#title' => t('Block specific settings'), |
webmaster@1
|
151 '#collapsible' => TRUE, |
webmaster@1
|
152 ); |
webmaster@1
|
153 $form['block_settings']['title'] = array( |
webmaster@1
|
154 '#type' => 'textfield', |
webmaster@1
|
155 '#title' => t('Block title'), |
webmaster@1
|
156 '#maxlength' => 64, |
webmaster@1
|
157 '#description' => $module == 'block' ? t('The title of the block as shown to the user.') : t('Override the default title for the block. Use <em><none></em> to display no title, or leave blank to use the default block title.'), |
webmaster@1
|
158 '#default_value' => $edit['title'], |
webmaster@1
|
159 '#weight' => -18, |
webmaster@1
|
160 ); |
webmaster@1
|
161 |
webmaster@1
|
162 |
webmaster@1
|
163 // Module-specific block configurations. |
webmaster@1
|
164 if ($settings = module_invoke($module, 'block', 'configure', $delta)) { |
webmaster@1
|
165 foreach ($settings as $k => $v) { |
webmaster@1
|
166 $form['block_settings'][$k] = $v; |
webmaster@1
|
167 } |
webmaster@1
|
168 } |
webmaster@1
|
169 |
webmaster@1
|
170 // Get the block subject for the page title. |
webmaster@1
|
171 $info = module_invoke($module, 'block', 'list'); |
webmaster@1
|
172 if (isset($info[$delta])) { |
webmaster@1
|
173 drupal_set_title(t("'%name' block", array('%name' => $info[$delta]['info']))); |
webmaster@1
|
174 } |
webmaster@1
|
175 |
webmaster@1
|
176 // Standard block configurations. |
webmaster@1
|
177 $form['user_vis_settings'] = array( |
webmaster@1
|
178 '#type' => 'fieldset', |
webmaster@1
|
179 '#title' => t('User specific visibility settings'), |
webmaster@1
|
180 '#collapsible' => TRUE, |
webmaster@1
|
181 ); |
webmaster@1
|
182 $form['user_vis_settings']['custom'] = array( |
webmaster@1
|
183 '#type' => 'radios', |
webmaster@1
|
184 '#title' => t('Custom visibility settings'), |
webmaster@1
|
185 '#options' => array( |
webmaster@1
|
186 t('Users cannot control whether or not they see this block.'), |
webmaster@1
|
187 t('Show this block by default, but let individual users hide it.'), |
webmaster@1
|
188 t('Hide this block by default but let individual users show it.') |
webmaster@1
|
189 ), |
webmaster@1
|
190 '#description' => t('Allow individual users to customize the visibility of this block in their account settings.'), |
webmaster@1
|
191 '#default_value' => $edit['custom'], |
webmaster@1
|
192 ); |
webmaster@1
|
193 |
webmaster@1
|
194 // Role-based visibility settings |
webmaster@1
|
195 $default_role_options = array(); |
webmaster@1
|
196 $result = db_query("SELECT rid FROM {blocks_roles} WHERE module = '%s' AND delta = '%s'", $module, $delta); |
webmaster@1
|
197 while ($role = db_fetch_object($result)) { |
webmaster@1
|
198 $default_role_options[] = $role->rid; |
webmaster@1
|
199 } |
webmaster@1
|
200 $result = db_query('SELECT rid, name FROM {role} ORDER BY name'); |
webmaster@1
|
201 $role_options = array(); |
webmaster@1
|
202 while ($role = db_fetch_object($result)) { |
webmaster@1
|
203 $role_options[$role->rid] = $role->name; |
webmaster@1
|
204 } |
webmaster@1
|
205 $form['role_vis_settings'] = array( |
webmaster@1
|
206 '#type' => 'fieldset', |
webmaster@1
|
207 '#title' => t('Role specific visibility settings'), |
webmaster@1
|
208 '#collapsible' => TRUE, |
webmaster@1
|
209 ); |
webmaster@1
|
210 $form['role_vis_settings']['roles'] = array( |
webmaster@1
|
211 '#type' => 'checkboxes', |
webmaster@1
|
212 '#title' => t('Show block for specific roles'), |
webmaster@1
|
213 '#default_value' => $default_role_options, |
webmaster@1
|
214 '#options' => $role_options, |
webmaster@1
|
215 '#description' => t('Show this block only for the selected role(s). If you select no roles, the block will be visible to all users.'), |
webmaster@1
|
216 ); |
webmaster@1
|
217 |
webmaster@1
|
218 $form['page_vis_settings'] = array( |
webmaster@1
|
219 '#type' => 'fieldset', |
webmaster@1
|
220 '#title' => t('Page specific visibility settings'), |
webmaster@1
|
221 '#collapsible' => TRUE, |
webmaster@1
|
222 ); |
webmaster@1
|
223 $access = user_access('use PHP for block visibility'); |
webmaster@1
|
224 |
webmaster@1
|
225 if ($edit['visibility'] == 2 && !$access) { |
webmaster@1
|
226 $form['page_vis_settings'] = array(); |
webmaster@1
|
227 $form['page_vis_settings']['visibility'] = array('#type' => 'value', '#value' => 2); |
webmaster@1
|
228 $form['page_vis_settings']['pages'] = array('#type' => 'value', '#value' => $edit['pages']); |
webmaster@1
|
229 } |
webmaster@1
|
230 else { |
webmaster@1
|
231 $options = array(t('Show on every page except the listed pages.'), t('Show on only the listed pages.')); |
webmaster@1
|
232 $description = t("Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are %blog for the blog page and %blog-wildcard for every personal blog. %front is the front page.", array('%blog' => 'blog', '%blog-wildcard' => 'blog/*', '%front' => '<front>')); |
webmaster@1
|
233 |
webmaster@1
|
234 if ($access) { |
webmaster@1
|
235 $options[] = t('Show if the following PHP code returns <code>TRUE</code> (PHP-mode, experts only).'); |
webmaster@1
|
236 $description .= ' '. t('If the PHP-mode is chosen, enter PHP code between %php. Note that executing incorrect PHP-code can break your Drupal site.', array('%php' => '<?php ?>')); |
webmaster@1
|
237 } |
webmaster@1
|
238 $form['page_vis_settings']['visibility'] = array( |
webmaster@1
|
239 '#type' => 'radios', |
webmaster@1
|
240 '#title' => t('Show block on specific pages'), |
webmaster@1
|
241 '#options' => $options, |
webmaster@1
|
242 '#default_value' => $edit['visibility'], |
webmaster@1
|
243 ); |
webmaster@1
|
244 $form['page_vis_settings']['pages'] = array( |
webmaster@1
|
245 '#type' => 'textarea', |
webmaster@1
|
246 '#title' => t('Pages'), |
webmaster@1
|
247 '#default_value' => $edit['pages'], |
webmaster@1
|
248 '#description' => $description, |
webmaster@1
|
249 ); |
webmaster@1
|
250 } |
webmaster@1
|
251 |
webmaster@1
|
252 $form['submit'] = array( |
webmaster@1
|
253 '#type' => 'submit', |
webmaster@1
|
254 '#value' => t('Save block'), |
webmaster@1
|
255 ); |
webmaster@1
|
256 |
webmaster@1
|
257 return $form; |
webmaster@1
|
258 } |
webmaster@1
|
259 |
webmaster@1
|
260 function block_admin_configure_validate($form, &$form_state) { |
webmaster@1
|
261 if ($form_state['values']['module'] == 'block') { |
webmaster@1
|
262 if (empty($form_state['values']['info']) || db_result(db_query("SELECT COUNT(*) FROM {boxes} WHERE bid != %d AND info = '%s'", $form_state['values']['delta'], $form_state['values']['info']))) { |
webmaster@1
|
263 form_set_error('info', t('Please ensure that each block description is unique.')); |
webmaster@1
|
264 } |
webmaster@1
|
265 } |
webmaster@1
|
266 } |
webmaster@1
|
267 |
webmaster@1
|
268 function block_admin_configure_submit($form, &$form_state) { |
webmaster@1
|
269 if (!form_get_errors()) { |
webmaster@1
|
270 db_query("UPDATE {blocks} SET visibility = %d, pages = '%s', custom = %d, title = '%s' WHERE module = '%s' AND delta = '%s'", $form_state['values']['visibility'], trim($form_state['values']['pages']), $form_state['values']['custom'], $form_state['values']['title'], $form_state['values']['module'], $form_state['values']['delta']); |
webmaster@1
|
271 db_query("DELETE FROM {blocks_roles} WHERE module = '%s' AND delta = '%s'", $form_state['values']['module'], $form_state['values']['delta']); |
webmaster@1
|
272 foreach (array_filter($form_state['values']['roles']) as $rid) { |
webmaster@1
|
273 db_query("INSERT INTO {blocks_roles} (rid, module, delta) VALUES (%d, '%s', '%s')", $rid, $form_state['values']['module'], $form_state['values']['delta']); |
webmaster@1
|
274 } |
webmaster@1
|
275 module_invoke($form_state['values']['module'], 'block', 'save', $form_state['values']['delta'], $form_state['values']); |
webmaster@1
|
276 drupal_set_message(t('The block configuration has been saved.')); |
webmaster@1
|
277 cache_clear_all(); |
webmaster@1
|
278 $form_state['redirect'] = 'admin/build/block'; |
webmaster@1
|
279 return; |
webmaster@1
|
280 } |
webmaster@1
|
281 } |
webmaster@1
|
282 |
webmaster@1
|
283 /** |
webmaster@1
|
284 * Menu callback: display the custom block addition form. |
webmaster@1
|
285 */ |
webmaster@1
|
286 function block_add_block_form(&$form_state) { |
webmaster@1
|
287 return block_admin_configure($form_state, 'block', NULL); |
webmaster@1
|
288 } |
webmaster@1
|
289 |
webmaster@1
|
290 function block_add_block_form_validate($form, &$form_state) { |
webmaster@1
|
291 if (empty($form_state['values']['info']) || db_result(db_query("SELECT COUNT(*) FROM {boxes} WHERE info = '%s'", $form_state['values']['info']))) { |
webmaster@1
|
292 form_set_error('info', t('Please ensure that each block description is unique.')); |
webmaster@1
|
293 } |
webmaster@1
|
294 } |
webmaster@1
|
295 |
webmaster@1
|
296 /** |
webmaster@1
|
297 * Save the new custom block. |
webmaster@1
|
298 */ |
webmaster@1
|
299 function block_add_block_form_submit($form, &$form_state) { |
webmaster@1
|
300 db_query("INSERT INTO {boxes} (body, info, format) VALUES ('%s', '%s', %d)", $form_state['values']['body'], $form_state['values']['info'], $form_state['values']['format']); |
webmaster@1
|
301 $delta = db_last_insert_id('boxes', 'bid'); |
webmaster@1
|
302 |
webmaster@1
|
303 foreach (list_themes() as $key => $theme) { |
webmaster@1
|
304 if ($theme->status) { |
webmaster@1
|
305 db_query("INSERT INTO {blocks} (visibility, pages, custom, title, module, theme, status, weight, delta, cache) VALUES(%d, '%s', %d, '%s', '%s', '%s', %d, %d, %d, %d)", $form_state['values']['visibility'], trim($form_state['values']['pages']), $form_state['values']['custom'], $form_state['values']['title'], $form_state['values']['module'], $theme->name, 0, 0, $delta, BLOCK_NO_CACHE); |
webmaster@1
|
306 } |
webmaster@1
|
307 } |
webmaster@1
|
308 |
webmaster@1
|
309 foreach (array_filter($form_state['values']['roles']) as $rid) { |
webmaster@1
|
310 db_query("INSERT INTO {blocks_roles} (rid, module, delta) VALUES (%d, '%s', '%s')", $rid, $form_state['values']['module'], $delta); |
webmaster@1
|
311 } |
webmaster@1
|
312 |
webmaster@1
|
313 drupal_set_message(t('The block has been created.')); |
webmaster@1
|
314 cache_clear_all(); |
webmaster@1
|
315 |
webmaster@1
|
316 $form_state['redirect'] = 'admin/build/block'; |
webmaster@1
|
317 return; |
webmaster@1
|
318 } |
webmaster@1
|
319 |
webmaster@1
|
320 /** |
webmaster@1
|
321 * Menu callback; confirm deletion of custom blocks. |
webmaster@1
|
322 */ |
webmaster@1
|
323 function block_box_delete(&$form_state, $bid = 0) { |
webmaster@1
|
324 $box = block_box_get($bid); |
webmaster@7
|
325 $form['info'] = array('#type' => 'hidden', '#value' => $box['info']); |
webmaster@1
|
326 $form['bid'] = array('#type' => 'hidden', '#value' => $bid); |
webmaster@1
|
327 |
webmaster@1
|
328 return confirm_form($form, t('Are you sure you want to delete the block %name?', array('%name' => $box['info'])), 'admin/build/block', '', t('Delete'), t('Cancel')); |
webmaster@1
|
329 } |
webmaster@1
|
330 |
webmaster@1
|
331 /** |
webmaster@1
|
332 * Deletion of custom blocks. |
webmaster@1
|
333 */ |
webmaster@1
|
334 function block_box_delete_submit($form, &$form_state) { |
webmaster@1
|
335 db_query('DELETE FROM {boxes} WHERE bid = %d', $form_state['values']['bid']); |
webmaster@1
|
336 db_query("DELETE FROM {blocks} WHERE module = 'block' AND delta = %d", $form_state['values']['bid']); |
webmaster@1
|
337 drupal_set_message(t('The block %name has been removed.', array('%name' => $form_state['values']['info']))); |
webmaster@1
|
338 cache_clear_all(); |
webmaster@1
|
339 $form_state['redirect'] = 'admin/build/block'; |
webmaster@1
|
340 return; |
webmaster@1
|
341 } |
webmaster@1
|
342 |
webmaster@1
|
343 /** |
webmaster@1
|
344 * Process variables for block-admin-display.tpl.php. |
webmaster@1
|
345 * |
webmaster@1
|
346 * The $variables array contains the following arguments: |
webmaster@1
|
347 * - $form |
webmaster@1
|
348 * |
webmaster@1
|
349 * @see block-admin-display.tpl.php |
webmaster@1
|
350 * @see theme_block_admin_display() |
webmaster@1
|
351 */ |
webmaster@1
|
352 function template_preprocess_block_admin_display_form(&$variables) { |
webmaster@1
|
353 global $theme_key; |
webmaster@1
|
354 |
webmaster@1
|
355 $block_regions = system_region_list($theme_key); |
webmaster@1
|
356 $variables['throttle'] = module_exists('throttle'); |
webmaster@1
|
357 $variables['block_regions'] = $block_regions + array(BLOCK_REGION_NONE => t('Disabled')); |
webmaster@1
|
358 |
webmaster@1
|
359 foreach ($block_regions as $key => $value) { |
webmaster@1
|
360 // Highlight regions on page to provide visual reference. |
webmaster@1
|
361 drupal_set_content($key, '<div class="block-region">'. $value .'</div>'); |
webmaster@1
|
362 // Initialize an empty array for the region. |
webmaster@1
|
363 $variables['block_listing'][$key] = array(); |
webmaster@1
|
364 } |
webmaster@1
|
365 |
webmaster@1
|
366 // Initialize disabled blocks array. |
webmaster@1
|
367 $variables['block_listing'][BLOCK_REGION_NONE] = array(); |
webmaster@1
|
368 |
webmaster@1
|
369 // Set up to track previous region in loop. |
webmaster@1
|
370 $last_region = ''; |
webmaster@1
|
371 foreach (element_children($variables['form']) as $i) { |
webmaster@1
|
372 $block = &$variables['form'][$i]; |
webmaster@1
|
373 |
webmaster@1
|
374 // Only take form elements that are blocks. |
webmaster@1
|
375 if (isset($block['info'])) { |
webmaster@1
|
376 // Fetch region for current block. |
webmaster@1
|
377 $region = $block['region']['#default_value']; |
webmaster@1
|
378 |
webmaster@1
|
379 // Set special classes needed for table drag and drop. |
webmaster@1
|
380 $variables['form'][$i]['region']['#attributes']['class'] = 'block-region-select block-region-'. $region; |
webmaster@1
|
381 $variables['form'][$i]['weight']['#attributes']['class'] = 'block-weight block-weight-'. $region; |
webmaster@1
|
382 |
webmaster@1
|
383 $variables['block_listing'][$region][$i]->row_class = isset($block['#attributes']['class']) ? $block['#attributes']['class'] : ''; |
webmaster@1
|
384 $variables['block_listing'][$region][$i]->block_modified = isset($block['#attributes']['class']) && strpos($block['#attributes']['class'], 'block-modified') !== FALSE ? TRUE : FALSE; |
webmaster@1
|
385 $variables['block_listing'][$region][$i]->block_title = drupal_render($block['info']); |
webmaster@1
|
386 $variables['block_listing'][$region][$i]->region_select = drupal_render($block['region']) . drupal_render($block['theme']); |
webmaster@1
|
387 $variables['block_listing'][$region][$i]->weight_select = drupal_render($block['weight']); |
webmaster@1
|
388 $variables['block_listing'][$region][$i]->throttle_check = $variables['throttle'] ? drupal_render($block['throttle']) : ''; |
webmaster@1
|
389 $variables['block_listing'][$region][$i]->configure_link = drupal_render($block['configure']); |
webmaster@1
|
390 $variables['block_listing'][$region][$i]->delete_link = !empty($block['delete']) ? drupal_render($block['delete']) : ''; |
webmaster@1
|
391 $variables['block_listing'][$region][$i]->printed = FALSE; |
webmaster@1
|
392 |
webmaster@1
|
393 $last_region = $region; |
webmaster@1
|
394 } |
webmaster@1
|
395 } |
webmaster@1
|
396 |
webmaster@1
|
397 $variables['form_submit'] = drupal_render($variables['form']); |
webmaster@1
|
398 } |