<?php 
 
use eftec\MessageList; 
use eftec\ValidationOne; 
include "../vendor/autoload.php"; 
 
/** 
 * @param string $prefix 
 * @return ValidationOne 
 */ 
function getVal($prefix='frm_') { 
    global $validation; 
    if ($validation===null) { 
        $validation=new ValidationOne($prefix); 
    } 
    return $validation; 
} 
 
/** 
 * @return MessageList|null 
 */ 
function messages() { 
    global $errorList; 
    if ($errorList===null) { 
        $errorList=new MessageList(); 
    } 
    return $errorList; 
} 
 
function generateTable($array,$css=true){ 
    if (!isset($array[0])) { 
        $tmp=$array; 
        $array=array(); 
        $array[0]=$tmp; 
    } // create an array with a single element 
    if ($array[0]===null) { 
        return "NULL<br>"; 
    } 
    if ($css===true) { 
        $html = 
            '<style>.generateTable { 
            border-collapse: collapse; 
            width: 100%; 
        } 
        .generateTable td, .generateTable th { 
            border: 1px solid #ddd; 
            padding: 8px; 
        } 
        .generateTable tr:nth-child(even){background-color: #f2f2f2;}         
        .generateTable tr:hover {background-color: #ddd;}         
        .generateTable th { 
            padding-top: 12px; 
            padding-bottom: 12px; 
            text-align: left; 
            background-color: #4CAF50; 
            color: white; 
        } 
        </style>'; 
    } else { 
        $html=''; 
    } 
    $html .= '<table class="'.(is_string($css)?$css:'generateTable').'">'; 
    // header row 
    $html .= '<thead><tr >'; 
    foreach($array[0] as $key=>$value){ 
        $html .= '<th >' . htmlspecialchars($key) . '</th>'; 
    } 
    $html .= '</tr></thead>'; 
 
    // data rows 
    foreach( $array as $key=>$value){ 
        $html .= '<tr >'; 
        foreach($value as $key2=>$value2){ 
            if (is_array($value2)) { 
                $html .= '<td >' . generateTable($value2). '</td>'; 
            } else { 
                $html .= '<td >' . htmlspecialchars($value2) . '</td>'; 
            } 
 
        } 
        $html .= '</tr>'; 
    } 
 
    // finish table and return it 
 
    $html .= '</table>'; 
    return $html; 
}
 
 |