Add scribbles

This commit is contained in:
Marcel Kapfer 2025-01-31 22:04:40 +01:00
parent b36abcd3bf
commit 0d40b85f76
Signed by: mmk2410
GPG key ID: CADE6F0C09F21B09
13 changed files with 232 additions and 58 deletions
site/templates

View file

@ -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();