annotate sites/all/modules/references/views/references_plugin_style.inc @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * @file
danielebarchiesi@4 5 * Handler for references_plugin_style.
danielebarchiesi@4 6 */
danielebarchiesi@4 7 class references_plugin_style extends views_plugin_style {
danielebarchiesi@4 8 function render() {
danielebarchiesi@4 9 $options = $this->display->handler->get_option('references_options');
danielebarchiesi@4 10
danielebarchiesi@4 11 // Play nice with View UI 'preview' : if the view is not executed through
danielebarchiesi@4 12 // _*_reference_potential_references_views(), just display the HTML.
danielebarchiesi@4 13 if (empty($options)) {
danielebarchiesi@4 14 return parent::render();
danielebarchiesi@4 15 }
danielebarchiesi@4 16
danielebarchiesi@4 17 $title_field = $options['title_field'];
danielebarchiesi@4 18
danielebarchiesi@4 19 // Group the rows according to the grouping field, if specified.
danielebarchiesi@4 20 $sets = $this->render_grouping($this->view->result, $this->options['grouping']);
danielebarchiesi@4 21
danielebarchiesi@4 22 // Grab the alias of the 'id' field added by references_plugin_display.
danielebarchiesi@4 23 $id_field_alias = $this->display->handler->id_field_alias;
danielebarchiesi@4 24
danielebarchiesi@4 25 $results = array();
danielebarchiesi@4 26 $this->view->row_index = 0;
danielebarchiesi@4 27 foreach ($sets as $title => $records) {
danielebarchiesi@4 28 foreach ($records as $label => $values) {
danielebarchiesi@4 29 // Render the row.
danielebarchiesi@4 30 $rendered = $this->row_plugin->render($values);
danielebarchiesi@4 31 // Remove linebreaks and extra spaces introduced by templates.
danielebarchiesi@4 32 $rendered = preg_replace('/\s+/', ' ', trim($rendered));
danielebarchiesi@4 33
danielebarchiesi@4 34 // Collect the rendered row, and the raw title value.
danielebarchiesi@4 35 $results[$values->{$id_field_alias}] = array(
danielebarchiesi@4 36 'rendered' => $rendered,
danielebarchiesi@4 37 'group' => $title,
danielebarchiesi@4 38 'title' => $this->view->field[$title_field]->get_value($values),
danielebarchiesi@4 39 );
danielebarchiesi@4 40
danielebarchiesi@4 41 $this->view->row_index++;
danielebarchiesi@4 42 }
danielebarchiesi@4 43 }
danielebarchiesi@4 44 unset($this->view->row_index);
danielebarchiesi@4 45
danielebarchiesi@4 46 return $results;
danielebarchiesi@4 47 }
danielebarchiesi@4 48 }