Aggregation Forces Body to Display Full Unrendered HTML

Created on 21 February 2013, about 12 years ago
Updated 31 January 2025, 2 months ago

How I got to this problem: I am upgrading a site from D6 to D7, following standard upgrade paths CCK Content Migrate. I ended up re-creating all of my views for this upgrade.

My view is fairly complex, it is designed to show a list of upcoming events where the date data is stored inside of a field collection. Once the date (or several dates) has passed, or one/all of the individual dates are marked cancelled (hence the field collection) it no longer displays that event. The initial problem I had was preventing Views from displaying the event more than once for each date in the field collection. I attempted to use the query setting “Distinct” and “Pure Distinct” but neither worked. I then discovered the “Use Aggregation” option. Using an excluded NID to group and also including Distinct in the query settings obtains the objective of preventing each event being repeated in my list for each item in the field collection.

What happens: It appears that aggregation causes HTML in the Body to be rendered visible to the user. That is, it now shows HTML tags both in the preview and on the page I am creating with this view. It also doesn’t cut the display of the body at the teaser break line.

What should happen: HTML should be rendered normally and not display HTML tags.

System and Version Information: Latest release of Drupal 7.19, PHP 5.2.17, MySQL 5.5.23-55, Apache…
Any insight or help would be greatly appreciated!

View Export:

$view = new view();
$view->name = 'upcoming_events_page';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Upcoming Events Page';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Upcoming Events Feature';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['group_by'] = TRUE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['distinct'] = TRUE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'fields';
/* Footer: Global: Text area */
$handler->display->display_options['footer']['area']['id'] = 'area';
$handler->display->display_options['footer']['area']['table'] = 'views';
$handler->display->display_options['footer']['area']['field'] = 'area';
$handler->display->display_options['footer']['area']['content'] = '<h2 class="viewmoreevents">View More Events</h2>';
$handler->display->display_options['footer']['area']['format'] = '2';
/* No results behavior: Global: Text area */
$handler->display->display_options['empty']['area']['id'] = 'area';
$handler->display->display_options['empty']['area']['table'] = 'views';
$handler->display->display_options['empty']['area']['field'] = 'area';
$handler->display->display_options['empty']['area']['empty'] = TRUE;
$handler->display->display_options['empty']['area']['content'] = 'There are currently no upcoming events scheduled. Please check back soon or join our newsletter to be notified of upcoming events.';
$handler->display->display_options['empty']['area']['format'] = '2';
/* Relationship: Content: Event Schedule (field_event_schedule) */
$handler->display->display_options['relationships']['field_event_schedule_value']['id'] = 'field_event_schedule_value';
$handler->display->display_options['relationships']['field_event_schedule_value']['table'] = 'field_data_field_event_schedule';
$handler->display->display_options['relationships']['field_event_schedule_value']['field'] = 'field_event_schedule_value';
/* Field: Content: Nid */
$handler->display->display_options['fields']['nid']['id'] = 'nid';
$handler->display->display_options['fields']['nid']['table'] = 'node';
$handler->display->display_options['fields']['nid']['field'] = 'nid';
$handler->display->display_options['fields']['nid']['label'] = '';
$handler->display->display_options['fields']['nid']['exclude'] = TRUE;
$handler->display->display_options['fields']['nid']['element_label_colon'] = FALSE;
/* Field: Content: Artwork */
$handler->display->display_options['fields']['field_artwork']['id'] = 'field_artwork';
$handler->display->display_options['fields']['field_artwork']['table'] = 'field_data_field_artwork';
$handler->display->display_options['fields']['field_artwork']['field'] = 'field_artwork';
$handler->display->display_options['fields']['field_artwork']['label'] = '';
$handler->display->display_options['fields']['field_artwork']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_artwork']['click_sort_column'] = 'fid';
$handler->display->display_options['fields']['field_artwork']['settings'] = array(
  'image_style' => 'homepage_feature',
  'image_link' => 'content',
);
$handler->display->display_options['fields']['field_artwork']['group_column'] = 'entity_id';
/* Field: Content: Title */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['title']['element_type'] = 'h2';
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
/* Field: Content: Subtitle */
$handler->display->display_options['fields']['field_event_subtitle']['id'] = 'field_event_subtitle';
$handler->display->display_options['fields']['field_event_subtitle']['table'] = 'field_data_field_event_subtitle';
$handler->display->display_options['fields']['field_event_subtitle']['field'] = 'field_event_subtitle';
$handler->display->display_options['fields']['field_event_subtitle']['label'] = '';
$handler->display->display_options['fields']['field_event_subtitle']['element_type'] = 'h3';
$handler->display->display_options['fields']['field_event_subtitle']['element_label_colon'] = FALSE;
/* Field: Content: Event Schedule */
$handler->display->display_options['fields']['field_event_schedule']['id'] = 'field_event_schedule';
$handler->display->display_options['fields']['field_event_schedule']['table'] = 'field_data_field_event_schedule';
$handler->display->display_options['fields']['field_event_schedule']['field'] = 'field_event_schedule';
$handler->display->display_options['fields']['field_event_schedule']['label'] = '';
$handler->display->display_options['fields']['field_event_schedule']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_event_schedule']['type'] = 'field_collection_views_view';
$handler->display->display_options['fields']['field_event_schedule']['settings'] = array(
  'name' => 'upcoming_event_schedule_table',
  'display_id' => 'default',
  'add' => '',
);
$handler->display->display_options['fields']['field_event_schedule']['group_column'] = 'entity_id';
$handler->display->display_options['fields']['field_event_schedule']['delta_offset'] = '0';
/* Field: Content: Link */
$handler->display->display_options['fields']['view_node']['id'] = 'view_node';
$handler->display->display_options['fields']['view_node']['table'] = 'views_entity_node';
$handler->display->display_options['fields']['view_node']['field'] = 'view_node';
$handler->display->display_options['fields']['view_node']['label'] = '';
$handler->display->display_options['fields']['view_node']['element_type'] = 'h4';
$handler->display->display_options['fields']['view_node']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['view_node']['text'] = 'View Event Details';
/* Field: Content: Body */
$handler->display->display_options['fields']['body_1']['id'] = 'body_1';
$handler->display->display_options['fields']['body_1']['table'] = 'field_data_body';
$handler->display->display_options['fields']['body_1']['field'] = 'body';
$handler->display->display_options['fields']['body_1']['label'] = '';
$handler->display->display_options['fields']['body_1']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['body_1']['type'] = 'text_summary_or_trimmed';
$handler->display->display_options['fields']['body_1']['settings'] = array(
  'trim_length' => 600,
);
/* Sort criterion: Field collection item: Date -  start date (field_event_date) */
$handler->display->display_options['sorts']['field_event_date_value']['id'] = 'field_event_date_value';
$handler->display->display_options['sorts']['field_event_date_value']['table'] = 'field_data_field_event_date';
$handler->display->display_options['sorts']['field_event_date_value']['field'] = 'field_event_date_value';
$handler->display->display_options['sorts']['field_event_date_value']['relationship'] = 'field_event_schedule_value';
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'event' => 'event',
);
$handler->display->display_options['filters']['type']['group'] = 1;
/* Filter criterion: Field collection item: Date -  start date (field_event_date) */
$handler->display->display_options['filters']['field_event_date_value']['id'] = 'field_event_date_value';
$handler->display->display_options['filters']['field_event_date_value']['table'] = 'field_data_field_event_date';
$handler->display->display_options['filters']['field_event_date_value']['field'] = 'field_event_date_value';
$handler->display->display_options['filters']['field_event_date_value']['relationship'] = 'field_event_schedule_value';
$handler->display->display_options['filters']['field_event_date_value']['operator'] = '>=';
$handler->display->display_options['filters']['field_event_date_value']['group'] = 1;
$handler->display->display_options['filters']['field_event_date_value']['granularity'] = 'minute';
$handler->display->display_options['filters']['field_event_date_value']['default_date'] = 'now -1 hour';
/* Filter criterion: Field collection item: Cancelled (field_cancelled) */
$handler->display->display_options['filters']['field_cancelled_value']['id'] = 'field_cancelled_value';
$handler->display->display_options['filters']['field_cancelled_value']['table'] = 'field_data_field_cancelled';
$handler->display->display_options['filters']['field_cancelled_value']['field'] = 'field_cancelled_value';
$handler->display->display_options['filters']['field_cancelled_value']['relationship'] = 'field_event_schedule_value';
$handler->display->display_options['filters']['field_cancelled_value']['operator'] = 'not';
$handler->display->display_options['filters']['field_cancelled_value']['value'] = array(
  1 => '1',
);

