Update (sitemap)
This commit is contained in:
25
app/Helpers/FirstParty/SitemapCrawler/CustomCrawlProfile.php
Normal file
25
app/Helpers/FirstParty/SitemapCrawler/CustomCrawlProfile.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Helpers\FirstParty\SitemapCrawler;
|
||||
|
||||
use Spatie\Crawler\CrawlProfiles\CrawlProfile;
|
||||
use Psr\Http\Message\UriInterface;
|
||||
|
||||
class CustomCrawlProfile extends CrawlProfile
|
||||
{
|
||||
public function shouldCrawl(UriInterface $url): bool
|
||||
{
|
||||
// Check if the host is not 'localhost'
|
||||
if ($url->getHost() !== 'localhost') {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if there are query parameters in the URL
|
||||
if ($url->getQuery() !== '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if the path is exactly '/'
|
||||
return $url->getPath() === '/';
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Helpers\FirstParty\SitemapCrawler\CustomCrawlProfile;
|
||||
use GuzzleHttp\RequestOptions;
|
||||
use Spatie\Sitemap\Crawler\Profile;
|
||||
|
||||
@@ -52,6 +53,6 @@
|
||||
* The sitemap generator uses a CrawlProfile implementation to determine
|
||||
* which urls should be crawled for the sitemap.
|
||||
*/
|
||||
'crawl_profile' => Profile::class,
|
||||
'crawl_profile' => CustomCrawlProfile::class,
|
||||
|
||||
];
|
||||
|
||||
17
resources/views/vendor/sitemap/image.blade.php
vendored
Normal file
17
resources/views/vendor/sitemap/image.blade.php
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
<image:image>
|
||||
@if (! empty($image->url))
|
||||
<image:loc>{{ url($image->url) }}</image:loc>
|
||||
@endif
|
||||
@if (! empty($image->caption))
|
||||
<image:caption>{{ $image->caption }}</image:caption>
|
||||
@endif
|
||||
@if (! empty($image->geo_location))
|
||||
<image:geo_location>{{ $image->geo_location }}</image:geo_location>
|
||||
@endif
|
||||
@if (! empty($image->title))
|
||||
<image:title>{{ $image->title }}</image:title>
|
||||
@endif
|
||||
@if (! empty($image->license))
|
||||
<image:license>{{ $image->license }}</image:license>
|
||||
@endif
|
||||
</image:image>
|
||||
11
resources/views/vendor/sitemap/news.blade.php
vendored
Normal file
11
resources/views/vendor/sitemap/news.blade.php
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
<news:news>
|
||||
<news:publication>
|
||||
<news:name>{{ $news->name }}</news:name>
|
||||
<news:language>{{ $news->language }}</news:language>
|
||||
</news:publication>
|
||||
<news:title>{{ $news->title }}</news:title>
|
||||
<news:publication_date>{{ $news->publicationDate->toW3cString() }}</news:publication_date>
|
||||
@foreach($news->options as $tag => $value)
|
||||
<news:{{$tag}}>{{$value}}</news:{{$tag}}>
|
||||
@endforeach
|
||||
</news:news>
|
||||
6
resources/views/vendor/sitemap/sitemap.blade.php
vendored
Normal file
6
resources/views/vendor/sitemap/sitemap.blade.php
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<?= '<'.'?'.'xml version="1.0" encoding="UTF-8"?>'."\n"; ?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
|
||||
@foreach($tags as $tag)
|
||||
@include('sitemap::' . $tag->getType())
|
||||
@endforeach
|
||||
</urlset>
|
||||
6
resources/views/vendor/sitemap/sitemapIndex/index.blade.php
vendored
Normal file
6
resources/views/vendor/sitemap/sitemapIndex/index.blade.php
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<?= '<'.'?'.'xml version="1.0" encoding="UTF-8"?>'."\n" ?>
|
||||
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
@foreach($tags as $tag)
|
||||
@include('sitemap::sitemapIndex/' . $tag->getType())
|
||||
@endforeach
|
||||
</sitemapindex>
|
||||
8
resources/views/vendor/sitemap/sitemapIndex/sitemap.blade.php
vendored
Normal file
8
resources/views/vendor/sitemap/sitemapIndex/sitemap.blade.php
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<sitemap>
|
||||
@if (! empty($tag->url))
|
||||
<loc>{{ url($tag->url) }}</loc>
|
||||
@endif
|
||||
@if (! empty($tag->lastModificationDate))
|
||||
<lastmod>{{ $tag->lastModificationDate->format(DateTime::ATOM) }}</lastmod>
|
||||
@endif
|
||||
</sitemap>
|
||||
20
resources/views/vendor/sitemap/url.blade.php
vendored
Normal file
20
resources/views/vendor/sitemap/url.blade.php
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
<url>
|
||||
@if (! empty($tag->url))
|
||||
<loc>{{ url($tag->url) }}</loc>
|
||||
@endif
|
||||
@if (count($tag->alternates))
|
||||
@foreach ($tag->alternates as $alternate)
|
||||
<xhtml:link rel="alternate" hreflang="{{ $alternate->locale }}" href="{{ url($alternate->url) }}" />
|
||||
@endforeach
|
||||
@endif
|
||||
@if (! empty($tag->lastModificationDate))
|
||||
<lastmod>{{ $tag->lastModificationDate->format(DateTime::ATOM) }}</lastmod>
|
||||
@endif
|
||||
@if (! empty($tag->changeFrequency))
|
||||
<changefreq>{{ $tag->changeFrequency }}</changefreq>
|
||||
@endif
|
||||
<priority>{{ number_format($tag->priority,1) }}</priority>
|
||||
@each('sitemap::image', $tag->images, 'image')
|
||||
@each('sitemap::video', $tag->videos, 'video')
|
||||
@each('sitemap::news', $tag->news, 'news')
|
||||
</url>
|
||||
23
resources/views/vendor/sitemap/video.blade.php
vendored
Normal file
23
resources/views/vendor/sitemap/video.blade.php
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
<video:video>
|
||||
<video:thumbnail_loc>{{ $video->thumbnailLoc }}</video:thumbnail_loc>
|
||||
<video:title>{{ $video->title }}</video:title>
|
||||
<video:description>{{ $video->description }}</video:description>
|
||||
@if ($video->contentLoc)
|
||||
<video:content_loc>{{ $video->contentLoc }}</video:content_loc>
|
||||
@endif
|
||||
@if ($video->playerLoc)
|
||||
<video:player_loc>{{ $video->playerLoc }}</video:player_loc>
|
||||
@endif
|
||||
@foreach($video->options as $tag => $value)
|
||||
<video:{{$tag}}>{{$value}}</video:{{$tag}}>
|
||||
@endforeach
|
||||
@foreach($video->allow as $tag => $value)
|
||||
<video:{{$tag}} relationship="allow">{{$value}}</video:{{$tag}}>
|
||||
@endforeach
|
||||
@foreach($video->deny as $tag => $value)
|
||||
<video:{{$tag}} relationship="deny">{{$value}}</video:{{$tag}}>
|
||||
@endforeach
|
||||
@foreach($video->tags as $tag)
|
||||
<video:tag>{{ $tag }}</video:tag>
|
||||
@endforeach
|
||||
</video:video>
|
||||
Reference in New Issue
Block a user