Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mperrando/05ecafdd5a2bb62561e686b7ee355304 to your computer and use it in GitHub Desktop.
Save mperrando/05ecafdd5a2bb62561e686b7ee355304 to your computer and use it in GitHub Desktop.
diff --git a/modules/field/views_handler_field_field.inc b/modules/field/views_handler_field_field.inc
index e30a1e8..1fc4309 100644
--- a/modules/field/views_handler_field_field.inc
+++ b/modules/field/views_handler_field_field.inc
@@ -394,6 +394,9 @@ class views_handler_field_field extends views_handler_field {
$options['separator'] = array(
'default' => ', '
);
+ $options['separator_last_override'] = array(
+ 'default' => NULL
+ );
$options['field_api_classes'] = array(
'default' => FALSE,
@@ -544,6 +547,18 @@ class views_handler_field_field extends views_handler_field {
'#fieldset' => 'multiple_field_settings',
);
+ $form['separator_last_override'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Separator last override'),
+ '#default_value' => $this->options['separator_last_override'],
+ '#dependency' => array(
+ 'radio:options[multi_type]' => array('separator'),
+ 'edit-options-group-rows' => array(TRUE),
+ ),
+ '#dependency_count' => 2,
+ '#fieldset' => 'multiple_field_settings',
+ );
+
$form['delta_limit'] = array(
'#type' => $type,
'#size' => $size,
@@ -710,7 +725,7 @@ class views_handler_field_field extends views_handler_field {
}
if ($this->options['multi_type'] == 'separator') {
- return implode(filter_xss_admin($this->options['separator']), $items);
+ return $this->render_with_separator($items);
}
else {
return theme('item_list',
@@ -723,6 +738,15 @@ class views_handler_field_field extends views_handler_field {
}
}
+ function render_with_separator($items) {
+ if (count($items) >= 2 && !empty($this->options['separator_last_override'])) {
+ return implode(filter_xss_admin($this->options['separator']), array_slice($items, 0, count($items) - 1)) . $this->options['separator_last_override'] . end($items);
+ }
+ else {
+ return implode(filter_xss_admin($this->options['separator']), $items);
+ }
+ }
+
function get_items($values) {
return $values->{'field_' . $this->options['id']};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment