mirror of
https://github.com/openclassify/openclassify.git
synced 2026-01-24 22:11:01 -06:00
#1716 Creating Google Sitemap for cats
This commit is contained in:
parent
7e9ee41ec1
commit
4a1b008bb0
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
{% for category in categories %}
|
||||||
|
<url>
|
||||||
|
<loc>{{ url_route('adv_list_seo', [category.slug]) }}</loc>
|
||||||
|
<lastmod>{{ category.created_at.tz('UTC').toAtomString() }}</lastmod>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
</url>
|
||||||
|
{% endfor %}
|
||||||
|
</urlset>
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
{% for i in 1..pagesCount %}
|
||||||
|
<sitemap>
|
||||||
|
<loc>{{ url('sitemap.xml/categories') }}?page={{ i }}</loc>
|
||||||
|
</sitemap>
|
||||||
|
{% endfor %}
|
||||||
|
</sitemapindex>
|
||||||
@ -58,6 +58,10 @@ class CatsModuleServiceProvider extends AddonServiceProvider
|
|||||||
'admin/cats/create' => 'Visiosoft\CatsModule\Http\Controller\Admin\CategoryController@create',
|
'admin/cats/create' => 'Visiosoft\CatsModule\Http\Controller\Admin\CategoryController@create',
|
||||||
'admin/cats/edit/{id}' => 'Visiosoft\CatsModule\Http\Controller\Admin\CategoryController@edit',
|
'admin/cats/edit/{id}' => 'Visiosoft\CatsModule\Http\Controller\Admin\CategoryController@edit',
|
||||||
'admin/cats/category/delete/{id}' => 'Visiosoft\CatsModule\Http\Controller\Admin\CategoryController@delete',
|
'admin/cats/category/delete/{id}' => 'Visiosoft\CatsModule\Http\Controller\Admin\CategoryController@delete',
|
||||||
|
|
||||||
|
// Sitemap
|
||||||
|
'sitemap.xml' => 'Visiosoft\CatsModule\Http\Controller\SitemapController@index',
|
||||||
|
'sitemap.xml/categories' => 'Visiosoft\CatsModule\Http\Controller\SitemapController@categories',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -0,0 +1,38 @@
|
|||||||
|
<?php namespace Visiosoft\CatsModule\Http\Controller;
|
||||||
|
|
||||||
|
use Anomaly\Streams\Platform\Http\Controller\PublicController;
|
||||||
|
use Visiosoft\CatsModule\Category\Contract\CategoryRepositoryInterface;
|
||||||
|
|
||||||
|
class SitemapController extends PublicController
|
||||||
|
{
|
||||||
|
|
||||||
|
private $categoryRepository;
|
||||||
|
|
||||||
|
public function __construct(CategoryRepositoryInterface $categoryRepository)
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->categoryRepository = $categoryRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$categoriesCount = $this->categoryRepository->count();
|
||||||
|
$pagesCount = ceil($categoriesCount / 5000);
|
||||||
|
|
||||||
|
return response()->view('visiosoft.module.cats::sitemap.index', [
|
||||||
|
'pagesCount' => $pagesCount,
|
||||||
|
])->header('Content-Type', 'text/xml');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function categories()
|
||||||
|
{
|
||||||
|
$page = request()->page ?: 1;
|
||||||
|
$skip = $page - 1;
|
||||||
|
|
||||||
|
$categories = $this->categoryRepository->newQuery()->skip(5000 * $skip)->take(5000)->get();
|
||||||
|
|
||||||
|
return response()->view('visiosoft.module.cats::sitemap.categories', [
|
||||||
|
'categories' => $categories,
|
||||||
|
])->header('Content-Type', 'text/xml');
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user