function om_maximenu_content_render in OM Maximenu 7
Same name and namespace in other branches
- 8 inc/om_maximenu.render.inc \om_maximenu_content_render()
- 6 inc/om_maximenu.render.inc \om_maximenu_content_render()
OM Maximenu content rendering engine
8 calls to om_maximenu_content_render()
- om-maximenu-accordion-content.tpl.php in tpl/
om-maximenu-accordion-content.tpl.php - om_maximenu_accordion_content.tpl.php Default theme implementation of om maximenu contents with accordion blocks
- om-maximenu-modal-content.tpl.php in tpl/
om-maximenu-modal-content.tpl.php - om_maximenu_modal_content.tpl.php Default theme implementation of om maximenu contents with modal blocks
- om-maximenu-roundabout-content.tpl.php in tpl/
om-maximenu-roundabout-content.tpl.php - om_maximenu_roundabout_content.tpl.php Default theme implementation of om maximenu contents with roundabout blocks
- om-maximenu-submenu-content--bubble.tpl.php in tpl/
om-maximenu-submenu-content--bubble.tpl.php - om_maximenu_submenu_content.tpl.php Default theme implementation of om maximenu contents with submenu blocks
- om-maximenu-submenu-content--no-style.tpl.php in tpl/
om-maximenu-submenu-content--no-style.tpl.php - om_maximenu_submenu_content.tpl.php Default theme implementation of om maximenu contents with submenu blocks
File
- inc/
om_maximenu.render.inc, line 254 - OM Maximenu Render
Code
function om_maximenu_content_render($content = array()) {
global $_om_maximenu_block_classes;
global $_om_maximenu_visible_blocks;
$visible_blocks = $_om_maximenu_visible_blocks;
//dsm($visible_blocks);
$block_classes = !empty($_om_maximenu_block_classes) ? $_om_maximenu_block_classes : array();
$count = 0;
uasort($content, 'om_sort_by_weight');
$total = count($content);
$out = '';
foreach ($content as $key => $prop) {
$count++;
$module = $prop['module'];
$delta = $prop['delta'];
$visibility = isset($prop['visibility']) && $prop['visibility'] == 1 ? in_array($module . '__' . $delta, $visible_blocks) ? 1 : 0 : 1;
if ($visibility) {
$title = stripslashes(trim($prop['title']));
// allows markups
$path = $prop['title_path'] == '<front>' ? '' : $prop['title_path'];
$options = array();
$options['query'] = isset($prop['title_path_query']) ? om_path_query($prop['title_path_query']) : '';
$options['fragment'] = isset($prop['title_path_fragment']) ? $prop['title_path_fragment'] : '';
$block_title = !empty($prop['title_path']) ? '<a href="' . url($path, $options) . '" title="' . $title . '">' . $title . '</a>' : $title;
// previous
$block = module_invoke($module, 'block_view', $delta);
/*
// new - there's still a bug here which doubles the markups .block container
// http://drupal.org/node/1422706 - by catch
// Attached patch takes the output, of the view hook, puts it through block rendering pipeline
// (unfortunately there are only private functions for this), then pulls the individual block back out,
// this allows those hooks to operate as normal.
$blocks = array();
$index = $module . '_' . $delta;
$blocks[$index] = (object) array(
'delta' => $delta,
'module' => $module,
'title' => '<none>',
// There is no real region, put a false one in instead.
'region' => 'om_maximenu',
);
$blocks = _block_render_blocks($blocks);
$build = _block_get_renderable_array($blocks);
if (isset($build[$index])) {
$block = array('content' => $build[$index]);
$om_classes = ($count == 1) ? ' first': '';
if ($count == $total) $om_classes .= ' last';
$om_classes .= isset($block_classes[$module][$delta]) ? ' ' . $block_classes[$module][$delta]: '';
$out .= theme('om_maximenu_content', array('block' => $block, 'module' => $module, 'delta' => $delta, 'om_classes' => $om_classes, 'title' => $title, 'block_title' => $block_title));
}
*/
$om_classes = $count == 1 ? ' first' : '';
if ($count == $total) {
$om_classes .= ' last';
}
$om_classes .= isset($block_classes[$module][$delta]) ? ' ' . $block_classes[$module][$delta] : '';
$out .= theme('om_maximenu_content', array(
'block' => $block,
'module' => $module,
'delta' => $delta,
'om_classes' => $om_classes,
'title' => $title,
'block_title' => $block_title,
));
}
}
return $out;
}