Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function views_entity_fields($view_name, $view_display_id = 'default', $field_names = array()) {
- // Fetch Views metadata.
- $view = views_get_view($view_name);
- $results = views_get_view_result($view_name, $view_display_id);
- $entity_type = $view->base_table;
- $entity_key = $view->base_field;
- // Fetch Views-selected entities.
- $entity_ids = array();
- foreach ($results as $result) {
- $entity_ids[] = $result->$entity_key;
- }
- $entities = entity_load($entity_type, $entity_ids);
- // Fetch renderable array and rendered values of each named field and selected entity.
- $entities_data = array();
- foreach($entities as $entity) {
- $entity_data = array();
- foreach ($field_names as $field_name) {
- $field_items = field_get_items($entity_type, $entity, $field_name);
- $field_values = array();
- foreach($field_items as $field_item) {
- $field_value = field_view_value($entity_type, $entity, $field_name, $field_item);
- $field_value['#render'] = render($field_value);
- $field_values[] = $field_value;
- }
- $entity_data[$field_name] = $field_values;
- }
- $entities_data[] = $entity_data;
- }
- return $entities_data;
- }
- function get_bundle_field_names($bundle_type, $entity_type = 'node') {
- $field_map = field_info_field_map();
- $field_names = array();
- foreach ($field_map as $field_name => $field_info) {
- if (in_array($entity_type, array_keys($field_info['bundles'])) && in_array($bundle_type, $field_info['bundles'][$entity_type])) {
- $field_names[] = $field_name;
- }
- }
- return $field_names;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement