Prepare modules
This commit is contained in:
37
Console/Commands/SitemapGenerate.php
Normal file
37
Console/Commands/SitemapGenerate.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Koneko\VuexyWebsiteAdmin\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Koneko\VuexyWebsiteAdmin\Models\SitemapUrl;
|
||||
|
||||
class SitemapGenerate extends Command
|
||||
{
|
||||
protected $signature = 'sitemap:generate';
|
||||
protected $description = 'Genera un sitemap.xml con rutas dinámicas del sistema';
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$urls = SitemapUrl::where('is_active', true)->get();
|
||||
|
||||
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;
|
||||
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . PHP_EOL;
|
||||
|
||||
foreach ($urls as $url) {
|
||||
$sitemap .= " <url><loc>{$url->url}</loc>" . PHP_EOL;
|
||||
$sitemap .= " <changefreq>{$url->changefreq}</changefreq>" . PHP_EOL;
|
||||
$sitemap .= " <priority>{$url->priority}</priority>" . PHP_EOL;
|
||||
if ($url->lastmod) {
|
||||
$sitemap .= " <lastmod>{$url->lastmod->toDateString()}</lastmod>" . PHP_EOL;
|
||||
}
|
||||
$sitemap .= " </url>" . PHP_EOL;
|
||||
}
|
||||
|
||||
$sitemap .= '</urlset>';
|
||||
|
||||
Storage::disk('public')->put('sitemap.xml', $sitemap);
|
||||
|
||||
$this->info('✅ Sitemap generado en storage/app/public/sitemap.xml');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user