function panels_ajax_tab_ctools_access in Panels Ajax Tabs 7
Determine if the current user has access via plugin.
2 calls to panels_ajax_tab_ctools_access()
- panels_ajax_tab_container_render in plugins/
content_types/ panels_ajax_tab_container.inc - Rendering function for the 'panels_ajax_tab_container' content type.
- panels_ajax_tab_tabs_render in plugins/
content_types/ panels_ajax_tab_tabs.inc - Rendering function for the 'panels_ajax_tab_tabs' content type.
File
- ./
panels_ajax_tab.module, line 628 - Allows users to create and manage Panels Ajax Tabs.
Code
function panels_ajax_tab_ctools_access($mini_panel, $visibility_settings, $contexts) {
if (empty($contexts) || empty($visibility_settings)) {
return TRUE;
}
$panels_ajax_tab_access =& drupal_static(__FUNCTION__);
$cache_arg = array(
$mini_panel,
$visibility_settings,
$contexts,
);
$cache_key = __FUNCTION__ . '_' . md5(serialize($cache_arg));
if (!isset($panels_ajax_tab_access[$cache_key])) {
$panels_ajax_tab_access[$cache_key] = TRUE;
$contexts = !is_array($contexts) ? array(
$contexts,
) : $contexts;
$new_contexts = array();
foreach ($contexts as $key => $context) {
$new_contexts[$context->id] = $context;
}
if (isset($visibility_settings[$mini_panel])) {
$visibility_setting = $visibility_settings[$mini_panel];
if (!empty($visibility_setting['visibility_rule']) && $visibility_setting['visibility_rule'] != 'none') {
$setting = array();
$setting['name'] = $visibility_setting['visibility_rule'];
$setting['settings'] = $visibility_setting['visibility_settings'];
$setting['not'] = $visibility_setting['visibility_settings']['not'];
$setting['context'] = $context->id;
$settings['plugins'] = array(
$setting,
);
ctools_include('context');
$panels_ajax_tab_access[$cache_key] = ctools_access($settings, $new_contexts);
}
}
}
return $panels_ajax_tab_access[$cache_key];
}