<?php

/**
 * Genera código HTML para las opciones de un elemento de selección utilizando una vista predeterminada.
 *
 * @param array $data La matriz de datos que contiene las opciones y las etiquetas de grupo.
 *                    Cada elemento de la matriz debe ser una matriz asociativa con las siguientes claves:
 *                    - name (string): La etiqueta del grupo de opciones.
 *                    - modules (array): Una matriz de opciones. Cada opción debe ser una matriz asociativa con las siguientes claves:
 *                                       - folder (string): El atributo de valor de la opción.
 *                                       - name (string): El contenido del texto de la opción.
 *
 * @return string The generated HTML code.
 */
function generateHtmlOptionInSelectForDefaultView(array $data): string
{
    $html = "";
    foreach ($data as $item) {
        if (is_bool($item['modules'])) {
            $html .= "<option value='". $item['folder'] ."'>" . $item['name'] . "</option>";
        } else {
            $html .= "<optgroup label='" . $item['name'] . "'>\n";
            //
            if (isset($item['modules'])) {
                foreach ($item['modules'] as $module) {
                    $html .= "<option value='" . $module['folder'] . "'>" . $module['name'] . "</option>\n";
                }
            }
            //
            $html .= "</optgroup>\n";
        }
    }
    //
    return $html;
}

//
$_groups = fetchGroupMenus();