1.20.x layout.admin.inc | layout_reorder_form($form, &$form_state) |
Reorder the order of layouts at the same path.
Related topics
File
- modules/
layout/ layout.admin.inc, line 2158 - Admin page callbacks for the Layout module.
Code
function layout_reorder_form($form, &$form_state) {
if (!isset($form_state['layouts'])) {
$layout_list = isset($_GET['layouts']) ? $_GET['layouts'] : array();
$layouts = array();
if (is_array($layout_list)) {
$layouts = layout_load_multiple($layout_list);
}
$form_state['layouts'] = $layouts;
}
$layouts = $form_state['layouts'];
$form['#tree'] = TRUE;
// Sanity check.
if (empty($layouts)) {
backdrop_set_message(t('No layouts specified to reorder.'));
return $form;
}
$form['help'] = array(
'#type' => 'help',
'#markup' => t('Layouts at the same path are selected based on the first layout that matches its conditions. Reorder the layouts on this page to affect the layout that will be used first.'),
);
$form['layouts'] = array(
'#theme' => 'layout_reorder_layouts',
);
$layout_count = count($layouts);
foreach ($layouts as $layout) {
$form['layouts'][$layout->name]['title'] = array(
'#markup' => check_plain($layout->title),
);
$form['layouts'][$layout->name]['weight'] = array(
'#type' => 'weight',
'#delta' => $layout_count,
'#default_value' => $layout->weight,
);
}
$form['actions'] = array('#type' => 'actions');
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save order'),
);
return $form;
}