rss feed added

This commit is contained in:
HolgerHatGarKeineNode
2023-02-15 21:24:45 +01:00
parent e4eab97a8f
commit 83129009ec
3 changed files with 34 additions and 13 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Models; namespace App\Models;
use App\Support\CustomFeedItem;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\BelongsToMany;
@@ -10,7 +11,6 @@ use Spatie\Comments\Models\Concerns\HasComments;
use Spatie\EloquentSortable\Sortable; use Spatie\EloquentSortable\Sortable;
use Spatie\EloquentSortable\SortableTrait; use Spatie\EloquentSortable\SortableTrait;
use Spatie\Feed\Feedable; use Spatie\Feed\Feedable;
use Spatie\Feed\FeedItem;
use Spatie\Image\Manipulations; use Spatie\Image\Manipulations;
use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\InteractsWithMedia;
@@ -146,11 +146,12 @@ class LibraryItem extends Model implements HasMedia, Sortable, Feedable
} }
} }
public function toFeedItem(): FeedItem public function toFeedItem(): CustomFeedItem
{ {
return FeedItem::create() return CustomFeedItem::create()
->id('news/'.$this->slug) ->id('news/'.$this->slug)
->title($this->name) ->title($this->name)
->content($this->value)
->enclosure($this->getFirstMediaUrl('main')) ->enclosure($this->getFirstMediaUrl('main'))
->enclosureLength($this->getFirstMedia('main')->size) ->enclosureLength($this->getFirstMedia('main')->size)
->enclosureType($this->getFirstMedia('main')->mime_type) ->enclosureType($this->getFirstMedia('main')->mime_type)

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Support;
use Spatie\Feed\FeedItem;
class CustomFeedItem extends FeedItem
{
protected string $content;
public function content(string $content): self
{
$this->content = $content;
return $this;
}
}

View File

@@ -26,6 +26,9 @@
<author>{!! \Spatie\Feed\Helpers\Cdata::out($item->authorName.(empty($item->authorEmail)?'':' <'.$item->authorEmail.'>')) !!}</author> <author>{!! \Spatie\Feed\Helpers\Cdata::out($item->authorName.(empty($item->authorEmail)?'':' <'.$item->authorEmail.'>')) !!}</author>
<guid isPermaLink="true">{{ url($item->id) }}</guid> <guid isPermaLink="true">{{ url($item->id) }}</guid>
<pubDate>{{ $item->timestamp() }}</pubDate> <pubDate>{{ $item->timestamp() }}</pubDate>
<content:encoded>
{!! $item->content !!}
</content:encoded>
@if($item->__isset('enclosure')) @if($item->__isset('enclosure'))
<enclosure url="{{ url($item->enclosure) }}" length="{{ url($item->enclosureLength) }}" type="{{ $item->enclosureType }}"/> <enclosure url="{{ url($item->enclosure) }}" length="{{ url($item->enclosureLength) }}" type="{{ $item->enclosureType }}"/>
<media:content url="{{ url($item->enclosure) }}" medium="image" type="{{ $item->enclosureType }}"/> <media:content url="{{ url($item->enclosure) }}" medium="image" type="{{ $item->enclosureType }}"/>