ver. 0.286: Layouts, Menu, Pages frontend migration to Domain

- Add 6 frontend methods to LayoutsRepository (Redis cache, 3-level fallback)
- Add 6 frontend methods to PagesRepository (Redis cache, recursive pages)
- Create front\Views\Menu (clean VIEW replacing front\view\Menu)
- Delete front\factory\Layouts, Menu, Pages + front\view\Menu + dead submenu.php
- Fix null $lang_id TypeError in check_url_params() (remove string type hint + ?? '')
- Optimize Helpers::htacces() from 3 layout calls to 1
- Tests: 470 OK, 1484 assertions (+16 new)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-17 08:21:53 +01:00
parent 920e65abd5
commit 8162df7356
27 changed files with 697 additions and 413 deletions

View File

@@ -3,7 +3,7 @@
</div>
<div id="menu-container-<?= $this -> menu['id'];?>" class="menu-container-<?= $this -> menu['id'];?>">
<nav>
<?= \front\view\Menu::pages( $this -> menu['pages'], 0, $this -> current_page );?>
<?= \front\Views\Menu::pages( $this -> menu['pages'], 0, $this -> current_page );?>
</nav>
</div>
<script class="footer" type="text/javascript" src="/libraries/multilevelpushmenu.js"></script>

View File

@@ -1,5 +1,5 @@
<div id="menu-container-<?= $this -> menu['id'];?>" class="menu-container-<?= $this -> menu['id'];?>">
<nav>
<?= \front\view\Menu::pages( $this -> menu['pages'], 0, $this -> current_page );?>
<?= \front\Views\Menu::pages( $this -> menu['pages'], 0, $this -> current_page );?>
</nav>
</div>

View File

@@ -47,7 +47,7 @@ if ( is_array( $this -> pages ) ) {
echo '</a>';
if ( is_array( $page['pages'] ) )
echo '<i class="fa fa-chevron-down menu-toggle" menu-id="link-' . $page['id'] . '"></i>';
echo \front\view\Menu::pages( $page['pages'], $this -> level + 1, $this -> current_page );
echo \front\Views\Menu::pages( $page['pages'], $this -> level + 1, $this -> current_page );
echo '</li>';
}
echo '</ul>';

View File

@@ -1,26 +0,0 @@
<?
if ( is_array( $this -> pages ) )
{
echo '<ul class="level-' . $this -> level . '" id="submenu-' . $this -> page_id . '">';
foreach ( $this -> pages as $page )
{
$page['language']['seo_link'] ? $url = '/' . $page['language']['seo_link'] : $url = '/s-' . $page['id'] . '-' . \Shared\Helpers\Helpers::seo( $page['language']['title'] );
if ( $page['page_type'] == 3 and $page['link'] )
$url = $page['link'];
echo '<li id="link-' . $page['id'] . '" class="'; if ( $page['id'] == $this -> current_page ) echo ' active'; echo '">';
echo '<a href="';
if ( \Shared\Helpers\Helpers::get_session( 'current-lang' ) != ( new \Domain\Languages\LanguagesRepository( $GLOBALS['mdb'] ) )->defaultLanguage() and $url != '#' )
echo '/' . \Shared\Helpers\Helpers::get_session( 'current-lang' );
echo $url . '"'; if ( $page['language']['noindex'] ) echo 'rel="nofollow"'; echo ' title="' . $page['language']['title'] . '"'; if ( is_array( $page['pages'] ) ) echo "class='menu-trigger'"; echo '>';
echo $page['language']['title'];
if ( is_array( $page['pages'] ) and $this -> level == 0 )
echo '<i class="fa fa-chevron-down"></i>';
echo '</a>';
echo \front\view\Menu::submenu( $page['pages'], $this -> current_page, $this -> page_id, $this -> level + 1 );
echo '</li>';
}
echo '</ul>';
}