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
|
||||
$metadata = loadMetadata($dir, $currentLang, $defaultLang);
|
||||
|
||||
// Check for custom list template (prefer list-grid.php over list.php)
|
||||
$customListGridTemplate = dirname(__DIR__) . '/custom/templates/list-grid.php';
|
||||
if (file_exists($customListGridTemplate)) {
|
||||
$listTemplate = $customListGridTemplate;
|
||||
// Select list template based on metadata page_template
|
||||
if (isset($metadata['page_template']) && !empty($metadata['page_template'])) {
|
||||
$templateName = $metadata['page_template'];
|
||||
// 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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue