Implement creator studio and upload updates
This commit is contained in:
42
app/Services/Sitemaps/Builders/NewsSitemapBuilder.php
Normal file
42
app/Services/Sitemaps/Builders/NewsSitemapBuilder.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services\Sitemaps\Builders;
|
||||
|
||||
use App\Services\Sitemaps\AbstractSitemapBuilder;
|
||||
use App\Services\Sitemaps\SitemapUrl;
|
||||
use App\Services\Sitemaps\SitemapUrlBuilder;
|
||||
use DateTimeInterface;
|
||||
use cPad\Plugins\News\Models\NewsArticle;
|
||||
|
||||
final class NewsSitemapBuilder extends AbstractSitemapBuilder
|
||||
{
|
||||
public function __construct(private readonly SitemapUrlBuilder $urls)
|
||||
{
|
||||
}
|
||||
|
||||
public function name(): string
|
||||
{
|
||||
return 'news';
|
||||
}
|
||||
|
||||
public function items(): array
|
||||
{
|
||||
return NewsArticle::query()
|
||||
->published()
|
||||
->orderBy('id')
|
||||
->cursor()
|
||||
->map(fn (NewsArticle $article): ?SitemapUrl => $this->urls->news($article))
|
||||
->filter()
|
||||
->values()
|
||||
->all();
|
||||
}
|
||||
|
||||
public function lastModified(): ?DateTimeInterface
|
||||
{
|
||||
return $this->dateTime(NewsArticle::query()
|
||||
->published()
|
||||
->max('updated_at'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user