collapsible nav targets on mobile
This commit is contained in:
@@ -10,7 +10,7 @@ if (!is_dir(filename: "{$home}/pages/{$page}")) {
|
|||||||
|
|
||||||
$meta = json_decode(
|
$meta = json_decode(
|
||||||
json: file_get_contents(filename: $home . "/pages/" . $page . "/meta.json"),
|
json: file_get_contents(filename: $home . "/pages/" . $page . "/meta.json"),
|
||||||
associative: true
|
associative: true,
|
||||||
);
|
);
|
||||||
|
|
||||||
class Section
|
class Section
|
||||||
@@ -60,7 +60,7 @@ class Section
|
|||||||
return new Section(
|
return new Section(
|
||||||
htmls: array_map(function ($file) use ($root_directory) {
|
htmls: array_map(function ($file) use ($root_directory) {
|
||||||
return Section::parse_file(path: $root_directory . "/" . $file);
|
return Section::parse_file(path: $root_directory . "/" . $file);
|
||||||
}, $file_names)
|
}, $file_names),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -112,14 +112,14 @@ class Main
|
|||||||
sections: array_map(
|
sections: array_map(
|
||||||
callback: fn($file) => Section::create(
|
callback: fn($file) => Section::create(
|
||||||
file_names: $file,
|
file_names: $file,
|
||||||
root_directory: $root_path
|
root_directory: $root_path,
|
||||||
),
|
),
|
||||||
array: $data["sections"]
|
array: $data["sections"],
|
||||||
),
|
),
|
||||||
wallpapers: array_map(
|
wallpapers: array_map(
|
||||||
fn($name) => Wallpaper::create($name, $wallpaper_root_path),
|
fn($name) => Wallpaper::create($name, $wallpaper_root_path),
|
||||||
array: $data["wallpapers"]["images"]
|
array: $data["wallpapers"]["images"],
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -141,8 +141,8 @@ class Wallpaper
|
|||||||
", ",
|
", ",
|
||||||
array_map(
|
array_map(
|
||||||
fn($width) => "{$this->src_dir}/{$width}.{$format} {$width}w",
|
fn($width) => "{$this->src_dir}/{$width}.{$format} {$width}w",
|
||||||
$widths
|
$widths,
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
// return "<img class=\"lazyload\" src=\"{$this->src}\" data-src=\"{$this->data_src}\" alt=\"Wallpaper\">";
|
// return "<img class=\"lazyload\" src=\"{$this->src}\" data-src=\"{$this->data_src}\" alt=\"Wallpaper\">";
|
||||||
return "<img data-sizes=\"auto\" src=\"{$this->src_dir}/mosaic.svg\" data-src=\"{$this->src_dir}/{$widths[0]}.{$format}\" data-srcset=\"{$src_sets}\" class=\"lazyload\" alt=\"Wallpaper\">";
|
return "<img data-sizes=\"auto\" src=\"{$this->src_dir}/mosaic.svg\" data-src=\"{$this->src_dir}/{$widths[0]}.{$format}\" data-srcset=\"{$src_sets}\" class=\"lazyload\" alt=\"Wallpaper\">";
|
||||||
@@ -165,7 +165,7 @@ class Newsboard
|
|||||||
hostname: Newsboard::$config["host"],
|
hostname: Newsboard::$config["host"],
|
||||||
dbName: Newsboard::$config["name"],
|
dbName: Newsboard::$config["name"],
|
||||||
user: Newsboard::$config["user"],
|
user: Newsboard::$config["user"],
|
||||||
password: $password
|
password: $password,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,7 +179,7 @@ class Newsboard
|
|||||||
"limit" => $limit,
|
"limit" => $limit,
|
||||||
"dbCharset" => Newsboard::$config["dbCharset"],
|
"dbCharset" => Newsboard::$config["dbCharset"],
|
||||||
"outCharset" => Newsboard::$config["outCharset"],
|
"outCharset" => Newsboard::$config["outCharset"],
|
||||||
]
|
],
|
||||||
);
|
);
|
||||||
if ($entries !== null) {
|
if ($entries !== null) {
|
||||||
foreach ($entries as $entryData) {
|
foreach ($entries as $entryData) {
|
||||||
@@ -198,12 +198,12 @@ class Newsboard
|
|||||||
|
|
||||||
Newsboard::init(
|
Newsboard::init(
|
||||||
config: $config["cwsvJudo"]["db"],
|
config: $config["cwsvJudo"]["db"],
|
||||||
password: $secrets["cwsvJudo"]["db"][$config["cwsvJudo"]["db"]["user"]]
|
password: $secrets["cwsvJudo"]["db"][$config["cwsvJudo"]["db"]["user"]],
|
||||||
);
|
);
|
||||||
|
|
||||||
Kalender::init(
|
Kalender::init(
|
||||||
config: $config["cwsvJudo"]["db"],
|
config: $config["cwsvJudo"]["db"],
|
||||||
password: $secrets["cwsvJudo"]["db"][$config["cwsvJudo"]["db"]["user"]]
|
password: $secrets["cwsvJudo"]["db"][$config["cwsvJudo"]["db"]["user"]],
|
||||||
);
|
);
|
||||||
|
|
||||||
$page_data_root_directory = "$home/pages/$page";
|
$page_data_root_directory = "$home/pages/$page";
|
||||||
@@ -233,32 +233,46 @@ function mainNavTargets($mainNav)
|
|||||||
echo "</ul>";
|
echo "</ul>";
|
||||||
}
|
}
|
||||||
|
|
||||||
function getHtmlNavBar($mainNav): string{
|
function getHtmlNavBar($mainNav): string
|
||||||
return (
|
{
|
||||||
'<nav class="nav navbar">'
|
return '<nav class="nav navbar indigo darken-3">' .
|
||||||
.'<div class="nav-wrapper">'
|
'<div class="nav-wrapper" style="font-family: Orbitron-Medium, Impact, Charcoal, sans-serif;">' .
|
||||||
.'<a href="#!" class="brand-logo">Logo</a>'
|
'<a href="#!" class="brand-logo"><span>cwsvJudo</span></a>' .
|
||||||
.'<a href="#" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a>'
|
'<a href="#" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a>' .
|
||||||
.'<ul class="right hide-on-med-and-down">'
|
'<ul class="right hide-on-med-and-down">' .
|
||||||
. implode(
|
implode(
|
||||||
array: array_map(
|
separator: "",
|
||||||
callback: fn($nav): string => '<li><a href="'.$mainNav['url'].'" title="'.$mainNav['title'].'"><span>'.$nav['caption'].'</span></a></i>', array: $mainNav
|
array: array_map(
|
||||||
)
|
callback: fn($nav): string => '<li><a href="' .
|
||||||
)
|
$nav["url"] .
|
||||||
.'</ul>'
|
'" title="' .
|
||||||
.'</div>'
|
$nav["title"] .
|
||||||
.'</nav>'
|
'"><span>' .
|
||||||
.''
|
$nav["caption"] .
|
||||||
.'<ul class="sidenav" id="mobile-demo">'
|
"</span></a></i>",
|
||||||
. implode(
|
array: $mainNav,
|
||||||
array: array_map(
|
),
|
||||||
callback: fn($nav): string => '<li><a href="'.$mainNav['url'].'" title="'.$mainNav['title'].'"><span>'.$nav['caption'].'</span></a></i>', array: $mainNav
|
) .
|
||||||
)
|
"</ul>" .
|
||||||
)
|
"</div>" .
|
||||||
.'</ul>'
|
"</nav>" .
|
||||||
);
|
"" .
|
||||||
|
'<ul class="sidenav" id="mobile-demo">' .
|
||||||
|
implode(
|
||||||
|
separator: "",
|
||||||
|
array: array_map(
|
||||||
|
callback: fn($nav): string => '<li><a href="' .
|
||||||
|
$nav["url"] .
|
||||||
|
'" title="' .
|
||||||
|
$nav["title"] .
|
||||||
|
'"><span>' .
|
||||||
|
$nav["caption"] .
|
||||||
|
"</span></a></i>",
|
||||||
|
array: $mainNav,
|
||||||
|
),
|
||||||
|
) .
|
||||||
|
"</ul>";
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="de">
|
<html lang="de">
|
||||||
@@ -290,14 +304,7 @@ function getHtmlNavBar($mainNav): string{
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<nav class="nav navbar indigo darken-3">
|
<?php echo getHtmlNavBar($meta["head"]["navTargets"]); ?>
|
||||||
<div class="nav-wrapper" style="font-family: 'Orbitron-Medium', Impact, Charcoal, sans-serif;">
|
|
||||||
<a href="/" class="brand-logo">
|
|
||||||
<span>cwsvJudo</span>
|
|
||||||
</a>
|
|
||||||
<?php mainNavTargets($meta["head"]["navTargets"]); ?>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main style="hyphens: auto;">
|
<main style="hyphens: auto;">
|
||||||
@@ -311,7 +318,7 @@ function getHtmlNavBar($mainNav): string{
|
|||||||
<a
|
<a
|
||||||
title="Seite auf HTML 5 Konformität prüfen"
|
title="Seite auf HTML 5 Konformität prüfen"
|
||||||
href="http://validator.w3.org/check?uri=<?php echo urlencode(
|
href="http://validator.w3.org/check?uri=<?php echo urlencode(
|
||||||
getCurPagesUrl()
|
getCurPagesUrl(),
|
||||||
); ?>"
|
); ?>"
|
||||||
>
|
>
|
||||||
Valid html 5
|
Valid html 5
|
||||||
@@ -356,6 +363,11 @@ function getHtmlNavBar($mainNav): string{
|
|||||||
// specify options here
|
// specify options here
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
sidenav : M.Sidenav.init(
|
||||||
|
document.querySelectorAll('.sidenav'), {
|
||||||
|
// specify options here
|
||||||
|
}
|
||||||
|
),
|
||||||
} // end instances
|
} // end instances
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user