public function reference_table_formatter_base_type::render_table in Reference Table Formatter 7
Render a table of content from the plugin.
Parameters
$items: The content items to render.
Return value
array A table array.
File
- ./
reference_table_formatter_base_type.inc, line 222 - A base class for the "reference type" plugin.
Class
- reference_table_formatter_base_type
- Class reference_table_formatter_base_type
Code
public function render_table($items) {
// The fields that are renderable on this specific bundle.
$renderable_fields = $this
->get_renderable_fields();
// The fields the admin has decided to render.
$fields_to_render = $this
->get_configured_field_list();
foreach ($fields_to_render as $i => $field_name) {
if (!isset($renderable_fields[$field_name])) {
unset($fields_to_render[$i]);
}
}
$table = array(
'#theme' => 'table',
'#rows' => array(),
);
// Optionally display a table header.
if ($this->settings['show_header']) {
$table['#header'] = array();
foreach ($fields_to_render as $field_name) {
$label = $renderable_fields[$field_name];
$table['#header'][] = $label;
}
}
// Render each field as a cell in a row.
foreach ($items as $item) {
$row =& $table['#rows'][];
foreach ($fields_to_render as $field_name) {
$loaded_item = $this
->load_entity_from_item($item);
if ($this
->is_field($field_name)) {
if (field_get_items($this
->entity_name(), $loaded_item, $field_name)) {
$renderable_field = field_view_field($this
->entity_name(), $loaded_item, $field_name, $this->settings['view_mode']);
$renderable_field['#label_display'] = 'hidden';
}
else {
$renderable_field = array();
}
}
else {
$renderable_field = array(
'#markup' => $loaded_item->{$field_name},
);
}
$row[] = render($renderable_field);
}
}
if ($this
->hide_empty()) {
$this
->hide_empty_columns($table);
}
return $table;
}