drupal_render($vars['form']['blocks']), 'class' => array('blocks')), array('data' => drupal_render($vars['form']['selector']) . drupal_render($vars['form']['block']['help']), 'class' => array('selector')), ); $output = drupal_render_children($vars['form']); $table = array( 'rows' => array($row), 'attributes' => array('id' => 'context-blockform'), ); $output .= theme('table', $table); return $output; } /** * Generates the AJAX enabled block administration portion of the context_ui admin form. */ function theme_context_block_regions_form($vars) { $form = $vars['form']; // Add draggable weights drupal_add_js('misc/tableheader.js'); drupal_add_js(drupal_get_path('module', 'context') .'/plugins/context_reaction_block.js'); drupal_add_css(drupal_get_path('module', 'context') .'/plugins/context_reaction_block.css'); $output = ''; foreach (element_children($form) as $region) { $attr = array( 'id' => "context-blockform-region-{$region}", 'class' => array("context-blockform-region"), ); drupal_add_tabledrag($attr['id'], 'order', 'sibling', 'block-weight', NULL, NULL, FALSE); $rows = array(); foreach (element_children($form[$region]) as $id) { $form[$region][$id]['weight']['#attributes'] = array('class' => array('block-weight')); $label = $form[$region][$id]['#value']; $remove = l('X', $_GET['q'], array('fragment' => 'remove', 'attributes' => array('class' => array('remove')))); $rows[] = array( 'data' => array($label . drupal_render($form[$region][$id]['weight']), $remove), 'class' => array('draggable'), 'id' => $id, ); } $output .= "
"; $output .= l('+ '. t('Add'), $_GET['q'], array('fragment' => $region, 'attributes' => array('class' => array('add-block')))); $output .= $form[$region]['#title']; $output .= "
"; $output .= theme('table', array('rows' => $rows, 'attributes' => $attr)); } return $output; } /** * Use placeholder content for script tags that need to be replaced. */ function theme_context_block_script_placeholder($text = '') { $message = t('Please reload the page to view this block.'); return "
{$text}
{$message}
"; } /** * Preprocessor for theme('context_block_browser'). */ function template_preprocess_context_block_browser(&$vars) { $categories = array( '#type' => 'select', '#options' => array(0 => '<'. t('Choose a category') .'>'), '#attributes' => array('class' => array('context-block-browser-categories')), '#value' => 0, '#size' => 1, '#id' => '', '#name' => '', '#parents' => array(''), '#multiple' => FALSE, '#required' => FALSE, ); $blocks = array(); // Group blocks by module. foreach ($vars['blocks'] as $block) { if (!isset($categories[$block->module])) { $info = context_get_info('module', $block->module); $categories['#options'][$block->module] = !empty($info['name']) ? $info['name'] : $block->module; } $blocks[$block->module][$block->bid] = $block; // Don't call theme('context_block_browser_item') to allow others to alter. } $vars['categories'] = $categories; // Don't call theme('select') here to allow further preprocesses to alter the element. $vars['blocks'] = $blocks; } /** * Preprocessor for theme('context_block_browser_item'). */ function template_preprocess_context_block_browser_item(&$vars) { $vars['bid'] = $vars['block']->bid; $vars['info'] = check_plain($vars['block']->info); } /** * Preprocessor for theme('context_block_editable_region'). */ function template_preprocess_context_block_editable_region(&$vars) { if (!empty($vars['editable'])) { // Show when empty? $vars['show_always'] = variable_get('context_reaction_block_all_regions', FALSE); // Provide the user-friendly name of the region global $theme_key; $regions = system_region_list($theme_key); $vars['region_description'] = isset($regions[$vars['region']]) ? $regions[$vars['region']] : $vars['region']; } } /** * Preprocessor for theme('context_block_editable_block'). */ function template_preprocess_context_block_editable_block(&$vars) { $vars['empty'] = empty($vars['block']->content); if (isset($vars['block']->context)) { $vars['block']->content .= "module}-{$vars['block']->delta}' class='context-block editable edit-{$vars['block']->context}'>"; } }