You are here

public static function EntityFieldHandlerHelper::extract_list_wrapper_values in Entity API 7

Helper method for extracting the values from an array of wrappers.

Nested arrays of wrappers are also handled, the values are returned in a flat (not nested) array.

1 call to EntityFieldHandlerHelper::extract_list_wrapper_values()
EntityFieldHandlerHelper::get_value in views/handlers/entity_views_field_handler_helper.inc
Get the value of a certain data selector.

File

views/handlers/entity_views_field_handler_helper.inc, line 363
Contains the EntityFieldHandlerHelper class.

Class

EntityFieldHandlerHelper
Helper class containing static implementations of common field handler methods.

Code

public static function extract_list_wrapper_values(array $wrappers, $field) {
  $return = array();
  foreach ($wrappers as $wrapper) {
    if (is_array($wrapper)) {
      $values = self::extract_list_wrapper_values($wrapper, $field);
      if ($values) {
        $return = array_merge($return, $values);
      }
    }
    else {
      try {
        if ($field == 'entity object') {
          $return[] = $wrapper
            ->value();
        }
        elseif (isset($wrapper->{$field})) {
          $return[] = $wrapper->{$field}
            ->value(array(
            'identifier' => TRUE,
          ));
        }
      } catch (EntityMetadataWrapperException $e) {

        // An exception probably signifies a non-present property, so we just
        // ignore it.
      }
    }
  }
  return $return;
}