function page_manager_page_new_page_cache

When adding or cloning a new page, this creates a new page cache and adds our page to it.

This does not check to see if the existing cache is already locked. This must be done beforehand.

Parameters

&$page: The page to create.

&$cache: The cache to use. If the cache has any existing task handlers, they will be marked for deletion. This may be a blank object.

3 calls to page_manager_page_new_page_cache()
page_manager_page_add_subtask in page_manager/plugins/tasks/page.admin.inc
Page callback to add a subtask.
page_manager_page_form_clone_submit in page_manager/plugins/tasks/page.admin.inc
Submit clone page form.
page_manager_page_import_subtask_submit in page_manager/plugins/tasks/page.admin.inc
Submit the import page to create the new page and redirect.

File

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

Code

function page_manager_page_new_page_cache(&$page, &$cache) {
    // Does a page already exist? If so, we are overwriting it so
    // take its pid.
    if (!empty($cache->subtask) && !empty($cache->subtask['subtask']) && !empty($cache->subtask['subtask']->pid)) {
        $page->pid = $cache->subtask['subtask']->pid;
    }
    else {
        $cache->new = TRUE;
    }
    $cache->task_name = page_manager_make_task_name('page', $page->name);
    $cache->task_id = 'page';
    $cache->task = page_manager_get_task('page');
    $cache->subtask_id = $page->name;
    $page->export_type = EXPORT_IN_DATABASE;
    $page->type = t('Normal');
    $cache->subtask = page_manager_page_build_subtask($cache->task, $page);
    if (isset($cache->handlers)) {
        foreach ($cache->handlers as $id => $handler) {
            $cache->handler_info[$id]['changed'] = PAGE_MANAGER_CHANGED_DELETED;
        }
    }
    else {
        $cache->handlers = array();
        $cache->handler_info = array();
    }
    if (!empty($page->default_handlers)) {
        foreach ($page->default_handlers as $id => $handler) {
            page_manager_handler_add_to_page($cache, $handler);
        }
    }
    $cache->locked = FALSE;
    $cache->changed = TRUE;
}