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