  |
309 | 309 | | if ( $value_exists === false ) { |
| |
310 | 310 | | $values_array[$group_id]['data'][] = array('id' => $value_id, |
| |
311 | 311 | | 'text' => $value['value_title'], |
  |
312 | | - | 'default' => $value['default']); |
| |
| 312 | + | 'default' => $value['default'], |
| |
| 313 | + | 'sort_order' => $value['sort_order']); |
|
313 | 314 | | } elseif ( $value['default'] === true ) { |
| |
314 | 315 | | foreach ( $values_array[$group_id]['data'] as &$existing_data ) { |
| |
315 | 316 | | if ( $existing_data['id'] == $value_id ) { |
| |
|
|
 |
… |
|
323 | 324 | | } |
| |
324 | 325 | | } |
| |
325 | 326 | | |
  |
| 327 | + | foreach ( $values_array as $group_id => &$value ) { |
| |
| 328 | + | usort($value['data'], array('osC_Product', '_usortVariantValues')); |
| |
| 329 | + | } |
| |
| 330 | + | |
|
326 | 331 | | return $values_array; |
| |
327 | 332 | | } |
| |
328 | 333 | | |
| |
|
|
 |
… |
|
446 | 451 | | |
| |
447 | 452 | | return $Qproducts; |
| |
448 | 453 | | } |
  |
| 454 | + | |
| |
| 455 | + | protected static function _usortVariantValues($a, $b) { |
| |
| 456 | + | if ( $a['sort_order'] == $b['sort_order'] ) { |
| |
| 457 | + | return strnatcasecmp($a['text'], $b['text']); |
| |
| 458 | + | } |
| |
| 459 | + | |
| |
| 460 | + | return ( $a['sort_order'] < $b['sort_order'] ) ? -1 : 1; |
| |
| 461 | + | } |
  |
449 | 462 | | } |
| |
450 | 463 | | ?> |