public function local__contact_formatter::view
3.x local__contact_formatter.inc | public local__contact_formatter::view(&$element, $entity_type, $entity, $langcode, $items, $display) |
Overrides TripalFieldFormatter::view
See also
File
- tripal_chado/
includes/ TripalFields/ local__contact/ local__contact_formatter.inc, line 23
Class
Code
public function view(&$element, $entity_type, $entity, $langcode, $items, $display) {
// Get the settings
$settings = $display['settings'];
$type_term = chado_get_semweb_term('contact', 'type_id');
$name_term = chado_get_semweb_term('contact', 'name');
$description_term = chado_get_semweb_term('contact', 'description');
$headers = array('Name', 'Description', 'Type');
$rows = array();
foreach ($items as $delta => $item) {
$contact = $item['value'];
if (!$contact) {
continue;
}
// Get the field values
$contact_name = $contact[$name_term];
$description = $contact[$description_term];
$type = $contact[$type_term];
// Add a link i there is an entity.
if (array_key_exists('entity', $item['value']) and $item['value']['entity']) {
list($entity_type, $entity_id) = explode(':', $item['value']['entity']);
$contact_name = l($contact_name, "bio_data/" . $entity_id, array('attributes' => array('target' => "_blank")));
}
$rows[] = array($contact_name, $description, $type);
}
$table = array(
'header' => $headers,
'rows' => $rows,
'attributes' => array(
'id' => 'tripal_linker-table-contact-object',
'class' => 'tripal-data-table'
),
'sticky' => FALSE,
'caption' => "",
'colgroups' => array(),
'empty' => 'There are no contacts available.',
);
$content = theme_table($table);
if (count($items) > 0) {
// once we have our table array structure defined, we call Drupal's theme_table()
// function to generate the table.
$element[0] = array(
'#type' => 'markup',
'#markup' => $content,
);
}
}