Use template engine on news page

This commit is contained in:
Peter Kokot
2019-01-05 13:03:15 +01:00
parent 2289233011
commit aabb5a0145
3 changed files with 44 additions and 27 deletions

View File

@@ -143,3 +143,7 @@ $auth->setTmpDir($config->get('tmp_dir'));
// Initialize template engine
$template = new Engine(__DIR__.'/../templates');
$template->register('getImageSize', [$imageSize, 'getSize']);
$template->register('formatDateToUtc', [$formatDate, 'utc']);
$template->register('nl2br', function ($content) {
return str_replace('&NewLine;', '<br>', nl2br($content));
});

View File

@@ -20,32 +20,10 @@
use App\Repository\ReleaseRepository;
require_once __DIR__.'/../../include/pear-prepend.php';
$releaseRepository = new ReleaseRepository($database);
response_header("News");
echo "<h1>PECL news</h1>";
echo "<h2><a name=\"recent_releases\"></a>Recent Releases</h2>";
echo "<ul>";
$recent = $releaseRepository->findRecent();
foreach ($recent as $release) {
$releasedate = $formatDate->utc($release['releasedate'], 'Y-m-d');
$desc = nl2br(htmlentities(substr($release['releasenotes'], 0, 400)));
if (strlen($release['releasenotes']) > 400) {
$desc .= ' <a href="/package/' . $release['name'] . '/' . $release['version'] . '">...</a>';
}
echo "<li><a href=\"/package/" . $release['name'] . "/\">";
echo "$release[name] $release[version] ($release[state])</a> <i>$releasedate</i><br/>$desc</li>";
}
echo "</ul>\n<a href=\"/feeds/\">Syndicate this</a>";
echo "<h2><a name=\"2003\"></a>Year 2003</h2>";
echo "<ul>";
echo '<li><a href="https://news.php.net/article.php?group=php.pecl.dev&article=5">Call for PHP Extension authors</a> (September)</li>';
echo "</ul>";
response_footer();
echo $template->render('pages/news/index.php', [
'recent' => $releaseRepository->findRecent(),
]);

View File

@@ -0,0 +1,35 @@
<?php $this->extend('layout.php', ['title' => 'News']) ?>
<?php $this->start('content') ?>
<h1>PECL news</h1>
<h2><a name="recent_releases"></a>Recent Releases</h2>
<ul>
<?php foreach ($recent as $release): ?>
<li>
<a href="/package/<?= $this->e($release['name']) ?>/">
<?= $this->e($release['name']) ?> <?= $this->e($release['version']) ?> (<?= $this->e($release['state']) ?>)
</a>
<i><?= $this->formatDateToUtc($release['releasedate'], 'Y-m-d') ?></i><br>
<?= $this->nl2br($this->noHtml(substr($release['releasenotes'], 0, 400))) ?>
<?php if (strlen($release['releasenotes']) > 400): ?>
<a href="/package/<?= $this->e($release['name']) ?>/<?= $this->e($release['version']) ?>">...</a>
<?php endif ?>
</li>
<?php endforeach ?>
</ul>
<a href="/feeds/">Syndicate this</a>
<h2><a name="2003"></a>Year 2003</h2>
<ul>
<li><a href="https://news.php.net/article.php?group=php.pecl.dev&article=5">Call for PHP Extension authors</a> (September)</li>
</ul>
<?php $this->end('content') ?>