我在面板ipe工具栏中添加了自定义按钮。工具栏仅在您具有正确权限时以及页面是面板化页面时显示。我想为其他页面显示ipe工具栏,其中包含该页面的选项卡(view / edit / devel / translate)。有可能吗?
答案 0 :(得分:0)
在代码中它是这样的:
/**
* Implements of hook_page_alter()
*/
function MYMODULE_page_alter(&$page) {
// Check if Panels IPE is turned on.
if (!module_exists('panels_ipe'))
return;
// Let Panels IPE add the buttons if they exist > If there are no buttons
// then we'll still add the toolbar anyway.
$buttons = &drupal_static('panels_ipe_toolbar_buttons', array());
if (!empty($buttons)) {
return;
}
$output = theme('panels_ipe_toolbar', array('buttons' => $buttons));
$page['page_bottom']['panels_ipe'] = array(
'#markup' => $output,
);
}
/**
* Implements hook_theme_registry_alter().
*/
function MYMODULE_theme_registry_alter(&$theme_registry) {
// Check if Panels IPE is turned on.
if (!module_exists('panels_ipe'))
return;
// Inject our own theme function instead of the one from Panels IPE
$theme_registry['panels_ipe_toolbar']['function'] = 'theme_MYMODULE_panels_ipe_toolbar';
}
// This function is to be adjusted to add buttons and things.
function theme_MYMODULE_panels_ipe_toolbar($vars) {
$buttons = $vars['buttons'];
$output = "<div id='panels-ipe-control-container' class='clearfix'>";
foreach ($buttons as $key => $ipe_buttons) {
$output .= "<div id='panels-ipe-control-$key' class='panels-ipe-control'>";
// Controls in this container will appear when the IPE is not on.
$output .= '<div class="panels-ipe-button-container clearfix">';
foreach ($ipe_buttons as $button) {
$output .= is_string($button) ? $button : drupal_render($button);
}
$output .= '</div>';
// Controls in this container will appear when the IPE is on. It is usually
// filled via AJAX.
$output .= '<div class="panels-ipe-form-container clearfix"></div>';
$output .= '</div>';
}
$output .= "</div>";
return $output;
}