Index: trunk/core/kernel/db/db_tag_processor.php =================================================================== diff -u -r4029 -r4043 --- trunk/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 4029) +++ trunk/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 4043) @@ -1471,6 +1471,27 @@ $object =& $this->Application->recallObject($this->getPrefixSpecial(), $this->Prefix, $params); return $object; } + + /** + * Group list records by header, saves internal order in group + * + * @param Array $records + * @param string $heading_field + */ + function groupRecords(&$records, $heading_field) + { + $sorted = Array(); + $i = 0; $record_count = count($records); + while ($i < $record_count) { + $sorted[ $records[$i][$heading_field] ][] = $records[$i]; + $i++; + } + + $records = Array(); + foreach ($sorted as $heading => $heading_records) { + $records = array_merge_recursive($records, $heading_records); + } + } }