/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block');
$handler->display->display_options['defaults']['hide_admin_links'] = FALSE;

/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page_1');
$handler->display->display_options['defaults']['hide_admin_links'] = FALSE;
$handler->display->display_options['path'] = 'events';
$handler->display->display_options['menu']['type'] = 'normal';
$handler->display->display_options['menu']['title'] = 'Upcoming Events';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['name'] = 'main-menu';
$handler->display->display_options['menu']['context'] = 0;
$translatables['upcoming_events_page'] = array(
  t('Master'),
  t('Upcoming Events Feature'),
  t('more'),
  t('Apply'),
  t('Reset'),
  t('Sort by'),
  t('Asc'),
  t('Desc'),
  t('<h2 class="viewmoreevents">View More Events</h2>'),
  t('There are currently no upcoming events scheduled. Please check back soon or join our newsletter to be notified of upcoming events.'),
  t('field collection item from field_event_schedule'),
  t('View Event Details'),
  t('Block'),
  t('Page'),
);

Discussion: With regards to aggregation, seems odd to me that there isn't a 'Do nothing' or 'Print the Field' function in the Aggregation Settings. If aggregation is not the method for doing this, keeping in mind that Distinct and Pure Distinct doesn't work (it used to work when I was using Views 2 with CCK multigroup) is there any other method I can do to prevent these duplicates?

🐛 Bug report
Status

Active

Version

3.10

Component

aggregator data

Created by

🇨🇦Canada rbrownell Ottawa, Ontario, Canada

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.71.5 2024