_build_additional_includes($data['additional_includes_top'] ?? []);
$data['additional_includes_btm'] = $this->_build_additional_includes($data['additional_includes_btm'] ?? []);
load('admin', $data);
}
/**
* Builds CSS include code for the given file.
*
* @param string $file File path for CSS include.
* @return string CSS include code.
*/
function _build_css_include_code(string $file): string {
$code = '';
$code = str_replace('"">', '">', $code);
return $code;
}
/**
* Builds JavaScript include code for the given file.
*
* @param string $file File path for JavaScript include.
* @return string JavaScript include code.
*/
function _build_js_include_code(string $file): string {
$code = '';
$code = str_replace('"">', '">', $code);
return $code;
}
/**
* Builds HTML code for additional includes based on file types.
*
* @param array $files Array of file names.
* @return string HTML code for additional includes.
*/
function _build_additional_includes(array|string|null $files): string {
if (!is_array($files)) {
return ''; // Return an empty string if $files is not an array
}
$html = '';
$tabs_str = ' '; // Assuming 4 spaces per tab
foreach ($files as $index => $file) {
$file_bits = explode('.', $file);
$filename_extension = end($file_bits);
if ($index > 0) {
$html .= $tabs_str; // Add tabs for lines beyond the first
}
$html .= match ($filename_extension) {
'js' => $this->_build_js_include_code($file), // Add JS separately without a newline
'css' => $this->_build_css_include_code($file) . PHP_EOL, // Add a newline for CSS files
default => $file . PHP_EOL, // Add a newline for other file types
};
}
return trim($html) . PHP_EOL;
}
}