function _views_maintenance_process_page_tasks in Views Maintenance 6
Same name and namespace in other branches
- 7 includes/ctools.inc \_views_maintenance_process_page_tasks()
Processes list of page manager page tasks and returns views use cases.
It runs _views_maintenance_process_page_handlers() for task without subtasks otherwise it goes down into recursion.
Parameters
array $tasks: List of page manager page definitions.
array $parent: For internal use only. Stores parent task definition.
Return value
array
1 call to _views_maintenance_process_page_tasks()
- _views_maintenance_page_use_cases in includes/
ctools.inc - Returns views use cases in all page manager pages.
File
- includes/
ctools.inc, line 319 - Provides integration with Page Manager and Panels Mini.
Code
function _views_maintenance_process_page_tasks($tasks, $parent = NULL) {
$use_cases = array();
foreach ($tasks as $task_id => $task) {
// If a type has subtasks, process its subtasks instead of task itself.
$subtasks = page_manager_get_task_subtasks($task);
if (empty($subtasks)) {
// Construct full task name and retrieve its handlers.
if (isset($parent)) {
$task_name = page_manager_make_task_name($parent['name'], $task['name']);
$handlers = page_manager_load_task_handlers($parent, $task_id);
}
else {
$task_name = $task['name'];
$handlers = page_manager_load_task_handlers($task);
}
// Fetch views use cases from handlers.
$use_cases[] = _views_maintenance_process_page_handlers($handlers, $task, $task_name);
}
else {
// Task containing subtasks, go deep into recursion.
$use_cases[] = _views_maintenance_process_page_tasks($subtasks, $task);
}
}
if (!empty($use_cases)) {
// Merge together use cases from different pages and return them in
// expected format.
return call_user_func_array('array_merge_recursive', $use_cases);
}
else {
return array();
}
}