You are here

function panels_load_displays in Panels 8.3

Same name and namespace in other branches
  1. 5.2 panels.module \panels_load_displays()
  2. 6.3 panels.module \panels_load_displays()
  3. 6.2 panels.module \panels_load_displays()
  4. 7.3 panels.module \panels_load_displays()

Load and fill the requested $display object(s).

Helper function primarily for for panels_load_display().

@todo schema API can drasticly simplify this code.

Parameters

array $dids: An indexed array of dids to be loaded from the database.

Return value

$displays An array of displays, keyed by their display dids.

Related topics

1 call to panels_load_displays()
panels_load_display in ./panels.module
Load a single display.

File

./panels.module, line 554
panels.module

Code

function panels_load_displays($dids) {
  $displays = array();
  if (empty($dids) || !is_array($dids)) {
    return $displays;
  }
  $result = db_query("SELECT * FROM {panels_display} WHERE did IN (:dids)", array(
    ':dids' => $dids,
  ));
  ctools_include('export');
  foreach ($result as $obj) {
    $displays[$obj->did] = ctools_export_unpack_object('panels_display', $obj);

    // Modify the hide_title field to go from a bool to an int if necessary.
  }
  $result = db_query("SELECT * FROM {panels_pane} WHERE did IN (:dids) ORDER BY did, panel, position", array(
    ':dids' => $dids,
  ));
  foreach ($result as $obj) {
    $pane = ctools_export_unpack_object('panels_pane', $obj);
    $displays[$pane->did]->panels[$pane->panel][] = $pane->pid;
    $displays[$pane->did]->content[$pane->pid] = $pane;
  }
  return $displays;
}