Files
thetool/Layout/default/VueViews/Vue.php
2024-07-16 06:55:46 +00:00

56 lines
1.5 KiB
PHP

<?php
if (!isset($vueViewName)) {
die("vueViewName is not set");
}
if (!isset($mfLayoutPackage)) {
die("mfLayoutPackage is not set");
}
$additionalCSS = $additionalCSS ?? [];
$additionalJS = $additionalJS ?? [];
$additionalJS = [
"bundler.php",
"js/pages/" . $vueViewName . "/" . $vueViewName . ".js",
...$additionalJS,
];
$additionalCSS = [
...$additionalCSS,
'plugins/daterangepicker/daterangepicker.css',
'plugins/vue/tt-components/css/tt-table.css',
'plugins/vue/tt-components/css/tt-loader.css',
];
/**
* Convert PascalCase to snake_case (e.g. PascalCase to pascal-case)
* @param $str string PascalCase string
* @return string snake-case string
*/
function pascalToSnakeCase(string $str): string {
$snakeCase = preg_replace('/(?<!^)([A-Z])/', '-$1', $str);
return strtolower($snakeCase);
}
$vueTagName = pascalToSnakeCase($vueViewName);
include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/vueHeader.php"); ?>
<div id="app">
<tt-page-title
v-if="window['TT_CONFIG'] && window['TT_CONFIG']['PAGE_TITLE'] && window['TT_CONFIG']['PATH']"
:title="window['TT_CONFIG']['PAGE_TITLE']"
:path="window['TT_CONFIG']['PATH']">
</tt-page-title>
<<?php echo $vueTagName; ?>></<?php echo $vueTagName; ?>>
</div>
<script>
const view = new Vue({el: '#app', data: {window: window}});
</script>
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>