function _views_maintenance_panel_node_use_cases in Views Maintenance 7
Same name and namespace in other branches
- 6 includes/ctools.inc \_views_maintenance_panel_node_use_cases()
Returns displays use cases in all panel nodes.
Return value
array Nested array with use cases grouped by view name and display id.
1 call to _views_maintenance_panel_node_use_cases()
File
- includes/
ctools.inc, line 557 - Provides integration with Page Manager and Panels Mini.
Code
function _views_maintenance_panel_node_use_cases() {
ctools_include('content');
ctools_include('plugins');
// Load only necessary info about panel nodes.
$query = db_select('panels_node', 'pn');
$query
->addField('pn', 'did');
$query
->addJoin('inner', 'node', 'n', 'n.nid = pn.nid');
$query
->addField('n', 'title');
$query
->addField('n', 'nid');
$query
->addField('n', 'status');
$res = $query
->execute();
$nodes = array();
while ($node = $res
->fetchAssoc()) {
// Save nodes to array using display id as key.
$nodes[$node['did']] = $node;
}
$displays = panels_load_displays(array_keys($nodes));
$result = array();
foreach ($displays as $did => $display) {
if (!empty($nodes[$did])) {
foreach ($display->content as $pane) {
// Analyze each pane and get view name and display id (if any).
$id = _views_maintenance_display_id_from_pane($pane);
if (!empty($id)) {
list($view_id, $display_id) = $id;
$node = $nodes[$did];
$use_case = _views_maintenance_panel_node_pane_use_case($node, $pane);
$result[$view_id][$display_id][] = $use_case;
}
}
}
}
return $result;
}