MAPG-180 declare CSS and JS files
This commit is contained in:
9 files changed
+93
-59
No files matched your search
+22
-2
@@ -14,6 +14,8 @@ class Linker
|
||||
$input = ROOT . '/views/' . $this->view . '.php';
|
||||
|
||||
$temporaryFiles = [];
|
||||
$css = [];
|
||||
$js = [];
|
||||
$sections = [];
|
||||
$extra = ['', ''];
|
||||
|
||||
@@ -23,12 +25,14 @@ class Linker
|
||||
|
||||
$extends = $fragment->getExtends();
|
||||
|
||||
$css = array_merge($css, $fragment->getCss());
|
||||
$js = array_merge($js, $fragment->getJs());
|
||||
$sections = array_merge($sections, $fragment->getSections()); //TODO: detect if section defined multiple times
|
||||
$extra[0] = $fragment->getExtra()[0] . $extra[0];
|
||||
$extra[1] = $extra[1] . $fragment->getExtra()[1];
|
||||
|
||||
if ($extends === null) {
|
||||
$this->writeFinal($extra, $input, ROOT . '/cache/views/' . $this->view . '.php');
|
||||
$this->writeFinal($css, $js, $extra, $input, ROOT . '/cache/views/' . $this->view . '.php');
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -74,7 +78,7 @@ class Linker
|
||||
fclose($outputFileHandle);
|
||||
}
|
||||
|
||||
private function writeFinal(array $extra, string $file, string $output): void
|
||||
private function writeFinal(array $css, array $js, array $extra, string $file, string $output): void
|
||||
{
|
||||
$dirname = pathinfo($output, PATHINFO_DIRNAME);
|
||||
if (!is_dir($dirname)) {
|
||||
@@ -91,6 +95,22 @@ class Linker
|
||||
throw new \Exception('Cannot open file ' . $output . 'for writing.');
|
||||
}
|
||||
|
||||
if (count($css) > 0) {
|
||||
fwrite($outputFileHandle, '<?php' . PHP_EOL . '$cssFiles = [];' . PHP_EOL);
|
||||
foreach ($css as $cssFile) {
|
||||
fwrite($outputFileHandle, '$cssFiles[] = ' . $cssFile . ';' . PHP_EOL);
|
||||
}
|
||||
fwrite($outputFileHandle, '?>' . PHP_EOL);
|
||||
}
|
||||
|
||||
if (count($js) > 0) {
|
||||
fwrite($outputFileHandle, '<?php' . PHP_EOL . '$jsFiles = [];' . PHP_EOL);
|
||||
foreach ($js as $jsFile) {
|
||||
fwrite($outputFileHandle, '$jsFiles[] = ' . $jsFile . ';' . PHP_EOL);
|
||||
}
|
||||
fwrite($outputFileHandle, '?>' . PHP_EOL);
|
||||
}
|
||||
|
||||
fwrite($outputFileHandle, $extra[0]);
|
||||
while (($line = fgets($inputFileHandle)) !== false) {
|
||||
fwrite($outputFileHandle, $line);
|
||||
|
||||
Reference in new issue
Block a user