diff --git a/modules/field/views_handler_field_field.inc b/modules/field/views_handler_field_field.inc index a91e13a..dbe37f7 100644 --- a/modules/field/views_handler_field_field.inc +++ b/modules/field/views_handler_field_field.inc @@ -383,6 +383,10 @@ class views_handler_field_field extends views_handler_field { 'default' => FALSE, 'bool' => TRUE, ); + $options['delta_random'] = array( + 'default' => FALSE, + 'bool' => TRUE, + ); $options['multi_type'] = array( 'default' => 'separator' @@ -576,6 +580,14 @@ class views_handler_field_field extends views_handler_field { '#title' => t('First and last only'), '#type' => 'checkbox', '#default_value' => $this->options['delta_first_last'], + '#suffix' => $suffix, + '#dependency' => array('edit-options-group-rows' => array(TRUE)), + '#fieldset' => 'multiple_field_settings', + ); + $form['delta_random'] = array( + '#title' => t('Random order'), + '#type' => 'checkbox', + '#default_value' => $this->options['delta_random'], '#suffix' => '', '#dependency' => array('edit-options-group-rows' => array(TRUE)), '#fieldset' => 'multiple_field_settings', @@ -757,6 +769,11 @@ class views_handler_field_field extends views_handler_field { return array(); } + // If requested, randomize the order of the deltas + if ($this->options['delta_random'] && !empty($entity->{$this->definition['field_name']})) { + shuffle($entity->{$this->definition['field_name']}[$langcode]); + } + // We are supposed to show only certain deltas. if ($this->limit_values && !empty($entity->{$this->definition['field_name']})) { $all_values = !empty($entity->{$this->definition['field_name']}[$langcode]) ? $entity->{$this->definition['field_name']}[$langcode] : array();