function page_manager_page_save_subtask

Call back from the administrative system to save a page.

We get the $subtask as created by page_manager_page_build_subtask.

1 string reference to 'page_manager_page_save_subtask'
page_manager_page_page_manager_tasks in page_manager/plugins/tasks/page.inc
Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for more information.

File

page_manager/plugins/tasks/page.inc, line 95

Code

function page_manager_page_save_subtask($subtask) {
    $page =& $subtask['subtask'];
    // Ensure $page->arguments contains only real arguments:
    $arguments = page_manager_page_get_named_arguments($page->path);
    $args = array();
    foreach ($arguments as $keyword => $position) {
        if (isset($page->arguments[$keyword])) {
            $args[$keyword] = $page->arguments[$keyword];
        }
        else {
            $args[$keyword] = array(
                'id' => '',
                'identifier' => '',
                'argument' => '',
                'settings' => array(),
            );
        }
    }
    page_manager_page_recalculate_arguments($page);
    // Create a real object from the cache.
    page_manager_page_save($page);
    // Check to see if we should make this the site frontpage.
    if (!empty($page->make_frontpage)) {
        $path = array();
        foreach (explode('/', $page->path) as $bit) {
            if ($bit[0] != '!') {
                $path[] = $bit;
            }
        }
        $path = implode('/', $path);
        $front = variable_get('site_frontpage', 'node');
        if ($path != $front) {
            variable_set('site_frontpage', $path);
        }
    }
}