function page_manager_handler_add_submit

Handler related forms.

File

page_manager/page_manager.admin.inc, line 1309

Code

function page_manager_handler_add_submit(&$form, &$form_state) {
    $cache = $form_state['page'];
    $plugin = page_manager_get_task_handler($form_state['values']['handler']);
    // Create a new handler.
    $handler = page_manager_new_task_handler($plugin);
    if (!empty($form_state['values']['title'])) {
        $handler->conf['title'] = $form_state['values']['title'];
    }
    else {
        $handler->conf['title'] = $plugin['title'];
    }
    $handler->conf['name'] = $form_state['values']['name'];
    $cache->new_handler = $handler;
    // Figure out which forms to present them with
    $cache->forms = array();
    $features = $form_state['values']['features'];
    if (isset($features[$form_state['values']['handler']])) {
        $cache->forms = array_merge($cache->forms, array_keys(array_filter($features[$form_state['values']['handler']])));
    }
    if (isset($plugin['required forms'])) {
        $cache->forms = array_merge($cache->forms, array_keys($plugin['required forms']));
    }
    $form_state['no_rerender'] = TRUE;
    if (!empty($cache->forms)) {
        // Tell the form to go to the config page.
        drupal_set_message(t('Before this variant can be added, it must be configured. When you are finished, click "Create variant" at the end of this wizard to add this to your page.'));
        $form_state['new trail'] = array(
            'actions',
            'configure',
        );
    }
    else {
        // It has no forms at all. Add the variant and go to its first operation.
        page_manager_handler_add_finish($form_state);
    }
}