function panels_change_layout in Panels 5.2
Same name and namespace in other branches
- 6.3 includes/display-layout.inc \panels_change_layout()
- 6.2 includes/display-layout.inc \panels_change_layout()
- 7.3 includes/display-layout.inc \panels_change_layout()
Form definition for the display layout converter.
This form is only triggered if the user attempts to change the layout for a display that has already had content assigned to it. It allows the user to select where the panes located in to-be-deleted panels should be relocated to.
Parameters
array $form: A structured FAPI $form array.
object $display instanceof panels_display \n: The panels_display object that was modified on the preceding display layout editing form.
string $new_layout_id: A string containing the name of the layout the display is to be converted to. These strings correspond exactly to the filenames of the *.inc files in panels/layouts. So, if the new layout that's been selected is the 'Two Column bricks' layout, then $new_layout_id will be 'twocol_bricks', corresponding to panels/layouts/twocol_bricks.inc.
1 call to panels_change_layout()
- panels_choose_layout in includes/
display_edit.inc - Form definition for the display layout editor.
File
- includes/
display_edit.inc, line 410
Code
function panels_change_layout(&$form, $display, $new_layout_id) {
$new_layout = panels_get_layout($new_layout_id);
$new_layout_panels = panels_get_panels($new_layout, $display);
$options = $new_layout_panels;
$keys = array_keys($options);
$default = $options[0];
$old_layout = panels_get_layout($display->layout);
$form['container'] = array(
'#prefix' => '<div class="change-layout-display">',
'#suffix' => '</div>',
);
$form['container']['old_layout'] = array(
'#value' => panels_print_layout_icon($display->layout, $old_layout, check_plain($old_layout['title'])),
);
$form['container']['right_arrow'] = array(
'#value' => theme('image', drupal_get_path('module', 'panels') . '/images/go-right.png'),
);
$form['container']['new_layout'] = array(
'#value' => panels_print_layout_icon($new_layout_id, $new_layout, check_plain($new_layout['title'])),
);
$form['container-clearer'] = array(
// TODO: FIx this ot use clear-block instead
'#value' => '<div style="clear: both;"></div>',
);
$form['old'] = array(
'#tree' => true,
'#prefix' => '<div class="panels-layout-list">',
'#suffix' => '</div>',
);
$old_layout_panels = panels_get_panels($old_layout, $display);
foreach ($display->panels as $id => $content) {
$form['old'][$id] = array(
'#type' => 'select',
'#title' => t('Move content in @layout to', array(
'@layout' => $old_layout_panels[$id],
)),
'#options' => $options,
'#default_value' => array_key_exists($id, $options) ? $id : $default,
);
}
$form['back'] = array(
'#type' => 'submit',
'#value' => t('Back'),
);
return $form;
}