mirror of
https://github.com/stancl/tenancy-docs.git
synced 2025-12-12 02:04:03 +00:00
42 lines
983 B
PHP
42 lines
983 B
PHP
<?php
|
|
|
|
namespace App\Listeners;
|
|
|
|
use samdark\sitemap\Sitemap;
|
|
use TightenCo\Jigsaw\Jigsaw;
|
|
|
|
class GenerateSitemap
|
|
{
|
|
protected $exclude = [
|
|
'/assets/*',
|
|
'*/favicon.ico',
|
|
'*/404',
|
|
];
|
|
|
|
public function handle(Jigsaw $jigsaw)
|
|
{
|
|
$baseUrl = $jigsaw->getConfig('baseUrl');
|
|
|
|
if (!$baseUrl) {
|
|
echo "\nTo generate a sitemap.xml file, please specify a 'baseUrl' in config.php.\n\n";
|
|
|
|
return;
|
|
}
|
|
|
|
$sitemap = new Sitemap($jigsaw->getDestinationPath().'/sitemap.xml');
|
|
|
|
collect($jigsaw->getOutputPaths())
|
|
->reject(function ($path) {
|
|
return $this->isExcluded($path);
|
|
})->each(function ($path) use ($baseUrl, $sitemap) {
|
|
$sitemap->addItem(rtrim($baseUrl, '/').$path, time(), Sitemap::DAILY);
|
|
});
|
|
|
|
$sitemap->write();
|
|
}
|
|
|
|
public function isExcluded($path)
|
|
{
|
|
return str_is($this->exclude, $path);
|
|
}
|
|
}
|