This is effectively to implement the same feature that went into Drupal core v8.8.x with https://www.drupal.org/project/drupal/issues/3065903 (change record: Options sorting ability has been added to Select form element)
Consider this code:
$options = array(
'something' => t('One thing'),
'something_else' => t('Another thing'),
'yet_another' => t('Yet another thing'),
);
asort($options); // Sort options here, before adding the "nothing" option as the first option.
$form['select_element'] = array(
'#type' => 'select',
'#title' => t('Select something'),
'#options' => array(
'none' => t('Nothing'),
) + $options,
);
This would result in a select element in the form, with its options listed alphabetically, but with the "nothing" option being first (intentionally not included in the sorting): - Nothing - Another thing - One thing - Yet another thing
Now consider the translations of the options in Greek: "Nothing" → "Τίποτα" "Another thing" → "Κάτι άλλο" "One thing" → "Κάτι" "Yet another thing" → "Κάτι ακόμη"
Actual order (not alphabetical, because the sorting has happened in asort() for the English strings ):
- Τίποτα
- Κάτι άλλο
- Κάτι
- Κάτι ακόμη
Expected order (properly alphabetical, in the translated language - not according to the source language): - Τίποτα - Κάτι - Κάτι ακόμη - Κάτι άλλο
How things should work ideally:
$options = array(
'something' => t('One thing'),
'something_else' => t('Another thing'),
'yet_another' => t('Yet another thing'),
);
$form['select_element'] = array(
'#type' => 'select',
'#title' => t('Select something'),
'#options' => array(
'none' => t('Nothing'),
) + $options,
'#sort_options' => TRUE, // Options are sorted, by their respective translated labels.
'#sort_start' => 1, // Start sorting after the 1st option ("nothing"), which needs to remain at the top of the list.
);
Recent comments
This is a really good idea. I nearly always search on GitHub if I'm not sure of the name. That said, there is still room for improvement in GitHub as many repos have a useless description...
Weekly dev meetings to focus on top wish list items start March 26, 2026.
I'd suggest module search to get discussed as a possible top priority. Our module search page on backdropcms.org doesn't do a good job. Neither does the module search on admin/...
Weekly dev meetings to focus on top wish list items start March 26, 2026.
Hi Jochen You could test https://github.com/backdrop-contrib/commerce_invoice_receipt which doesn't yet have a release, but may meet your needs when combined with other modules to generate...
Commerce modules