ver. 0.280: Articles frontend migration, class.Article removal, Settings facade cleanup

- Add 8 frontend methods to ArticleRepository (with Redis cache)
- Create front\Views\Articles (rendering + utility methods)
- Rewire front\view\Site::show() and front\controls\Site::route() to repo + Views
- Update 5 article templates to use \front\Views\Articles::
- Convert front\factory\Articles and front\view\Articles to facades
- Remove class.Article (entity + static methods migrated to repo + Views)
- Remove front\factory\Settings facade (already migrated)
- Fix: eliminate global $lang from articleNoindex(), inline page sort query
- Tests: 450 OK, 1431 assertions (+13 new)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-16 15:52:03 +01:00
parent 3b32ea0b9b
commit 723cb1a5eb
35 changed files with 1070 additions and 642 deletions

View File

@@ -35,8 +35,10 @@ class Site
{
global $page, $lang_id, $settings;
$articleRepo = new \Domain\Article\ArticleRepository( $GLOBALS['mdb'] );
if ( \S::get( 'article' ) )
return \front\view\Articles::full_article( \S::get( 'article' ), $lang_id );
return \front\Views\Articles::fullArticle( $articleRepo->articleDetailsFrontend( (int)\S::get( 'article' ), $lang_id ) );
// wyświetlenie pojedynczego produktu
if ( $product )
@@ -86,26 +88,35 @@ class Site
if ( $page['id'] )
{
$bs = (int)\S::get( 'bs' );
$pageArticlesResult = $articleRepo->pageArticles( $page, $lang_id, $bs ?: 1 );
$articlesForPage = [];
if ( is_array( $pageArticlesResult['articles'] ) ) {
foreach ( $pageArticlesResult['articles'] as $aid ) {
$articlesForPage[] = $articleRepo->articleDetailsFrontend( (int)$aid, $lang_id );
}
}
switch ( $page['page_type'] )
{
/* pełne artykuły */
case 0:
return \front\view\Articles::full_articles_list( $page, $lang_id, \S::get( 'bs' ) );
return \front\Views\Articles::fullArticlesList( $articlesForPage, $pageArticlesResult['ls'], $bs ?: 1, $page );
break;
/* wprowadzenia */
case 1:
return \front\view\Articles::entry_articles_list( $page, $lang_id, \S::get( 'bs' ) );
return \front\Views\Articles::entryArticlesList( $articlesForPage, $pageArticlesResult['ls'], $bs ?: 1, $page );
break;
/* miniaturki */
case 2:
return \front\view\Articles::miniature_articles_list( $page, $lang_id, \S::get( 'bs' ) );
return \front\Views\Articles::miniatureArticlesList( $articlesForPage, $pageArticlesResult['ls'], $bs ?: 1, $page );
break;
/* strona kontaktu */
case 4:
$out = \front\view\Articles::full_articles_list( $page, $lang_id, \S::get( 'bs' ) );
$out = \front\Views\Articles::fullArticlesList( $articlesForPage, $pageArticlesResult['ls'], $bs ?: 1, $page );
$out .= \front\view\Site::contact();
return $out;
break;