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:
parent
dc4292f298
commit
ea05d11452
1 changed files with 16 additions and 4 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue