- 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>
38 lines
1.6 KiB
PHP
38 lines
1.6 KiB
PHP
<? global $lang, $config, $settings;?>
|
|
<? foreach ( $this -> articles as $article ):?>
|
|
<div class="col-12 col-lg-6 col-xl-3">
|
|
<div class="article-list">
|
|
<? $article['language']['seo_link'] ? $url = $article['language']['seo_link'] : $url = 'a-' . $article['id'] . '-' . \S::seo( $article['language']['title'] );?>
|
|
<a href="/<?= $url;?>" title="<?= $article['language']['title'];?>" <? if ( $article['language']['noindex'] ):?>rel="nofollow"<? endif;?>>
|
|
<div class="blog-image">
|
|
<img src="<?= \front\Views\Articles::getImage( $article );?>" alt="<?= $article['language']['title'];?>">
|
|
<div class="date-add"><?= date( 'd.m.y', strtotime( $article['date_add'] ) );?></div>
|
|
</div>
|
|
<h3 class="article-title"><?= $article['language']['title'];?></h3>
|
|
<div class="article-entry">
|
|
<?
|
|
if ( $article['language']['entry'] )
|
|
{
|
|
$content = $article['language']['entry'];
|
|
|
|
$content = preg_replace( "/<img[^>]+\>/i", "", $content );
|
|
$content = preg_replace( "/<p[^>]*?>/", "", $content );
|
|
$content = preg_replace( "/[\n\r]/", " ", $content );
|
|
$content = mb_substr( $content, 0, 150, 'UTF-8' ) . '...';
|
|
echo $content;
|
|
|
|
if ( $article['language']['text'] )
|
|
$more = true;
|
|
}
|
|
else
|
|
{
|
|
echo $article['language']['text'];
|
|
|
|
$more = false;
|
|
}
|
|
?>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<? endforeach;?>
|