This commit is contained in:
parent
b36abcd3bf
commit
0d40b85f76
13 changed files with 232 additions and 58 deletions
|
@ -14,59 +14,4 @@ $articles = $page
|
|||
->sortBy('date', 'desc')
|
||||
->limit(10);
|
||||
|
||||
$writer = new XMLWriter();
|
||||
$writer->openMemory();
|
||||
$writer->setIndent(true);
|
||||
$writer->setIndentString(' ');
|
||||
|
||||
$writer->startDocument('1.0', 'UTF-8', 'yes');
|
||||
|
||||
$writer->startElement('rss');
|
||||
$writer->writeAttribute('version', '2.0');
|
||||
$writer->writeAttributeNs('xmlns', 'atom', null, 'http://www.w3.org/2005/Atom');
|
||||
|
||||
$writer->startElement('channel');
|
||||
$writer->writeElement('title', $site->title()->toString());
|
||||
$writer->writeElement('link', url());
|
||||
$writer->writeElement('description', $site->description()->toString());
|
||||
$writer->writeElement('language', 'en-GB');
|
||||
$writer->writeElement(
|
||||
'lastBuildDate',
|
||||
$articles->first()->date()->toDate(DATE_RSS)
|
||||
);
|
||||
$writer->writeElement('generator', 'Kirby CMS');
|
||||
$writer->writeElement('docs', 'https://www.rssboard.org/rss-specification');
|
||||
|
||||
$writer->startElementNs('atom', 'link', null);
|
||||
$writer->writeAttribute('href', url('/feed'));
|
||||
$writer->writeAttribute('rel', 'self');
|
||||
$writer->writeAttribute('type', 'application/rss+xml');
|
||||
$writer->endElement(); // atom:link
|
||||
|
||||
$writer->startElement('image');
|
||||
$writer->writeElement('url', url('/assets/img/favicon/favicon.png'));
|
||||
$writer->writeElement('title', $site->title()->toString());
|
||||
$writer->writeElement('link', url());
|
||||
$writer->endElement(); // image
|
||||
|
||||
foreach ($articles as $article) {
|
||||
/** @var Kirby\Cms\Page $article */
|
||||
$writer->startElement('item');
|
||||
|
||||
$writer->writeElement('title', $article->title()->toString());
|
||||
$writer->writeElement('link', url($article->url()));
|
||||
$writer->writeElement('guid', url($article->url()));
|
||||
$writer->writeElement('pubDate', $article->date()->toDate(DATE_RSS));
|
||||
|
||||
$writer->startElement('description');
|
||||
$writer->writeCdata($article->text()->kirbytext()->toString());
|
||||
$writer->endElement(); // description
|
||||
|
||||
$writer->endElement(); // item
|
||||
}
|
||||
|
||||
$writer->endElement(); // channel
|
||||
$writer->endElement(); // rss
|
||||
|
||||
$writer->endDocument();
|
||||
echo $writer->outputMemory();
|
||||
echo (new Mmk2410\KirbyHelpers\RssFeed($site, $articles, '/feed'))->generate();
|
||||
|
|
12
site/templates/scribble.php
Normal file
12
site/templates/scribble.php
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
/**
|
||||
* @var ScribblePage $page
|
||||
*/
|
||||
?>
|
||||
|
||||
<?php snippet('layout', slots: true) ?>
|
||||
<?php slot() ?>
|
||||
<?php snippet('scribble', ['scribble' => $page, 'singlePage' => true]) ?>
|
||||
|
||||
<a href="<?= page('scribbles')->url() ?>">More mindless drivel</a>
|
||||
<?php endslot() ?>
|
34
site/templates/scribbles.php
Normal file
34
site/templates/scribbles.php
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
/**
|
||||
* @var Kirby\Cms\Page $page
|
||||
* @var Kirby\Cms\Pages $scribbles
|
||||
*/
|
||||
?>
|
||||
|
||||
<?php snippet('layout', slots: true) ?>
|
||||
<?php slot() ?>
|
||||
<h1><?= $page->title() ?></h1>
|
||||
|
||||
<?= $page->text()->kirbytext() ?>
|
||||
|
||||
<?php foreach($scribbles as $scribble): ?>
|
||||
<?php snippet('scribble', ['scribble' => $scribble, 'singlePage' => false]) ?>
|
||||
<?php endforeach ?>
|
||||
|
||||
<?php if ($scribbles->pagination()->hasPages()): ?>
|
||||
<nav class="pagination">
|
||||
<?php if ($scribbles->pagination()->hasNextPage()): ?>
|
||||
<a class="page-item next" href="<?= $scribbles->pagination()->nextPageURL() ?>">
|
||||
‹ older scribbles
|
||||
</a>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($scribbles->pagination()->hasPrevPage()): ?>
|
||||
<a class="page-item prev" href="<?= $scribbles->pagination()->prevPageURL() ?>">
|
||||
newer scribbles ›
|
||||
</a>
|
||||
<?php endif ?>
|
||||
</nav>
|
||||
<?php endif ?>
|
||||
|
||||
<?php endslot() ?>
|
17
site/templates/scribbles.rss.php
Normal file
17
site/templates/scribbles.rss.php
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
/**
|
||||
* @var Kirby\Cms\Kirby $kirby
|
||||
* @var Kirby\Cms\Site $site
|
||||
* @var Kirby\Cms\Page $page
|
||||
*/
|
||||
|
||||
$kirby->response()->type('application/rss+xml');
|
||||
|
||||
$scribbles = $page
|
||||
->children()
|
||||
->template('scribble')
|
||||
->listed()
|
||||
->sortBy('date', 'desc')
|
||||
->limit(25);
|
||||
|
||||
echo (new Mmk2410\KirbyHelpers\RssFeed($site, $scribbles, '/feed/scribbles'))->generate();
|
Loading…
Add table
Add a link
Reference in a new issue