function panels_mini_block in Panels 6.3
Same name and namespace in other branches
- 5.2 panels_mini/panels_mini.module \panels_mini_block()
- 6.2 panels_mini/panels_mini.module \panels_mini_block()
Implementation of hook_block().
Expose qualifying mini panels to Drupal's block system.
File
- panels_mini/
panels_mini.module, line 37 - panels_mini.module
Code
function panels_mini_block($op = 'list', $delta = 0, $edit = array()) {
// Safety: go away if CTools is not at an appropriate version.
if (!defined('PANELS_REQUIRED_CTOOLS_API') || !module_invoke('ctools', 'api_version', PANELS_REQUIRED_CTOOLS_API)) {
return array();
}
if ($op == 'list') {
$blocks = array();
$minis = panels_mini_load_all();
foreach ($minis as $panel_mini) {
if (empty($mini->disabled) && empty($mini->requiredcontext)) {
$blocks[$panel_mini->name] = array(
'info' => t('Mini panel: "@title"', array(
'@title' => $panel_mini->admin_title,
)),
'cache' => BLOCK_NO_CACHE,
);
}
}
return $blocks;
}
elseif ($op == 'view') {
// static recursion protection.
static $viewing = array();
if (!empty($viewing[$delta])) {
return;
}
$viewing[$delta] = TRUE;
$panel_mini = panels_mini_load($delta);
if (empty($panel_mini)) {
// Bail out early if the specified mini panel doesn't exist.
return;
}
ctools_include('context');
$panel_mini->context = $panel_mini->display->context = ctools_context_load_contexts($panel_mini);
$panel_mini->display->css_id = panels_mini_get_id($panel_mini->name);
$block = array();
$block['content'] = panels_render_display($panel_mini->display);
$block['subject'] = $panel_mini->display
->get_title();
unset($viewing[$delta]);
return $block;
}
elseif ($op = 'configure') {
return array(
'admin-shortcut' => array(
'#value' => l(t('Manage this mini-panel'), "admin/build/mini-panels/list/{$delta}/edit"),
),
);
}
}