From 03957db92b241248f6bcb9789bdf3ba34cd6f3b4 Mon Sep 17 00:00:00 2001 From: Norbert Micheel Date: Thu, 15 Jun 2023 19:02:42 +0200 Subject: [PATCH] new parameters to make it possible to create sitemap for a single language and / or domain --- boot.php | 5 ++++- lib/yrewrite/seo.php | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/boot.php b/boot.php index 12bf726..19df5d4 100644 --- a/boot.php +++ b/boot.php @@ -156,8 +156,11 @@ if ('sitemap' == rex_request('rex_yrewrite_func', 'string')) { rex_extension::register('PACKAGES_INCLUDED', static function ($params) { + $domain = rex_request('rex_yrewrite_param_domain', 'string', ''); + $lang = rex_request('rex_yrewrite_param_clang', 'integer', 0); + $sitemap = new rex_yrewrite_seo(); - $sitemap->sendSitemap(); + $sitemap->sendSitemap($domain, $lang); }, rex_extension::LATE); } diff --git a/lib/yrewrite/seo.php b/lib/yrewrite/seo.php index 0f057ac..d274a8a 100644 --- a/lib/yrewrite/seo.php +++ b/lib/yrewrite/seo.php @@ -248,7 +248,7 @@ public function sendRobotsTxt($domain = '') exit; } - public function sendSitemap($domain = '') + public function sendSitemap($domain = '', $clang = 0) { $domains = rex_yrewrite::getDomains(); @@ -273,7 +273,7 @@ public function sendSitemap($domain = '') foreach (rex_yrewrite::getPathsByDomain($domain->getName()) as $article_id => $path) { foreach ($domain->getClangs() as $clang_id) { - if (!isset($path[$clang_id]) || !rex_clang::get($clang_id)->isOnline()) { + if (!isset($path[$clang_id]) || !rex_clang::get($clang_id)->isOnline() || ($clang > 0 && $clang != $clang_id)) { continue; } @@ -325,7 +325,7 @@ public function sendSitemap($domain = '') } } } - $sitemap = rex_extension::registerPoint(new rex_extension_point('YREWRITE_DOMAIN_SITEMAP', $sitemap, ['domain' => $domain])); + $sitemap = rex_extension::registerPoint(new rex_extension_point('YREWRITE_DOMAIN_SITEMAP', $sitemap, ['domain' => $domain, 'clang' => $clang])); } $sitemap = rex_extension::registerPoint(new rex_extension_point('YREWRITE_SITEMAP', $sitemap));