pepebe
3/12/2012 - 4:27 PM

MIGX: Enable sorting by any columns in MIGX

MIGX: Enable sorting by any columns in MIGX

this worked 8 months before. I have to check if it is still working...

Just a tiny hack to enable sorting a MIGx by ANY one of it's columns.

Add the following lines below /* get default properties */ near the top:

$sortBy = $modx->getOption('sortBy', $scriptProperties, '');
$sortOrder = $modx->getOption('sortOrder', $scriptProperties, 'asc');


Just before $idx = 0; (arround line #122) add this bit of code:
// v1.1
            if( array_search( $sortBy , array_Keys($items) ) !== FALSE ) {          
                foreach($items as $k=>$v) {
                    $b[$k] = $v[$sortBy];
                }
                    switch( $sortDir ) {
                    case'asc':
                        asort( $b );
                        break;
                    case'desc':
                        arsort( $b );
                        break;
                    default:
                        asort( $b );
                        break;
                    }
 
                foreach($b as $key=>$val) {
                    $c[$key] = $items[$key];
                }               
                $items = $c;
            }

Edit: Please note that v1.0 was a cut'n'paste accident. This one works.


Now you can call getImageList with 2 new parameters:

&sortDir=`asc_or_desc`
&sortBy=`add_dataIndex_here`