function page_manager_page_admin_summary

Provide a nice administrative summary of the page so an admin can see at a glance what this page does and how it is configured.

1 string reference to 'page_manager_page_admin_summary'
page_manager_page_build_subtask in page_manager/plugins/tasks/page.inc
Build a subtask array for a given page.

File

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

Code

function page_manager_page_admin_summary($task, $subtask) {
    $task_name = page_manager_make_task_name($task['name'], $subtask['name']);
    $page = $subtask['subtask'];
    $output = '';
    $rows = array();
    $rows[] = array(
        array(
            'class' => array(
                'page-summary-label',
            ),
            'data' => t('Storage'),
        ),
        array(
            'class' => array(
                'page-summary-data',
            ),
            'data' => $subtask['storage'],
        ),
        array(
            'class' => array(
                'page-summary-operation',
            ),
            'data' => '',
        ),
    );
    if (!empty($page->disabled)) {
        $link = l(t('Enable'), page_manager_edit_url($task_name, array(
            'handlers',
            $page->name,
            'actions',
            'enable',
        )));
        $text = t('Disabled');
    }
    else {
        $link = l(t('Disable'), page_manager_edit_url($task_name, array(
            'handlers',
            $page->name,
            'actions',
            'disable',
        )));
        $text = t('Enabled');
    }
    $rows[] = array(
        array(
            'class' => array(
                'page-summary-label',
            ),
            'data' => t('Status'),
        ),
        array(
            'class' => array(
                'page-summary-data',
            ),
            'data' => $text,
        ),
        array(
            'class' => array(
                'page-summary-operation',
            ),
            'data' => $link,
        ),
    );
    $path = array();
    foreach (explode('/', $page->path) as $bit) {
        if ($bit[0] != '!') {
            $path[] = $bit;
        }
    }
    $path = implode('/', $path);
    $front = variable_get('site_frontpage', 'node');
    $link = l(t('Edit'), page_manager_edit_url($task_name, array(
        'settings',
        'basic',
    )));
    $message = '';
    if ($path == $front) {
        $message = t('This is your site home page.');
    }
    elseif (!empty($page->make_frontpage)) {
        $message = t('This page is set to become your site home page.');
    }
    if ($message) {
        $rows[] = array(
            array(
                'class' => array(
                    'page-summary-data',
                ),
                'data' => $message,
                'colspan' => 2,
            ),
            array(
                'class' => array(
                    'page-summary-operation',
                ),
                'data' => $link,
            ),
        );
    }
    if (strpos($path, '%') === FALSE) {
        $path = l('/' . $page->path, $path);
    }
    else {
        $path = '/' . $page->path;
    }
    $rows[] = array(
        array(
            'class' => array(
                'page-summary-label',
            ),
            'data' => t('Path'),
        ),
        array(
            'class' => array(
                'page-summary-data',
            ),
            'data' => $path,
        ),
        array(
            'class' => array(
                'page-summary-operation',
            ),
            'data' => $link,
        ),
    );
    if (empty($access['plugins'])) {
        $access['plugins'] = array();
    }
    $contexts = page_manager_page_get_contexts($task, $subtask);
    $access = ctools_access_group_summary($page->access, $contexts);
    if ($access) {
        $access = t('Accessible only if @conditions.', array(
            '@conditions' => $access,
        ));
    }
    else {
        $access = t('This page is publicly accessible.');
    }
    $link = l(t('Edit'), page_manager_edit_url($task_name, array(
        'settings',
        'access',
    )));
    $rows[] = array(
        array(
            'class' => array(
                'page-summary-label',
            ),
            'data' => t('Access'),
        ),
        array(
            'class' => array(
                'page-summary-data',
            ),
            'data' => $access,
        ),
        array(
            'class' => array(
                'page-summary-operation',
            ),
            'data' => $link,
        ),
    );
    $menu_options = array(
        'none' => t('No menu entry.'),
        'normal' => t('Normal menu entry.'),
        'tab' => t('Menu tab.'),
        'default tab' => t('Default menu tab.'),
        'action' => t('Local action'),
    );
    if (!empty($page->menu)) {
        $menu = $menu_options[$page->menu['type']];
        if ($page->menu['type'] != 'none') {
            $menu .= ' ' . t('Title: %title.', array(
                '%title' => $page->menu['title'],
            ));
            switch ($page->menu['type']) {
                case 'default tab':
                    $menu .= ' ' . t('Parent title: %title.', array(
                        '%title' => $page->menu['parent']['title'],
                    ));
                    break;
                case 'normal':
                    if (module_exists('menu')) {
                        $menus = menu_get_menus();
                        $menu .= ' ' . t('Menu block: %title.', array(
                            '%title' => $menus[$page->menu['name']],
                        ));
                    }
                    break;
            }
        }
    }
    else {
        $menu = t('No menu entry');
    }
    $link = l(t('Edit'), page_manager_edit_url($task_name, array(
        'settings',
        'menu',
    )));
    $rows[] = array(
        array(
            'class' => array(
                'page-summary-label',
            ),
            'data' => t('Menu'),
        ),
        array(
            'class' => array(
                'page-summary-data',
            ),
            'data' => $menu,
        ),
        array(
            'class' => array(
                'page-summary-operation',
            ),
            'data' => $link,
        ),
    );
    $output .= theme('table', array(
        'rows' => $rows,
        'attributes' => array(
            'id' => 'page-manager-page-summary',
        ),
    ));
    return $output;
}