0d0b9ed681633cb88d2552e16ba64832f5df5dd9 page_manager.admin.inc: Fix for PHP 5.4 warning (missing array) entity_field_value.inc: Fix for errors when using taxonomy fields on selection rules diff --git a/page_manager/page_manager.admin.inc b/page_manager/page_manager.admin.inc index 9567744..46dc86d 100644 --- a/page_manager/page_manager.admin.inc +++ b/page_manager/page_manager.admin.inc @@ -27,7 +27,7 @@ } if (module_exists('advanced_help') && !$js) { - drupal_set_message(theme('advanced_help_topic', 'page_manager', 'getting-started', t('See the getting started guide for more information.'))); + drupal_set_message(theme('advanced_help_topic', array('page_manager', 'getting-started', t('See the getting started guide for more information.')))); } $tasks = page_manager_get_tasks_by_type('page'); diff --git a/plugins/access/entity_field_value.inc b/plugins/access/entity_field_value.inc index 1fb1fe8..2219c8b 100644 --- a/plugins/access/entity_field_value.inc +++ b/plugins/access/entity_field_value.inc @@ -152,8 +152,18 @@ // Check field value. foreach ($field_items as $field_value) { - if (in_array($field_value['value'], $conf_value_array)) { - return TRUE; + if (array_key_exists('value', $field_value)) { + if (in_array($field_value['value'], $conf_value_array)) { + return TRUE; + } + } + elseif (array_key_exists('tid', $field_value)) { + if (in_array($field_value['tid'], $conf_value_array)) { + return TRUE; + } + } + else { + throw new Exception("Invalid key in $field_value field_value"); } } } @@ -168,8 +178,17 @@ } $conf_values = array(); + // Set conf_values foreach ($values[$langcode] as $value) { - $conf_values[] = $value['value']; + if (array_key_exists('value', $value)) { + $conf_values[] = $value['value']; + } + elseif (array_key_exists('tid', $value)) { + $conf_values[] = $value['tid']; + } + else { + throw new Exception("Invalid key in $value value"); + } } return $conf_values; @@ -210,8 +229,16 @@ ctools_include('fields'); $display = field_get_display($instance, $view_mode, $entity); $display['type'] = 'list_default'; + $formatter_type = field_info_formatter_types($display['type']); + $display['module'] = $formatter_type['module']; + $field['settings']['allowed_values_function'] = ''; $function = $display['module'] . '_field_formatter_view'; $items = isset($entity->{$field_name}[LANGUAGE_NONE]) ? $entity->{$field_name}[LANGUAGE_NONE] : array(); + foreach ($items as $key => $item) + { + if (array_key_exists('tid', $item)) + $items[$key]['value'] = $item['tid']; + } if (function_exists($function)) { $elements = $function($entity_type, $entity, $field, $instance, LANGUAGE_NONE, $items, $display); }