function drupal_render_collect_attached
drupal_render_collect_attached($elements, $return = FALSE)
Collects #attached for an element and its children into a single array.
When caching elements, it is necessary to collect all libraries, JavaScript and CSS into a single array, from both the element itself and all child elements. This allows drupal_render() to add these back to the page when the element is returned from cache.
Parameters
$elements: The element to collect #attached from.
$return: Whether to return the attached elements and reset the internal static.
Return value
The #attached array for this element and its descendants.
File
- includes/common.inc, line 6278
- Common functions that many Drupal modules will need to reference.
Code
function drupal_render_collect_attached($elements, $return = FALSE) { $attached = &drupal_static(__FUNCTION__, array()); // Collect all #attached for this element. if (isset($elements['#attached'])) { foreach ($elements['#attached'] as $key => $value) { if (!isset($attached[$key])) { $attached[$key] = array(); } $attached[$key] = array_merge($attached[$key], $value); } } if ($children = element_children($elements)) { foreach ($children as $child) { drupal_render_collect_attached($elements[$child]); } } // If this was the first call to the function, return all attached elements // and reset the static cache. if ($return) { $return = $attached; $attached = array(); return $return; } }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!common.inc/function/drupal_render_collect_attached/7.x