annotate sites/all/themes/omega/preprocess/block.preprocess.inc @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 /**
danielebarchiesi@0 4 * Implements hook_preprocess_block().
danielebarchiesi@0 5 */
danielebarchiesi@0 6 function omega_preprocess_block(&$variables) {
danielebarchiesi@0 7 // Add BEM style classes to blocks.
danielebarchiesi@0 8 if (!empty($variables['block_html_id'])) {
danielebarchiesi@0 9 $variables['attributes_array']['id'] = $variables['block_html_id'];
danielebarchiesi@0 10 $variables['attributes_array']['class'][] = preg_replace('/^block-/', 'block--', $variables['block_html_id']);
danielebarchiesi@0 11 }
danielebarchiesi@0 12
danielebarchiesi@0 13 $css_module = drupal_clean_css_identifier($variables['block']->module);
danielebarchiesi@0 14 $variables['attributes_array']['class'] = preg_replace('/^block-' . $css_module . '$/', 'block--' . $css_module, $variables['attributes_array']['class']);
danielebarchiesi@0 15 $variables['attributes_array']['class'] = preg_replace('/^block-menu$/', 'block--menu', $variables['attributes_array']['class']);
danielebarchiesi@0 16
danielebarchiesi@0 17 $variables['title_attributes_array']['class'][] = 'block__title';
danielebarchiesi@0 18
danielebarchiesi@0 19 $variables['content_attributes_array']['class'][] = 'block__content';
danielebarchiesi@0 20
danielebarchiesi@0 21 // Add template suggestions to appropriate blocks.
danielebarchiesi@0 22 switch ($variables['block']->module) {
danielebarchiesi@0 23 case 'system':
danielebarchiesi@0 24 switch ($variables['block']->delta) {
danielebarchiesi@0 25 case 'help':
danielebarchiesi@0 26 case 'powered-by':
danielebarchiesi@0 27 break;
danielebarchiesi@0 28
danielebarchiesi@0 29 case 'main':
danielebarchiesi@0 30 // Use a template with no wrapper for the page's main content.
danielebarchiesi@0 31 $variables['theme_hook_suggestions'][] = 'block__minimal';
danielebarchiesi@0 32 break;
danielebarchiesi@0 33
danielebarchiesi@0 34 default:
danielebarchiesi@0 35 // Any other "system" block is a menu block and should use block--nav.tpl.php
danielebarchiesi@0 36 $variables['theme_hook_suggestions'][] = 'block__nav';
danielebarchiesi@0 37 break;
danielebarchiesi@0 38 }
danielebarchiesi@0 39 break;
danielebarchiesi@0 40
danielebarchiesi@0 41 case 'menu':
danielebarchiesi@0 42 case 'menu_block':
danielebarchiesi@0 43 // Use block--nav.tpl.php template.
danielebarchiesi@0 44 $variables['theme_hook_suggestions'][] = 'block__nav';
danielebarchiesi@0 45 break;
danielebarchiesi@0 46 }
danielebarchiesi@0 47
danielebarchiesi@0 48 // Add Aria Roles via attributes.
danielebarchiesi@0 49 switch ($variables['block']->module) {
danielebarchiesi@0 50 case 'system':
danielebarchiesi@0 51 switch ($variables['block']->delta) {
danielebarchiesi@0 52 case 'main':
danielebarchiesi@0 53 // Note: the "main" role goes in the page.tpl, not here.
danielebarchiesi@0 54 break;
danielebarchiesi@0 55
danielebarchiesi@0 56 case 'help':
danielebarchiesi@0 57 case 'powered-by':
danielebarchiesi@0 58 $variables['attributes_array']['role'] = 'complementary';
danielebarchiesi@0 59 break;
danielebarchiesi@0 60
danielebarchiesi@0 61 default:
danielebarchiesi@0 62 // Any other "system" block is a menu block.
danielebarchiesi@0 63 $variables['attributes_array']['role'] = 'navigation';
danielebarchiesi@0 64 break;
danielebarchiesi@0 65 }
danielebarchiesi@0 66 break;
danielebarchiesi@0 67
danielebarchiesi@0 68 case 'menu':
danielebarchiesi@0 69 case 'menu_block':
danielebarchiesi@0 70 case 'blog':
danielebarchiesi@0 71 case 'book':
danielebarchiesi@0 72 case 'comment':
danielebarchiesi@0 73 case 'forum':
danielebarchiesi@0 74 case 'shortcut':
danielebarchiesi@0 75 case 'statistics':
danielebarchiesi@0 76 $variables['attributes_array']['role'] = 'navigation';
danielebarchiesi@0 77 break;
danielebarchiesi@0 78
danielebarchiesi@0 79 case 'search':
danielebarchiesi@0 80 $variables['attributes_array']['role'] = 'search';
danielebarchiesi@0 81 break;
danielebarchiesi@0 82
danielebarchiesi@0 83 case 'help':
danielebarchiesi@0 84 case 'aggregator':
danielebarchiesi@0 85 case 'locale':
danielebarchiesi@0 86 case 'poll':
danielebarchiesi@0 87 case 'profile':
danielebarchiesi@0 88 $variables['attributes_array']['role'] = 'complementary';
danielebarchiesi@0 89 break;
danielebarchiesi@0 90
danielebarchiesi@0 91 case 'node':
danielebarchiesi@0 92 switch ($variables['block']->delta) {
danielebarchiesi@0 93 case 'syndicate':
danielebarchiesi@0 94 $variables['attributes_array']['role'] = 'complementary';
danielebarchiesi@0 95 break;
danielebarchiesi@0 96
danielebarchiesi@0 97 case 'recent':
danielebarchiesi@0 98 $variables['attributes_array']['role'] = 'navigation';
danielebarchiesi@0 99 break;
danielebarchiesi@0 100 }
danielebarchiesi@0 101 break;
danielebarchiesi@0 102
danielebarchiesi@0 103 case 'user':
danielebarchiesi@0 104 switch ($variables['block']->delta) {
danielebarchiesi@0 105 case 'login':
danielebarchiesi@0 106 $variables['attributes_array']['role'] = 'form';
danielebarchiesi@0 107 break;
danielebarchiesi@0 108
danielebarchiesi@0 109 case 'new':
danielebarchiesi@0 110 case 'online':
danielebarchiesi@0 111 $variables['attributes_array']['role'] = 'complementary';
danielebarchiesi@0 112 break;
danielebarchiesi@0 113 }
danielebarchiesi@0 114 break;
danielebarchiesi@0 115 }
danielebarchiesi@0 116 }