123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- function chado_wrapper_split_array_agg_results($handler, &$values) {
- if ($handler->aggregated) {
- foreach ($values as $k => $v) {
- if (preg_match('/^{(.*)}$/', $v->{$handler->field_alias}, $matches)) {
- $values[$k]->{$handler->field_alias} = str_getcsv($matches[1]);
- }
- else {
- $values[$k]->{$handler->field_alias} = array();
- }
- }
- }
- return $values;
- }
- function chado_wrapper_is_aggregated_by_join($handler) {
- $aggregated = FALSE;
- $table = $handler->query->get_table_info($handler->table);
- if (preg_match('/aggregator/', $table['join']->definition['handler'])) {
- $aggregated = TRUE;
- }
- return $aggregated;
- }
- function chado_wrapper_is_aggregated_by_result($handler, $values) {
- $aggregated = FALSE;
- $i = 0;
- while (empty($values[$i]->{$handler->field_alias}) AND $i <= sizeof($values)) {
- $i++;
- }
- if (preg_match('/^{.*}$/', $values[$i]->{$handler->field_alias})) {
- $aggregated = TRUE;
- }
- return $aggregated;
- }
- function chado_wrapper_render_items($handler, $values) {
-
-
- if ($handler->aggregated) {
- $items = array();
- $parts = $values->{$handler->field_alias};
- foreach ($parts as $p) {
- $v[ $handler->field_alias ] = $p;
- $val = (object) $v;
- $items[] = $handler->parent_render($val);
- unset($v, $val);
- }
- if ($handler->options['type'] == 'separator') {
- return implode(check_plain($handler->options['separator']), $items);
- }
- else {
- return theme('item_list', $items, NULL, $handler->options['type']);
- }
-
-
- }
- else {
- return $handler->parent_render($values);
- }
- }
|