function page_manager_page_form_argument

Form to handle assigning argument handlers to named arguments.

3 string references to 'page_manager_page_form_argument'
page_manager_page_add_subtask in page_manager/plugins/tasks/page.admin.inc
Page callback to add a subtask.
page_manager_page_build_subtask in page_manager/plugins/tasks/page.inc
Build a subtask array for a given page.
page_manager_page_subtask_argument_ajax in page_manager/plugins/tasks/page.admin.inc
Ajax entry point to edit an item.

File

page_manager/plugins/tasks/page.admin.inc, line 860

Code

function page_manager_page_form_argument($form, &$form_state) {
    $page =& $form_state['page']->subtask['subtask'];
    $path = $page->path;
    $arguments = page_manager_page_get_named_arguments($path);
    $form['table'] = array(
        '#theme' => 'page_manager_page_form_argument_table',
        '#page-manager-path' => $path,
        'argument' => array(),
    );
    $task_name = $form_state['page']->task_name;
    foreach ($arguments as $keyword => $position) {
        $conf = array();
        if (isset($page->temporary_arguments[$keyword]) && !empty($form_state['allow temp'])) {
            $conf = $page->temporary_arguments[$keyword];
        }
        elseif (isset($page->arguments[$keyword])) {
            $conf = $page->arguments[$keyword];
        }
        $context = t('No context assigned');
        $plugin = array();
        if ($conf && isset($conf['name'])) {
            ctools_include('context');
            $plugin = ctools_get_argument($conf['name']);
            if (isset($plugin['title'])) {
                $context = $plugin['title'];
            }
        }
        $form['table']['argument'][$keyword]['#keyword'] = $keyword;
        $form['table']['argument'][$keyword]['#position'] = $position;
        $form['table']['argument'][$keyword]['#context'] = $context;
        // The URL for this ajax button.
        $form['table']['argument'][$keyword]['change-url'] = array(
            '#attributes' => array(
                'class' => array(
                    "page-manager-context-{$keyword}-change-url",
                ),
            ),
            '#type' => 'hidden',
            '#value' => url("admin/structure/pages/argument/change/{$task_name}/{$keyword}", array(
                'absolute' => TRUE,
            )),
        );
        $form['table']['argument'][$keyword]['change'] = array(
            '#type' => 'submit',
            '#value' => t('Change'),
            '#attributes' => array(
                'class' => array(
                    'ctools-use-modal',
                ),
            ),
            '#id' => "page-manager-context-{$keyword}-change",
        );
        $form['table']['argument'][$keyword]['settings'] = array();
        // Only show the button if this has a settings form available:
        if (!empty($plugin)) {
            // The URL for this ajax button.
            $form['table']['argument'][$keyword]['settings-url'] = array(
                '#attributes' => array(
                    'class' => array(
                        "page-manager-context-{$keyword}-settings-url",
                    ),
                ),
                '#type' => 'hidden',
                '#value' => url("admin/structure/pages/argument/settings/{$task_name}/{$keyword}", array(
                    'absolute' => TRUE,
                )),
            );
            $form['table']['argument'][$keyword]['settings'] = array(
                '#type' => 'submit',
                '#value' => t('Settings'),
                '#attributes' => array(
                    'class' => array(
                        'ctools-use-modal',
                    ),
                ),
                '#id' => "page-manager-context-{$keyword}-settings",
            );
        }
    }
    return $form;
}