1
0
cms11/app/Services/BundleRenderers/Renderers/FeedRenderer.php

58 lines
1.3 KiB
PHP
Raw Normal View History

2024-05-09 01:12:02 +02:00
<?php
namespace App\Services\BundleRenderers\Renderers;
use App\Classes\Bundle;
class FeedRenderer extends BaseRenderer
{
/**
* Renders a complete HTML view of the bundle
*/
public function render()
{
$output = $this->renderFeed();
$baseRender['/index.xml'] = [
'output' => $output,
'validation' => null,
];
dd($baseRender['/index.xml']['validation']);
$baseRender += parent::render();
return $baseRender;
}
/**
* Return a boolean value indicating if this creator in particular can
* create bundles for specified section
*/
public static function handles(Bundle $bundle): bool
{
return $bundle->getPath() === '/';
}
private function renderFeed()
{
$bundles = $this->getSubBundles();
$lastBundles = array_map(
function ($item) {
$bundle = new Bundle($item, $this->bundle->getDisk());
$bundle->load();
return $bundle;
},
array_slice($bundles, 0, 10)
);
$lastBundle = collect($lastBundles)->first();
return (string) view('feed', [
'bundles' => $lastBundles,
'lastBuildDate' => now()->toRssString(),
]);
}
}