[fusionregistry-commitlog] SF.net SVN: fusionregistry: [48] branches/stable_3_0_x/upload/sources/
Brought to you by:
copland007
From: SVN c. <fus...@li...> - 2008-02-17 09:35:52
|
Revision: 48 http://fusionregistry.svn.sourceforge.net/fusionregistry/?rev=48&view=rev Author: copland007 Date: 2008-02-17 01:35:56 -0800 (Sun, 17 Feb 2008) Log Message: ----------- Add support for ORDER BY clause in get_cf_defs for cache retrieval sorting. Change get_cf_groups to retrieve from cache instead of database. Modified Paths: -------------- branches/stable_3_0_x/upload/sources/components_public/fusionscripts/fusionregistry/lib/custom_fields.php Modified: branches/stable_3_0_x/upload/sources/components_public/fusionscripts/fusionregistry/lib/custom_fields.php =================================================================== --- branches/stable_3_0_x/upload/sources/components_public/fusionscripts/fusionregistry/lib/custom_fields.php 2008-02-16 21:06:45 UTC (rev 47) +++ branches/stable_3_0_x/upload/sources/components_public/fusionscripts/fusionregistry/lib/custom_fields.php 2008-02-17 09:35:56 UTC (rev 48) @@ -172,10 +172,21 @@ // Now handle the ORDER BY clause if ( isset($opts['ORDER BY']) && is_array($opts['ORDER BY']) ) { + $sorted = array(); foreach ( $opts['ORDER BY'] as $order_field => $order_value ) { - // TODO - loop through $results and re-sort + foreach ( $results as $field_num => $field_row ) + { + $sorted[ intval($field_row[ $order_field ]) ] = $field_row; + } + + if ( $order_value == 'DESC' ) + { + $sorted = array_reverse($results); + } } + + $results = $sorted; } } @@ -278,23 +289,20 @@ } else { - $query = 'SELECT field_id, field_name, field_type, field_options, '. - 'field_default, field_required, field_size, field_rows, '. - 'field_cols, field_order, field_browse, field_highlight, '. - 'field_group_id, field_search '. - 'FROM ibf_registry_field_defs '. - 'WHERE field_group_id IS NOT NULL '. - 'ORDER BY field_group_id ASC, field_order ASC, field_name ASC'; - - $rs = $this->ipsclass->DB->query($query); - // Build our Custom Field Group data structure, we will be returning // a complex structure of arrays of arrays $this->_cf_groups = array(); - while ( $row = $this->ipsclass->DB->fetch_row($rs) ) + $cf_defs = $this->get_cf_defs( array('ORDER BY' => array('field_order' => 'ASC') ) ); + + foreach ( $cf_defs as $field_num => $field_row ) { - $this->_cf_groups[$row['field_group_id']][] = $row; + if ( $field_row['field_group_id'] == "" ) + { + continue; + } + + $this->_cf_groups[ $field_row['field_group_id'] ][] = $field_row; } return $this->_cf_groups; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |