FEATURE #1550: add basic sitemap
Probably will not work, because Laravel prepends first line of document with some spaces or what. However maybe its just behavior on my localhost.
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests;
|
||||
use App\Models\Content;
|
||||
|
||||
class Sitemap extends Controller
|
||||
{
|
||||
/**
|
||||
* @var Content
|
||||
*/
|
||||
private $content;
|
||||
|
||||
/**
|
||||
* Sitemap constructor.
|
||||
*
|
||||
* @param Content $content
|
||||
*/
|
||||
public function __construct(Content $content)
|
||||
{
|
||||
$this->content = $content;
|
||||
}
|
||||
|
||||
public function getMap()
|
||||
{
|
||||
$pages = $this->content->getPageQuery()
|
||||
->get();
|
||||
|
||||
|
||||
foreach ($pages as $page) {
|
||||
if ($page->is_homepage) {
|
||||
$route = route('page.index');
|
||||
$priority = 1;
|
||||
} else {
|
||||
$route = route('page.content', ['url' => $page->url]);
|
||||
$priority = 0.8;
|
||||
}
|
||||
|
||||
\Sitemap::addTag($route, $page->updated_at, 'daily', $priority);
|
||||
|
||||
}
|
||||
|
||||
return \Sitemap::render();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user