1.20.x layout.flexible.inc | layout_flexible_template_configure_form($form, &$form_state, LayoutFlexibleTemplate $flexible_template) |
Form to manage adding and removing rows to a flexible template.
Parameters
LayoutFlexibleTemplate $flexible_template: The template configuration being edited.
Related topics
File
- modules/
layout/ layout.flexible.inc, line 114 - Provides configurable (flexible) layout templates.
Code
function layout_flexible_template_configure_form($form, &$form_state, LayoutFlexibleTemplate $flexible_template) {
form_load_include($form_state, 'inc', 'layout', 'layout.admin');
form_load_include($form_state, 'inc', 'layout', 'layout.flexible');
$messages = array();
$form['messages'] = array(
'#theme' => 'status_messages',
'#messages' => $messages,
'#weight' => -100,
// Prefix/suffix used to identify in AJAX requests.
'#prefix' => '<div id="layout-messages">',
'#suffix' => '</div>',
);
$form_state['flexible_template'] = &$flexible_template;
$flexible_template_name = $flexible_template->name;
$config = array(
'is_new' => TRUE,
'layout_template' => $flexible_template_name,
);
$layout = new Layout($config);
$template = layout_get_layout_template_info($flexible_template_name);
backdrop_set_title($template['title']);
$form_state['flexible_template_name'] = $flexible_template_name;
if (empty($form_state['flexible_template'])) {
return array();
}
$renderer = layout_create_renderer('flexible', $layout);
$form['content'] = array(
'#type' => 'item',
'#id' => 'layout-flexible-content',
);
$form['content']['display'] = array(
'#markup' => $renderer->render(),
);
$form['content']['row_positions'] = array(
// Use 'hidden' instead of 'value' so the JS can access it.
'#type' => 'hidden',
'#default_value' => implode(',', array_keys($flexible_template->rows)),
);
$form['content']['add_row'] = array(
'#type' => 'submit',
'#value' => t('Add row'),
'#attributes' => array('class' => array('flexible-layout-add-row')),
'#submit' => array(
'layout_flexible_template_add_row',
),
'#ajax' => array(
'callback' => 'layout_ajax_form_open_dialog',
),
);
$form['actions'] = array(
'#type' => 'actions',
);
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save layout template'),
'#submit' => array(
'layout_flexible_template_configure_form_submit',
),
);
$form['actions']['cancel'] = array(
'#type' => 'submit',
'#value' => t('Cancel'),
'#submit' => array(
'layout_flexible_template_configure_form_cancel',
),
);
return $form;
}