You are here

function _oa_core_panels_sort in Open Atrium Core 7.2

Helper function to put panes in correct order using the position property For Page Manager/Panels objects

Parameters

$data:

1 call to _oa_core_panels_sort()
oa_core_default_page_manager_handlers_alter in ./oa_core.module
Implements hook_default_page_manager_handlers_alter(). $data['node_edit_panel_context']->conf['display']->content

File

./oa_core.module, line 2146

Code

function _oa_core_panels_sort(&$data) {
  foreach ($data as $key => $panel) {
    $regions = array();

    // Group panes by region
    if (isset($panel->conf['display'])) {
      foreach ($panel->conf['display']->content as $pid => $pane) {
        $regions[$pane->panel][$pid] = $pane->position;
      }

      // Sort each region by position
      $data[$key]->conf['display']->panels = array();
      foreach ($regions as $region => $panels) {
        asort($panels);
        $data[$key]->conf['display']->panels[$region] = array_keys($panels);
        foreach ($data[$key]->conf['display']->panels[$region] as $index => $pid) {
          $data[$key]->conf['display']->content[$pid]->position = $index;
        }
      }
    }
  }
}