Issue #1927884 by Alan D., swentel: Always return an array from field_get_items().

8.0.x
webchick 2013-03-30 16:44:45 -07:00
parent e8ee80086d
commit 46284d2e07
2 changed files with 4 additions and 7 deletions

View File

@ -991,12 +991,12 @@ function field_view_field(EntityInterface $entity, $field_name, $display_options
* Defaults to the current language. * Defaults to the current language.
* *
* @return * @return
* An array of field items keyed by delta if available, FALSE otherwise. * An array with available field items keyed by delta.
*/ */
function field_get_items(EntityInterface $entity, $field_name, $langcode = NULL) { function field_get_items(EntityInterface $entity, $field_name, $langcode = NULL) {
$entity = $entity->getBCEntity(); $entity = $entity->getBCEntity();
$langcode = field_language($entity, $field_name, $langcode); $langcode = field_language($entity, $field_name, $langcode);
return isset($entity->{$field_name}[$langcode]) ? $entity->{$field_name}[$langcode] : FALSE; return isset($entity->{$field_name}[$langcode]) ? $entity->{$field_name}[$langcode] : array();
} }
/** /**

View File

@ -139,14 +139,11 @@ class Tid extends ArgumentDefaultPluginBase {
foreach ($fields as $name => $info) { foreach ($fields as $name => $info) {
$field_info = field_info_field($name); $field_info = field_info_field($name);
if ($field_info['type'] == 'taxonomy_term_reference') { if ($field_info['type'] == 'taxonomy_term_reference') {
$items = field_get_items($node, $name); foreach (field_get_items($node, $name) as $item) {
if (is_array($items)) {
foreach ($items as $item) {
$taxonomy[$item['tid']] = $field_info['settings']['allowed_values'][0]['vocabulary']; $taxonomy[$item['tid']] = $field_info['settings']['allowed_values'][0]['vocabulary'];
} }
} }
} }
}
if (!empty($this->options['limit'])) { if (!empty($this->options['limit'])) {
$tids = array(); $tids = array();
// filter by vocabulary // filter by vocabulary