function _oa_core_change_panel_layout in Open Atrium Core 7.2
Helper function to change the layout of a panel
Parameters
$data:
$key string specifying index into $data:
$new_layout string new layout machine name:
$default_region string default region name to assign existing panes:
array $region_map array mapping of old regions to new regions:
1 call to _oa_core_change_panel_layout()
- oa_users_oa_core_layout_alter in modules/
oa_users/ oa_users.module - Implements hook_oa_core_layout_alter().
File
- ./
oa_core.module, line 2175
Code
function _oa_core_change_panel_layout(&$data, $key, $new_layout, $default_region, $region_map = array()) {
if (!empty($data[$key])) {
$data[$key]->display->layout = $new_layout;
foreach ($data[$key]->display->panels as $region => $panels) {
$new_region = isset($region_map[$region]) ? $region_map[$region] : $default_region;
$data[$key]->display->panels[$new_region] = $panels;
unset($data[$key]->display->panels[$region]);
}
foreach ($data[$key]->display->content as $pid => $pane) {
$new_region = isset($region_map[$pane->panel]) ? $region_map[$pane->panel] : $default_region;
$data[$key]->display->content[$pid]->panel = $new_region;
}
if (!empty($data[$key]->display->panel_settings['style_settings'])) {
foreach ($data[$key]->display->panel_settings['style_settings'] as $region => $settings) {
$new_region = isset($region_map[$region]) ? $region_map[$region] : $default_region;
$data[$key]->display->panel_settings['style_settings'][$new_region] = $settings;
unset($data[$key]->display->panel_settings['style_settings'][$region]);
}
}
}
}