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:
parent
ceeeb5e7b3
commit
2d934702cd
@ -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>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user