public function MenuTreeStorage::getExpanded in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Menu/MenuTreeStorage.php \Drupal\Core\Menu\MenuTreeStorage::getExpanded()
Finds expanded links in a menu given a set of possible parents.
Parameters
string $menu_name: The menu name.
array $parents: One or more parent IDs to match.
Return value
array The menu link IDs that are flagged as expanded in this menu.
Overrides MenuTreeStorageInterface::getExpanded
File
- core/lib/ Drupal/ Core/ Menu/ MenuTreeStorage.php, line 788 
- Contains \Drupal\Core\Menu\MenuTreeStorage.
Class
- MenuTreeStorage
- Provides a menu tree storage using the database.
Namespace
Drupal\Core\MenuCode
public function getExpanded($menu_name, array $parents) {
  // @todo Go back to tracking in state or some other way which menus have
  //   expanded links? https://www.drupal.org/node/2302187
  do {
    $query = $this->connection
      ->select($this->table, $this->options);
    $query
      ->fields($this->table, array(
      'id',
    ));
    $query
      ->condition('menu_name', $menu_name);
    $query
      ->condition('expanded', 1);
    $query
      ->condition('has_children', 1);
    $query
      ->condition('enabled', 1);
    $query
      ->condition('parent', $parents, 'IN');
    $query
      ->condition('id', $parents, 'NOT IN');
    $result = $this
      ->safeExecuteSelect($query)
      ->fetchAllKeyed(0, 0);
    $parents += $result;
  } while (!empty($result));
  return $parents;
}