forked from GNUsocial/gnu-social
[UTIL][FormFields] Add option language form field so the user can provide no selection
This commit is contained in:
parent
ab5e074d9e
commit
6a9388a789
@ -80,9 +80,16 @@ abstract class FormFields
|
|||||||
/**
|
/**
|
||||||
* Create a from field for `select`ing a language for $actor, in reply or related to $context_actor
|
* Create a from field for `select`ing a language for $actor, in reply or related to $context_actor
|
||||||
*/
|
*/
|
||||||
public static function language(Actor $actor, ?Actor $context_actor, string $label, ?string $help = null, bool $multiple = false, bool $required = true, ?bool $use_short_display = null, ?string $form_id = null): array
|
public static function language(Actor $actor, ?Actor $context_actor, string $label, ?string $help = null, bool $multiple = false, bool $required = true, ?bool $use_short_display = null, ?string $form_id = null, bool $use_no_selection = false): array
|
||||||
{
|
{
|
||||||
[$language_choices, $preferred_language_choices] = Language::getSortedLanguageChoices($actor, $context_actor, use_short_display: $use_short_display);
|
[$language_choices, $preferred_language_choices] = Language::getSortedLanguageChoices($actor, $context_actor, use_short_display: $use_short_display);
|
||||||
|
if ($use_no_selection) {
|
||||||
|
$no_select = _m('(no selection)');
|
||||||
|
// Put it at the beginning of $preferred_language_choices
|
||||||
|
$preferred_language_choices = array_merge([$no_select => 'null'], $preferred_language_choices);
|
||||||
|
// but at the top of $language_choices
|
||||||
|
$language_choices[$no_select] = 'null';
|
||||||
|
}
|
||||||
return [
|
return [
|
||||||
$form_id ?? 'language' . ($multiple ? 's' : ''),
|
$form_id ?? 'language' . ($multiple ? 's' : ''),
|
||||||
ChoiceType::class,
|
ChoiceType::class,
|
||||||
|
Loading…
Reference in New Issue
Block a user