Add support for custom page templates via metadata

Implement template selection based on metadata page_template field, with
support for both custom and default templates and automatic .php
extension handling
This commit is contained in:
Ruben 2025-10-15 19:30:27 +02:00
parent dc4292f298
commit ea05d11452

View file

@ -414,10 +414,22 @@ switch ($parsedPath['type']) {
// Load metadata for this directory // Load metadata for this directory
$metadata = loadMetadata($dir, $currentLang, $defaultLang); $metadata = loadMetadata($dir, $currentLang, $defaultLang);
// Check for custom list template (prefer list-grid.php over list.php) // Select list template based on metadata page_template
$customListGridTemplate = dirname(__DIR__) . '/custom/templates/list-grid.php'; if (isset($metadata['page_template']) && !empty($metadata['page_template'])) {
if (file_exists($customListGridTemplate)) { $templateName = $metadata['page_template'];
$listTemplate = $customListGridTemplate; // Add .php extension if not present
if (!str_ends_with($templateName, '.php')) {
$templateName .= '.php';
}
$customTemplate = dirname(__DIR__) . '/custom/templates/' . $templateName;
$defaultTemplate = __DIR__ . '/default/templates/' . $templateName;
if (file_exists($customTemplate)) {
$listTemplate = $customTemplate;
} elseif (file_exists($defaultTemplate)) {
$listTemplate = $defaultTemplate;
}
// If template doesn't exist, fall back to default $listTemplate
} }
// Default directory listing // Default directory listing