function page_manager_page_build_subtask

Build a subtask array for a given page.

3 calls to page_manager_page_build_subtask()
page_manager_page_new_page_cache in page_manager/plugins/tasks/page.inc
When adding or cloning a new page, this creates a new page cache and adds our page to it.
page_manager_page_subtask in page_manager/plugins/tasks/page.inc
Callback to return a single subtask.
page_manager_page_subtasks in page_manager/plugins/tasks/page.inc
Task callback to get all subtasks.

File

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

Code

function page_manager_page_build_subtask($task, $page) {
    $operations = array();
    $operations['settings'] = array(
        'type' => 'group',
        'class' => array(
            'operations-settings',
        ),
        'title' => t('Settings'),
        'children' => array(),
    );
    $settings =& $operations['settings']['children'];
    $settings['basic'] = array(
        'title' => t('Basic'),
        'description' => t('Edit name, path and other basic settings for the page.'),
        'form' => 'page_manager_page_form_basic',
    );
    $arguments = page_manager_page_get_named_arguments($page->path);
    if ($arguments) {
        $settings['argument'] = array(
            'title' => t('Arguments'),
            'description' => t('Set up contexts for the arguments on this page.'),
            'form' => 'page_manager_page_form_argument',
        );
    }
    $settings['access'] = array(
        'title' => t('Access'),
        'description' => t('Control what users can access this page.'),
        'admin description' => t('Access rules are used to test if the page is accessible and any menu items associated with it are visible.'),
        'form' => 'page_manager_page_form_access',
    );
    $settings['menu'] = array(
        'title' => t('Menu'),
        'description' => t('Provide this page a visible menu or a menu tab.'),
        'form' => 'page_manager_page_form_menu',
    );
    $operations['actions']['children']['clone'] = array(
        'title' => t('Clone'),
        'description' => t('Make a copy of this page'),
        'form' => 'page_manager_page_form_clone',
    );
    $operations['actions']['children']['export'] = array(
        'title' => t('Export'),
        'description' => t('Export this page as code that can be imported or embedded into a module.'),
        'form' => 'page_manager_page_form_export',
    );
    if ($page->export_type == (EXPORT_IN_CODE | EXPORT_IN_DATABASE)) {
        $operations['actions']['children']['delete'] = array(
            'title' => t('Revert'),
            'description' => t('Remove all changes to this page and revert to the version in code.'),
            'form' => 'page_manager_page_form_delete',
        );
    }
    elseif ($page->export_type != EXPORT_IN_CODE) {
        $operations['actions']['children']['delete'] = array(
            'title' => t('Delete'),
            'description' => t('Remove this page from your system completely.'),
            'form' => 'page_manager_page_form_delete',
        );
    }
    $subtask = array(
        'name' => $page->name,
        'admin title' => check_plain($page->admin_title),
        'admin description' => filter_xss_admin($page->admin_description),
        'admin summary' => 'page_manager_page_admin_summary',
        'admin path' => $page->path,
        'admin type' => t('Custom'),
        'subtask' => $page,
        'operations' => $operations,
        'operations include' => array(
            'file' => 'page.admin.inc',
            'path' => drupal_get_path('module', 'page_manager') . '/plugins/tasks',
        ),
        'single task' => empty($page->multiple),
        'row class' => empty($page->disabled) ? 'page-manager-enabled' : 'page-manager-disabled',
        'storage' => $page->type == t('Default') ? t('In code') : $page->type,
        'disabled' => !empty($page->disabled),
        // This works for both enable AND disable.
'enable callback' => 'page_manager_page_enable',
    );
    // Default handlers may appear from a default subtask.
    if (isset($page->default_handlers)) {
        $subtask['default handlers'] = $page->default_handlers;
    }
    return $subtask;
}