Fix language persistence across navigation and breadcrumbs

- Add lang parameter to all navigation links in scanDirectory method
- Update homepage link in navigation template to include current language
- Fix breadcrumb navigation to preserve language parameter
- Ensure language selection persists when clicking any navigation element
This commit is contained in:
Edwin Noorlander 2025-11-22 15:54:40 +01:00
parent ceeeb5e7b3
commit 2d934702cd
2 changed files with 5 additions and 5 deletions

View File

@ -128,7 +128,7 @@ class CodePressCMS {
'type' => 'file',
'title' => $title,
'path' => $pathWithoutExt,
'url' => '?page=' . $pathWithoutExt
'url' => '?page=' . $pathWithoutExt . '&lang=' . $this->currentLanguage
];
}
}
@ -891,7 +891,7 @@ class CodePressCMS {
*/
private function generateBreadcrumb() {
if (isset($_GET['search'])) {
return '<nav aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="?page=' . $this->config['default_page'] . '">></a></li><li class="breadcrumb-item"> > </li><li class="breadcrumb-item active">' . $this->t('search') . '</li></ol></nav>';
return '<nav aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="?page=' . $this->config['default_page'] . '&lang=' . $this->currentLanguage . '"></a></li><li class="breadcrumb-item"> > </li><li class="breadcrumb-item active">' . $this->t('search') . '</li></ol></nav>';
}
$page = $_GET['page'] ?? $this->config['default_page'];
@ -904,7 +904,7 @@ class CodePressCMS {
$breadcrumb = '<nav aria-label="breadcrumb"><ol class="breadcrumb">';
// Start with home icon linking to default page (root)
$breadcrumb .= '<li class="breadcrumb-item"><a href="?page=' . $this->config['default_page'] . '"><i class="bi bi-house"></i></a></li>';
$breadcrumb .= '<li class="breadcrumb-item"><a href="?page=' . $this->config['default_page'] . '&lang=' . $this->currentLanguage . '"><i class="bi bi-house"></i></a></li>';
// Split page path and build breadcrumb items
$parts = explode('/', $page);
@ -919,7 +919,7 @@ class CodePressCMS {
$breadcrumb .= '<li class="breadcrumb-item"> > </li><li class="breadcrumb-item active">' . $title . '</li>';
} else {
// Parent directory - clickable link with separator
$breadcrumb .= '<li class="breadcrumb-item"> > </li><li class="breadcrumb-item"><a href="?page=' . $currentPath . '">' . $title . '</a></li>';
$breadcrumb .= '<li class="breadcrumb-item"> > </li><li class="breadcrumb-item"><a href="?page=' . $currentPath . '&lang=' . $this->currentLanguage . '">' . $title . '</a></li>';
}
}

View File

@ -4,7 +4,7 @@
<div class="col">
<ul class="nav nav-tabs flex-wrap">
<li class="nav-item">
<a class="nav-link {{home_active_class}}" href="?page={{homepage}}">
<a class="nav-link {{home_active_class}}" href="?page={{homepage}}&lang={{current_lang}}">
<i class="bi bi-house"></i> {{homepage_title}}
</a>
</li>