diff --git a/addons/default/visiosoft/cats-module/resources/views/sitemap/categories.twig b/addons/default/visiosoft/cats-module/resources/views/sitemap/categories.twig new file mode 100644 index 000000000..3cf9a85c2 --- /dev/null +++ b/addons/default/visiosoft/cats-module/resources/views/sitemap/categories.twig @@ -0,0 +1,10 @@ + + + {% for category in categories %} + + {{ url_route('adv_list_seo', [category.slug]) }} + {{ category.created_at.tz('UTC').toAtomString() }} + weekly + + {% endfor %} + \ No newline at end of file diff --git a/addons/default/visiosoft/cats-module/resources/views/sitemap/index.twig b/addons/default/visiosoft/cats-module/resources/views/sitemap/index.twig new file mode 100644 index 000000000..ff98d2ea1 --- /dev/null +++ b/addons/default/visiosoft/cats-module/resources/views/sitemap/index.twig @@ -0,0 +1,9 @@ + + + + {% for i in 1..pagesCount %} + + {{ url('sitemap.xml/categories') }}?page={{ i }} + + {% endfor %} + \ No newline at end of file diff --git a/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php b/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php index 659543e1e..9a7ecebf9 100644 --- a/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php +++ b/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php @@ -58,6 +58,10 @@ class CatsModuleServiceProvider extends AddonServiceProvider 'admin/cats/create' => 'Visiosoft\CatsModule\Http\Controller\Admin\CategoryController@create', 'admin/cats/edit/{id}' => 'Visiosoft\CatsModule\Http\Controller\Admin\CategoryController@edit', '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', ]; /** diff --git a/addons/default/visiosoft/cats-module/src/Http/Controller/SitemapController.php b/addons/default/visiosoft/cats-module/src/Http/Controller/SitemapController.php new file mode 100644 index 000000000..b7aa34d9a --- /dev/null +++ b/addons/default/visiosoft/cats-module/src/Http/Controller/SitemapController.php @@ -0,0 +1,38 @@ +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'); + } +}