function context_admin_plugin_callback_invoke in Contextual Administration 7
Helper function for exposing new core/contrib hooks or alter functions to context_admin plugins.
$plugin_callback - the key within the $plugin array in the plugin for the hook or alter function specific to the plugin. $callback_type - either hook or alter, hooks will use func_get_args which passes by value, and alters will use debug_backtrace to pass by reference.
1 call to context_admin_plugin_callback_invoke()
- context_admin_node_insert in ./
context_admin.module - Implementation of hook_node_insert
1 string reference to 'context_admin_plugin_callback_invoke'
- context_admin_form_alter in ./
context_admin.module - Implementation of hook_form_alter
File
- ./
context_admin.module, line 137
Code
function context_admin_plugin_callback_invoke($plugin_callback, $callback_type, $page = NULL) {
// Checking to make sure that we're on a context_admin generated page.
if (empty($page)) {
$page = page_manager_get_current_page();
}
$plugin = '';
if ($page) {
if (isset($page['handler']->conf['context_admin_options'])) {
$plugin = $page['handler']->conf['context_admin_options'];
}
ctools_include('plugins');
if ($callback_type == 'alter') {
$stack = debug_backtrace();
if (isset($stack[0]["args"])) {
$args = array();
for ($i = 0; $i < count($stack[0]["args"]); $i++) {
$args[$i] =& $stack[0]["args"][$i];
}
}
}
elseif ($callback_type == 'hook') {
$args = func_get_args();
}
unset($args[0]);
unset($args[1]);
unset($args[2]);
$args[] = $page;
if ($callback = ctools_plugin_load_function('context_admin', 'context_admin', $plugin, $plugin_callback)) {
call_user_func_array($callback, $args);
}
}
}