* SPDX-FileCopyrightText: 2021 Harald Eilertsen * * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace EternalTerror\ViewHelpers; /** * Return HTML code for a selction box with the given options and preselected value. * * @param string $name The name attribute for the selection box. * @param array $opts The options as arrays of [value, label] pairs. An array * of single values are also acceptable. * @param mixed|int $selected The value of the preselected option, or null if no * option is preselected. * @param string $blank Text to use for "no selection", defaults to "Please * select...". * @return string */ function select_field( string $name, array $opts = array(), $selected = null, string $blank = 'Please select...' ) : string { $body = ""; foreach ( $opts as $opt ) { if ( is_array( $opt ) ) { $value = $opt[0]; $desc = $opt[1] ?? $opt[0]; } else { $value = $opt; $desc = $opt; } $sel = selected( $selected, $value, false ); $body .= ""; } return ""; }